blob: 0b6450c670bac867dc1ebdc505396d1abebe9ba9 [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
Pablo Galindo Salgado0e34a592021-11-04 23:19:27 +0000173#define assignment_expression_type 1099
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -0700174#define named_expression_type 1100
Brandt Bucherdbe60ee2021-04-29 17:19:28 -0700175#define annotated_rhs_type 1101
176#define expressions_type 1102
177#define expression_type 1103
178#define lambdef_type 1104
179#define lambda_params_type 1105
180#define lambda_parameters_type 1106
181#define lambda_slash_no_default_type 1107
182#define lambda_slash_with_default_type 1108
183#define lambda_star_etc_type 1109
184#define lambda_kwds_type 1110
185#define lambda_param_no_default_type 1111
186#define lambda_param_with_default_type 1112
187#define lambda_param_maybe_default_type 1113
188#define lambda_param_type 1114
189#define disjunction_type 1115
190#define conjunction_type 1116
191#define inversion_type 1117
192#define comparison_type 1118
193#define compare_op_bitwise_or_pair_type 1119
194#define eq_bitwise_or_type 1120
195#define noteq_bitwise_or_type 1121
196#define lte_bitwise_or_type 1122
197#define lt_bitwise_or_type 1123
198#define gte_bitwise_or_type 1124
199#define gt_bitwise_or_type 1125
200#define notin_bitwise_or_type 1126
201#define in_bitwise_or_type 1127
202#define isnot_bitwise_or_type 1128
203#define is_bitwise_or_type 1129
204#define bitwise_or_type 1130 // Left-recursive
205#define bitwise_xor_type 1131 // Left-recursive
206#define bitwise_and_type 1132 // Left-recursive
207#define shift_expr_type 1133 // Left-recursive
208#define sum_type 1134 // Left-recursive
209#define term_type 1135 // Left-recursive
210#define factor_type 1136
211#define power_type 1137
212#define await_primary_type 1138
213#define primary_type 1139 // Left-recursive
214#define slices_type 1140
215#define slice_type 1141
216#define atom_type 1142
217#define strings_type 1143
218#define list_type 1144
219#define listcomp_type 1145
220#define tuple_type 1146
221#define group_type 1147
222#define genexp_type 1148
223#define set_type 1149
224#define setcomp_type 1150
225#define dict_type 1151
226#define dictcomp_type 1152
227#define double_starred_kvpairs_type 1153
228#define double_starred_kvpair_type 1154
229#define kvpair_type 1155
230#define for_if_clauses_type 1156
231#define for_if_clause_type 1157
232#define yield_expr_type 1158
233#define arguments_type 1159
234#define args_type 1160
235#define kwargs_type 1161
236#define starred_expression_type 1162
237#define kwarg_or_starred_type 1163
238#define kwarg_or_double_starred_type 1164
239#define star_targets_type 1165
240#define star_targets_list_seq_type 1166
241#define star_targets_tuple_seq_type 1167
242#define star_target_type 1168
243#define target_with_star_atom_type 1169
244#define star_atom_type 1170
245#define single_target_type 1171
246#define single_subscript_attribute_target_type 1172
247#define del_targets_type 1173
248#define del_target_type 1174
249#define del_t_atom_type 1175
Miss Islington (bot)3e137422021-06-10 15:31:09 -0700250#define t_primary_type 1176 // Left-recursive
251#define t_lookahead_type 1177
252#define invalid_arguments_type 1178
253#define invalid_kwarg_type 1179
254#define expression_without_invalid_type 1180
Pablo Galindo Salgadob977f852021-07-27 18:52:32 +0100255#define invalid_legacy_expression_type 1181
256#define invalid_expression_type 1182
257#define invalid_named_expression_type 1183
258#define invalid_assignment_type 1184
259#define invalid_ann_assign_target_type 1185
260#define invalid_del_stmt_type 1186
261#define invalid_block_type 1187
Pablo Galindo Salgado511ee1c2021-11-20 17:39:17 +0000262#define invalid_comprehension_type 1188
263#define invalid_dict_comprehension_type 1189
264#define invalid_parameters_type 1190
265#define invalid_parameters_helper_type 1191
266#define invalid_lambda_parameters_type 1192
267#define invalid_lambda_parameters_helper_type 1193
268#define invalid_star_etc_type 1194
269#define invalid_lambda_star_etc_type 1195
270#define invalid_double_type_comments_type 1196
271#define invalid_with_item_type 1197
272#define invalid_for_target_type 1198
273#define invalid_group_type 1199
274#define invalid_import_from_targets_type 1200
275#define invalid_with_stmt_type 1201
276#define invalid_with_stmt_indent_type 1202
277#define invalid_try_stmt_type 1203
278#define invalid_except_stmt_type 1204
279#define invalid_finally_stmt_type 1205
280#define invalid_except_stmt_indent_type 1206
281#define invalid_match_stmt_type 1207
282#define invalid_case_block_type 1208
283#define invalid_as_pattern_type 1209
284#define invalid_class_pattern_type 1210
285#define invalid_class_argument_pattern_type 1211
286#define invalid_if_stmt_type 1212
287#define invalid_elif_stmt_type 1213
288#define invalid_else_stmt_type 1214
289#define invalid_while_stmt_type 1215
290#define invalid_for_stmt_type 1216
291#define invalid_def_raw_type 1217
292#define invalid_class_def_raw_type 1218
293#define invalid_double_starred_kvpairs_type 1219
294#define invalid_kvpair_type 1220
295#define _loop0_1_type 1221
296#define _loop0_2_type 1222
297#define _loop0_4_type 1223
298#define _gather_3_type 1224
299#define _loop0_6_type 1225
300#define _gather_5_type 1226
301#define _loop0_8_type 1227
302#define _gather_7_type 1228
303#define _loop0_10_type 1229
304#define _gather_9_type 1230
305#define _loop1_11_type 1231
306#define _loop0_13_type 1232
307#define _gather_12_type 1233
308#define _tmp_14_type 1234
309#define _tmp_15_type 1235
310#define _tmp_16_type 1236
311#define _tmp_17_type 1237
312#define _tmp_18_type 1238
313#define _tmp_19_type 1239
314#define _tmp_20_type 1240
315#define _tmp_21_type 1241
316#define _loop1_22_type 1242
317#define _tmp_23_type 1243
318#define _tmp_24_type 1244
319#define _loop0_26_type 1245
320#define _gather_25_type 1246
321#define _loop0_28_type 1247
322#define _gather_27_type 1248
323#define _tmp_29_type 1249
324#define _tmp_30_type 1250
325#define _loop0_31_type 1251
326#define _loop1_32_type 1252
327#define _loop0_34_type 1253
328#define _gather_33_type 1254
329#define _tmp_35_type 1255
330#define _loop0_37_type 1256
331#define _gather_36_type 1257
332#define _tmp_38_type 1258
333#define _loop0_40_type 1259
334#define _gather_39_type 1260
335#define _loop0_42_type 1261
336#define _gather_41_type 1262
337#define _loop0_44_type 1263
338#define _gather_43_type 1264
339#define _loop0_46_type 1265
340#define _gather_45_type 1266
341#define _tmp_47_type 1267
342#define _loop1_48_type 1268
343#define _tmp_49_type 1269
344#define _loop1_50_type 1270
345#define _loop0_52_type 1271
346#define _gather_51_type 1272
347#define _tmp_53_type 1273
348#define _tmp_54_type 1274
349#define _tmp_55_type 1275
350#define _tmp_56_type 1276
351#define _loop0_58_type 1277
352#define _gather_57_type 1278
353#define _loop0_60_type 1279
354#define _gather_59_type 1280
355#define _tmp_61_type 1281
356#define _loop0_63_type 1282
357#define _gather_62_type 1283
358#define _loop0_65_type 1284
359#define _gather_64_type 1285
360#define _tmp_66_type 1286
361#define _tmp_67_type 1287
362#define _tmp_68_type 1288
363#define _tmp_69_type 1289
364#define _loop0_70_type 1290
365#define _loop0_71_type 1291
366#define _loop0_72_type 1292
367#define _loop1_73_type 1293
368#define _loop0_74_type 1294
369#define _loop1_75_type 1295
370#define _loop1_76_type 1296
371#define _loop1_77_type 1297
372#define _loop0_78_type 1298
373#define _loop1_79_type 1299
374#define _loop0_80_type 1300
375#define _loop1_81_type 1301
376#define _loop0_82_type 1302
377#define _loop1_83_type 1303
378#define _loop1_84_type 1304
379#define _tmp_85_type 1305
380#define _loop1_86_type 1306
381#define _loop0_88_type 1307
382#define _gather_87_type 1308
383#define _loop1_89_type 1309
384#define _loop0_90_type 1310
385#define _loop0_91_type 1311
386#define _loop0_92_type 1312
387#define _loop1_93_type 1313
388#define _loop0_94_type 1314
389#define _loop1_95_type 1315
390#define _loop1_96_type 1316
391#define _loop1_97_type 1317
392#define _loop0_98_type 1318
393#define _loop1_99_type 1319
394#define _loop0_100_type 1320
395#define _loop1_101_type 1321
396#define _loop0_102_type 1322
397#define _loop1_103_type 1323
398#define _loop1_104_type 1324
399#define _loop1_105_type 1325
400#define _loop1_106_type 1326
401#define _tmp_107_type 1327
402#define _loop0_109_type 1328
403#define _gather_108_type 1329
404#define _tmp_110_type 1330
405#define _tmp_111_type 1331
406#define _tmp_112_type 1332
407#define _tmp_113_type 1333
408#define _loop1_114_type 1334
409#define _tmp_115_type 1335
410#define _tmp_116_type 1336
411#define _tmp_117_type 1337
412#define _loop0_119_type 1338
413#define _gather_118_type 1339
414#define _loop1_120_type 1340
415#define _loop0_121_type 1341
416#define _loop0_122_type 1342
417#define _loop0_124_type 1343
418#define _gather_123_type 1344
419#define _tmp_125_type 1345
420#define _loop0_127_type 1346
421#define _gather_126_type 1347
422#define _loop0_129_type 1348
423#define _gather_128_type 1349
424#define _loop0_131_type 1350
425#define _gather_130_type 1351
426#define _loop0_133_type 1352
427#define _gather_132_type 1353
428#define _loop0_134_type 1354
429#define _loop0_136_type 1355
430#define _gather_135_type 1356
431#define _loop1_137_type 1357
432#define _tmp_138_type 1358
433#define _loop0_140_type 1359
434#define _gather_139_type 1360
435#define _tmp_141_type 1361
436#define _tmp_142_type 1362
437#define _tmp_143_type 1363
438#define _tmp_144_type 1364
439#define _tmp_145_type 1365
440#define _tmp_146_type 1366
441#define _tmp_147_type 1367
442#define _tmp_148_type 1368
443#define _loop0_149_type 1369
444#define _loop0_150_type 1370
445#define _loop0_151_type 1371
446#define _tmp_152_type 1372
447#define _tmp_153_type 1373
448#define _tmp_154_type 1374
449#define _tmp_155_type 1375
450#define _loop0_156_type 1376
451#define _loop1_157_type 1377
452#define _loop0_158_type 1378
453#define _loop1_159_type 1379
454#define _tmp_160_type 1380
455#define _tmp_161_type 1381
456#define _tmp_162_type 1382
457#define _loop0_164_type 1383
458#define _gather_163_type 1384
459#define _loop0_166_type 1385
460#define _gather_165_type 1386
461#define _loop0_168_type 1387
462#define _gather_167_type 1388
463#define _loop0_170_type 1389
464#define _gather_169_type 1390
465#define _tmp_171_type 1391
466#define _tmp_172_type 1392
467#define _tmp_173_type 1393
468#define _tmp_174_type 1394
469#define _tmp_175_type 1395
470#define _tmp_176_type 1396
471#define _tmp_177_type 1397
472#define _loop0_179_type 1398
473#define _gather_178_type 1399
474#define _tmp_180_type 1400
475#define _tmp_181_type 1401
476#define _tmp_182_type 1402
477#define _tmp_183_type 1403
478#define _tmp_184_type 1404
479#define _tmp_185_type 1405
480#define _tmp_186_type 1406
481#define _tmp_187_type 1407
482#define _tmp_188_type 1408
483#define _tmp_189_type 1409
484#define _tmp_190_type 1410
485#define _tmp_191_type 1411
486#define _tmp_192_type 1412
487#define _tmp_193_type 1413
488#define _tmp_194_type 1414
489#define _tmp_195_type 1415
490#define _tmp_196_type 1416
491#define _tmp_197_type 1417
492#define _tmp_198_type 1418
493#define _tmp_199_type 1419
494#define _tmp_200_type 1420
495#define _tmp_201_type 1421
496#define _tmp_202_type 1422
497#define _tmp_203_type 1423
498#define _tmp_204_type 1424
499#define _tmp_205_type 1425
500#define _tmp_206_type 1426
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100501
502static mod_ty file_rule(Parser *p);
503static mod_ty interactive_rule(Parser *p);
504static mod_ty eval_rule(Parser *p);
505static mod_ty func_type_rule(Parser *p);
506static expr_ty fstring_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100507static asdl_expr_seq* type_expressions_rule(Parser *p);
508static asdl_stmt_seq* statements_rule(Parser *p);
509static asdl_stmt_seq* statement_rule(Parser *p);
510static asdl_stmt_seq* statement_newline_rule(Parser *p);
Pablo Galindo9bdc40e2020-11-30 19:42:38 +0000511static asdl_stmt_seq* simple_stmts_rule(Parser *p);
512static stmt_ty simple_stmt_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100513static stmt_ty compound_stmt_rule(Parser *p);
514static stmt_ty assignment_rule(Parser *p);
515static AugOperator* augassign_rule(Parser *p);
516static stmt_ty global_stmt_rule(Parser *p);
517static stmt_ty nonlocal_stmt_rule(Parser *p);
518static stmt_ty yield_stmt_rule(Parser *p);
519static stmt_ty assert_stmt_rule(Parser *p);
520static stmt_ty del_stmt_rule(Parser *p);
521static stmt_ty import_stmt_rule(Parser *p);
522static stmt_ty import_name_rule(Parser *p);
523static stmt_ty import_from_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100524static asdl_alias_seq* import_from_targets_rule(Parser *p);
525static asdl_alias_seq* import_from_as_names_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100526static alias_ty import_from_as_name_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100527static asdl_alias_seq* dotted_as_names_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100528static alias_ty dotted_as_name_rule(Parser *p);
529static expr_ty dotted_name_rule(Parser *p);
530static stmt_ty if_stmt_rule(Parser *p);
531static stmt_ty elif_stmt_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100532static asdl_stmt_seq* else_block_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100533static stmt_ty while_stmt_rule(Parser *p);
534static stmt_ty for_stmt_rule(Parser *p);
535static stmt_ty with_stmt_rule(Parser *p);
536static withitem_ty with_item_rule(Parser *p);
537static stmt_ty try_stmt_rule(Parser *p);
538static excepthandler_ty except_block_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100539static asdl_stmt_seq* finally_block_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800540static stmt_ty match_stmt_rule(Parser *p);
541static expr_ty subject_expr_rule(Parser *p);
542static match_case_ty case_block_rule(Parser *p);
543static expr_ty guard_rule(Parser *p);
Nick Coghlan1e7b8582021-04-29 15:58:44 +1000544static pattern_ty patterns_rule(Parser *p);
545static pattern_ty pattern_rule(Parser *p);
546static pattern_ty as_pattern_rule(Parser *p);
547static pattern_ty or_pattern_rule(Parser *p);
548static pattern_ty closed_pattern_rule(Parser *p);
549static pattern_ty literal_pattern_rule(Parser *p);
550static expr_ty literal_expr_rule(Parser *p);
551static expr_ty complex_number_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800552static expr_ty signed_number_rule(Parser *p);
Brandt Bucherdbe60ee2021-04-29 17:19:28 -0700553static expr_ty signed_real_number_rule(Parser *p);
554static expr_ty real_number_rule(Parser *p);
Nick Coghlan1e7b8582021-04-29 15:58:44 +1000555static expr_ty imaginary_number_rule(Parser *p);
556static pattern_ty capture_pattern_rule(Parser *p);
557static expr_ty pattern_capture_target_rule(Parser *p);
558static pattern_ty wildcard_pattern_rule(Parser *p);
559static pattern_ty value_pattern_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800560static expr_ty attr_rule(Parser *p);
561static expr_ty name_or_attr_rule(Parser *p);
Nick Coghlan1e7b8582021-04-29 15:58:44 +1000562static pattern_ty group_pattern_rule(Parser *p);
563static pattern_ty sequence_pattern_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800564static asdl_seq* open_sequence_pattern_rule(Parser *p);
565static asdl_seq* maybe_sequence_pattern_rule(Parser *p);
Nick Coghlan1e7b8582021-04-29 15:58:44 +1000566static pattern_ty maybe_star_pattern_rule(Parser *p);
567static pattern_ty star_pattern_rule(Parser *p);
568static pattern_ty mapping_pattern_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800569static asdl_seq* items_pattern_rule(Parser *p);
Nick Coghlan1e7b8582021-04-29 15:58:44 +1000570static KeyPatternPair* key_value_pattern_rule(Parser *p);
571static expr_ty double_star_pattern_rule(Parser *p);
572static pattern_ty class_pattern_rule(Parser *p);
573static asdl_pattern_seq* positional_patterns_rule(Parser *p);
574static asdl_seq* keyword_patterns_rule(Parser *p);
575static KeyPatternPair* keyword_pattern_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100576static stmt_ty return_stmt_rule(Parser *p);
577static stmt_ty raise_stmt_rule(Parser *p);
578static stmt_ty function_def_rule(Parser *p);
579static stmt_ty function_def_raw_rule(Parser *p);
580static Token* func_type_comment_rule(Parser *p);
581static arguments_ty params_rule(Parser *p);
582static arguments_ty parameters_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100583static asdl_arg_seq* slash_no_default_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100584static SlashWithDefault* slash_with_default_rule(Parser *p);
585static StarEtc* star_etc_rule(Parser *p);
586static arg_ty kwds_rule(Parser *p);
587static arg_ty param_no_default_rule(Parser *p);
588static NameDefaultPair* param_with_default_rule(Parser *p);
589static NameDefaultPair* param_maybe_default_rule(Parser *p);
590static arg_ty param_rule(Parser *p);
591static expr_ty annotation_rule(Parser *p);
592static expr_ty default_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100593static asdl_expr_seq* decorators_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100594static stmt_ty class_def_rule(Parser *p);
595static stmt_ty class_def_raw_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100596static asdl_stmt_seq* block_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100597static expr_ty star_expressions_rule(Parser *p);
598static expr_ty star_expression_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100599static asdl_expr_seq* star_named_expressions_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100600static expr_ty star_named_expression_rule(Parser *p);
Pablo Galindo Salgado0e34a592021-11-04 23:19:27 +0000601static expr_ty assignment_expression_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100602static expr_ty named_expression_rule(Parser *p);
603static expr_ty annotated_rhs_rule(Parser *p);
604static expr_ty expressions_rule(Parser *p);
605static expr_ty expression_rule(Parser *p);
606static expr_ty lambdef_rule(Parser *p);
607static arguments_ty lambda_params_rule(Parser *p);
608static arguments_ty lambda_parameters_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100609static asdl_arg_seq* lambda_slash_no_default_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100610static SlashWithDefault* lambda_slash_with_default_rule(Parser *p);
611static StarEtc* lambda_star_etc_rule(Parser *p);
612static arg_ty lambda_kwds_rule(Parser *p);
613static arg_ty lambda_param_no_default_rule(Parser *p);
614static NameDefaultPair* lambda_param_with_default_rule(Parser *p);
615static NameDefaultPair* lambda_param_maybe_default_rule(Parser *p);
616static arg_ty lambda_param_rule(Parser *p);
617static expr_ty disjunction_rule(Parser *p);
618static expr_ty conjunction_rule(Parser *p);
619static expr_ty inversion_rule(Parser *p);
620static expr_ty comparison_rule(Parser *p);
621static CmpopExprPair* compare_op_bitwise_or_pair_rule(Parser *p);
622static CmpopExprPair* eq_bitwise_or_rule(Parser *p);
623static CmpopExprPair* noteq_bitwise_or_rule(Parser *p);
624static CmpopExprPair* lte_bitwise_or_rule(Parser *p);
625static CmpopExprPair* lt_bitwise_or_rule(Parser *p);
626static CmpopExprPair* gte_bitwise_or_rule(Parser *p);
627static CmpopExprPair* gt_bitwise_or_rule(Parser *p);
628static CmpopExprPair* notin_bitwise_or_rule(Parser *p);
629static CmpopExprPair* in_bitwise_or_rule(Parser *p);
630static CmpopExprPair* isnot_bitwise_or_rule(Parser *p);
631static CmpopExprPair* is_bitwise_or_rule(Parser *p);
632static expr_ty bitwise_or_rule(Parser *p);
633static expr_ty bitwise_xor_rule(Parser *p);
634static expr_ty bitwise_and_rule(Parser *p);
635static expr_ty shift_expr_rule(Parser *p);
636static expr_ty sum_rule(Parser *p);
637static expr_ty term_rule(Parser *p);
638static expr_ty factor_rule(Parser *p);
639static expr_ty power_rule(Parser *p);
640static expr_ty await_primary_rule(Parser *p);
641static expr_ty primary_rule(Parser *p);
642static expr_ty slices_rule(Parser *p);
643static expr_ty slice_rule(Parser *p);
644static expr_ty atom_rule(Parser *p);
645static expr_ty strings_rule(Parser *p);
646static expr_ty list_rule(Parser *p);
647static expr_ty listcomp_rule(Parser *p);
648static expr_ty tuple_rule(Parser *p);
649static expr_ty group_rule(Parser *p);
650static expr_ty genexp_rule(Parser *p);
651static expr_ty set_rule(Parser *p);
652static expr_ty setcomp_rule(Parser *p);
653static expr_ty dict_rule(Parser *p);
654static expr_ty dictcomp_rule(Parser *p);
655static asdl_seq* double_starred_kvpairs_rule(Parser *p);
656static KeyValuePair* double_starred_kvpair_rule(Parser *p);
657static KeyValuePair* kvpair_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100658static asdl_comprehension_seq* for_if_clauses_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100659static comprehension_ty for_if_clause_rule(Parser *p);
660static expr_ty yield_expr_rule(Parser *p);
661static expr_ty arguments_rule(Parser *p);
662static expr_ty args_rule(Parser *p);
663static asdl_seq* kwargs_rule(Parser *p);
664static expr_ty starred_expression_rule(Parser *p);
665static KeywordOrStarred* kwarg_or_starred_rule(Parser *p);
666static KeywordOrStarred* kwarg_or_double_starred_rule(Parser *p);
667static expr_ty star_targets_rule(Parser *p);
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +0200668static asdl_expr_seq* star_targets_list_seq_rule(Parser *p);
669static asdl_expr_seq* star_targets_tuple_seq_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100670static expr_ty star_target_rule(Parser *p);
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +0200671static expr_ty target_with_star_atom_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100672static expr_ty star_atom_rule(Parser *p);
673static expr_ty single_target_rule(Parser *p);
674static expr_ty single_subscript_attribute_target_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100675static asdl_expr_seq* del_targets_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100676static expr_ty del_target_rule(Parser *p);
677static expr_ty del_t_atom_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100678static expr_ty t_primary_rule(Parser *p);
679static void *t_lookahead_rule(Parser *p);
Lysandros Nikolaoubca70142020-10-27 00:42:04 +0200680static void *invalid_arguments_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100681static void *invalid_kwarg_rule(Parser *p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -0700682static expr_ty expression_without_invalid_rule(Parser *p);
Pablo Galindo Salgadob977f852021-07-27 18:52:32 +0100683static void *invalid_legacy_expression_rule(Parser *p);
Pablo Galindob2802482021-04-15 21:38:45 +0100684static void *invalid_expression_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100685static void *invalid_named_expression_rule(Parser *p);
686static void *invalid_assignment_rule(Parser *p);
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +0300687static expr_ty invalid_ann_assign_target_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300688static void *invalid_del_stmt_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100689static void *invalid_block_rule(Parser *p);
690static void *invalid_comprehension_rule(Parser *p);
691static void *invalid_dict_comprehension_rule(Parser *p);
692static void *invalid_parameters_rule(Parser *p);
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +0200693static void *invalid_parameters_helper_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100694static void *invalid_lambda_parameters_rule(Parser *p);
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +0200695static void *invalid_lambda_parameters_helper_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100696static void *invalid_star_etc_rule(Parser *p);
697static void *invalid_lambda_star_etc_rule(Parser *p);
698static void *invalid_double_type_comments_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300699static void *invalid_with_item_rule(Parser *p);
700static void *invalid_for_target_rule(Parser *p);
701static void *invalid_group_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100702static void *invalid_import_from_targets_rule(Parser *p);
Pablo Galindo58fb1562021-02-02 19:54:22 +0000703static void *invalid_with_stmt_rule(Parser *p);
Pablo Galindo56c95df2021-04-21 15:28:21 +0100704static void *invalid_with_stmt_indent_rule(Parser *p);
705static void *invalid_try_stmt_rule(Parser *p);
706static void *invalid_except_stmt_rule(Parser *p);
707static void *invalid_finally_stmt_rule(Parser *p);
708static void *invalid_except_stmt_indent_rule(Parser *p);
Pablo Galindo08fb8ac2021-03-18 01:03:11 +0000709static void *invalid_match_stmt_rule(Parser *p);
710static void *invalid_case_block_rule(Parser *p);
Pablo Galindoa8c418d2021-06-18 22:15:57 +0100711static void *invalid_as_pattern_rule(Parser *p);
Miss Islington (bot)11f1a302021-06-24 08:34:28 -0700712static void *invalid_class_pattern_rule(Parser *p);
713static asdl_pattern_seq* invalid_class_argument_pattern_rule(Parser *p);
Pablo Galindob86ed8e2021-04-12 16:59:30 +0100714static void *invalid_if_stmt_rule(Parser *p);
715static void *invalid_elif_stmt_rule(Parser *p);
Pablo Galindo56c95df2021-04-21 15:28:21 +0100716static void *invalid_else_stmt_rule(Parser *p);
Pablo Galindob86ed8e2021-04-12 16:59:30 +0100717static void *invalid_while_stmt_rule(Parser *p);
Pablo Galindo56c95df2021-04-21 15:28:21 +0100718static void *invalid_for_stmt_rule(Parser *p);
719static void *invalid_def_raw_rule(Parser *p);
720static void *invalid_class_def_raw_rule(Parser *p);
Pablo Galindoda743502021-04-15 14:06:39 +0100721static void *invalid_double_starred_kvpairs_rule(Parser *p);
722static void *invalid_kvpair_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100723static asdl_seq *_loop0_1_rule(Parser *p);
724static asdl_seq *_loop0_2_rule(Parser *p);
725static asdl_seq *_loop0_4_rule(Parser *p);
726static asdl_seq *_gather_3_rule(Parser *p);
727static asdl_seq *_loop0_6_rule(Parser *p);
728static asdl_seq *_gather_5_rule(Parser *p);
729static asdl_seq *_loop0_8_rule(Parser *p);
730static asdl_seq *_gather_7_rule(Parser *p);
731static asdl_seq *_loop0_10_rule(Parser *p);
732static asdl_seq *_gather_9_rule(Parser *p);
733static asdl_seq *_loop1_11_rule(Parser *p);
734static asdl_seq *_loop0_13_rule(Parser *p);
735static asdl_seq *_gather_12_rule(Parser *p);
736static void *_tmp_14_rule(Parser *p);
737static void *_tmp_15_rule(Parser *p);
738static void *_tmp_16_rule(Parser *p);
739static void *_tmp_17_rule(Parser *p);
740static void *_tmp_18_rule(Parser *p);
741static void *_tmp_19_rule(Parser *p);
742static void *_tmp_20_rule(Parser *p);
743static void *_tmp_21_rule(Parser *p);
744static asdl_seq *_loop1_22_rule(Parser *p);
745static void *_tmp_23_rule(Parser *p);
746static void *_tmp_24_rule(Parser *p);
747static asdl_seq *_loop0_26_rule(Parser *p);
748static asdl_seq *_gather_25_rule(Parser *p);
749static asdl_seq *_loop0_28_rule(Parser *p);
750static asdl_seq *_gather_27_rule(Parser *p);
751static void *_tmp_29_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300752static void *_tmp_30_rule(Parser *p);
753static asdl_seq *_loop0_31_rule(Parser *p);
754static asdl_seq *_loop1_32_rule(Parser *p);
755static asdl_seq *_loop0_34_rule(Parser *p);
756static asdl_seq *_gather_33_rule(Parser *p);
757static void *_tmp_35_rule(Parser *p);
758static asdl_seq *_loop0_37_rule(Parser *p);
759static asdl_seq *_gather_36_rule(Parser *p);
760static void *_tmp_38_rule(Parser *p);
761static asdl_seq *_loop0_40_rule(Parser *p);
762static asdl_seq *_gather_39_rule(Parser *p);
763static asdl_seq *_loop0_42_rule(Parser *p);
764static asdl_seq *_gather_41_rule(Parser *p);
765static asdl_seq *_loop0_44_rule(Parser *p);
766static asdl_seq *_gather_43_rule(Parser *p);
767static asdl_seq *_loop0_46_rule(Parser *p);
768static asdl_seq *_gather_45_rule(Parser *p);
769static void *_tmp_47_rule(Parser *p);
770static asdl_seq *_loop1_48_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100771static void *_tmp_49_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800772static asdl_seq *_loop1_50_rule(Parser *p);
773static asdl_seq *_loop0_52_rule(Parser *p);
774static asdl_seq *_gather_51_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300775static void *_tmp_53_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800776static void *_tmp_54_rule(Parser *p);
777static void *_tmp_55_rule(Parser *p);
Nick Coghlan1e7b8582021-04-29 15:58:44 +1000778static void *_tmp_56_rule(Parser *p);
779static asdl_seq *_loop0_58_rule(Parser *p);
780static asdl_seq *_gather_57_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800781static asdl_seq *_loop0_60_rule(Parser *p);
782static asdl_seq *_gather_59_rule(Parser *p);
783static void *_tmp_61_rule(Parser *p);
784static asdl_seq *_loop0_63_rule(Parser *p);
785static asdl_seq *_gather_62_rule(Parser *p);
786static asdl_seq *_loop0_65_rule(Parser *p);
787static asdl_seq *_gather_64_rule(Parser *p);
788static void *_tmp_66_rule(Parser *p);
789static void *_tmp_67_rule(Parser *p);
790static void *_tmp_68_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300791static void *_tmp_69_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800792static asdl_seq *_loop0_70_rule(Parser *p);
793static asdl_seq *_loop0_71_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000794static asdl_seq *_loop0_72_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000795static asdl_seq *_loop1_73_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300796static asdl_seq *_loop0_74_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800797static asdl_seq *_loop1_75_rule(Parser *p);
798static asdl_seq *_loop1_76_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000799static asdl_seq *_loop1_77_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300800static asdl_seq *_loop0_78_rule(Parser *p);
801static asdl_seq *_loop1_79_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800802static asdl_seq *_loop0_80_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100803static asdl_seq *_loop1_81_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000804static asdl_seq *_loop0_82_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300805static asdl_seq *_loop1_83_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800806static asdl_seq *_loop1_84_rule(Parser *p);
807static void *_tmp_85_rule(Parser *p);
808static asdl_seq *_loop1_86_rule(Parser *p);
809static asdl_seq *_loop0_88_rule(Parser *p);
810static asdl_seq *_gather_87_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100811static asdl_seq *_loop1_89_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800812static asdl_seq *_loop0_90_rule(Parser *p);
813static asdl_seq *_loop0_91_rule(Parser *p);
814static asdl_seq *_loop0_92_rule(Parser *p);
815static asdl_seq *_loop1_93_rule(Parser *p);
816static asdl_seq *_loop0_94_rule(Parser *p);
817static asdl_seq *_loop1_95_rule(Parser *p);
818static asdl_seq *_loop1_96_rule(Parser *p);
819static asdl_seq *_loop1_97_rule(Parser *p);
820static asdl_seq *_loop0_98_rule(Parser *p);
821static asdl_seq *_loop1_99_rule(Parser *p);
822static asdl_seq *_loop0_100_rule(Parser *p);
823static asdl_seq *_loop1_101_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000824static asdl_seq *_loop0_102_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000825static asdl_seq *_loop1_103_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800826static asdl_seq *_loop1_104_rule(Parser *p);
827static asdl_seq *_loop1_105_rule(Parser *p);
828static asdl_seq *_loop1_106_rule(Parser *p);
829static void *_tmp_107_rule(Parser *p);
830static asdl_seq *_loop0_109_rule(Parser *p);
831static asdl_seq *_gather_108_rule(Parser *p);
832static void *_tmp_110_rule(Parser *p);
833static void *_tmp_111_rule(Parser *p);
834static void *_tmp_112_rule(Parser *p);
835static void *_tmp_113_rule(Parser *p);
836static asdl_seq *_loop1_114_rule(Parser *p);
837static void *_tmp_115_rule(Parser *p);
838static void *_tmp_116_rule(Parser *p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -0700839static void *_tmp_117_rule(Parser *p);
840static asdl_seq *_loop0_119_rule(Parser *p);
841static asdl_seq *_gather_118_rule(Parser *p);
842static asdl_seq *_loop1_120_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800843static asdl_seq *_loop0_121_rule(Parser *p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -0700844static asdl_seq *_loop0_122_rule(Parser *p);
845static asdl_seq *_loop0_124_rule(Parser *p);
846static asdl_seq *_gather_123_rule(Parser *p);
847static void *_tmp_125_rule(Parser *p);
848static asdl_seq *_loop0_127_rule(Parser *p);
849static asdl_seq *_gather_126_rule(Parser *p);
850static asdl_seq *_loop0_129_rule(Parser *p);
851static asdl_seq *_gather_128_rule(Parser *p);
852static asdl_seq *_loop0_131_rule(Parser *p);
853static asdl_seq *_gather_130_rule(Parser *p);
Pablo Galindo835f14f2021-01-31 22:52:56 +0000854static asdl_seq *_loop0_133_rule(Parser *p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -0700855static asdl_seq *_gather_132_rule(Parser *p);
856static asdl_seq *_loop0_134_rule(Parser *p);
857static asdl_seq *_loop0_136_rule(Parser *p);
858static asdl_seq *_gather_135_rule(Parser *p);
859static asdl_seq *_loop1_137_rule(Parser *p);
860static void *_tmp_138_rule(Parser *p);
861static asdl_seq *_loop0_140_rule(Parser *p);
862static asdl_seq *_gather_139_rule(Parser *p);
Miss Islington (bot)3e137422021-06-10 15:31:09 -0700863static void *_tmp_141_rule(Parser *p);
864static void *_tmp_142_rule(Parser *p);
Pablo Galindob86ed8e2021-04-12 16:59:30 +0100865static void *_tmp_143_rule(Parser *p);
866static void *_tmp_144_rule(Parser *p);
867static void *_tmp_145_rule(Parser *p);
Pablo Galindob2802482021-04-15 21:38:45 +0100868static void *_tmp_146_rule(Parser *p);
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +0100869static void *_tmp_147_rule(Parser *p);
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +0000870static void *_tmp_148_rule(Parser *p);
Pablo Galindob2802482021-04-15 21:38:45 +0100871static asdl_seq *_loop0_149_rule(Parser *p);
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +0100872static asdl_seq *_loop0_150_rule(Parser *p);
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +0000873static asdl_seq *_loop0_151_rule(Parser *p);
Pablo Galindob2802482021-04-15 21:38:45 +0100874static void *_tmp_152_rule(Parser *p);
Pablo Galindoa77aac42021-04-23 14:27:05 +0100875static void *_tmp_153_rule(Parser *p);
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +0100876static void *_tmp_154_rule(Parser *p);
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +0000877static void *_tmp_155_rule(Parser *p);
878static asdl_seq *_loop0_156_rule(Parser *p);
879static asdl_seq *_loop1_157_rule(Parser *p);
880static asdl_seq *_loop0_158_rule(Parser *p);
881static asdl_seq *_loop1_159_rule(Parser *p);
Pablo Galindoa77aac42021-04-23 14:27:05 +0100882static void *_tmp_160_rule(Parser *p);
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +0100883static void *_tmp_161_rule(Parser *p);
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +0000884static void *_tmp_162_rule(Parser *p);
885static asdl_seq *_loop0_164_rule(Parser *p);
886static asdl_seq *_gather_163_rule(Parser *p);
887static asdl_seq *_loop0_166_rule(Parser *p);
888static asdl_seq *_gather_165_rule(Parser *p);
889static asdl_seq *_loop0_168_rule(Parser *p);
890static asdl_seq *_gather_167_rule(Parser *p);
891static asdl_seq *_loop0_170_rule(Parser *p);
892static asdl_seq *_gather_169_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800893static void *_tmp_171_rule(Parser *p);
894static void *_tmp_172_rule(Parser *p);
Pablo Galindoa77aac42021-04-23 14:27:05 +0100895static void *_tmp_173_rule(Parser *p);
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -0700896static void *_tmp_174_rule(Parser *p);
Miss Islington (bot)11f1a302021-06-24 08:34:28 -0700897static void *_tmp_175_rule(Parser *p);
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +0100898static void *_tmp_176_rule(Parser *p);
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +0000899static void *_tmp_177_rule(Parser *p);
900static asdl_seq *_loop0_179_rule(Parser *p);
901static asdl_seq *_gather_178_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800902static void *_tmp_180_rule(Parser *p);
903static void *_tmp_181_rule(Parser *p);
904static void *_tmp_182_rule(Parser *p);
Pablo Galindob86ed8e2021-04-12 16:59:30 +0100905static void *_tmp_183_rule(Parser *p);
906static void *_tmp_184_rule(Parser *p);
907static void *_tmp_185_rule(Parser *p);
Pablo Galindoda743502021-04-15 14:06:39 +0100908static void *_tmp_186_rule(Parser *p);
909static void *_tmp_187_rule(Parser *p);
910static void *_tmp_188_rule(Parser *p);
Pablo Galindob2802482021-04-15 21:38:45 +0100911static void *_tmp_189_rule(Parser *p);
Pablo Galindo56c95df2021-04-21 15:28:21 +0100912static void *_tmp_190_rule(Parser *p);
913static void *_tmp_191_rule(Parser *p);
914static void *_tmp_192_rule(Parser *p);
915static void *_tmp_193_rule(Parser *p);
916static void *_tmp_194_rule(Parser *p);
917static void *_tmp_195_rule(Parser *p);
918static void *_tmp_196_rule(Parser *p);
919static void *_tmp_197_rule(Parser *p);
920static void *_tmp_198_rule(Parser *p);
921static void *_tmp_199_rule(Parser *p);
922static void *_tmp_200_rule(Parser *p);
Pablo Galindoa77aac42021-04-23 14:27:05 +0100923static void *_tmp_201_rule(Parser *p);
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -0700924static void *_tmp_202_rule(Parser *p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -0700925static void *_tmp_203_rule(Parser *p);
Miss Islington (bot)11f1a302021-06-24 08:34:28 -0700926static void *_tmp_204_rule(Parser *p);
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +0100927static void *_tmp_205_rule(Parser *p);
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +0000928static void *_tmp_206_rule(Parser *p);
Guido van Rossum85a5fbb1990-10-14 12:07:46 +0000929
930
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100931// file: statements? $
932static mod_ty
933file_rule(Parser *p)
Guido van Rossum85a5fbb1990-10-14 12:07:46 +0000934{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100935 D(p->level++);
936 if (p->error_indicator) {
937 D(p->level--);
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000938 return NULL;
939 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100940 mod_ty _res = NULL;
941 int _mark = p->mark;
942 { // statements? $
943 if (p->error_indicator) {
944 D(p->level--);
945 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000946 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100947 D(fprintf(stderr, "%*c> file[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statements? $"));
948 void *a;
949 Token * endmarker_var;
950 if (
Łukasz Langa5c9cab52021-10-19 22:31:18 +0200951 (a = statements_rule(p), !p->error_indicator) // statements?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100952 &&
953 (endmarker_var = _PyPegen_expect_token(p, ENDMARKER)) // token='ENDMARKER'
954 )
955 {
956 D(fprintf(stderr, "%*c+ file[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "statements? $"));
957 _res = _PyPegen_make_module ( p , a );
958 if (_res == NULL && PyErr_Occurred()) {
959 p->error_indicator = 1;
960 D(p->level--);
961 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000962 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100963 goto done;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000964 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100965 p->mark = _mark;
966 D(fprintf(stderr, "%*c%s file[%d-%d]: %s failed!\n", p->level, ' ',
967 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statements? $"));
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000968 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100969 _res = NULL;
970 done:
971 D(p->level--);
972 return _res;
Guido van Rossum85a5fbb1990-10-14 12:07:46 +0000973}
974
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100975// interactive: statement_newline
976static mod_ty
977interactive_rule(Parser *p)
Guido van Rossumb09f7ed2001-07-15 21:08:29 +0000978{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100979 D(p->level++);
980 if (p->error_indicator) {
981 D(p->level--);
982 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000983 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100984 mod_ty _res = NULL;
985 int _mark = p->mark;
986 { // statement_newline
987 if (p->error_indicator) {
988 D(p->level--);
989 return NULL;
990 }
991 D(fprintf(stderr, "%*c> interactive[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statement_newline"));
Pablo Galindoa5634c42020-09-16 19:42:00 +0100992 asdl_stmt_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100993 if (
994 (a = statement_newline_rule(p)) // statement_newline
995 )
996 {
997 D(fprintf(stderr, "%*c+ interactive[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "statement_newline"));
Victor Stinnerd27f8d22021-04-07 21:34:22 +0200998 _res = _PyAST_Interactive ( a , p -> arena );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100999 if (_res == NULL && PyErr_Occurred()) {
1000 p->error_indicator = 1;
1001 D(p->level--);
1002 return NULL;
1003 }
1004 goto done;
1005 }
1006 p->mark = _mark;
1007 D(fprintf(stderr, "%*c%s interactive[%d-%d]: %s failed!\n", p->level, ' ',
1008 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statement_newline"));
1009 }
1010 _res = NULL;
1011 done:
1012 D(p->level--);
1013 return _res;
Guido van Rossumb09f7ed2001-07-15 21:08:29 +00001014}
1015
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001016// eval: expressions NEWLINE* $
1017static mod_ty
1018eval_rule(Parser *p)
Guido van Rossum85a5fbb1990-10-14 12:07:46 +00001019{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001020 D(p->level++);
1021 if (p->error_indicator) {
1022 D(p->level--);
1023 return NULL;
1024 }
1025 mod_ty _res = NULL;
1026 int _mark = p->mark;
1027 { // expressions NEWLINE* $
1028 if (p->error_indicator) {
1029 D(p->level--);
1030 return NULL;
1031 }
1032 D(fprintf(stderr, "%*c> eval[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expressions NEWLINE* $"));
1033 asdl_seq * _loop0_1_var;
1034 expr_ty a;
1035 Token * endmarker_var;
1036 if (
1037 (a = expressions_rule(p)) // expressions
1038 &&
1039 (_loop0_1_var = _loop0_1_rule(p)) // NEWLINE*
1040 &&
1041 (endmarker_var = _PyPegen_expect_token(p, ENDMARKER)) // token='ENDMARKER'
1042 )
1043 {
1044 D(fprintf(stderr, "%*c+ eval[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expressions NEWLINE* $"));
Victor Stinnerd27f8d22021-04-07 21:34:22 +02001045 _res = _PyAST_Expression ( a , p -> arena );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001046 if (_res == NULL && PyErr_Occurred()) {
1047 p->error_indicator = 1;
1048 D(p->level--);
1049 return NULL;
1050 }
1051 goto done;
1052 }
1053 p->mark = _mark;
1054 D(fprintf(stderr, "%*c%s eval[%d-%d]: %s failed!\n", p->level, ' ',
1055 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expressions NEWLINE* $"));
1056 }
1057 _res = NULL;
1058 done:
1059 D(p->level--);
1060 return _res;
1061}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +00001062
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001063// func_type: '(' type_expressions? ')' '->' expression NEWLINE* $
1064static mod_ty
1065func_type_rule(Parser *p)
1066{
1067 D(p->level++);
1068 if (p->error_indicator) {
1069 D(p->level--);
1070 return NULL;
1071 }
1072 mod_ty _res = NULL;
1073 int _mark = p->mark;
1074 { // '(' type_expressions? ')' '->' expression NEWLINE* $
1075 if (p->error_indicator) {
1076 D(p->level--);
1077 return NULL;
1078 }
1079 D(fprintf(stderr, "%*c> func_type[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' type_expressions? ')' '->' expression NEWLINE* $"));
1080 Token * _literal;
1081 Token * _literal_1;
1082 Token * _literal_2;
1083 asdl_seq * _loop0_2_var;
1084 void *a;
1085 expr_ty b;
1086 Token * endmarker_var;
1087 if (
1088 (_literal = _PyPegen_expect_token(p, 7)) // token='('
1089 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02001090 (a = type_expressions_rule(p), !p->error_indicator) // type_expressions?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001091 &&
1092 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
1093 &&
1094 (_literal_2 = _PyPegen_expect_token(p, 51)) // token='->'
1095 &&
1096 (b = expression_rule(p)) // expression
1097 &&
1098 (_loop0_2_var = _loop0_2_rule(p)) // NEWLINE*
1099 &&
1100 (endmarker_var = _PyPegen_expect_token(p, ENDMARKER)) // token='ENDMARKER'
1101 )
1102 {
1103 D(fprintf(stderr, "%*c+ func_type[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' type_expressions? ')' '->' expression NEWLINE* $"));
Victor Stinnerd27f8d22021-04-07 21:34:22 +02001104 _res = _PyAST_FunctionType ( a , b , p -> arena );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001105 if (_res == NULL && PyErr_Occurred()) {
1106 p->error_indicator = 1;
1107 D(p->level--);
1108 return NULL;
1109 }
1110 goto done;
1111 }
1112 p->mark = _mark;
1113 D(fprintf(stderr, "%*c%s func_type[%d-%d]: %s failed!\n", p->level, ' ',
1114 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' type_expressions? ')' '->' expression NEWLINE* $"));
1115 }
1116 _res = NULL;
1117 done:
1118 D(p->level--);
1119 return _res;
1120}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +00001121
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001122// fstring: star_expressions
1123static expr_ty
1124fstring_rule(Parser *p)
1125{
1126 D(p->level++);
1127 if (p->error_indicator) {
1128 D(p->level--);
1129 return NULL;
1130 }
1131 expr_ty _res = NULL;
1132 int _mark = p->mark;
1133 { // star_expressions
1134 if (p->error_indicator) {
1135 D(p->level--);
1136 return NULL;
1137 }
1138 D(fprintf(stderr, "%*c> fstring[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
1139 expr_ty star_expressions_var;
1140 if (
1141 (star_expressions_var = star_expressions_rule(p)) // star_expressions
1142 )
1143 {
1144 D(fprintf(stderr, "%*c+ fstring[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
1145 _res = star_expressions_var;
1146 goto done;
1147 }
1148 p->mark = _mark;
1149 D(fprintf(stderr, "%*c%s fstring[%d-%d]: %s failed!\n", p->level, ' ',
1150 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
1151 }
1152 _res = NULL;
1153 done:
1154 D(p->level--);
1155 return _res;
1156}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +00001157
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001158// type_expressions:
1159// | ','.expression+ ',' '*' expression ',' '**' expression
1160// | ','.expression+ ',' '*' expression
1161// | ','.expression+ ',' '**' expression
1162// | '*' expression ',' '**' expression
1163// | '*' expression
1164// | '**' expression
1165// | ','.expression+
Pablo Galindoa5634c42020-09-16 19:42:00 +01001166static asdl_expr_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001167type_expressions_rule(Parser *p)
1168{
1169 D(p->level++);
1170 if (p->error_indicator) {
1171 D(p->level--);
1172 return NULL;
1173 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01001174 asdl_expr_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001175 int _mark = p->mark;
1176 { // ','.expression+ ',' '*' expression ',' '**' expression
1177 if (p->error_indicator) {
1178 D(p->level--);
1179 return NULL;
1180 }
1181 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.expression+ ',' '*' expression ',' '**' expression"));
1182 Token * _literal;
1183 Token * _literal_1;
1184 Token * _literal_2;
1185 Token * _literal_3;
1186 asdl_seq * a;
1187 expr_ty b;
1188 expr_ty c;
1189 if (
1190 (a = _gather_3_rule(p)) // ','.expression+
1191 &&
1192 (_literal = _PyPegen_expect_token(p, 12)) // token=','
1193 &&
1194 (_literal_1 = _PyPegen_expect_token(p, 16)) // token='*'
1195 &&
1196 (b = expression_rule(p)) // expression
1197 &&
1198 (_literal_2 = _PyPegen_expect_token(p, 12)) // token=','
1199 &&
1200 (_literal_3 = _PyPegen_expect_token(p, 35)) // token='**'
1201 &&
1202 (c = expression_rule(p)) // expression
1203 )
1204 {
1205 D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.expression+ ',' '*' expression ',' '**' expression"));
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03001206 _res = ( asdl_expr_seq * ) _PyPegen_seq_append_to_end ( p , CHECK ( asdl_seq * , _PyPegen_seq_append_to_end ( p , a , b ) ) , c );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001207 if (_res == NULL && PyErr_Occurred()) {
1208 p->error_indicator = 1;
1209 D(p->level--);
1210 return NULL;
1211 }
1212 goto done;
1213 }
1214 p->mark = _mark;
1215 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1216 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+ ',' '*' expression ',' '**' expression"));
1217 }
1218 { // ','.expression+ ',' '*' expression
1219 if (p->error_indicator) {
1220 D(p->level--);
1221 return NULL;
1222 }
1223 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.expression+ ',' '*' expression"));
1224 Token * _literal;
1225 Token * _literal_1;
1226 asdl_seq * a;
1227 expr_ty b;
1228 if (
1229 (a = _gather_5_rule(p)) // ','.expression+
1230 &&
1231 (_literal = _PyPegen_expect_token(p, 12)) // token=','
1232 &&
1233 (_literal_1 = _PyPegen_expect_token(p, 16)) // token='*'
1234 &&
1235 (b = expression_rule(p)) // expression
1236 )
1237 {
1238 D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.expression+ ',' '*' expression"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001239 _res = ( asdl_expr_seq * ) _PyPegen_seq_append_to_end ( p , a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001240 if (_res == NULL && PyErr_Occurred()) {
1241 p->error_indicator = 1;
1242 D(p->level--);
1243 return NULL;
1244 }
1245 goto done;
1246 }
1247 p->mark = _mark;
1248 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1249 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+ ',' '*' expression"));
1250 }
1251 { // ','.expression+ ',' '**' expression
1252 if (p->error_indicator) {
1253 D(p->level--);
1254 return NULL;
1255 }
1256 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.expression+ ',' '**' expression"));
1257 Token * _literal;
1258 Token * _literal_1;
1259 asdl_seq * a;
1260 expr_ty b;
1261 if (
1262 (a = _gather_7_rule(p)) // ','.expression+
1263 &&
1264 (_literal = _PyPegen_expect_token(p, 12)) // token=','
1265 &&
1266 (_literal_1 = _PyPegen_expect_token(p, 35)) // token='**'
1267 &&
1268 (b = expression_rule(p)) // expression
1269 )
1270 {
1271 D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.expression+ ',' '**' expression"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001272 _res = ( asdl_expr_seq * ) _PyPegen_seq_append_to_end ( p , a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001273 if (_res == NULL && PyErr_Occurred()) {
1274 p->error_indicator = 1;
1275 D(p->level--);
1276 return NULL;
1277 }
1278 goto done;
1279 }
1280 p->mark = _mark;
1281 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1282 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+ ',' '**' expression"));
1283 }
1284 { // '*' expression ',' '**' expression
1285 if (p->error_indicator) {
1286 D(p->level--);
1287 return NULL;
1288 }
1289 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' expression ',' '**' expression"));
1290 Token * _literal;
1291 Token * _literal_1;
1292 Token * _literal_2;
1293 expr_ty a;
1294 expr_ty b;
1295 if (
1296 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
1297 &&
1298 (a = expression_rule(p)) // expression
1299 &&
1300 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
1301 &&
1302 (_literal_2 = _PyPegen_expect_token(p, 35)) // token='**'
1303 &&
1304 (b = expression_rule(p)) // expression
1305 )
1306 {
1307 D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' expression ',' '**' expression"));
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03001308 _res = ( asdl_expr_seq * ) _PyPegen_seq_append_to_end ( p , CHECK ( asdl_seq * , _PyPegen_singleton_seq ( p , a ) ) , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001309 if (_res == NULL && PyErr_Occurred()) {
1310 p->error_indicator = 1;
1311 D(p->level--);
1312 return NULL;
1313 }
1314 goto done;
1315 }
1316 p->mark = _mark;
1317 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1318 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' expression ',' '**' expression"));
1319 }
1320 { // '*' expression
1321 if (p->error_indicator) {
1322 D(p->level--);
1323 return NULL;
1324 }
1325 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' expression"));
1326 Token * _literal;
1327 expr_ty a;
1328 if (
1329 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
1330 &&
1331 (a = expression_rule(p)) // expression
1332 )
1333 {
1334 D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' expression"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001335 _res = ( asdl_expr_seq * ) _PyPegen_singleton_seq ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001336 if (_res == NULL && PyErr_Occurred()) {
1337 p->error_indicator = 1;
1338 D(p->level--);
1339 return NULL;
1340 }
1341 goto done;
1342 }
1343 p->mark = _mark;
1344 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1345 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' expression"));
1346 }
1347 { // '**' expression
1348 if (p->error_indicator) {
1349 D(p->level--);
1350 return NULL;
1351 }
1352 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' expression"));
1353 Token * _literal;
1354 expr_ty a;
1355 if (
1356 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
1357 &&
1358 (a = expression_rule(p)) // expression
1359 )
1360 {
1361 D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' expression"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001362 _res = ( asdl_expr_seq * ) _PyPegen_singleton_seq ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001363 if (_res == NULL && PyErr_Occurred()) {
1364 p->error_indicator = 1;
1365 D(p->level--);
1366 return NULL;
1367 }
1368 goto done;
1369 }
1370 p->mark = _mark;
1371 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1372 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' expression"));
1373 }
1374 { // ','.expression+
1375 if (p->error_indicator) {
1376 D(p->level--);
1377 return NULL;
1378 }
1379 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.expression+"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001380 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001381 if (
Pablo Galindoa5634c42020-09-16 19:42:00 +01001382 (a = (asdl_expr_seq*)_gather_9_rule(p)) // ','.expression+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001383 )
1384 {
1385 D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.expression+"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001386 _res = a;
1387 if (_res == NULL && PyErr_Occurred()) {
1388 p->error_indicator = 1;
1389 D(p->level--);
1390 return NULL;
1391 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001392 goto done;
1393 }
1394 p->mark = _mark;
1395 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1396 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+"));
1397 }
1398 _res = NULL;
1399 done:
1400 D(p->level--);
1401 return _res;
1402}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +00001403
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001404// statements: statement+
Pablo Galindoa5634c42020-09-16 19:42:00 +01001405static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001406statements_rule(Parser *p)
1407{
1408 D(p->level++);
1409 if (p->error_indicator) {
1410 D(p->level--);
1411 return NULL;
1412 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01001413 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001414 int _mark = p->mark;
1415 { // statement+
1416 if (p->error_indicator) {
1417 D(p->level--);
1418 return NULL;
1419 }
1420 D(fprintf(stderr, "%*c> statements[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statement+"));
1421 asdl_seq * a;
1422 if (
1423 (a = _loop1_11_rule(p)) // statement+
1424 )
1425 {
1426 D(fprintf(stderr, "%*c+ statements[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "statement+"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001427 _res = ( asdl_stmt_seq * ) _PyPegen_seq_flatten ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001428 if (_res == NULL && PyErr_Occurred()) {
1429 p->error_indicator = 1;
1430 D(p->level--);
1431 return NULL;
1432 }
1433 goto done;
1434 }
1435 p->mark = _mark;
1436 D(fprintf(stderr, "%*c%s statements[%d-%d]: %s failed!\n", p->level, ' ',
1437 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statement+"));
1438 }
1439 _res = NULL;
1440 done:
1441 D(p->level--);
1442 return _res;
1443}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +00001444
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001445// statement: compound_stmt | simple_stmts
Pablo Galindoa5634c42020-09-16 19:42:00 +01001446static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001447statement_rule(Parser *p)
1448{
1449 D(p->level++);
1450 if (p->error_indicator) {
1451 D(p->level--);
1452 return NULL;
1453 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01001454 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001455 int _mark = p->mark;
1456 { // compound_stmt
1457 if (p->error_indicator) {
1458 D(p->level--);
1459 return NULL;
1460 }
1461 D(fprintf(stderr, "%*c> statement[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "compound_stmt"));
1462 stmt_ty a;
1463 if (
1464 (a = compound_stmt_rule(p)) // compound_stmt
1465 )
1466 {
1467 D(fprintf(stderr, "%*c+ statement[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "compound_stmt"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001468 _res = ( asdl_stmt_seq * ) _PyPegen_singleton_seq ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001469 if (_res == NULL && PyErr_Occurred()) {
1470 p->error_indicator = 1;
1471 D(p->level--);
1472 return NULL;
1473 }
1474 goto done;
1475 }
1476 p->mark = _mark;
1477 D(fprintf(stderr, "%*c%s statement[%d-%d]: %s failed!\n", p->level, ' ',
1478 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "compound_stmt"));
1479 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001480 { // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001481 if (p->error_indicator) {
1482 D(p->level--);
1483 return NULL;
1484 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001485 D(fprintf(stderr, "%*c> statement[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001486 asdl_stmt_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001487 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001488 (a = (asdl_stmt_seq*)simple_stmts_rule(p)) // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001489 )
1490 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001491 D(fprintf(stderr, "%*c+ statement[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001492 _res = a;
1493 if (_res == NULL && PyErr_Occurred()) {
1494 p->error_indicator = 1;
1495 D(p->level--);
1496 return NULL;
1497 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001498 goto done;
1499 }
1500 p->mark = _mark;
1501 D(fprintf(stderr, "%*c%s statement[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001502 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmts"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001503 }
1504 _res = NULL;
1505 done:
1506 D(p->level--);
1507 return _res;
1508}
1509
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001510// statement_newline: compound_stmt NEWLINE | simple_stmts | NEWLINE | $
Pablo Galindoa5634c42020-09-16 19:42:00 +01001511static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001512statement_newline_rule(Parser *p)
1513{
1514 D(p->level++);
1515 if (p->error_indicator) {
1516 D(p->level--);
1517 return NULL;
1518 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01001519 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001520 int _mark = p->mark;
1521 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
1522 p->error_indicator = 1;
1523 D(p->level--);
1524 return NULL;
1525 }
1526 int _start_lineno = p->tokens[_mark]->lineno;
1527 UNUSED(_start_lineno); // Only used by EXTRA macro
1528 int _start_col_offset = p->tokens[_mark]->col_offset;
1529 UNUSED(_start_col_offset); // Only used by EXTRA macro
1530 { // compound_stmt NEWLINE
1531 if (p->error_indicator) {
1532 D(p->level--);
1533 return NULL;
1534 }
1535 D(fprintf(stderr, "%*c> statement_newline[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "compound_stmt NEWLINE"));
1536 stmt_ty a;
1537 Token * newline_var;
1538 if (
1539 (a = compound_stmt_rule(p)) // compound_stmt
1540 &&
1541 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
1542 )
1543 {
1544 D(fprintf(stderr, "%*c+ statement_newline[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "compound_stmt NEWLINE"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001545 _res = ( asdl_stmt_seq * ) _PyPegen_singleton_seq ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001546 if (_res == NULL && PyErr_Occurred()) {
1547 p->error_indicator = 1;
1548 D(p->level--);
1549 return NULL;
1550 }
1551 goto done;
1552 }
1553 p->mark = _mark;
1554 D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ',
1555 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "compound_stmt NEWLINE"));
1556 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001557 { // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001558 if (p->error_indicator) {
1559 D(p->level--);
1560 return NULL;
1561 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001562 D(fprintf(stderr, "%*c> statement_newline[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
1563 asdl_stmt_seq* simple_stmts_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001564 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001565 (simple_stmts_var = simple_stmts_rule(p)) // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001566 )
1567 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001568 D(fprintf(stderr, "%*c+ statement_newline[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
1569 _res = simple_stmts_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001570 goto done;
1571 }
1572 p->mark = _mark;
1573 D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001574 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmts"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001575 }
1576 { // NEWLINE
1577 if (p->error_indicator) {
1578 D(p->level--);
1579 return NULL;
1580 }
1581 D(fprintf(stderr, "%*c> statement_newline[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
1582 Token * newline_var;
1583 if (
1584 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
1585 )
1586 {
1587 D(fprintf(stderr, "%*c+ statement_newline[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
1588 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1589 if (_token == NULL) {
1590 D(p->level--);
1591 return NULL;
1592 }
1593 int _end_lineno = _token->end_lineno;
1594 UNUSED(_end_lineno); // Only used by EXTRA macro
1595 int _end_col_offset = _token->end_col_offset;
1596 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02001597 _res = ( asdl_stmt_seq * ) _PyPegen_singleton_seq ( p , CHECK ( stmt_ty , _PyAST_Pass ( EXTRA ) ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001598 if (_res == NULL && PyErr_Occurred()) {
1599 p->error_indicator = 1;
1600 D(p->level--);
1601 return NULL;
1602 }
1603 goto done;
1604 }
1605 p->mark = _mark;
1606 D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ',
1607 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
1608 }
1609 { // $
1610 if (p->error_indicator) {
1611 D(p->level--);
1612 return NULL;
1613 }
1614 D(fprintf(stderr, "%*c> statement_newline[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "$"));
1615 Token * endmarker_var;
1616 if (
1617 (endmarker_var = _PyPegen_expect_token(p, ENDMARKER)) // token='ENDMARKER'
1618 )
1619 {
1620 D(fprintf(stderr, "%*c+ statement_newline[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "$"));
1621 _res = _PyPegen_interactive_exit ( p );
1622 if (_res == NULL && PyErr_Occurred()) {
1623 p->error_indicator = 1;
1624 D(p->level--);
1625 return NULL;
1626 }
1627 goto done;
1628 }
1629 p->mark = _mark;
1630 D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ',
1631 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "$"));
1632 }
1633 _res = NULL;
1634 done:
1635 D(p->level--);
1636 return _res;
1637}
1638
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001639// simple_stmts: simple_stmt !';' NEWLINE | ';'.simple_stmt+ ';'? NEWLINE
Pablo Galindoa5634c42020-09-16 19:42:00 +01001640static asdl_stmt_seq*
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001641simple_stmts_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001642{
1643 D(p->level++);
1644 if (p->error_indicator) {
1645 D(p->level--);
1646 return NULL;
1647 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01001648 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001649 int _mark = p->mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001650 { // simple_stmt !';' NEWLINE
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001651 if (p->error_indicator) {
1652 D(p->level--);
1653 return NULL;
1654 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001655 D(fprintf(stderr, "%*c> simple_stmts[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "simple_stmt !';' NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001656 stmt_ty a;
1657 Token * newline_var;
1658 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001659 (a = simple_stmt_rule(p)) // simple_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001660 &&
1661 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 13) // token=';'
1662 &&
1663 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
1664 )
1665 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001666 D(fprintf(stderr, "%*c+ simple_stmts[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "simple_stmt !';' NEWLINE"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001667 _res = ( asdl_stmt_seq * ) _PyPegen_singleton_seq ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001668 if (_res == NULL && PyErr_Occurred()) {
1669 p->error_indicator = 1;
1670 D(p->level--);
1671 return NULL;
1672 }
1673 goto done;
1674 }
1675 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001676 D(fprintf(stderr, "%*c%s simple_stmts[%d-%d]: %s failed!\n", p->level, ' ',
1677 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmt !';' NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001678 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001679 { // ';'.simple_stmt+ ';'? NEWLINE
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001680 if (p->error_indicator) {
1681 D(p->level--);
1682 return NULL;
1683 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001684 D(fprintf(stderr, "%*c> simple_stmts[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "';'.simple_stmt+ ';'? NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001685 void *_opt_var;
1686 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +01001687 asdl_stmt_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001688 Token * newline_var;
1689 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001690 (a = (asdl_stmt_seq*)_gather_12_rule(p)) // ';'.simple_stmt+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001691 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02001692 (_opt_var = _PyPegen_expect_token(p, 13), !p->error_indicator) // ';'?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001693 &&
1694 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
1695 )
1696 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001697 D(fprintf(stderr, "%*c+ simple_stmts[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "';'.simple_stmt+ ';'? NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001698 _res = a;
1699 if (_res == NULL && PyErr_Occurred()) {
1700 p->error_indicator = 1;
1701 D(p->level--);
1702 return NULL;
1703 }
1704 goto done;
1705 }
1706 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001707 D(fprintf(stderr, "%*c%s simple_stmts[%d-%d]: %s failed!\n", p->level, ' ',
1708 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "';'.simple_stmt+ ';'? NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001709 }
1710 _res = NULL;
1711 done:
1712 D(p->level--);
1713 return _res;
1714}
1715
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001716// simple_stmt:
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001717// | assignment
1718// | star_expressions
1719// | &'return' return_stmt
1720// | &('import' | 'from') import_stmt
1721// | &'raise' raise_stmt
1722// | 'pass'
1723// | &'del' del_stmt
1724// | &'yield' yield_stmt
1725// | &'assert' assert_stmt
1726// | 'break'
1727// | 'continue'
1728// | &'global' global_stmt
1729// | &'nonlocal' nonlocal_stmt
1730static stmt_ty
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001731simple_stmt_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001732{
1733 D(p->level++);
1734 if (p->error_indicator) {
1735 D(p->level--);
1736 return NULL;
1737 }
1738 stmt_ty _res = NULL;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001739 if (_PyPegen_is_memoized(p, simple_stmt_type, &_res)) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001740 D(p->level--);
1741 return _res;
1742 }
1743 int _mark = p->mark;
1744 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
1745 p->error_indicator = 1;
1746 D(p->level--);
1747 return NULL;
1748 }
1749 int _start_lineno = p->tokens[_mark]->lineno;
1750 UNUSED(_start_lineno); // Only used by EXTRA macro
1751 int _start_col_offset = p->tokens[_mark]->col_offset;
1752 UNUSED(_start_col_offset); // Only used by EXTRA macro
1753 { // assignment
1754 if (p->error_indicator) {
1755 D(p->level--);
1756 return NULL;
1757 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001758 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "assignment"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001759 stmt_ty assignment_var;
1760 if (
1761 (assignment_var = assignment_rule(p)) // assignment
1762 )
1763 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001764 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "assignment"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001765 _res = assignment_var;
1766 goto done;
1767 }
1768 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001769 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001770 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "assignment"));
1771 }
1772 { // star_expressions
1773 if (p->error_indicator) {
1774 D(p->level--);
1775 return NULL;
1776 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001777 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001778 expr_ty e;
1779 if (
1780 (e = star_expressions_rule(p)) // star_expressions
1781 )
1782 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001783 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001784 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1785 if (_token == NULL) {
1786 D(p->level--);
1787 return NULL;
1788 }
1789 int _end_lineno = _token->end_lineno;
1790 UNUSED(_end_lineno); // Only used by EXTRA macro
1791 int _end_col_offset = _token->end_col_offset;
1792 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02001793 _res = _PyAST_Expr ( e , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001794 if (_res == NULL && PyErr_Occurred()) {
1795 p->error_indicator = 1;
1796 D(p->level--);
1797 return NULL;
1798 }
1799 goto done;
1800 }
1801 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001802 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001803 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
1804 }
1805 { // &'return' return_stmt
1806 if (p->error_indicator) {
1807 D(p->level--);
1808 return NULL;
1809 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001810 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'return' return_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001811 stmt_ty return_stmt_var;
1812 if (
1813 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 500) // token='return'
1814 &&
1815 (return_stmt_var = return_stmt_rule(p)) // return_stmt
1816 )
1817 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001818 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'return' return_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001819 _res = return_stmt_var;
1820 goto done;
1821 }
1822 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001823 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001824 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'return' return_stmt"));
1825 }
1826 { // &('import' | 'from') import_stmt
1827 if (p->error_indicator) {
1828 D(p->level--);
1829 return NULL;
1830 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001831 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('import' | 'from') import_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001832 stmt_ty import_stmt_var;
1833 if (
1834 _PyPegen_lookahead(1, _tmp_14_rule, p)
1835 &&
1836 (import_stmt_var = import_stmt_rule(p)) // import_stmt
1837 )
1838 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001839 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('import' | 'from') import_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001840 _res = import_stmt_var;
1841 goto done;
1842 }
1843 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001844 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001845 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('import' | 'from') import_stmt"));
1846 }
1847 { // &'raise' raise_stmt
1848 if (p->error_indicator) {
1849 D(p->level--);
1850 return NULL;
1851 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001852 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'raise' raise_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001853 stmt_ty raise_stmt_var;
1854 if (
1855 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 501) // token='raise'
1856 &&
1857 (raise_stmt_var = raise_stmt_rule(p)) // raise_stmt
1858 )
1859 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001860 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'raise' raise_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001861 _res = raise_stmt_var;
1862 goto done;
1863 }
1864 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001865 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001866 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'raise' raise_stmt"));
1867 }
1868 { // 'pass'
1869 if (p->error_indicator) {
1870 D(p->level--);
1871 return NULL;
1872 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001873 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'pass'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001874 Token * _keyword;
1875 if (
1876 (_keyword = _PyPegen_expect_token(p, 502)) // token='pass'
1877 )
1878 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001879 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'pass'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001880 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1881 if (_token == NULL) {
1882 D(p->level--);
1883 return NULL;
1884 }
1885 int _end_lineno = _token->end_lineno;
1886 UNUSED(_end_lineno); // Only used by EXTRA macro
1887 int _end_col_offset = _token->end_col_offset;
1888 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02001889 _res = _PyAST_Pass ( EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001890 if (_res == NULL && PyErr_Occurred()) {
1891 p->error_indicator = 1;
1892 D(p->level--);
1893 return NULL;
1894 }
1895 goto done;
1896 }
1897 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001898 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001899 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'pass'"));
1900 }
1901 { // &'del' del_stmt
1902 if (p->error_indicator) {
1903 D(p->level--);
1904 return NULL;
1905 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001906 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'del' del_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001907 stmt_ty del_stmt_var;
1908 if (
1909 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 503) // token='del'
1910 &&
1911 (del_stmt_var = del_stmt_rule(p)) // del_stmt
1912 )
1913 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001914 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'del' del_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001915 _res = del_stmt_var;
1916 goto done;
1917 }
1918 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001919 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001920 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'del' del_stmt"));
1921 }
1922 { // &'yield' yield_stmt
1923 if (p->error_indicator) {
1924 D(p->level--);
1925 return NULL;
1926 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001927 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'yield' yield_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001928 stmt_ty yield_stmt_var;
1929 if (
1930 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 504) // token='yield'
1931 &&
1932 (yield_stmt_var = yield_stmt_rule(p)) // yield_stmt
1933 )
1934 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001935 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'yield' yield_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001936 _res = yield_stmt_var;
1937 goto done;
1938 }
1939 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001940 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001941 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'yield' yield_stmt"));
1942 }
1943 { // &'assert' assert_stmt
1944 if (p->error_indicator) {
1945 D(p->level--);
1946 return NULL;
1947 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001948 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'assert' assert_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001949 stmt_ty assert_stmt_var;
1950 if (
1951 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 505) // token='assert'
1952 &&
1953 (assert_stmt_var = assert_stmt_rule(p)) // assert_stmt
1954 )
1955 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001956 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'assert' assert_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001957 _res = assert_stmt_var;
1958 goto done;
1959 }
1960 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001961 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001962 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'assert' assert_stmt"));
1963 }
1964 { // 'break'
1965 if (p->error_indicator) {
1966 D(p->level--);
1967 return NULL;
1968 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001969 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'break'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001970 Token * _keyword;
1971 if (
1972 (_keyword = _PyPegen_expect_token(p, 506)) // token='break'
1973 )
1974 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001975 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'break'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001976 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1977 if (_token == NULL) {
1978 D(p->level--);
1979 return NULL;
1980 }
1981 int _end_lineno = _token->end_lineno;
1982 UNUSED(_end_lineno); // Only used by EXTRA macro
1983 int _end_col_offset = _token->end_col_offset;
1984 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02001985 _res = _PyAST_Break ( EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001986 if (_res == NULL && PyErr_Occurred()) {
1987 p->error_indicator = 1;
1988 D(p->level--);
1989 return NULL;
1990 }
1991 goto done;
1992 }
1993 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001994 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001995 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'break'"));
1996 }
1997 { // 'continue'
1998 if (p->error_indicator) {
1999 D(p->level--);
2000 return NULL;
2001 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00002002 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'continue'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002003 Token * _keyword;
2004 if (
2005 (_keyword = _PyPegen_expect_token(p, 507)) // token='continue'
2006 )
2007 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00002008 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'continue'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002009 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2010 if (_token == NULL) {
2011 D(p->level--);
2012 return NULL;
2013 }
2014 int _end_lineno = _token->end_lineno;
2015 UNUSED(_end_lineno); // Only used by EXTRA macro
2016 int _end_col_offset = _token->end_col_offset;
2017 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02002018 _res = _PyAST_Continue ( EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002019 if (_res == NULL && PyErr_Occurred()) {
2020 p->error_indicator = 1;
2021 D(p->level--);
2022 return NULL;
2023 }
2024 goto done;
2025 }
2026 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00002027 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002028 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'continue'"));
2029 }
2030 { // &'global' global_stmt
2031 if (p->error_indicator) {
2032 D(p->level--);
2033 return NULL;
2034 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00002035 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'global' global_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002036 stmt_ty global_stmt_var;
2037 if (
2038 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 508) // token='global'
2039 &&
2040 (global_stmt_var = global_stmt_rule(p)) // global_stmt
2041 )
2042 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00002043 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'global' global_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002044 _res = global_stmt_var;
2045 goto done;
2046 }
2047 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00002048 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002049 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'global' global_stmt"));
2050 }
2051 { // &'nonlocal' nonlocal_stmt
2052 if (p->error_indicator) {
2053 D(p->level--);
2054 return NULL;
2055 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00002056 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'nonlocal' nonlocal_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002057 stmt_ty nonlocal_stmt_var;
2058 if (
2059 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 509) // token='nonlocal'
2060 &&
2061 (nonlocal_stmt_var = nonlocal_stmt_rule(p)) // nonlocal_stmt
2062 )
2063 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00002064 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'nonlocal' nonlocal_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002065 _res = nonlocal_stmt_var;
2066 goto done;
2067 }
2068 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00002069 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002070 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'nonlocal' nonlocal_stmt"));
2071 }
2072 _res = NULL;
2073 done:
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00002074 _PyPegen_insert_memo(p, _mark, simple_stmt_type, _res);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002075 D(p->level--);
2076 return _res;
2077}
2078
2079// compound_stmt:
2080// | &('def' | '@' | ASYNC) function_def
2081// | &'if' if_stmt
2082// | &('class' | '@') class_def
2083// | &('with' | ASYNC) with_stmt
2084// | &('for' | ASYNC) for_stmt
2085// | &'try' try_stmt
2086// | &'while' while_stmt
Brandt Bucher145bf262021-02-26 14:51:55 -08002087// | match_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002088static stmt_ty
2089compound_stmt_rule(Parser *p)
2090{
2091 D(p->level++);
2092 if (p->error_indicator) {
2093 D(p->level--);
2094 return NULL;
2095 }
2096 stmt_ty _res = NULL;
2097 int _mark = p->mark;
2098 { // &('def' | '@' | ASYNC) function_def
2099 if (p->error_indicator) {
2100 D(p->level--);
2101 return NULL;
2102 }
2103 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('def' | '@' | ASYNC) function_def"));
2104 stmt_ty function_def_var;
2105 if (
2106 _PyPegen_lookahead(1, _tmp_15_rule, p)
2107 &&
2108 (function_def_var = function_def_rule(p)) // function_def
2109 )
2110 {
2111 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('def' | '@' | ASYNC) function_def"));
2112 _res = function_def_var;
2113 goto done;
2114 }
2115 p->mark = _mark;
2116 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2117 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('def' | '@' | ASYNC) function_def"));
2118 }
2119 { // &'if' if_stmt
2120 if (p->error_indicator) {
2121 D(p->level--);
2122 return NULL;
2123 }
2124 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'if' if_stmt"));
2125 stmt_ty if_stmt_var;
2126 if (
2127 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 510) // token='if'
2128 &&
2129 (if_stmt_var = if_stmt_rule(p)) // if_stmt
2130 )
2131 {
2132 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'if' if_stmt"));
2133 _res = if_stmt_var;
2134 goto done;
2135 }
2136 p->mark = _mark;
2137 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2138 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'if' if_stmt"));
2139 }
2140 { // &('class' | '@') class_def
2141 if (p->error_indicator) {
2142 D(p->level--);
2143 return NULL;
2144 }
2145 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('class' | '@') class_def"));
2146 stmt_ty class_def_var;
2147 if (
2148 _PyPegen_lookahead(1, _tmp_16_rule, p)
2149 &&
2150 (class_def_var = class_def_rule(p)) // class_def
2151 )
2152 {
2153 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('class' | '@') class_def"));
2154 _res = class_def_var;
2155 goto done;
2156 }
2157 p->mark = _mark;
2158 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2159 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('class' | '@') class_def"));
2160 }
2161 { // &('with' | ASYNC) with_stmt
2162 if (p->error_indicator) {
2163 D(p->level--);
2164 return NULL;
2165 }
2166 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('with' | ASYNC) with_stmt"));
2167 stmt_ty with_stmt_var;
2168 if (
2169 _PyPegen_lookahead(1, _tmp_17_rule, p)
2170 &&
2171 (with_stmt_var = with_stmt_rule(p)) // with_stmt
2172 )
2173 {
2174 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('with' | ASYNC) with_stmt"));
2175 _res = with_stmt_var;
2176 goto done;
2177 }
2178 p->mark = _mark;
2179 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2180 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('with' | ASYNC) with_stmt"));
2181 }
2182 { // &('for' | ASYNC) for_stmt
2183 if (p->error_indicator) {
2184 D(p->level--);
2185 return NULL;
2186 }
2187 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('for' | ASYNC) for_stmt"));
2188 stmt_ty for_stmt_var;
2189 if (
2190 _PyPegen_lookahead(1, _tmp_18_rule, p)
2191 &&
2192 (for_stmt_var = for_stmt_rule(p)) // for_stmt
2193 )
2194 {
2195 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('for' | ASYNC) for_stmt"));
2196 _res = for_stmt_var;
2197 goto done;
2198 }
2199 p->mark = _mark;
2200 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2201 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('for' | ASYNC) for_stmt"));
2202 }
2203 { // &'try' try_stmt
2204 if (p->error_indicator) {
2205 D(p->level--);
2206 return NULL;
2207 }
2208 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'try' try_stmt"));
2209 stmt_ty try_stmt_var;
2210 if (
2211 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 511) // token='try'
2212 &&
2213 (try_stmt_var = try_stmt_rule(p)) // try_stmt
2214 )
2215 {
2216 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'try' try_stmt"));
2217 _res = try_stmt_var;
2218 goto done;
2219 }
2220 p->mark = _mark;
2221 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2222 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'try' try_stmt"));
2223 }
2224 { // &'while' while_stmt
2225 if (p->error_indicator) {
2226 D(p->level--);
2227 return NULL;
2228 }
2229 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'while' while_stmt"));
2230 stmt_ty while_stmt_var;
2231 if (
2232 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 512) // token='while'
2233 &&
2234 (while_stmt_var = while_stmt_rule(p)) // while_stmt
2235 )
2236 {
2237 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'while' while_stmt"));
2238 _res = while_stmt_var;
2239 goto done;
2240 }
2241 p->mark = _mark;
2242 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2243 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'while' while_stmt"));
2244 }
Brandt Bucher145bf262021-02-26 14:51:55 -08002245 { // match_stmt
2246 if (p->error_indicator) {
2247 D(p->level--);
2248 return NULL;
2249 }
2250 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "match_stmt"));
2251 stmt_ty match_stmt_var;
2252 if (
2253 (match_stmt_var = match_stmt_rule(p)) // match_stmt
2254 )
2255 {
2256 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "match_stmt"));
2257 _res = match_stmt_var;
2258 goto done;
2259 }
2260 p->mark = _mark;
2261 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2262 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "match_stmt"));
2263 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002264 _res = NULL;
2265 done:
2266 D(p->level--);
2267 return _res;
2268}
2269
2270// assignment:
2271// | NAME ':' expression ['=' annotated_rhs]
2272// | ('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]
2273// | ((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002274// | single_target augassign ~ (yield_expr | star_expressions)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002275// | invalid_assignment
2276static stmt_ty
2277assignment_rule(Parser *p)
2278{
2279 D(p->level++);
2280 if (p->error_indicator) {
2281 D(p->level--);
2282 return NULL;
2283 }
2284 stmt_ty _res = NULL;
2285 int _mark = p->mark;
2286 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2287 p->error_indicator = 1;
2288 D(p->level--);
2289 return NULL;
2290 }
2291 int _start_lineno = p->tokens[_mark]->lineno;
2292 UNUSED(_start_lineno); // Only used by EXTRA macro
2293 int _start_col_offset = p->tokens[_mark]->col_offset;
2294 UNUSED(_start_col_offset); // Only used by EXTRA macro
2295 { // NAME ':' expression ['=' annotated_rhs]
2296 if (p->error_indicator) {
2297 D(p->level--);
2298 return NULL;
2299 }
2300 D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME ':' expression ['=' annotated_rhs]"));
2301 Token * _literal;
2302 expr_ty a;
2303 expr_ty b;
2304 void *c;
2305 if (
2306 (a = _PyPegen_name_token(p)) // NAME
2307 &&
2308 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
2309 &&
2310 (b = expression_rule(p)) // expression
2311 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02002312 (c = _tmp_19_rule(p), !p->error_indicator) // ['=' annotated_rhs]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002313 )
2314 {
2315 D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME ':' expression ['=' annotated_rhs]"));
2316 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2317 if (_token == NULL) {
2318 D(p->level--);
2319 return NULL;
2320 }
2321 int _end_lineno = _token->end_lineno;
2322 UNUSED(_end_lineno); // Only used by EXTRA macro
2323 int _end_col_offset = _token->end_col_offset;
2324 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02002325 _res = CHECK_VERSION ( stmt_ty , 6 , "Variable annotation syntax is" , _PyAST_AnnAssign ( CHECK ( expr_ty , _PyPegen_set_expr_context ( p , a , Store ) ) , b , c , 1 , EXTRA ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002326 if (_res == NULL && PyErr_Occurred()) {
2327 p->error_indicator = 1;
2328 D(p->level--);
2329 return NULL;
2330 }
2331 goto done;
2332 }
2333 p->mark = _mark;
2334 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
2335 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME ':' expression ['=' annotated_rhs]"));
2336 }
2337 { // ('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]
2338 if (p->error_indicator) {
2339 D(p->level--);
2340 return NULL;
2341 }
2342 D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]"));
2343 Token * _literal;
2344 void *a;
2345 expr_ty b;
2346 void *c;
2347 if (
2348 (a = _tmp_20_rule(p)) // '(' single_target ')' | single_subscript_attribute_target
2349 &&
2350 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
2351 &&
2352 (b = expression_rule(p)) // expression
2353 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02002354 (c = _tmp_21_rule(p), !p->error_indicator) // ['=' annotated_rhs]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002355 )
2356 {
2357 D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]"));
2358 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2359 if (_token == NULL) {
2360 D(p->level--);
2361 return NULL;
2362 }
2363 int _end_lineno = _token->end_lineno;
2364 UNUSED(_end_lineno); // Only used by EXTRA macro
2365 int _end_col_offset = _token->end_col_offset;
2366 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02002367 _res = CHECK_VERSION ( stmt_ty , 6 , "Variable annotations syntax is" , _PyAST_AnnAssign ( a , b , c , 0 , EXTRA ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002368 if (_res == NULL && PyErr_Occurred()) {
2369 p->error_indicator = 1;
2370 D(p->level--);
2371 return NULL;
2372 }
2373 goto done;
2374 }
2375 p->mark = _mark;
2376 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
2377 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]"));
2378 }
2379 { // ((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?
2380 if (p->error_indicator) {
2381 D(p->level--);
2382 return NULL;
2383 }
2384 D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01002385 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002386 void *b;
2387 void *tc;
2388 if (
Pablo Galindoa5634c42020-09-16 19:42:00 +01002389 (a = (asdl_expr_seq*)_loop1_22_rule(p)) // ((star_targets '='))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002390 &&
2391 (b = _tmp_23_rule(p)) // yield_expr | star_expressions
2392 &&
2393 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 22) // token='='
2394 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02002395 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), !p->error_indicator) // TYPE_COMMENT?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002396 )
2397 {
2398 D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?"));
2399 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2400 if (_token == NULL) {
2401 D(p->level--);
2402 return NULL;
2403 }
2404 int _end_lineno = _token->end_lineno;
2405 UNUSED(_end_lineno); // Only used by EXTRA macro
2406 int _end_col_offset = _token->end_col_offset;
2407 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02002408 _res = _PyAST_Assign ( a , b , NEW_TYPE_COMMENT ( p , tc ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002409 if (_res == NULL && PyErr_Occurred()) {
2410 p->error_indicator = 1;
2411 D(p->level--);
2412 return NULL;
2413 }
2414 goto done;
2415 }
2416 p->mark = _mark;
2417 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
2418 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?"));
2419 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002420 { // single_target augassign ~ (yield_expr | star_expressions)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002421 if (p->error_indicator) {
2422 D(p->level--);
2423 return NULL;
2424 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002425 D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "single_target augassign ~ (yield_expr | star_expressions)"));
2426 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002427 expr_ty a;
2428 AugOperator* b;
2429 void *c;
2430 if (
2431 (a = single_target_rule(p)) // single_target
2432 &&
2433 (b = augassign_rule(p)) // augassign
2434 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002435 (_cut_var = 1)
2436 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002437 (c = _tmp_24_rule(p)) // yield_expr | star_expressions
2438 )
2439 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002440 D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "single_target augassign ~ (yield_expr | star_expressions)"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002441 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2442 if (_token == NULL) {
2443 D(p->level--);
2444 return NULL;
2445 }
2446 int _end_lineno = _token->end_lineno;
2447 UNUSED(_end_lineno); // Only used by EXTRA macro
2448 int _end_col_offset = _token->end_col_offset;
2449 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02002450 _res = _PyAST_AugAssign ( a , b -> kind , c , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002451 if (_res == NULL && PyErr_Occurred()) {
2452 p->error_indicator = 1;
2453 D(p->level--);
2454 return NULL;
2455 }
2456 goto done;
2457 }
2458 p->mark = _mark;
2459 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002460 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "single_target augassign ~ (yield_expr | star_expressions)"));
2461 if (_cut_var) {
2462 D(p->level--);
2463 return NULL;
2464 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002465 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02002466 if (p->call_invalid_rules) { // invalid_assignment
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002467 if (p->error_indicator) {
2468 D(p->level--);
2469 return NULL;
2470 }
2471 D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_assignment"));
2472 void *invalid_assignment_var;
2473 if (
2474 (invalid_assignment_var = invalid_assignment_rule(p)) // invalid_assignment
2475 )
2476 {
2477 D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_assignment"));
2478 _res = invalid_assignment_var;
2479 goto done;
2480 }
2481 p->mark = _mark;
2482 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
2483 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_assignment"));
2484 }
2485 _res = NULL;
2486 done:
2487 D(p->level--);
2488 return _res;
2489}
2490
2491// augassign:
2492// | '+='
2493// | '-='
2494// | '*='
2495// | '@='
2496// | '/='
2497// | '%='
2498// | '&='
2499// | '|='
2500// | '^='
2501// | '<<='
2502// | '>>='
2503// | '**='
2504// | '//='
2505static AugOperator*
2506augassign_rule(Parser *p)
2507{
2508 D(p->level++);
2509 if (p->error_indicator) {
2510 D(p->level--);
2511 return NULL;
2512 }
2513 AugOperator* _res = NULL;
2514 int _mark = p->mark;
2515 { // '+='
2516 if (p->error_indicator) {
2517 D(p->level--);
2518 return NULL;
2519 }
2520 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'+='"));
2521 Token * _literal;
2522 if (
2523 (_literal = _PyPegen_expect_token(p, 36)) // token='+='
2524 )
2525 {
2526 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'+='"));
2527 _res = _PyPegen_augoperator ( p , Add );
2528 if (_res == NULL && PyErr_Occurred()) {
2529 p->error_indicator = 1;
2530 D(p->level--);
2531 return NULL;
2532 }
2533 goto done;
2534 }
2535 p->mark = _mark;
2536 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2537 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'+='"));
2538 }
2539 { // '-='
2540 if (p->error_indicator) {
2541 D(p->level--);
2542 return NULL;
2543 }
2544 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-='"));
2545 Token * _literal;
2546 if (
2547 (_literal = _PyPegen_expect_token(p, 37)) // token='-='
2548 )
2549 {
2550 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-='"));
2551 _res = _PyPegen_augoperator ( p , Sub );
2552 if (_res == NULL && PyErr_Occurred()) {
2553 p->error_indicator = 1;
2554 D(p->level--);
2555 return NULL;
2556 }
2557 goto done;
2558 }
2559 p->mark = _mark;
2560 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2561 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-='"));
2562 }
2563 { // '*='
2564 if (p->error_indicator) {
2565 D(p->level--);
2566 return NULL;
2567 }
2568 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*='"));
2569 Token * _literal;
2570 if (
2571 (_literal = _PyPegen_expect_token(p, 38)) // token='*='
2572 )
2573 {
2574 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*='"));
2575 _res = _PyPegen_augoperator ( p , Mult );
2576 if (_res == NULL && PyErr_Occurred()) {
2577 p->error_indicator = 1;
2578 D(p->level--);
2579 return NULL;
2580 }
2581 goto done;
2582 }
2583 p->mark = _mark;
2584 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2585 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*='"));
2586 }
2587 { // '@='
2588 if (p->error_indicator) {
2589 D(p->level--);
2590 return NULL;
2591 }
2592 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@='"));
2593 Token * _literal;
2594 if (
2595 (_literal = _PyPegen_expect_token(p, 50)) // token='@='
2596 )
2597 {
2598 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@='"));
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03002599 _res = CHECK_VERSION ( AugOperator * , 5 , "The '@' operator is" , _PyPegen_augoperator ( p , MatMult ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002600 if (_res == NULL && PyErr_Occurred()) {
2601 p->error_indicator = 1;
2602 D(p->level--);
2603 return NULL;
2604 }
2605 goto done;
2606 }
2607 p->mark = _mark;
2608 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2609 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@='"));
2610 }
2611 { // '/='
2612 if (p->error_indicator) {
2613 D(p->level--);
2614 return NULL;
2615 }
2616 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'/='"));
2617 Token * _literal;
2618 if (
2619 (_literal = _PyPegen_expect_token(p, 39)) // token='/='
2620 )
2621 {
2622 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'/='"));
2623 _res = _PyPegen_augoperator ( p , Div );
2624 if (_res == NULL && PyErr_Occurred()) {
2625 p->error_indicator = 1;
2626 D(p->level--);
2627 return NULL;
2628 }
2629 goto done;
2630 }
2631 p->mark = _mark;
2632 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2633 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'/='"));
2634 }
2635 { // '%='
2636 if (p->error_indicator) {
2637 D(p->level--);
2638 return NULL;
2639 }
2640 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'%='"));
2641 Token * _literal;
2642 if (
2643 (_literal = _PyPegen_expect_token(p, 40)) // token='%='
2644 )
2645 {
2646 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'%='"));
2647 _res = _PyPegen_augoperator ( p , Mod );
2648 if (_res == NULL && PyErr_Occurred()) {
2649 p->error_indicator = 1;
2650 D(p->level--);
2651 return NULL;
2652 }
2653 goto done;
2654 }
2655 p->mark = _mark;
2656 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2657 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'%='"));
2658 }
2659 { // '&='
2660 if (p->error_indicator) {
2661 D(p->level--);
2662 return NULL;
2663 }
2664 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'&='"));
2665 Token * _literal;
2666 if (
2667 (_literal = _PyPegen_expect_token(p, 41)) // token='&='
2668 )
2669 {
2670 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'&='"));
2671 _res = _PyPegen_augoperator ( p , BitAnd );
2672 if (_res == NULL && PyErr_Occurred()) {
2673 p->error_indicator = 1;
2674 D(p->level--);
2675 return NULL;
2676 }
2677 goto done;
2678 }
2679 p->mark = _mark;
2680 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2681 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'&='"));
2682 }
2683 { // '|='
2684 if (p->error_indicator) {
2685 D(p->level--);
2686 return NULL;
2687 }
2688 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'|='"));
2689 Token * _literal;
2690 if (
2691 (_literal = _PyPegen_expect_token(p, 42)) // token='|='
2692 )
2693 {
2694 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'|='"));
2695 _res = _PyPegen_augoperator ( p , BitOr );
2696 if (_res == NULL && PyErr_Occurred()) {
2697 p->error_indicator = 1;
2698 D(p->level--);
2699 return NULL;
2700 }
2701 goto done;
2702 }
2703 p->mark = _mark;
2704 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2705 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'|='"));
2706 }
2707 { // '^='
2708 if (p->error_indicator) {
2709 D(p->level--);
2710 return NULL;
2711 }
2712 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'^='"));
2713 Token * _literal;
2714 if (
2715 (_literal = _PyPegen_expect_token(p, 43)) // token='^='
2716 )
2717 {
2718 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'^='"));
2719 _res = _PyPegen_augoperator ( p , BitXor );
2720 if (_res == NULL && PyErr_Occurred()) {
2721 p->error_indicator = 1;
2722 D(p->level--);
2723 return NULL;
2724 }
2725 goto done;
2726 }
2727 p->mark = _mark;
2728 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2729 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'^='"));
2730 }
2731 { // '<<='
2732 if (p->error_indicator) {
2733 D(p->level--);
2734 return NULL;
2735 }
2736 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'<<='"));
2737 Token * _literal;
2738 if (
2739 (_literal = _PyPegen_expect_token(p, 44)) // token='<<='
2740 )
2741 {
2742 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'<<='"));
2743 _res = _PyPegen_augoperator ( p , LShift );
2744 if (_res == NULL && PyErr_Occurred()) {
2745 p->error_indicator = 1;
2746 D(p->level--);
2747 return NULL;
2748 }
2749 goto done;
2750 }
2751 p->mark = _mark;
2752 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2753 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'<<='"));
2754 }
2755 { // '>>='
2756 if (p->error_indicator) {
2757 D(p->level--);
2758 return NULL;
2759 }
2760 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'>>='"));
2761 Token * _literal;
2762 if (
2763 (_literal = _PyPegen_expect_token(p, 45)) // token='>>='
2764 )
2765 {
2766 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'>>='"));
2767 _res = _PyPegen_augoperator ( p , RShift );
2768 if (_res == NULL && PyErr_Occurred()) {
2769 p->error_indicator = 1;
2770 D(p->level--);
2771 return NULL;
2772 }
2773 goto done;
2774 }
2775 p->mark = _mark;
2776 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2777 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'>>='"));
2778 }
2779 { // '**='
2780 if (p->error_indicator) {
2781 D(p->level--);
2782 return NULL;
2783 }
2784 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**='"));
2785 Token * _literal;
2786 if (
2787 (_literal = _PyPegen_expect_token(p, 46)) // token='**='
2788 )
2789 {
2790 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**='"));
2791 _res = _PyPegen_augoperator ( p , Pow );
2792 if (_res == NULL && PyErr_Occurred()) {
2793 p->error_indicator = 1;
2794 D(p->level--);
2795 return NULL;
2796 }
2797 goto done;
2798 }
2799 p->mark = _mark;
2800 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2801 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**='"));
2802 }
2803 { // '//='
2804 if (p->error_indicator) {
2805 D(p->level--);
2806 return NULL;
2807 }
2808 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'//='"));
2809 Token * _literal;
2810 if (
2811 (_literal = _PyPegen_expect_token(p, 48)) // token='//='
2812 )
2813 {
2814 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'//='"));
2815 _res = _PyPegen_augoperator ( p , FloorDiv );
2816 if (_res == NULL && PyErr_Occurred()) {
2817 p->error_indicator = 1;
2818 D(p->level--);
2819 return NULL;
2820 }
2821 goto done;
2822 }
2823 p->mark = _mark;
2824 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2825 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'//='"));
2826 }
2827 _res = NULL;
2828 done:
2829 D(p->level--);
2830 return _res;
2831}
2832
2833// global_stmt: 'global' ','.NAME+
2834static stmt_ty
2835global_stmt_rule(Parser *p)
2836{
2837 D(p->level++);
2838 if (p->error_indicator) {
2839 D(p->level--);
2840 return NULL;
2841 }
2842 stmt_ty _res = NULL;
2843 int _mark = p->mark;
2844 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2845 p->error_indicator = 1;
2846 D(p->level--);
2847 return NULL;
2848 }
2849 int _start_lineno = p->tokens[_mark]->lineno;
2850 UNUSED(_start_lineno); // Only used by EXTRA macro
2851 int _start_col_offset = p->tokens[_mark]->col_offset;
2852 UNUSED(_start_col_offset); // Only used by EXTRA macro
2853 { // 'global' ','.NAME+
2854 if (p->error_indicator) {
2855 D(p->level--);
2856 return NULL;
2857 }
2858 D(fprintf(stderr, "%*c> global_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'global' ','.NAME+"));
2859 Token * _keyword;
Pablo Galindoa5634c42020-09-16 19:42:00 +01002860 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002861 if (
2862 (_keyword = _PyPegen_expect_token(p, 508)) // token='global'
2863 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01002864 (a = (asdl_expr_seq*)_gather_25_rule(p)) // ','.NAME+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002865 )
2866 {
2867 D(fprintf(stderr, "%*c+ global_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'global' ','.NAME+"));
2868 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2869 if (_token == NULL) {
2870 D(p->level--);
2871 return NULL;
2872 }
2873 int _end_lineno = _token->end_lineno;
2874 UNUSED(_end_lineno); // Only used by EXTRA macro
2875 int _end_col_offset = _token->end_col_offset;
2876 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02002877 _res = _PyAST_Global ( CHECK ( asdl_identifier_seq * , _PyPegen_map_names_to_ids ( p , a ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002878 if (_res == NULL && PyErr_Occurred()) {
2879 p->error_indicator = 1;
2880 D(p->level--);
2881 return NULL;
2882 }
2883 goto done;
2884 }
2885 p->mark = _mark;
2886 D(fprintf(stderr, "%*c%s global_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2887 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'global' ','.NAME+"));
2888 }
2889 _res = NULL;
2890 done:
2891 D(p->level--);
2892 return _res;
2893}
2894
2895// nonlocal_stmt: 'nonlocal' ','.NAME+
2896static stmt_ty
2897nonlocal_stmt_rule(Parser *p)
2898{
2899 D(p->level++);
2900 if (p->error_indicator) {
2901 D(p->level--);
2902 return NULL;
2903 }
2904 stmt_ty _res = NULL;
2905 int _mark = p->mark;
2906 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2907 p->error_indicator = 1;
2908 D(p->level--);
2909 return NULL;
2910 }
2911 int _start_lineno = p->tokens[_mark]->lineno;
2912 UNUSED(_start_lineno); // Only used by EXTRA macro
2913 int _start_col_offset = p->tokens[_mark]->col_offset;
2914 UNUSED(_start_col_offset); // Only used by EXTRA macro
2915 { // 'nonlocal' ','.NAME+
2916 if (p->error_indicator) {
2917 D(p->level--);
2918 return NULL;
2919 }
2920 D(fprintf(stderr, "%*c> nonlocal_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'nonlocal' ','.NAME+"));
2921 Token * _keyword;
Pablo Galindoa5634c42020-09-16 19:42:00 +01002922 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002923 if (
2924 (_keyword = _PyPegen_expect_token(p, 509)) // token='nonlocal'
2925 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01002926 (a = (asdl_expr_seq*)_gather_27_rule(p)) // ','.NAME+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002927 )
2928 {
2929 D(fprintf(stderr, "%*c+ nonlocal_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'nonlocal' ','.NAME+"));
2930 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2931 if (_token == NULL) {
2932 D(p->level--);
2933 return NULL;
2934 }
2935 int _end_lineno = _token->end_lineno;
2936 UNUSED(_end_lineno); // Only used by EXTRA macro
2937 int _end_col_offset = _token->end_col_offset;
2938 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02002939 _res = _PyAST_Nonlocal ( CHECK ( asdl_identifier_seq * , _PyPegen_map_names_to_ids ( p , a ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002940 if (_res == NULL && PyErr_Occurred()) {
2941 p->error_indicator = 1;
2942 D(p->level--);
2943 return NULL;
2944 }
2945 goto done;
2946 }
2947 p->mark = _mark;
2948 D(fprintf(stderr, "%*c%s nonlocal_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2949 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'nonlocal' ','.NAME+"));
2950 }
2951 _res = NULL;
2952 done:
2953 D(p->level--);
2954 return _res;
2955}
2956
2957// yield_stmt: yield_expr
2958static stmt_ty
2959yield_stmt_rule(Parser *p)
2960{
2961 D(p->level++);
2962 if (p->error_indicator) {
2963 D(p->level--);
2964 return NULL;
2965 }
2966 stmt_ty _res = NULL;
2967 int _mark = p->mark;
2968 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2969 p->error_indicator = 1;
2970 D(p->level--);
2971 return NULL;
2972 }
2973 int _start_lineno = p->tokens[_mark]->lineno;
2974 UNUSED(_start_lineno); // Only used by EXTRA macro
2975 int _start_col_offset = p->tokens[_mark]->col_offset;
2976 UNUSED(_start_col_offset); // Only used by EXTRA macro
2977 { // yield_expr
2978 if (p->error_indicator) {
2979 D(p->level--);
2980 return NULL;
2981 }
2982 D(fprintf(stderr, "%*c> yield_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
2983 expr_ty y;
2984 if (
2985 (y = yield_expr_rule(p)) // yield_expr
2986 )
2987 {
2988 D(fprintf(stderr, "%*c+ yield_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
2989 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2990 if (_token == NULL) {
2991 D(p->level--);
2992 return NULL;
2993 }
2994 int _end_lineno = _token->end_lineno;
2995 UNUSED(_end_lineno); // Only used by EXTRA macro
2996 int _end_col_offset = _token->end_col_offset;
2997 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02002998 _res = _PyAST_Expr ( y , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002999 if (_res == NULL && PyErr_Occurred()) {
3000 p->error_indicator = 1;
3001 D(p->level--);
3002 return NULL;
3003 }
3004 goto done;
3005 }
3006 p->mark = _mark;
3007 D(fprintf(stderr, "%*c%s yield_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3008 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
3009 }
3010 _res = NULL;
3011 done:
3012 D(p->level--);
3013 return _res;
3014}
3015
3016// assert_stmt: 'assert' expression [',' expression]
3017static stmt_ty
3018assert_stmt_rule(Parser *p)
3019{
3020 D(p->level++);
3021 if (p->error_indicator) {
3022 D(p->level--);
3023 return NULL;
3024 }
3025 stmt_ty _res = NULL;
3026 int _mark = p->mark;
3027 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3028 p->error_indicator = 1;
3029 D(p->level--);
3030 return NULL;
3031 }
3032 int _start_lineno = p->tokens[_mark]->lineno;
3033 UNUSED(_start_lineno); // Only used by EXTRA macro
3034 int _start_col_offset = p->tokens[_mark]->col_offset;
3035 UNUSED(_start_col_offset); // Only used by EXTRA macro
3036 { // 'assert' expression [',' expression]
3037 if (p->error_indicator) {
3038 D(p->level--);
3039 return NULL;
3040 }
3041 D(fprintf(stderr, "%*c> assert_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'assert' expression [',' expression]"));
3042 Token * _keyword;
3043 expr_ty a;
3044 void *b;
3045 if (
3046 (_keyword = _PyPegen_expect_token(p, 505)) // token='assert'
3047 &&
3048 (a = expression_rule(p)) // expression
3049 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02003050 (b = _tmp_29_rule(p), !p->error_indicator) // [',' expression]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003051 )
3052 {
3053 D(fprintf(stderr, "%*c+ assert_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'assert' expression [',' expression]"));
3054 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3055 if (_token == NULL) {
3056 D(p->level--);
3057 return NULL;
3058 }
3059 int _end_lineno = _token->end_lineno;
3060 UNUSED(_end_lineno); // Only used by EXTRA macro
3061 int _end_col_offset = _token->end_col_offset;
3062 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02003063 _res = _PyAST_Assert ( a , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003064 if (_res == NULL && PyErr_Occurred()) {
3065 p->error_indicator = 1;
3066 D(p->level--);
3067 return NULL;
3068 }
3069 goto done;
3070 }
3071 p->mark = _mark;
3072 D(fprintf(stderr, "%*c%s assert_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3073 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'assert' expression [',' expression]"));
3074 }
3075 _res = NULL;
3076 done:
3077 D(p->level--);
3078 return _res;
3079}
3080
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003081// del_stmt: 'del' del_targets &(';' | NEWLINE) | invalid_del_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003082static stmt_ty
3083del_stmt_rule(Parser *p)
3084{
3085 D(p->level++);
3086 if (p->error_indicator) {
3087 D(p->level--);
3088 return NULL;
3089 }
3090 stmt_ty _res = NULL;
3091 int _mark = p->mark;
3092 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3093 p->error_indicator = 1;
3094 D(p->level--);
3095 return NULL;
3096 }
3097 int _start_lineno = p->tokens[_mark]->lineno;
3098 UNUSED(_start_lineno); // Only used by EXTRA macro
3099 int _start_col_offset = p->tokens[_mark]->col_offset;
3100 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003101 { // 'del' del_targets &(';' | NEWLINE)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003102 if (p->error_indicator) {
3103 D(p->level--);
3104 return NULL;
3105 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003106 D(fprintf(stderr, "%*c> del_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'del' del_targets &(';' | NEWLINE)"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003107 Token * _keyword;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003108 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003109 if (
3110 (_keyword = _PyPegen_expect_token(p, 503)) // token='del'
3111 &&
3112 (a = del_targets_rule(p)) // del_targets
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003113 &&
3114 _PyPegen_lookahead(1, _tmp_30_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003115 )
3116 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003117 D(fprintf(stderr, "%*c+ del_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'del' del_targets &(';' | NEWLINE)"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003118 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3119 if (_token == NULL) {
3120 D(p->level--);
3121 return NULL;
3122 }
3123 int _end_lineno = _token->end_lineno;
3124 UNUSED(_end_lineno); // Only used by EXTRA macro
3125 int _end_col_offset = _token->end_col_offset;
3126 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02003127 _res = _PyAST_Delete ( a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003128 if (_res == NULL && PyErr_Occurred()) {
3129 p->error_indicator = 1;
3130 D(p->level--);
3131 return NULL;
3132 }
3133 goto done;
3134 }
3135 p->mark = _mark;
3136 D(fprintf(stderr, "%*c%s del_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003137 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'del' del_targets &(';' | NEWLINE)"));
3138 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02003139 if (p->call_invalid_rules) { // invalid_del_stmt
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003140 if (p->error_indicator) {
3141 D(p->level--);
3142 return NULL;
3143 }
3144 D(fprintf(stderr, "%*c> del_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_del_stmt"));
3145 void *invalid_del_stmt_var;
3146 if (
3147 (invalid_del_stmt_var = invalid_del_stmt_rule(p)) // invalid_del_stmt
3148 )
3149 {
3150 D(fprintf(stderr, "%*c+ del_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_del_stmt"));
3151 _res = invalid_del_stmt_var;
3152 goto done;
3153 }
3154 p->mark = _mark;
3155 D(fprintf(stderr, "%*c%s del_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3156 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_del_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003157 }
3158 _res = NULL;
3159 done:
3160 D(p->level--);
3161 return _res;
3162}
3163
3164// import_stmt: import_name | import_from
3165static stmt_ty
3166import_stmt_rule(Parser *p)
3167{
3168 D(p->level++);
3169 if (p->error_indicator) {
3170 D(p->level--);
3171 return NULL;
3172 }
3173 stmt_ty _res = NULL;
3174 int _mark = p->mark;
3175 { // import_name
3176 if (p->error_indicator) {
3177 D(p->level--);
3178 return NULL;
3179 }
3180 D(fprintf(stderr, "%*c> import_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "import_name"));
3181 stmt_ty import_name_var;
3182 if (
3183 (import_name_var = import_name_rule(p)) // import_name
3184 )
3185 {
3186 D(fprintf(stderr, "%*c+ import_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "import_name"));
3187 _res = import_name_var;
3188 goto done;
3189 }
3190 p->mark = _mark;
3191 D(fprintf(stderr, "%*c%s import_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3192 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_name"));
3193 }
3194 { // import_from
3195 if (p->error_indicator) {
3196 D(p->level--);
3197 return NULL;
3198 }
3199 D(fprintf(stderr, "%*c> import_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "import_from"));
3200 stmt_ty import_from_var;
3201 if (
3202 (import_from_var = import_from_rule(p)) // import_from
3203 )
3204 {
3205 D(fprintf(stderr, "%*c+ import_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "import_from"));
3206 _res = import_from_var;
3207 goto done;
3208 }
3209 p->mark = _mark;
3210 D(fprintf(stderr, "%*c%s import_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3211 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from"));
3212 }
3213 _res = NULL;
3214 done:
3215 D(p->level--);
3216 return _res;
3217}
3218
3219// import_name: 'import' dotted_as_names
3220static stmt_ty
3221import_name_rule(Parser *p)
3222{
3223 D(p->level++);
3224 if (p->error_indicator) {
3225 D(p->level--);
3226 return NULL;
3227 }
3228 stmt_ty _res = NULL;
3229 int _mark = p->mark;
3230 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3231 p->error_indicator = 1;
3232 D(p->level--);
3233 return NULL;
3234 }
3235 int _start_lineno = p->tokens[_mark]->lineno;
3236 UNUSED(_start_lineno); // Only used by EXTRA macro
3237 int _start_col_offset = p->tokens[_mark]->col_offset;
3238 UNUSED(_start_col_offset); // Only used by EXTRA macro
3239 { // 'import' dotted_as_names
3240 if (p->error_indicator) {
3241 D(p->level--);
3242 return NULL;
3243 }
3244 D(fprintf(stderr, "%*c> import_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'import' dotted_as_names"));
3245 Token * _keyword;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003246 asdl_alias_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003247 if (
3248 (_keyword = _PyPegen_expect_token(p, 513)) // token='import'
3249 &&
3250 (a = dotted_as_names_rule(p)) // dotted_as_names
3251 )
3252 {
3253 D(fprintf(stderr, "%*c+ import_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'import' dotted_as_names"));
3254 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3255 if (_token == NULL) {
3256 D(p->level--);
3257 return NULL;
3258 }
3259 int _end_lineno = _token->end_lineno;
3260 UNUSED(_end_lineno); // Only used by EXTRA macro
3261 int _end_col_offset = _token->end_col_offset;
3262 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02003263 _res = _PyAST_Import ( a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003264 if (_res == NULL && PyErr_Occurred()) {
3265 p->error_indicator = 1;
3266 D(p->level--);
3267 return NULL;
3268 }
3269 goto done;
3270 }
3271 p->mark = _mark;
3272 D(fprintf(stderr, "%*c%s import_name[%d-%d]: %s failed!\n", p->level, ' ',
3273 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'import' dotted_as_names"));
3274 }
3275 _res = NULL;
3276 done:
3277 D(p->level--);
3278 return _res;
3279}
3280
3281// import_from:
3282// | 'from' (('.' | '...'))* dotted_name 'import' import_from_targets
3283// | 'from' (('.' | '...'))+ 'import' import_from_targets
3284static stmt_ty
3285import_from_rule(Parser *p)
3286{
3287 D(p->level++);
3288 if (p->error_indicator) {
3289 D(p->level--);
3290 return NULL;
3291 }
3292 stmt_ty _res = NULL;
3293 int _mark = p->mark;
3294 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3295 p->error_indicator = 1;
3296 D(p->level--);
3297 return NULL;
3298 }
3299 int _start_lineno = p->tokens[_mark]->lineno;
3300 UNUSED(_start_lineno); // Only used by EXTRA macro
3301 int _start_col_offset = p->tokens[_mark]->col_offset;
3302 UNUSED(_start_col_offset); // Only used by EXTRA macro
3303 { // 'from' (('.' | '...'))* dotted_name 'import' import_from_targets
3304 if (p->error_indicator) {
3305 D(p->level--);
3306 return NULL;
3307 }
3308 D(fprintf(stderr, "%*c> import_from[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from' (('.' | '...'))* dotted_name 'import' import_from_targets"));
3309 Token * _keyword;
3310 Token * _keyword_1;
3311 asdl_seq * a;
3312 expr_ty b;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003313 asdl_alias_seq* c;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003314 if (
3315 (_keyword = _PyPegen_expect_token(p, 514)) // token='from'
3316 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003317 (a = _loop0_31_rule(p)) // (('.' | '...'))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003318 &&
3319 (b = dotted_name_rule(p)) // dotted_name
3320 &&
3321 (_keyword_1 = _PyPegen_expect_token(p, 513)) // token='import'
3322 &&
3323 (c = import_from_targets_rule(p)) // import_from_targets
3324 )
3325 {
3326 D(fprintf(stderr, "%*c+ import_from[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'from' (('.' | '...'))* dotted_name 'import' import_from_targets"));
3327 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3328 if (_token == NULL) {
3329 D(p->level--);
3330 return NULL;
3331 }
3332 int _end_lineno = _token->end_lineno;
3333 UNUSED(_end_lineno); // Only used by EXTRA macro
3334 int _end_col_offset = _token->end_col_offset;
3335 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02003336 _res = _PyAST_ImportFrom ( b -> v . Name . id , c , _PyPegen_seq_count_dots ( a ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003337 if (_res == NULL && PyErr_Occurred()) {
3338 p->error_indicator = 1;
3339 D(p->level--);
3340 return NULL;
3341 }
3342 goto done;
3343 }
3344 p->mark = _mark;
3345 D(fprintf(stderr, "%*c%s import_from[%d-%d]: %s failed!\n", p->level, ' ',
3346 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from' (('.' | '...'))* dotted_name 'import' import_from_targets"));
3347 }
3348 { // 'from' (('.' | '...'))+ 'import' import_from_targets
3349 if (p->error_indicator) {
3350 D(p->level--);
3351 return NULL;
3352 }
3353 D(fprintf(stderr, "%*c> import_from[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from' (('.' | '...'))+ 'import' import_from_targets"));
3354 Token * _keyword;
3355 Token * _keyword_1;
3356 asdl_seq * a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003357 asdl_alias_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003358 if (
3359 (_keyword = _PyPegen_expect_token(p, 514)) // token='from'
3360 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003361 (a = _loop1_32_rule(p)) // (('.' | '...'))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003362 &&
3363 (_keyword_1 = _PyPegen_expect_token(p, 513)) // token='import'
3364 &&
3365 (b = import_from_targets_rule(p)) // import_from_targets
3366 )
3367 {
3368 D(fprintf(stderr, "%*c+ import_from[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'from' (('.' | '...'))+ 'import' import_from_targets"));
3369 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3370 if (_token == NULL) {
3371 D(p->level--);
3372 return NULL;
3373 }
3374 int _end_lineno = _token->end_lineno;
3375 UNUSED(_end_lineno); // Only used by EXTRA macro
3376 int _end_col_offset = _token->end_col_offset;
3377 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02003378 _res = _PyAST_ImportFrom ( NULL , b , _PyPegen_seq_count_dots ( a ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003379 if (_res == NULL && PyErr_Occurred()) {
3380 p->error_indicator = 1;
3381 D(p->level--);
3382 return NULL;
3383 }
3384 goto done;
3385 }
3386 p->mark = _mark;
3387 D(fprintf(stderr, "%*c%s import_from[%d-%d]: %s failed!\n", p->level, ' ',
3388 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from' (('.' | '...'))+ 'import' import_from_targets"));
3389 }
3390 _res = NULL;
3391 done:
3392 D(p->level--);
3393 return _res;
3394}
3395
3396// import_from_targets:
3397// | '(' import_from_as_names ','? ')'
3398// | import_from_as_names !','
3399// | '*'
3400// | invalid_import_from_targets
Pablo Galindoa5634c42020-09-16 19:42:00 +01003401static asdl_alias_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003402import_from_targets_rule(Parser *p)
3403{
3404 D(p->level++);
3405 if (p->error_indicator) {
3406 D(p->level--);
3407 return NULL;
3408 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01003409 asdl_alias_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003410 int _mark = p->mark;
Matthew Suozzo75a06f02021-04-10 16:56:28 -04003411 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3412 p->error_indicator = 1;
3413 D(p->level--);
3414 return NULL;
3415 }
3416 int _start_lineno = p->tokens[_mark]->lineno;
3417 UNUSED(_start_lineno); // Only used by EXTRA macro
3418 int _start_col_offset = p->tokens[_mark]->col_offset;
3419 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003420 { // '(' import_from_as_names ','? ')'
3421 if (p->error_indicator) {
3422 D(p->level--);
3423 return NULL;
3424 }
3425 D(fprintf(stderr, "%*c> import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' import_from_as_names ','? ')'"));
3426 Token * _literal;
3427 Token * _literal_1;
3428 void *_opt_var;
3429 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +01003430 asdl_alias_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003431 if (
3432 (_literal = _PyPegen_expect_token(p, 7)) // token='('
3433 &&
3434 (a = import_from_as_names_rule(p)) // import_from_as_names
3435 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02003436 (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003437 &&
3438 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
3439 )
3440 {
3441 D(fprintf(stderr, "%*c+ import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' import_from_as_names ','? ')'"));
3442 _res = a;
3443 if (_res == NULL && PyErr_Occurred()) {
3444 p->error_indicator = 1;
3445 D(p->level--);
3446 return NULL;
3447 }
3448 goto done;
3449 }
3450 p->mark = _mark;
3451 D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
3452 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' import_from_as_names ','? ')'"));
3453 }
3454 { // import_from_as_names !','
3455 if (p->error_indicator) {
3456 D(p->level--);
3457 return NULL;
3458 }
3459 D(fprintf(stderr, "%*c> import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "import_from_as_names !','"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01003460 asdl_alias_seq* import_from_as_names_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003461 if (
3462 (import_from_as_names_var = import_from_as_names_rule(p)) // import_from_as_names
3463 &&
3464 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 12) // token=','
3465 )
3466 {
3467 D(fprintf(stderr, "%*c+ import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "import_from_as_names !','"));
3468 _res = import_from_as_names_var;
3469 goto done;
3470 }
3471 p->mark = _mark;
3472 D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
3473 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from_as_names !','"));
3474 }
3475 { // '*'
3476 if (p->error_indicator) {
3477 D(p->level--);
3478 return NULL;
3479 }
3480 D(fprintf(stderr, "%*c> import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*'"));
3481 Token * _literal;
3482 if (
3483 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
3484 )
3485 {
3486 D(fprintf(stderr, "%*c+ import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*'"));
Matthew Suozzo75a06f02021-04-10 16:56:28 -04003487 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3488 if (_token == NULL) {
3489 D(p->level--);
3490 return NULL;
3491 }
3492 int _end_lineno = _token->end_lineno;
3493 UNUSED(_end_lineno); // Only used by EXTRA macro
3494 int _end_col_offset = _token->end_col_offset;
3495 UNUSED(_end_col_offset); // Only used by EXTRA macro
3496 _res = ( asdl_alias_seq * ) _PyPegen_singleton_seq ( p , CHECK ( alias_ty , _PyPegen_alias_for_star ( p , EXTRA ) ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003497 if (_res == NULL && PyErr_Occurred()) {
3498 p->error_indicator = 1;
3499 D(p->level--);
3500 return NULL;
3501 }
3502 goto done;
3503 }
3504 p->mark = _mark;
3505 D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
3506 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*'"));
3507 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02003508 if (p->call_invalid_rules) { // invalid_import_from_targets
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003509 if (p->error_indicator) {
3510 D(p->level--);
3511 return NULL;
3512 }
3513 D(fprintf(stderr, "%*c> import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_import_from_targets"));
3514 void *invalid_import_from_targets_var;
3515 if (
3516 (invalid_import_from_targets_var = invalid_import_from_targets_rule(p)) // invalid_import_from_targets
3517 )
3518 {
3519 D(fprintf(stderr, "%*c+ import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_import_from_targets"));
3520 _res = invalid_import_from_targets_var;
3521 goto done;
3522 }
3523 p->mark = _mark;
3524 D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
3525 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_import_from_targets"));
3526 }
3527 _res = NULL;
3528 done:
3529 D(p->level--);
3530 return _res;
3531}
3532
3533// import_from_as_names: ','.import_from_as_name+
Pablo Galindoa5634c42020-09-16 19:42:00 +01003534static asdl_alias_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003535import_from_as_names_rule(Parser *p)
3536{
3537 D(p->level++);
3538 if (p->error_indicator) {
3539 D(p->level--);
3540 return NULL;
3541 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01003542 asdl_alias_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003543 int _mark = p->mark;
3544 { // ','.import_from_as_name+
3545 if (p->error_indicator) {
3546 D(p->level--);
3547 return NULL;
3548 }
3549 D(fprintf(stderr, "%*c> import_from_as_names[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.import_from_as_name+"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01003550 asdl_alias_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003551 if (
Pablo Galindoa5634c42020-09-16 19:42:00 +01003552 (a = (asdl_alias_seq*)_gather_33_rule(p)) // ','.import_from_as_name+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003553 )
3554 {
3555 D(fprintf(stderr, "%*c+ import_from_as_names[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.import_from_as_name+"));
3556 _res = a;
3557 if (_res == NULL && PyErr_Occurred()) {
3558 p->error_indicator = 1;
3559 D(p->level--);
3560 return NULL;
3561 }
3562 goto done;
3563 }
3564 p->mark = _mark;
3565 D(fprintf(stderr, "%*c%s import_from_as_names[%d-%d]: %s failed!\n", p->level, ' ',
3566 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.import_from_as_name+"));
3567 }
3568 _res = NULL;
3569 done:
3570 D(p->level--);
3571 return _res;
3572}
3573
3574// import_from_as_name: NAME ['as' NAME]
3575static alias_ty
3576import_from_as_name_rule(Parser *p)
3577{
3578 D(p->level++);
3579 if (p->error_indicator) {
3580 D(p->level--);
3581 return NULL;
3582 }
3583 alias_ty _res = NULL;
3584 int _mark = p->mark;
Matthew Suozzo75a06f02021-04-10 16:56:28 -04003585 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3586 p->error_indicator = 1;
3587 D(p->level--);
3588 return NULL;
3589 }
3590 int _start_lineno = p->tokens[_mark]->lineno;
3591 UNUSED(_start_lineno); // Only used by EXTRA macro
3592 int _start_col_offset = p->tokens[_mark]->col_offset;
3593 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003594 { // NAME ['as' NAME]
3595 if (p->error_indicator) {
3596 D(p->level--);
3597 return NULL;
3598 }
3599 D(fprintf(stderr, "%*c> import_from_as_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME ['as' NAME]"));
3600 expr_ty a;
3601 void *b;
3602 if (
3603 (a = _PyPegen_name_token(p)) // NAME
3604 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02003605 (b = _tmp_35_rule(p), !p->error_indicator) // ['as' NAME]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003606 )
3607 {
3608 D(fprintf(stderr, "%*c+ import_from_as_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME ['as' NAME]"));
Matthew Suozzo75a06f02021-04-10 16:56:28 -04003609 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3610 if (_token == NULL) {
3611 D(p->level--);
3612 return NULL;
3613 }
3614 int _end_lineno = _token->end_lineno;
3615 UNUSED(_end_lineno); // Only used by EXTRA macro
3616 int _end_col_offset = _token->end_col_offset;
3617 UNUSED(_end_col_offset); // Only used by EXTRA macro
3618 _res = _PyAST_alias ( a -> v . Name . id , ( b ) ? ( ( expr_ty ) b ) -> v . Name . id : NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003619 if (_res == NULL && PyErr_Occurred()) {
3620 p->error_indicator = 1;
3621 D(p->level--);
3622 return NULL;
3623 }
3624 goto done;
3625 }
3626 p->mark = _mark;
3627 D(fprintf(stderr, "%*c%s import_from_as_name[%d-%d]: %s failed!\n", p->level, ' ',
3628 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME ['as' NAME]"));
3629 }
3630 _res = NULL;
3631 done:
3632 D(p->level--);
3633 return _res;
3634}
3635
3636// dotted_as_names: ','.dotted_as_name+
Pablo Galindoa5634c42020-09-16 19:42:00 +01003637static asdl_alias_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003638dotted_as_names_rule(Parser *p)
3639{
3640 D(p->level++);
3641 if (p->error_indicator) {
3642 D(p->level--);
3643 return NULL;
3644 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01003645 asdl_alias_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003646 int _mark = p->mark;
3647 { // ','.dotted_as_name+
3648 if (p->error_indicator) {
3649 D(p->level--);
3650 return NULL;
3651 }
3652 D(fprintf(stderr, "%*c> dotted_as_names[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.dotted_as_name+"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01003653 asdl_alias_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003654 if (
Pablo Galindoa5634c42020-09-16 19:42:00 +01003655 (a = (asdl_alias_seq*)_gather_36_rule(p)) // ','.dotted_as_name+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003656 )
3657 {
3658 D(fprintf(stderr, "%*c+ dotted_as_names[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.dotted_as_name+"));
3659 _res = a;
3660 if (_res == NULL && PyErr_Occurred()) {
3661 p->error_indicator = 1;
3662 D(p->level--);
3663 return NULL;
3664 }
3665 goto done;
3666 }
3667 p->mark = _mark;
3668 D(fprintf(stderr, "%*c%s dotted_as_names[%d-%d]: %s failed!\n", p->level, ' ',
3669 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.dotted_as_name+"));
3670 }
3671 _res = NULL;
3672 done:
3673 D(p->level--);
3674 return _res;
3675}
3676
3677// dotted_as_name: dotted_name ['as' NAME]
3678static alias_ty
3679dotted_as_name_rule(Parser *p)
3680{
3681 D(p->level++);
3682 if (p->error_indicator) {
3683 D(p->level--);
3684 return NULL;
3685 }
3686 alias_ty _res = NULL;
3687 int _mark = p->mark;
Matthew Suozzo75a06f02021-04-10 16:56:28 -04003688 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3689 p->error_indicator = 1;
3690 D(p->level--);
3691 return NULL;
3692 }
3693 int _start_lineno = p->tokens[_mark]->lineno;
3694 UNUSED(_start_lineno); // Only used by EXTRA macro
3695 int _start_col_offset = p->tokens[_mark]->col_offset;
3696 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003697 { // dotted_name ['as' NAME]
3698 if (p->error_indicator) {
3699 D(p->level--);
3700 return NULL;
3701 }
3702 D(fprintf(stderr, "%*c> dotted_as_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dotted_name ['as' NAME]"));
3703 expr_ty a;
3704 void *b;
3705 if (
3706 (a = dotted_name_rule(p)) // dotted_name
3707 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02003708 (b = _tmp_38_rule(p), !p->error_indicator) // ['as' NAME]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003709 )
3710 {
3711 D(fprintf(stderr, "%*c+ dotted_as_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dotted_name ['as' NAME]"));
Matthew Suozzo75a06f02021-04-10 16:56:28 -04003712 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3713 if (_token == NULL) {
3714 D(p->level--);
3715 return NULL;
3716 }
3717 int _end_lineno = _token->end_lineno;
3718 UNUSED(_end_lineno); // Only used by EXTRA macro
3719 int _end_col_offset = _token->end_col_offset;
3720 UNUSED(_end_col_offset); // Only used by EXTRA macro
3721 _res = _PyAST_alias ( a -> v . Name . id , ( b ) ? ( ( expr_ty ) b ) -> v . Name . id : NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003722 if (_res == NULL && PyErr_Occurred()) {
3723 p->error_indicator = 1;
3724 D(p->level--);
3725 return NULL;
3726 }
3727 goto done;
3728 }
3729 p->mark = _mark;
3730 D(fprintf(stderr, "%*c%s dotted_as_name[%d-%d]: %s failed!\n", p->level, ' ',
3731 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dotted_name ['as' NAME]"));
3732 }
3733 _res = NULL;
3734 done:
3735 D(p->level--);
3736 return _res;
3737}
3738
3739// Left-recursive
3740// dotted_name: dotted_name '.' NAME | NAME
3741static expr_ty dotted_name_raw(Parser *);
3742static expr_ty
3743dotted_name_rule(Parser *p)
3744{
3745 D(p->level++);
3746 expr_ty _res = NULL;
3747 if (_PyPegen_is_memoized(p, dotted_name_type, &_res)) {
3748 D(p->level--);
3749 return _res;
3750 }
3751 int _mark = p->mark;
3752 int _resmark = p->mark;
3753 while (1) {
3754 int tmpvar_0 = _PyPegen_update_memo(p, _mark, dotted_name_type, _res);
3755 if (tmpvar_0) {
3756 D(p->level--);
3757 return _res;
3758 }
3759 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -07003760 p->in_raw_rule++;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003761 void *_raw = dotted_name_raw(p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -07003762 p->in_raw_rule--;
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +02003763 if (p->error_indicator)
3764 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003765 if (_raw == NULL || p->mark <= _resmark)
3766 break;
3767 _resmark = p->mark;
3768 _res = _raw;
3769 }
3770 p->mark = _resmark;
3771 D(p->level--);
3772 return _res;
3773}
3774static expr_ty
3775dotted_name_raw(Parser *p)
3776{
3777 D(p->level++);
3778 if (p->error_indicator) {
3779 D(p->level--);
3780 return NULL;
3781 }
3782 expr_ty _res = NULL;
3783 int _mark = p->mark;
3784 { // dotted_name '.' NAME
3785 if (p->error_indicator) {
3786 D(p->level--);
3787 return NULL;
3788 }
3789 D(fprintf(stderr, "%*c> dotted_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dotted_name '.' NAME"));
3790 Token * _literal;
3791 expr_ty a;
3792 expr_ty b;
3793 if (
3794 (a = dotted_name_rule(p)) // dotted_name
3795 &&
3796 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
3797 &&
3798 (b = _PyPegen_name_token(p)) // NAME
3799 )
3800 {
3801 D(fprintf(stderr, "%*c+ dotted_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dotted_name '.' NAME"));
3802 _res = _PyPegen_join_names_with_dot ( p , a , b );
3803 if (_res == NULL && PyErr_Occurred()) {
3804 p->error_indicator = 1;
3805 D(p->level--);
3806 return NULL;
3807 }
3808 goto done;
3809 }
3810 p->mark = _mark;
3811 D(fprintf(stderr, "%*c%s dotted_name[%d-%d]: %s failed!\n", p->level, ' ',
3812 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dotted_name '.' NAME"));
3813 }
3814 { // NAME
3815 if (p->error_indicator) {
3816 D(p->level--);
3817 return NULL;
3818 }
3819 D(fprintf(stderr, "%*c> dotted_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
3820 expr_ty name_var;
3821 if (
3822 (name_var = _PyPegen_name_token(p)) // NAME
3823 )
3824 {
3825 D(fprintf(stderr, "%*c+ dotted_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
3826 _res = name_var;
3827 goto done;
3828 }
3829 p->mark = _mark;
3830 D(fprintf(stderr, "%*c%s dotted_name[%d-%d]: %s failed!\n", p->level, ' ',
3831 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
3832 }
3833 _res = NULL;
3834 done:
3835 D(p->level--);
3836 return _res;
3837}
3838
3839// if_stmt:
Pablo Galindo56c95df2021-04-21 15:28:21 +01003840// | invalid_if_stmt
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003841// | 'if' named_expression ':' block elif_stmt
3842// | 'if' named_expression ':' block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003843static stmt_ty
3844if_stmt_rule(Parser *p)
3845{
3846 D(p->level++);
3847 if (p->error_indicator) {
3848 D(p->level--);
3849 return NULL;
3850 }
3851 stmt_ty _res = NULL;
3852 int _mark = p->mark;
3853 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3854 p->error_indicator = 1;
3855 D(p->level--);
3856 return NULL;
3857 }
3858 int _start_lineno = p->tokens[_mark]->lineno;
3859 UNUSED(_start_lineno); // Only used by EXTRA macro
3860 int _start_col_offset = p->tokens[_mark]->col_offset;
3861 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo56c95df2021-04-21 15:28:21 +01003862 if (p->call_invalid_rules) { // invalid_if_stmt
3863 if (p->error_indicator) {
3864 D(p->level--);
3865 return NULL;
3866 }
3867 D(fprintf(stderr, "%*c> if_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_if_stmt"));
3868 void *invalid_if_stmt_var;
3869 if (
3870 (invalid_if_stmt_var = invalid_if_stmt_rule(p)) // invalid_if_stmt
3871 )
3872 {
3873 D(fprintf(stderr, "%*c+ if_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_if_stmt"));
3874 _res = invalid_if_stmt_var;
3875 goto done;
3876 }
3877 p->mark = _mark;
3878 D(fprintf(stderr, "%*c%s if_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3879 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_if_stmt"));
3880 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003881 { // 'if' named_expression ':' block elif_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003882 if (p->error_indicator) {
3883 D(p->level--);
3884 return NULL;
3885 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003886 D(fprintf(stderr, "%*c> if_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' named_expression ':' block elif_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003887 Token * _keyword;
3888 Token * _literal;
3889 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003890 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003891 stmt_ty c;
3892 if (
3893 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
3894 &&
3895 (a = named_expression_rule(p)) // named_expression
3896 &&
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003897 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003898 &&
3899 (b = block_rule(p)) // block
3900 &&
3901 (c = elif_stmt_rule(p)) // elif_stmt
3902 )
3903 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003904 D(fprintf(stderr, "%*c+ if_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' named_expression ':' block elif_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003905 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3906 if (_token == NULL) {
3907 D(p->level--);
3908 return NULL;
3909 }
3910 int _end_lineno = _token->end_lineno;
3911 UNUSED(_end_lineno); // Only used by EXTRA macro
3912 int _end_col_offset = _token->end_col_offset;
3913 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02003914 _res = _PyAST_If ( a , b , CHECK ( asdl_stmt_seq * , _PyPegen_singleton_seq ( p , c ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003915 if (_res == NULL && PyErr_Occurred()) {
3916 p->error_indicator = 1;
3917 D(p->level--);
3918 return NULL;
3919 }
3920 goto done;
3921 }
3922 p->mark = _mark;
3923 D(fprintf(stderr, "%*c%s if_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003924 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' named_expression ':' block elif_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003925 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003926 { // 'if' named_expression ':' block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003927 if (p->error_indicator) {
3928 D(p->level--);
3929 return NULL;
3930 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003931 D(fprintf(stderr, "%*c> if_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' named_expression ':' block else_block?"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003932 Token * _keyword;
3933 Token * _literal;
3934 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003935 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003936 void *c;
3937 if (
3938 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
3939 &&
3940 (a = named_expression_rule(p)) // named_expression
3941 &&
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003942 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003943 &&
3944 (b = block_rule(p)) // block
3945 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02003946 (c = else_block_rule(p), !p->error_indicator) // else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003947 )
3948 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003949 D(fprintf(stderr, "%*c+ if_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' named_expression ':' block else_block?"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003950 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3951 if (_token == NULL) {
3952 D(p->level--);
3953 return NULL;
3954 }
3955 int _end_lineno = _token->end_lineno;
3956 UNUSED(_end_lineno); // Only used by EXTRA macro
3957 int _end_col_offset = _token->end_col_offset;
3958 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02003959 _res = _PyAST_If ( a , b , c , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003960 if (_res == NULL && PyErr_Occurred()) {
3961 p->error_indicator = 1;
3962 D(p->level--);
3963 return NULL;
3964 }
3965 goto done;
3966 }
3967 p->mark = _mark;
3968 D(fprintf(stderr, "%*c%s if_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003969 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' named_expression ':' block else_block?"));
3970 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003971 _res = NULL;
3972 done:
3973 D(p->level--);
3974 return _res;
3975}
3976
3977// elif_stmt:
Pablo Galindo56c95df2021-04-21 15:28:21 +01003978// | invalid_elif_stmt
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003979// | 'elif' named_expression ':' block elif_stmt
3980// | 'elif' named_expression ':' block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003981static stmt_ty
3982elif_stmt_rule(Parser *p)
3983{
3984 D(p->level++);
3985 if (p->error_indicator) {
3986 D(p->level--);
3987 return NULL;
3988 }
3989 stmt_ty _res = NULL;
3990 int _mark = p->mark;
3991 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3992 p->error_indicator = 1;
3993 D(p->level--);
3994 return NULL;
3995 }
3996 int _start_lineno = p->tokens[_mark]->lineno;
3997 UNUSED(_start_lineno); // Only used by EXTRA macro
3998 int _start_col_offset = p->tokens[_mark]->col_offset;
3999 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo56c95df2021-04-21 15:28:21 +01004000 if (p->call_invalid_rules) { // invalid_elif_stmt
4001 if (p->error_indicator) {
4002 D(p->level--);
4003 return NULL;
4004 }
4005 D(fprintf(stderr, "%*c> elif_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_elif_stmt"));
4006 void *invalid_elif_stmt_var;
4007 if (
4008 (invalid_elif_stmt_var = invalid_elif_stmt_rule(p)) // invalid_elif_stmt
4009 )
4010 {
4011 D(fprintf(stderr, "%*c+ elif_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_elif_stmt"));
4012 _res = invalid_elif_stmt_var;
4013 goto done;
4014 }
4015 p->mark = _mark;
4016 D(fprintf(stderr, "%*c%s elif_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4017 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_elif_stmt"));
4018 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004019 { // 'elif' named_expression ':' block elif_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004020 if (p->error_indicator) {
4021 D(p->level--);
4022 return NULL;
4023 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004024 D(fprintf(stderr, "%*c> elif_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'elif' named_expression ':' block elif_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004025 Token * _keyword;
4026 Token * _literal;
4027 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004028 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004029 stmt_ty c;
4030 if (
4031 (_keyword = _PyPegen_expect_token(p, 515)) // token='elif'
4032 &&
4033 (a = named_expression_rule(p)) // named_expression
4034 &&
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004035 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004036 &&
4037 (b = block_rule(p)) // block
4038 &&
4039 (c = elif_stmt_rule(p)) // elif_stmt
4040 )
4041 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004042 D(fprintf(stderr, "%*c+ elif_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'elif' named_expression ':' block elif_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004043 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4044 if (_token == NULL) {
4045 D(p->level--);
4046 return NULL;
4047 }
4048 int _end_lineno = _token->end_lineno;
4049 UNUSED(_end_lineno); // Only used by EXTRA macro
4050 int _end_col_offset = _token->end_col_offset;
4051 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004052 _res = _PyAST_If ( a , b , CHECK ( asdl_stmt_seq * , _PyPegen_singleton_seq ( p , c ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004053 if (_res == NULL && PyErr_Occurred()) {
4054 p->error_indicator = 1;
4055 D(p->level--);
4056 return NULL;
4057 }
4058 goto done;
4059 }
4060 p->mark = _mark;
4061 D(fprintf(stderr, "%*c%s elif_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004062 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'elif' named_expression ':' block elif_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004063 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004064 { // 'elif' named_expression ':' block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004065 if (p->error_indicator) {
4066 D(p->level--);
4067 return NULL;
4068 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004069 D(fprintf(stderr, "%*c> elif_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'elif' named_expression ':' block else_block?"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004070 Token * _keyword;
4071 Token * _literal;
4072 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004073 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004074 void *c;
4075 if (
4076 (_keyword = _PyPegen_expect_token(p, 515)) // token='elif'
4077 &&
4078 (a = named_expression_rule(p)) // named_expression
4079 &&
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004080 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004081 &&
4082 (b = block_rule(p)) // block
4083 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02004084 (c = else_block_rule(p), !p->error_indicator) // else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004085 )
4086 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004087 D(fprintf(stderr, "%*c+ elif_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'elif' named_expression ':' block else_block?"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004088 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4089 if (_token == NULL) {
4090 D(p->level--);
4091 return NULL;
4092 }
4093 int _end_lineno = _token->end_lineno;
4094 UNUSED(_end_lineno); // Only used by EXTRA macro
4095 int _end_col_offset = _token->end_col_offset;
4096 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004097 _res = _PyAST_If ( a , b , c , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004098 if (_res == NULL && PyErr_Occurred()) {
4099 p->error_indicator = 1;
4100 D(p->level--);
4101 return NULL;
4102 }
4103 goto done;
4104 }
4105 p->mark = _mark;
4106 D(fprintf(stderr, "%*c%s elif_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004107 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'elif' named_expression ':' block else_block?"));
4108 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004109 _res = NULL;
4110 done:
4111 D(p->level--);
4112 return _res;
4113}
4114
Pablo Galindo56c95df2021-04-21 15:28:21 +01004115// else_block: invalid_else_stmt | 'else' &&':' block
Pablo Galindoa5634c42020-09-16 19:42:00 +01004116static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004117else_block_rule(Parser *p)
4118{
4119 D(p->level++);
4120 if (p->error_indicator) {
4121 D(p->level--);
4122 return NULL;
4123 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01004124 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004125 int _mark = p->mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +01004126 if (p->call_invalid_rules) { // invalid_else_stmt
4127 if (p->error_indicator) {
4128 D(p->level--);
4129 return NULL;
4130 }
4131 D(fprintf(stderr, "%*c> else_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_else_stmt"));
4132 void *invalid_else_stmt_var;
4133 if (
4134 (invalid_else_stmt_var = invalid_else_stmt_rule(p)) // invalid_else_stmt
4135 )
4136 {
4137 D(fprintf(stderr, "%*c+ else_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_else_stmt"));
4138 _res = invalid_else_stmt_var;
4139 goto done;
4140 }
4141 p->mark = _mark;
4142 D(fprintf(stderr, "%*c%s else_block[%d-%d]: %s failed!\n", p->level, ' ',
4143 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_else_stmt"));
4144 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004145 { // 'else' &&':' block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004146 if (p->error_indicator) {
4147 D(p->level--);
4148 return NULL;
4149 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004150 D(fprintf(stderr, "%*c> else_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'else' &&':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004151 Token * _keyword;
4152 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004153 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004154 if (
4155 (_keyword = _PyPegen_expect_token(p, 516)) // token='else'
4156 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00004157 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004158 &&
4159 (b = block_rule(p)) // block
4160 )
4161 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00004162 D(fprintf(stderr, "%*c+ else_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'else' &&':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004163 _res = b;
4164 if (_res == NULL && PyErr_Occurred()) {
4165 p->error_indicator = 1;
4166 D(p->level--);
4167 return NULL;
4168 }
4169 goto done;
4170 }
4171 p->mark = _mark;
4172 D(fprintf(stderr, "%*c%s else_block[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00004173 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'else' &&':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004174 }
4175 _res = NULL;
4176 done:
4177 D(p->level--);
4178 return _res;
4179}
4180
Pablo Galindo56c95df2021-04-21 15:28:21 +01004181// while_stmt: invalid_while_stmt | 'while' named_expression ':' block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004182static stmt_ty
4183while_stmt_rule(Parser *p)
4184{
4185 D(p->level++);
4186 if (p->error_indicator) {
4187 D(p->level--);
4188 return NULL;
4189 }
4190 stmt_ty _res = NULL;
4191 int _mark = p->mark;
4192 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4193 p->error_indicator = 1;
4194 D(p->level--);
4195 return NULL;
4196 }
4197 int _start_lineno = p->tokens[_mark]->lineno;
4198 UNUSED(_start_lineno); // Only used by EXTRA macro
4199 int _start_col_offset = p->tokens[_mark]->col_offset;
4200 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo56c95df2021-04-21 15:28:21 +01004201 if (p->call_invalid_rules) { // invalid_while_stmt
4202 if (p->error_indicator) {
4203 D(p->level--);
4204 return NULL;
4205 }
4206 D(fprintf(stderr, "%*c> while_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_while_stmt"));
4207 void *invalid_while_stmt_var;
4208 if (
4209 (invalid_while_stmt_var = invalid_while_stmt_rule(p)) // invalid_while_stmt
4210 )
4211 {
4212 D(fprintf(stderr, "%*c+ while_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_while_stmt"));
4213 _res = invalid_while_stmt_var;
4214 goto done;
4215 }
4216 p->mark = _mark;
4217 D(fprintf(stderr, "%*c%s while_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4218 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_while_stmt"));
4219 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004220 { // 'while' named_expression ':' block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004221 if (p->error_indicator) {
4222 D(p->level--);
4223 return NULL;
4224 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004225 D(fprintf(stderr, "%*c> while_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'while' named_expression ':' block else_block?"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004226 Token * _keyword;
4227 Token * _literal;
4228 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004229 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004230 void *c;
4231 if (
4232 (_keyword = _PyPegen_expect_token(p, 512)) // token='while'
4233 &&
4234 (a = named_expression_rule(p)) // named_expression
4235 &&
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004236 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004237 &&
4238 (b = block_rule(p)) // block
4239 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02004240 (c = else_block_rule(p), !p->error_indicator) // else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004241 )
4242 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004243 D(fprintf(stderr, "%*c+ while_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'while' named_expression ':' block else_block?"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004244 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4245 if (_token == NULL) {
4246 D(p->level--);
4247 return NULL;
4248 }
4249 int _end_lineno = _token->end_lineno;
4250 UNUSED(_end_lineno); // Only used by EXTRA macro
4251 int _end_col_offset = _token->end_col_offset;
4252 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004253 _res = _PyAST_While ( a , b , c , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004254 if (_res == NULL && PyErr_Occurred()) {
4255 p->error_indicator = 1;
4256 D(p->level--);
4257 return NULL;
4258 }
4259 goto done;
4260 }
4261 p->mark = _mark;
4262 D(fprintf(stderr, "%*c%s while_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004263 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'while' named_expression ':' block else_block?"));
4264 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004265 _res = NULL;
4266 done:
4267 D(p->level--);
4268 return _res;
4269}
4270
4271// for_stmt:
Pablo Galindo56c95df2021-04-21 15:28:21 +01004272// | invalid_for_stmt
Pablo Galindo58fb1562021-02-02 19:54:22 +00004273// | 'for' star_targets 'in' ~ star_expressions &&':' TYPE_COMMENT? block else_block?
4274// | ASYNC 'for' star_targets 'in' ~ star_expressions &&':' TYPE_COMMENT? block else_block?
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004275// | invalid_for_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004276static stmt_ty
4277for_stmt_rule(Parser *p)
4278{
4279 D(p->level++);
4280 if (p->error_indicator) {
4281 D(p->level--);
4282 return NULL;
4283 }
4284 stmt_ty _res = NULL;
4285 int _mark = p->mark;
4286 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4287 p->error_indicator = 1;
4288 D(p->level--);
4289 return NULL;
4290 }
4291 int _start_lineno = p->tokens[_mark]->lineno;
4292 UNUSED(_start_lineno); // Only used by EXTRA macro
4293 int _start_col_offset = p->tokens[_mark]->col_offset;
4294 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo56c95df2021-04-21 15:28:21 +01004295 if (p->call_invalid_rules) { // invalid_for_stmt
4296 if (p->error_indicator) {
4297 D(p->level--);
4298 return NULL;
4299 }
4300 D(fprintf(stderr, "%*c> for_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_for_stmt"));
4301 void *invalid_for_stmt_var;
4302 if (
4303 (invalid_for_stmt_var = invalid_for_stmt_rule(p)) // invalid_for_stmt
4304 )
4305 {
4306 D(fprintf(stderr, "%*c+ for_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_for_stmt"));
4307 _res = invalid_for_stmt_var;
4308 goto done;
4309 }
4310 p->mark = _mark;
4311 D(fprintf(stderr, "%*c%s for_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4312 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_for_stmt"));
4313 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004314 { // 'for' star_targets 'in' ~ star_expressions &&':' TYPE_COMMENT? block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004315 if (p->error_indicator) {
4316 D(p->level--);
4317 return NULL;
4318 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004319 D(fprintf(stderr, "%*c> for_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'for' star_targets 'in' ~ star_expressions &&':' TYPE_COMMENT? block else_block?"));
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004320 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004321 Token * _keyword;
4322 Token * _keyword_1;
4323 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004324 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004325 void *el;
4326 expr_ty ex;
4327 expr_ty t;
4328 void *tc;
4329 if (
4330 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
4331 &&
4332 (t = star_targets_rule(p)) // star_targets
4333 &&
4334 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
4335 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004336 (_cut_var = 1)
4337 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004338 (ex = star_expressions_rule(p)) // star_expressions
4339 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00004340 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004341 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02004342 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), !p->error_indicator) // TYPE_COMMENT?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004343 &&
4344 (b = block_rule(p)) // block
4345 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02004346 (el = else_block_rule(p), !p->error_indicator) // else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004347 )
4348 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00004349 D(fprintf(stderr, "%*c+ for_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'for' star_targets 'in' ~ star_expressions &&':' TYPE_COMMENT? block else_block?"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004350 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4351 if (_token == NULL) {
4352 D(p->level--);
4353 return NULL;
4354 }
4355 int _end_lineno = _token->end_lineno;
4356 UNUSED(_end_lineno); // Only used by EXTRA macro
4357 int _end_col_offset = _token->end_col_offset;
4358 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004359 _res = _PyAST_For ( t , ex , b , el , NEW_TYPE_COMMENT ( p , tc ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004360 if (_res == NULL && PyErr_Occurred()) {
4361 p->error_indicator = 1;
4362 D(p->level--);
4363 return NULL;
4364 }
4365 goto done;
4366 }
4367 p->mark = _mark;
4368 D(fprintf(stderr, "%*c%s for_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00004369 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'for' star_targets 'in' ~ star_expressions &&':' TYPE_COMMENT? block else_block?"));
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004370 if (_cut_var) {
4371 D(p->level--);
4372 return NULL;
4373 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004374 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004375 { // ASYNC 'for' star_targets 'in' ~ star_expressions &&':' TYPE_COMMENT? block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004376 if (p->error_indicator) {
4377 D(p->level--);
4378 return NULL;
4379 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004380 D(fprintf(stderr, "%*c> for_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC 'for' star_targets 'in' ~ star_expressions &&':' TYPE_COMMENT? block else_block?"));
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004381 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004382 Token * _keyword;
4383 Token * _keyword_1;
4384 Token * _literal;
4385 Token * async_var;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004386 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004387 void *el;
4388 expr_ty ex;
4389 expr_ty t;
4390 void *tc;
4391 if (
4392 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
4393 &&
4394 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
4395 &&
4396 (t = star_targets_rule(p)) // star_targets
4397 &&
4398 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
4399 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004400 (_cut_var = 1)
4401 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004402 (ex = star_expressions_rule(p)) // star_expressions
4403 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00004404 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004405 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02004406 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), !p->error_indicator) // TYPE_COMMENT?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004407 &&
4408 (b = block_rule(p)) // block
4409 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02004410 (el = else_block_rule(p), !p->error_indicator) // else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004411 )
4412 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00004413 D(fprintf(stderr, "%*c+ for_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC 'for' star_targets 'in' ~ star_expressions &&':' TYPE_COMMENT? block else_block?"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004414 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4415 if (_token == NULL) {
4416 D(p->level--);
4417 return NULL;
4418 }
4419 int _end_lineno = _token->end_lineno;
4420 UNUSED(_end_lineno); // Only used by EXTRA macro
4421 int _end_col_offset = _token->end_col_offset;
4422 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004423 _res = CHECK_VERSION ( stmt_ty , 5 , "Async for loops are" , _PyAST_AsyncFor ( t , ex , b , el , NEW_TYPE_COMMENT ( p , tc ) , EXTRA ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004424 if (_res == NULL && PyErr_Occurred()) {
4425 p->error_indicator = 1;
4426 D(p->level--);
4427 return NULL;
4428 }
4429 goto done;
4430 }
4431 p->mark = _mark;
4432 D(fprintf(stderr, "%*c%s for_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00004433 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'for' star_targets 'in' ~ star_expressions &&':' TYPE_COMMENT? block else_block?"));
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004434 if (_cut_var) {
4435 D(p->level--);
4436 return NULL;
4437 }
4438 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02004439 if (p->call_invalid_rules) { // invalid_for_target
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004440 if (p->error_indicator) {
4441 D(p->level--);
4442 return NULL;
4443 }
4444 D(fprintf(stderr, "%*c> for_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_for_target"));
4445 void *invalid_for_target_var;
4446 if (
4447 (invalid_for_target_var = invalid_for_target_rule(p)) // invalid_for_target
4448 )
4449 {
4450 D(fprintf(stderr, "%*c+ for_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_for_target"));
4451 _res = invalid_for_target_var;
4452 goto done;
4453 }
4454 p->mark = _mark;
4455 D(fprintf(stderr, "%*c%s for_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4456 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_for_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004457 }
4458 _res = NULL;
4459 done:
4460 D(p->level--);
4461 return _res;
4462}
4463
4464// with_stmt:
Pablo Galindo56c95df2021-04-21 15:28:21 +01004465// | invalid_with_stmt_indent
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004466// | 'with' '(' ','.with_item+ ','? ')' ':' block
4467// | 'with' ','.with_item+ ':' TYPE_COMMENT? block
4468// | ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block
4469// | ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block
Pablo Galindo58fb1562021-02-02 19:54:22 +00004470// | invalid_with_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004471static stmt_ty
4472with_stmt_rule(Parser *p)
4473{
4474 D(p->level++);
4475 if (p->error_indicator) {
4476 D(p->level--);
4477 return NULL;
4478 }
4479 stmt_ty _res = NULL;
4480 int _mark = p->mark;
4481 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4482 p->error_indicator = 1;
4483 D(p->level--);
4484 return NULL;
4485 }
4486 int _start_lineno = p->tokens[_mark]->lineno;
4487 UNUSED(_start_lineno); // Only used by EXTRA macro
4488 int _start_col_offset = p->tokens[_mark]->col_offset;
4489 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo56c95df2021-04-21 15:28:21 +01004490 if (p->call_invalid_rules) { // invalid_with_stmt_indent
4491 if (p->error_indicator) {
4492 D(p->level--);
4493 return NULL;
4494 }
4495 D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_with_stmt_indent"));
4496 void *invalid_with_stmt_indent_var;
4497 if (
4498 (invalid_with_stmt_indent_var = invalid_with_stmt_indent_rule(p)) // invalid_with_stmt_indent
4499 )
4500 {
4501 D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_with_stmt_indent"));
4502 _res = invalid_with_stmt_indent_var;
4503 goto done;
4504 }
4505 p->mark = _mark;
4506 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4507 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_with_stmt_indent"));
4508 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004509 { // 'with' '(' ','.with_item+ ','? ')' ':' block
4510 if (p->error_indicator) {
4511 D(p->level--);
4512 return NULL;
4513 }
4514 D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'with' '(' ','.with_item+ ','? ')' ':' block"));
4515 Token * _keyword;
4516 Token * _literal;
4517 Token * _literal_1;
4518 Token * _literal_2;
4519 void *_opt_var;
4520 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +01004521 asdl_withitem_seq* a;
4522 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004523 if (
4524 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
4525 &&
4526 (_literal = _PyPegen_expect_token(p, 7)) // token='('
4527 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01004528 (a = (asdl_withitem_seq*)_gather_39_rule(p)) // ','.with_item+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004529 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02004530 (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004531 &&
4532 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
4533 &&
4534 (_literal_2 = _PyPegen_expect_token(p, 11)) // token=':'
4535 &&
4536 (b = block_rule(p)) // block
4537 )
4538 {
4539 D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'with' '(' ','.with_item+ ','? ')' ':' block"));
4540 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4541 if (_token == NULL) {
4542 D(p->level--);
4543 return NULL;
4544 }
4545 int _end_lineno = _token->end_lineno;
4546 UNUSED(_end_lineno); // Only used by EXTRA macro
4547 int _end_col_offset = _token->end_col_offset;
4548 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004549 _res = _PyAST_With ( a , b , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004550 if (_res == NULL && PyErr_Occurred()) {
4551 p->error_indicator = 1;
4552 D(p->level--);
4553 return NULL;
4554 }
4555 goto done;
4556 }
4557 p->mark = _mark;
4558 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4559 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'with' '(' ','.with_item+ ','? ')' ':' block"));
4560 }
4561 { // 'with' ','.with_item+ ':' TYPE_COMMENT? block
4562 if (p->error_indicator) {
4563 D(p->level--);
4564 return NULL;
4565 }
4566 D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4567 Token * _keyword;
4568 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004569 asdl_withitem_seq* a;
4570 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004571 void *tc;
4572 if (
4573 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
4574 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01004575 (a = (asdl_withitem_seq*)_gather_41_rule(p)) // ','.with_item+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004576 &&
4577 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
4578 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02004579 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), !p->error_indicator) // TYPE_COMMENT?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004580 &&
4581 (b = block_rule(p)) // block
4582 )
4583 {
4584 D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4585 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4586 if (_token == NULL) {
4587 D(p->level--);
4588 return NULL;
4589 }
4590 int _end_lineno = _token->end_lineno;
4591 UNUSED(_end_lineno); // Only used by EXTRA macro
4592 int _end_col_offset = _token->end_col_offset;
4593 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004594 _res = _PyAST_With ( a , b , NEW_TYPE_COMMENT ( p , tc ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004595 if (_res == NULL && PyErr_Occurred()) {
4596 p->error_indicator = 1;
4597 D(p->level--);
4598 return NULL;
4599 }
4600 goto done;
4601 }
4602 p->mark = _mark;
4603 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4604 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4605 }
4606 { // ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block
4607 if (p->error_indicator) {
4608 D(p->level--);
4609 return NULL;
4610 }
4611 D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block"));
4612 Token * _keyword;
4613 Token * _literal;
4614 Token * _literal_1;
4615 Token * _literal_2;
4616 void *_opt_var;
4617 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +01004618 asdl_withitem_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004619 Token * async_var;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004620 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004621 if (
4622 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
4623 &&
4624 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
4625 &&
4626 (_literal = _PyPegen_expect_token(p, 7)) // token='('
4627 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01004628 (a = (asdl_withitem_seq*)_gather_43_rule(p)) // ','.with_item+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004629 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02004630 (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004631 &&
4632 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
4633 &&
4634 (_literal_2 = _PyPegen_expect_token(p, 11)) // token=':'
4635 &&
4636 (b = block_rule(p)) // block
4637 )
4638 {
4639 D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block"));
4640 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4641 if (_token == NULL) {
4642 D(p->level--);
4643 return NULL;
4644 }
4645 int _end_lineno = _token->end_lineno;
4646 UNUSED(_end_lineno); // Only used by EXTRA macro
4647 int _end_col_offset = _token->end_col_offset;
4648 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004649 _res = CHECK_VERSION ( stmt_ty , 5 , "Async with statements are" , _PyAST_AsyncWith ( a , b , NULL , EXTRA ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004650 if (_res == NULL && PyErr_Occurred()) {
4651 p->error_indicator = 1;
4652 D(p->level--);
4653 return NULL;
4654 }
4655 goto done;
4656 }
4657 p->mark = _mark;
4658 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4659 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block"));
4660 }
4661 { // ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block
4662 if (p->error_indicator) {
4663 D(p->level--);
4664 return NULL;
4665 }
4666 D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4667 Token * _keyword;
4668 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004669 asdl_withitem_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004670 Token * async_var;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004671 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004672 void *tc;
4673 if (
4674 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
4675 &&
4676 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
4677 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01004678 (a = (asdl_withitem_seq*)_gather_45_rule(p)) // ','.with_item+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004679 &&
4680 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
4681 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02004682 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), !p->error_indicator) // TYPE_COMMENT?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004683 &&
4684 (b = block_rule(p)) // block
4685 )
4686 {
4687 D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4688 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4689 if (_token == NULL) {
4690 D(p->level--);
4691 return NULL;
4692 }
4693 int _end_lineno = _token->end_lineno;
4694 UNUSED(_end_lineno); // Only used by EXTRA macro
4695 int _end_col_offset = _token->end_col_offset;
4696 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004697 _res = CHECK_VERSION ( stmt_ty , 5 , "Async with statements are" , _PyAST_AsyncWith ( a , b , NEW_TYPE_COMMENT ( p , tc ) , EXTRA ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004698 if (_res == NULL && PyErr_Occurred()) {
4699 p->error_indicator = 1;
4700 D(p->level--);
4701 return NULL;
4702 }
4703 goto done;
4704 }
4705 p->mark = _mark;
4706 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4707 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4708 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004709 if (p->call_invalid_rules) { // invalid_with_stmt
4710 if (p->error_indicator) {
4711 D(p->level--);
4712 return NULL;
4713 }
4714 D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_with_stmt"));
4715 void *invalid_with_stmt_var;
4716 if (
4717 (invalid_with_stmt_var = invalid_with_stmt_rule(p)) // invalid_with_stmt
4718 )
4719 {
4720 D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_with_stmt"));
4721 _res = invalid_with_stmt_var;
4722 goto done;
4723 }
4724 p->mark = _mark;
4725 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4726 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_with_stmt"));
4727 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004728 _res = NULL;
4729 done:
4730 D(p->level--);
4731 return _res;
4732}
4733
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004734// with_item:
4735// | expression 'as' star_target &(',' | ')' | ':')
4736// | invalid_with_item
4737// | expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004738static withitem_ty
4739with_item_rule(Parser *p)
4740{
4741 D(p->level++);
4742 if (p->error_indicator) {
4743 D(p->level--);
4744 return NULL;
4745 }
4746 withitem_ty _res = NULL;
4747 int _mark = p->mark;
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004748 { // expression 'as' star_target &(',' | ')' | ':')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004749 if (p->error_indicator) {
4750 D(p->level--);
4751 return NULL;
4752 }
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004753 D(fprintf(stderr, "%*c> with_item[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression 'as' star_target &(',' | ')' | ':')"));
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004754 Token * _keyword;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004755 expr_ty e;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004756 expr_ty t;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004757 if (
4758 (e = expression_rule(p)) // expression
4759 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004760 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
4761 &&
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004762 (t = star_target_rule(p)) // star_target
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004763 &&
4764 _PyPegen_lookahead(1, _tmp_47_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004765 )
4766 {
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004767 D(fprintf(stderr, "%*c+ with_item[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression 'as' star_target &(',' | ')' | ':')"));
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004768 _res = _PyAST_withitem ( e , t , p -> arena );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004769 if (_res == NULL && PyErr_Occurred()) {
4770 p->error_indicator = 1;
4771 D(p->level--);
4772 return NULL;
4773 }
4774 goto done;
4775 }
4776 p->mark = _mark;
4777 D(fprintf(stderr, "%*c%s with_item[%d-%d]: %s failed!\n", p->level, ' ',
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004778 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression 'as' star_target &(',' | ')' | ':')"));
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004779 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02004780 if (p->call_invalid_rules) { // invalid_with_item
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004781 if (p->error_indicator) {
4782 D(p->level--);
4783 return NULL;
4784 }
4785 D(fprintf(stderr, "%*c> with_item[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_with_item"));
4786 void *invalid_with_item_var;
4787 if (
4788 (invalid_with_item_var = invalid_with_item_rule(p)) // invalid_with_item
4789 )
4790 {
4791 D(fprintf(stderr, "%*c+ with_item[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_with_item"));
4792 _res = invalid_with_item_var;
4793 goto done;
4794 }
4795 p->mark = _mark;
4796 D(fprintf(stderr, "%*c%s with_item[%d-%d]: %s failed!\n", p->level, ' ',
4797 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_with_item"));
4798 }
4799 { // expression
4800 if (p->error_indicator) {
4801 D(p->level--);
4802 return NULL;
4803 }
4804 D(fprintf(stderr, "%*c> with_item[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression"));
4805 expr_ty e;
4806 if (
4807 (e = expression_rule(p)) // expression
4808 )
4809 {
4810 D(fprintf(stderr, "%*c+ with_item[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression"));
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004811 _res = _PyAST_withitem ( e , NULL , p -> arena );
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004812 if (_res == NULL && PyErr_Occurred()) {
4813 p->error_indicator = 1;
4814 D(p->level--);
4815 return NULL;
4816 }
4817 goto done;
4818 }
4819 p->mark = _mark;
4820 D(fprintf(stderr, "%*c%s with_item[%d-%d]: %s failed!\n", p->level, ' ',
4821 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004822 }
4823 _res = NULL;
4824 done:
4825 D(p->level--);
4826 return _res;
4827}
4828
4829// try_stmt:
Pablo Galindo56c95df2021-04-21 15:28:21 +01004830// | invalid_try_stmt
Pablo Galindo58fb1562021-02-02 19:54:22 +00004831// | 'try' &&':' block finally_block
4832// | 'try' &&':' block except_block+ else_block? finally_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004833static stmt_ty
4834try_stmt_rule(Parser *p)
4835{
4836 D(p->level++);
4837 if (p->error_indicator) {
4838 D(p->level--);
4839 return NULL;
4840 }
4841 stmt_ty _res = NULL;
4842 int _mark = p->mark;
4843 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4844 p->error_indicator = 1;
4845 D(p->level--);
4846 return NULL;
4847 }
4848 int _start_lineno = p->tokens[_mark]->lineno;
4849 UNUSED(_start_lineno); // Only used by EXTRA macro
4850 int _start_col_offset = p->tokens[_mark]->col_offset;
4851 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo56c95df2021-04-21 15:28:21 +01004852 if (p->call_invalid_rules) { // invalid_try_stmt
4853 if (p->error_indicator) {
4854 D(p->level--);
4855 return NULL;
4856 }
4857 D(fprintf(stderr, "%*c> try_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_try_stmt"));
4858 void *invalid_try_stmt_var;
4859 if (
4860 (invalid_try_stmt_var = invalid_try_stmt_rule(p)) // invalid_try_stmt
4861 )
4862 {
4863 D(fprintf(stderr, "%*c+ try_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_try_stmt"));
4864 _res = invalid_try_stmt_var;
4865 goto done;
4866 }
4867 p->mark = _mark;
4868 D(fprintf(stderr, "%*c%s try_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4869 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_try_stmt"));
4870 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004871 { // 'try' &&':' block finally_block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004872 if (p->error_indicator) {
4873 D(p->level--);
4874 return NULL;
4875 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004876 D(fprintf(stderr, "%*c> try_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'try' &&':' block finally_block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004877 Token * _keyword;
4878 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004879 asdl_stmt_seq* b;
4880 asdl_stmt_seq* f;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004881 if (
4882 (_keyword = _PyPegen_expect_token(p, 511)) // token='try'
4883 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00004884 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004885 &&
4886 (b = block_rule(p)) // block
4887 &&
4888 (f = finally_block_rule(p)) // finally_block
4889 )
4890 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00004891 D(fprintf(stderr, "%*c+ try_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'try' &&':' block finally_block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004892 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4893 if (_token == NULL) {
4894 D(p->level--);
4895 return NULL;
4896 }
4897 int _end_lineno = _token->end_lineno;
4898 UNUSED(_end_lineno); // Only used by EXTRA macro
4899 int _end_col_offset = _token->end_col_offset;
4900 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004901 _res = _PyAST_Try ( b , NULL , NULL , f , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004902 if (_res == NULL && PyErr_Occurred()) {
4903 p->error_indicator = 1;
4904 D(p->level--);
4905 return NULL;
4906 }
4907 goto done;
4908 }
4909 p->mark = _mark;
4910 D(fprintf(stderr, "%*c%s try_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00004911 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'try' &&':' block finally_block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004912 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004913 { // 'try' &&':' block except_block+ else_block? finally_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004914 if (p->error_indicator) {
4915 D(p->level--);
4916 return NULL;
4917 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004918 D(fprintf(stderr, "%*c> try_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'try' &&':' block except_block+ else_block? finally_block?"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004919 Token * _keyword;
4920 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004921 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004922 void *el;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004923 asdl_excepthandler_seq* ex;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004924 void *f;
4925 if (
4926 (_keyword = _PyPegen_expect_token(p, 511)) // token='try'
4927 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00004928 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004929 &&
4930 (b = block_rule(p)) // block
4931 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01004932 (ex = (asdl_excepthandler_seq*)_loop1_48_rule(p)) // except_block+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004933 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02004934 (el = else_block_rule(p), !p->error_indicator) // else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004935 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02004936 (f = finally_block_rule(p), !p->error_indicator) // finally_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004937 )
4938 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00004939 D(fprintf(stderr, "%*c+ try_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'try' &&':' block except_block+ else_block? finally_block?"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004940 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4941 if (_token == NULL) {
4942 D(p->level--);
4943 return NULL;
4944 }
4945 int _end_lineno = _token->end_lineno;
4946 UNUSED(_end_lineno); // Only used by EXTRA macro
4947 int _end_col_offset = _token->end_col_offset;
4948 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004949 _res = _PyAST_Try ( b , ex , el , f , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004950 if (_res == NULL && PyErr_Occurred()) {
4951 p->error_indicator = 1;
4952 D(p->level--);
4953 return NULL;
4954 }
4955 goto done;
4956 }
4957 p->mark = _mark;
4958 D(fprintf(stderr, "%*c%s try_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00004959 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'try' &&':' block except_block+ else_block? finally_block?"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004960 }
4961 _res = NULL;
4962 done:
4963 D(p->level--);
4964 return _res;
4965}
4966
Pablo Galindo206cbda2021-02-07 18:42:21 +00004967// except_block:
Pablo Galindo56c95df2021-04-21 15:28:21 +01004968// | invalid_except_stmt_indent
Pablo Galindo206cbda2021-02-07 18:42:21 +00004969// | 'except' expression ['as' NAME] ':' block
4970// | 'except' ':' block
Pablo Galindo56c95df2021-04-21 15:28:21 +01004971// | invalid_except_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004972static excepthandler_ty
4973except_block_rule(Parser *p)
4974{
4975 D(p->level++);
4976 if (p->error_indicator) {
4977 D(p->level--);
4978 return NULL;
4979 }
4980 excepthandler_ty _res = NULL;
4981 int _mark = p->mark;
4982 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4983 p->error_indicator = 1;
4984 D(p->level--);
4985 return NULL;
4986 }
4987 int _start_lineno = p->tokens[_mark]->lineno;
4988 UNUSED(_start_lineno); // Only used by EXTRA macro
4989 int _start_col_offset = p->tokens[_mark]->col_offset;
4990 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo56c95df2021-04-21 15:28:21 +01004991 if (p->call_invalid_rules) { // invalid_except_stmt_indent
4992 if (p->error_indicator) {
4993 D(p->level--);
4994 return NULL;
4995 }
4996 D(fprintf(stderr, "%*c> except_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_except_stmt_indent"));
4997 void *invalid_except_stmt_indent_var;
4998 if (
4999 (invalid_except_stmt_indent_var = invalid_except_stmt_indent_rule(p)) // invalid_except_stmt_indent
5000 )
5001 {
5002 D(fprintf(stderr, "%*c+ except_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_except_stmt_indent"));
5003 _res = invalid_except_stmt_indent_var;
5004 goto done;
5005 }
5006 p->mark = _mark;
5007 D(fprintf(stderr, "%*c%s except_block[%d-%d]: %s failed!\n", p->level, ' ',
5008 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_except_stmt_indent"));
5009 }
Pablo Galindo206cbda2021-02-07 18:42:21 +00005010 { // 'except' expression ['as' NAME] ':' block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005011 if (p->error_indicator) {
5012 D(p->level--);
5013 return NULL;
5014 }
Pablo Galindo206cbda2021-02-07 18:42:21 +00005015 D(fprintf(stderr, "%*c> except_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' expression ['as' NAME] ':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005016 Token * _keyword;
5017 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01005018 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005019 expr_ty e;
5020 void *t;
5021 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03005022 (_keyword = _PyPegen_expect_token(p, 521)) // token='except'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005023 &&
5024 (e = expression_rule(p)) // expression
5025 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02005026 (t = _tmp_49_rule(p), !p->error_indicator) // ['as' NAME]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005027 &&
Pablo Galindo206cbda2021-02-07 18:42:21 +00005028 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005029 &&
5030 (b = block_rule(p)) // block
5031 )
5032 {
Pablo Galindo206cbda2021-02-07 18:42:21 +00005033 D(fprintf(stderr, "%*c+ except_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' expression ['as' NAME] ':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005034 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5035 if (_token == NULL) {
5036 D(p->level--);
5037 return NULL;
5038 }
5039 int _end_lineno = _token->end_lineno;
5040 UNUSED(_end_lineno); // Only used by EXTRA macro
5041 int _end_col_offset = _token->end_col_offset;
5042 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02005043 _res = _PyAST_ExceptHandler ( e , ( t ) ? ( ( expr_ty ) t ) -> v . Name . id : NULL , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005044 if (_res == NULL && PyErr_Occurred()) {
5045 p->error_indicator = 1;
5046 D(p->level--);
5047 return NULL;
5048 }
5049 goto done;
5050 }
5051 p->mark = _mark;
5052 D(fprintf(stderr, "%*c%s except_block[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo206cbda2021-02-07 18:42:21 +00005053 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' expression ['as' NAME] ':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005054 }
Pablo Galindo206cbda2021-02-07 18:42:21 +00005055 { // 'except' ':' block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005056 if (p->error_indicator) {
5057 D(p->level--);
5058 return NULL;
5059 }
Pablo Galindo206cbda2021-02-07 18:42:21 +00005060 D(fprintf(stderr, "%*c> except_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' ':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005061 Token * _keyword;
5062 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01005063 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005064 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03005065 (_keyword = _PyPegen_expect_token(p, 521)) // token='except'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005066 &&
Pablo Galindo206cbda2021-02-07 18:42:21 +00005067 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005068 &&
5069 (b = block_rule(p)) // block
5070 )
5071 {
Pablo Galindo206cbda2021-02-07 18:42:21 +00005072 D(fprintf(stderr, "%*c+ except_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' ':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005073 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5074 if (_token == NULL) {
5075 D(p->level--);
5076 return NULL;
5077 }
5078 int _end_lineno = _token->end_lineno;
5079 UNUSED(_end_lineno); // Only used by EXTRA macro
5080 int _end_col_offset = _token->end_col_offset;
5081 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02005082 _res = _PyAST_ExceptHandler ( NULL , NULL , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005083 if (_res == NULL && PyErr_Occurred()) {
5084 p->error_indicator = 1;
5085 D(p->level--);
5086 return NULL;
5087 }
5088 goto done;
5089 }
5090 p->mark = _mark;
5091 D(fprintf(stderr, "%*c%s except_block[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo206cbda2021-02-07 18:42:21 +00005092 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' ':' block"));
5093 }
Pablo Galindo56c95df2021-04-21 15:28:21 +01005094 if (p->call_invalid_rules) { // invalid_except_stmt
Pablo Galindo206cbda2021-02-07 18:42:21 +00005095 if (p->error_indicator) {
5096 D(p->level--);
5097 return NULL;
5098 }
Pablo Galindo56c95df2021-04-21 15:28:21 +01005099 D(fprintf(stderr, "%*c> except_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_except_stmt"));
5100 void *invalid_except_stmt_var;
Pablo Galindo206cbda2021-02-07 18:42:21 +00005101 if (
Pablo Galindo56c95df2021-04-21 15:28:21 +01005102 (invalid_except_stmt_var = invalid_except_stmt_rule(p)) // invalid_except_stmt
Pablo Galindo206cbda2021-02-07 18:42:21 +00005103 )
5104 {
Pablo Galindo56c95df2021-04-21 15:28:21 +01005105 D(fprintf(stderr, "%*c+ except_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_except_stmt"));
5106 _res = invalid_except_stmt_var;
Pablo Galindo206cbda2021-02-07 18:42:21 +00005107 goto done;
5108 }
5109 p->mark = _mark;
5110 D(fprintf(stderr, "%*c%s except_block[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo56c95df2021-04-21 15:28:21 +01005111 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_except_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005112 }
5113 _res = NULL;
5114 done:
5115 D(p->level--);
5116 return _res;
5117}
5118
Pablo Galindo56c95df2021-04-21 15:28:21 +01005119// finally_block: invalid_finally_stmt | 'finally' &&':' block
Pablo Galindoa5634c42020-09-16 19:42:00 +01005120static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005121finally_block_rule(Parser *p)
5122{
5123 D(p->level++);
5124 if (p->error_indicator) {
5125 D(p->level--);
5126 return NULL;
5127 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01005128 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005129 int _mark = p->mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +01005130 if (p->call_invalid_rules) { // invalid_finally_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005131 if (p->error_indicator) {
5132 D(p->level--);
5133 return NULL;
5134 }
Pablo Galindo56c95df2021-04-21 15:28:21 +01005135 D(fprintf(stderr, "%*c> finally_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_finally_stmt"));
5136 void *invalid_finally_stmt_var;
5137 if (
5138 (invalid_finally_stmt_var = invalid_finally_stmt_rule(p)) // invalid_finally_stmt
5139 )
5140 {
5141 D(fprintf(stderr, "%*c+ finally_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_finally_stmt"));
5142 _res = invalid_finally_stmt_var;
5143 goto done;
5144 }
5145 p->mark = _mark;
5146 D(fprintf(stderr, "%*c%s finally_block[%d-%d]: %s failed!\n", p->level, ' ',
5147 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_finally_stmt"));
5148 }
5149 { // 'finally' &&':' block
5150 if (p->error_indicator) {
5151 D(p->level--);
5152 return NULL;
5153 }
5154 D(fprintf(stderr, "%*c> finally_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'finally' &&':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005155 Token * _keyword;
5156 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01005157 asdl_stmt_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005158 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03005159 (_keyword = _PyPegen_expect_token(p, 522)) // token='finally'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005160 &&
Pablo Galindo56c95df2021-04-21 15:28:21 +01005161 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005162 &&
5163 (a = block_rule(p)) // block
5164 )
5165 {
Pablo Galindo56c95df2021-04-21 15:28:21 +01005166 D(fprintf(stderr, "%*c+ finally_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'finally' &&':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005167 _res = a;
5168 if (_res == NULL && PyErr_Occurred()) {
5169 p->error_indicator = 1;
5170 D(p->level--);
5171 return NULL;
5172 }
5173 goto done;
5174 }
5175 p->mark = _mark;
5176 D(fprintf(stderr, "%*c%s finally_block[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo56c95df2021-04-21 15:28:21 +01005177 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'finally' &&':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005178 }
5179 _res = NULL;
5180 done:
5181 D(p->level--);
5182 return _res;
5183}
5184
Pablo Galindo08fb8ac2021-03-18 01:03:11 +00005185// match_stmt:
5186// | "match" subject_expr ':' NEWLINE INDENT case_block+ DEDENT
5187// | invalid_match_stmt
Brandt Bucher145bf262021-02-26 14:51:55 -08005188static stmt_ty
5189match_stmt_rule(Parser *p)
5190{
5191 D(p->level++);
5192 if (p->error_indicator) {
5193 D(p->level--);
5194 return NULL;
5195 }
5196 stmt_ty _res = NULL;
5197 int _mark = p->mark;
5198 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
5199 p->error_indicator = 1;
5200 D(p->level--);
5201 return NULL;
5202 }
5203 int _start_lineno = p->tokens[_mark]->lineno;
5204 UNUSED(_start_lineno); // Only used by EXTRA macro
5205 int _start_col_offset = p->tokens[_mark]->col_offset;
5206 UNUSED(_start_col_offset); // Only used by EXTRA macro
5207 { // "match" subject_expr ':' NEWLINE INDENT case_block+ DEDENT
5208 if (p->error_indicator) {
5209 D(p->level--);
5210 return NULL;
5211 }
5212 D(fprintf(stderr, "%*c> match_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"match\" subject_expr ':' NEWLINE INDENT case_block+ DEDENT"));
5213 expr_ty _keyword;
5214 Token * _literal;
5215 asdl_match_case_seq* cases;
5216 Token * dedent_var;
5217 Token * indent_var;
5218 Token * newline_var;
5219 expr_ty subject;
5220 if (
5221 (_keyword = _PyPegen_expect_soft_keyword(p, "match")) // soft_keyword='"match"'
5222 &&
5223 (subject = subject_expr_rule(p)) // subject_expr
5224 &&
5225 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
5226 &&
5227 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
5228 &&
5229 (indent_var = _PyPegen_expect_token(p, INDENT)) // token='INDENT'
5230 &&
5231 (cases = (asdl_match_case_seq*)_loop1_50_rule(p)) // case_block+
5232 &&
5233 (dedent_var = _PyPegen_expect_token(p, DEDENT)) // token='DEDENT'
5234 )
5235 {
5236 D(fprintf(stderr, "%*c+ match_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"match\" subject_expr ':' NEWLINE INDENT case_block+ DEDENT"));
5237 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5238 if (_token == NULL) {
5239 D(p->level--);
5240 return NULL;
5241 }
5242 int _end_lineno = _token->end_lineno;
5243 UNUSED(_end_lineno); // Only used by EXTRA macro
5244 int _end_col_offset = _token->end_col_offset;
5245 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02005246 _res = CHECK_VERSION ( stmt_ty , 10 , "Pattern matching is" , _PyAST_Match ( subject , cases , EXTRA ) );
Brandt Bucher145bf262021-02-26 14:51:55 -08005247 if (_res == NULL && PyErr_Occurred()) {
5248 p->error_indicator = 1;
5249 D(p->level--);
5250 return NULL;
5251 }
5252 goto done;
5253 }
5254 p->mark = _mark;
5255 D(fprintf(stderr, "%*c%s match_stmt[%d-%d]: %s failed!\n", p->level, ' ',
5256 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"match\" subject_expr ':' NEWLINE INDENT case_block+ DEDENT"));
5257 }
Pablo Galindo08fb8ac2021-03-18 01:03:11 +00005258 if (p->call_invalid_rules) { // invalid_match_stmt
5259 if (p->error_indicator) {
5260 D(p->level--);
5261 return NULL;
5262 }
5263 D(fprintf(stderr, "%*c> match_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_match_stmt"));
5264 void *invalid_match_stmt_var;
5265 if (
5266 (invalid_match_stmt_var = invalid_match_stmt_rule(p)) // invalid_match_stmt
5267 )
5268 {
5269 D(fprintf(stderr, "%*c+ match_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_match_stmt"));
5270 _res = invalid_match_stmt_var;
5271 goto done;
5272 }
5273 p->mark = _mark;
5274 D(fprintf(stderr, "%*c%s match_stmt[%d-%d]: %s failed!\n", p->level, ' ',
5275 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_match_stmt"));
5276 }
Brandt Bucher145bf262021-02-26 14:51:55 -08005277 _res = NULL;
5278 done:
5279 D(p->level--);
5280 return _res;
5281}
5282
5283// subject_expr: star_named_expression ',' star_named_expressions? | named_expression
5284static expr_ty
5285subject_expr_rule(Parser *p)
5286{
5287 D(p->level++);
5288 if (p->error_indicator) {
5289 D(p->level--);
5290 return NULL;
5291 }
5292 expr_ty _res = NULL;
5293 int _mark = p->mark;
5294 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
5295 p->error_indicator = 1;
5296 D(p->level--);
5297 return NULL;
5298 }
5299 int _start_lineno = p->tokens[_mark]->lineno;
5300 UNUSED(_start_lineno); // Only used by EXTRA macro
5301 int _start_col_offset = p->tokens[_mark]->col_offset;
5302 UNUSED(_start_col_offset); // Only used by EXTRA macro
5303 { // star_named_expression ',' star_named_expressions?
5304 if (p->error_indicator) {
5305 D(p->level--);
5306 return NULL;
5307 }
5308 D(fprintf(stderr, "%*c> subject_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_named_expression ',' star_named_expressions?"));
5309 Token * _literal;
5310 expr_ty value;
5311 void *values;
5312 if (
5313 (value = star_named_expression_rule(p)) // star_named_expression
5314 &&
5315 (_literal = _PyPegen_expect_token(p, 12)) // token=','
5316 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02005317 (values = star_named_expressions_rule(p), !p->error_indicator) // star_named_expressions?
Brandt Bucher145bf262021-02-26 14:51:55 -08005318 )
5319 {
5320 D(fprintf(stderr, "%*c+ subject_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_named_expression ',' star_named_expressions?"));
5321 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5322 if (_token == NULL) {
5323 D(p->level--);
5324 return NULL;
5325 }
5326 int _end_lineno = _token->end_lineno;
5327 UNUSED(_end_lineno); // Only used by EXTRA macro
5328 int _end_col_offset = _token->end_col_offset;
5329 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02005330 _res = _PyAST_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , value , values ) ) , Load , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08005331 if (_res == NULL && PyErr_Occurred()) {
5332 p->error_indicator = 1;
5333 D(p->level--);
5334 return NULL;
5335 }
5336 goto done;
5337 }
5338 p->mark = _mark;
5339 D(fprintf(stderr, "%*c%s subject_expr[%d-%d]: %s failed!\n", p->level, ' ',
5340 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression ',' star_named_expressions?"));
5341 }
5342 { // named_expression
5343 if (p->error_indicator) {
5344 D(p->level--);
5345 return NULL;
5346 }
5347 D(fprintf(stderr, "%*c> subject_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression"));
5348 expr_ty named_expression_var;
5349 if (
5350 (named_expression_var = named_expression_rule(p)) // named_expression
5351 )
5352 {
5353 D(fprintf(stderr, "%*c+ subject_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "named_expression"));
5354 _res = named_expression_var;
5355 goto done;
5356 }
5357 p->mark = _mark;
5358 D(fprintf(stderr, "%*c%s subject_expr[%d-%d]: %s failed!\n", p->level, ' ',
5359 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression"));
5360 }
5361 _res = NULL;
5362 done:
5363 D(p->level--);
5364 return _res;
5365}
5366
Pablo Galindo56c95df2021-04-21 15:28:21 +01005367// case_block: invalid_case_block | "case" patterns guard? ':' block
Brandt Bucher145bf262021-02-26 14:51:55 -08005368static match_case_ty
5369case_block_rule(Parser *p)
5370{
5371 D(p->level++);
5372 if (p->error_indicator) {
5373 D(p->level--);
5374 return NULL;
5375 }
5376 match_case_ty _res = NULL;
5377 int _mark = p->mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +01005378 if (p->call_invalid_rules) { // invalid_case_block
5379 if (p->error_indicator) {
5380 D(p->level--);
5381 return NULL;
5382 }
5383 D(fprintf(stderr, "%*c> case_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_case_block"));
5384 void *invalid_case_block_var;
5385 if (
5386 (invalid_case_block_var = invalid_case_block_rule(p)) // invalid_case_block
5387 )
5388 {
5389 D(fprintf(stderr, "%*c+ case_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_case_block"));
5390 _res = invalid_case_block_var;
5391 goto done;
5392 }
5393 p->mark = _mark;
5394 D(fprintf(stderr, "%*c%s case_block[%d-%d]: %s failed!\n", p->level, ' ',
5395 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_case_block"));
5396 }
Brandt Bucher145bf262021-02-26 14:51:55 -08005397 { // "case" patterns guard? ':' block
5398 if (p->error_indicator) {
5399 D(p->level--);
5400 return NULL;
5401 }
5402 D(fprintf(stderr, "%*c> case_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"case\" patterns guard? ':' block"));
5403 expr_ty _keyword;
5404 Token * _literal;
5405 asdl_stmt_seq* body;
5406 void *guard;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005407 pattern_ty pattern;
Brandt Bucher145bf262021-02-26 14:51:55 -08005408 if (
5409 (_keyword = _PyPegen_expect_soft_keyword(p, "case")) // soft_keyword='"case"'
5410 &&
5411 (pattern = patterns_rule(p)) // patterns
5412 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02005413 (guard = guard_rule(p), !p->error_indicator) // guard?
Brandt Bucher145bf262021-02-26 14:51:55 -08005414 &&
5415 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
5416 &&
5417 (body = block_rule(p)) // block
5418 )
5419 {
5420 D(fprintf(stderr, "%*c+ case_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"case\" patterns guard? ':' block"));
Victor Stinnerd27f8d22021-04-07 21:34:22 +02005421 _res = _PyAST_match_case ( pattern , guard , body , p -> arena );
Brandt Bucher145bf262021-02-26 14:51:55 -08005422 if (_res == NULL && PyErr_Occurred()) {
5423 p->error_indicator = 1;
5424 D(p->level--);
5425 return NULL;
5426 }
5427 goto done;
5428 }
5429 p->mark = _mark;
5430 D(fprintf(stderr, "%*c%s case_block[%d-%d]: %s failed!\n", p->level, ' ',
5431 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"case\" patterns guard? ':' block"));
5432 }
5433 _res = NULL;
5434 done:
5435 D(p->level--);
5436 return _res;
5437}
5438
5439// guard: 'if' named_expression
5440static expr_ty
5441guard_rule(Parser *p)
5442{
5443 D(p->level++);
5444 if (p->error_indicator) {
5445 D(p->level--);
5446 return NULL;
5447 }
5448 expr_ty _res = NULL;
5449 int _mark = p->mark;
5450 { // 'if' named_expression
5451 if (p->error_indicator) {
5452 D(p->level--);
5453 return NULL;
5454 }
5455 D(fprintf(stderr, "%*c> guard[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' named_expression"));
5456 Token * _keyword;
5457 expr_ty guard;
5458 if (
5459 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
5460 &&
5461 (guard = named_expression_rule(p)) // named_expression
5462 )
5463 {
5464 D(fprintf(stderr, "%*c+ guard[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' named_expression"));
5465 _res = guard;
5466 if (_res == NULL && PyErr_Occurred()) {
5467 p->error_indicator = 1;
5468 D(p->level--);
5469 return NULL;
5470 }
5471 goto done;
5472 }
5473 p->mark = _mark;
5474 D(fprintf(stderr, "%*c%s guard[%d-%d]: %s failed!\n", p->level, ' ',
5475 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' named_expression"));
5476 }
5477 _res = NULL;
5478 done:
5479 D(p->level--);
5480 return _res;
5481}
5482
5483// patterns: open_sequence_pattern | pattern
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005484static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08005485patterns_rule(Parser *p)
5486{
5487 D(p->level++);
5488 if (p->error_indicator) {
5489 D(p->level--);
5490 return NULL;
5491 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005492 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08005493 int _mark = p->mark;
5494 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
5495 p->error_indicator = 1;
5496 D(p->level--);
5497 return NULL;
5498 }
5499 int _start_lineno = p->tokens[_mark]->lineno;
5500 UNUSED(_start_lineno); // Only used by EXTRA macro
5501 int _start_col_offset = p->tokens[_mark]->col_offset;
5502 UNUSED(_start_col_offset); // Only used by EXTRA macro
5503 { // open_sequence_pattern
5504 if (p->error_indicator) {
5505 D(p->level--);
5506 return NULL;
5507 }
5508 D(fprintf(stderr, "%*c> patterns[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "open_sequence_pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005509 asdl_pattern_seq* patterns;
Brandt Bucher145bf262021-02-26 14:51:55 -08005510 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005511 (patterns = (asdl_pattern_seq*)open_sequence_pattern_rule(p)) // open_sequence_pattern
Brandt Bucher145bf262021-02-26 14:51:55 -08005512 )
5513 {
5514 D(fprintf(stderr, "%*c+ patterns[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "open_sequence_pattern"));
5515 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5516 if (_token == NULL) {
5517 D(p->level--);
5518 return NULL;
5519 }
5520 int _end_lineno = _token->end_lineno;
5521 UNUSED(_end_lineno); // Only used by EXTRA macro
5522 int _end_col_offset = _token->end_col_offset;
5523 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005524 _res = _PyAST_MatchSequence ( patterns , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08005525 if (_res == NULL && PyErr_Occurred()) {
5526 p->error_indicator = 1;
5527 D(p->level--);
5528 return NULL;
5529 }
5530 goto done;
5531 }
5532 p->mark = _mark;
5533 D(fprintf(stderr, "%*c%s patterns[%d-%d]: %s failed!\n", p->level, ' ',
5534 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "open_sequence_pattern"));
5535 }
5536 { // pattern
5537 if (p->error_indicator) {
5538 D(p->level--);
5539 return NULL;
5540 }
5541 D(fprintf(stderr, "%*c> patterns[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005542 pattern_ty pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08005543 if (
5544 (pattern_var = pattern_rule(p)) // pattern
5545 )
5546 {
5547 D(fprintf(stderr, "%*c+ patterns[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "pattern"));
5548 _res = pattern_var;
5549 goto done;
5550 }
5551 p->mark = _mark;
5552 D(fprintf(stderr, "%*c%s patterns[%d-%d]: %s failed!\n", p->level, ' ',
5553 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "pattern"));
5554 }
5555 _res = NULL;
5556 done:
5557 D(p->level--);
5558 return _res;
5559}
5560
5561// pattern: as_pattern | or_pattern
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005562static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08005563pattern_rule(Parser *p)
5564{
5565 D(p->level++);
5566 if (p->error_indicator) {
5567 D(p->level--);
5568 return NULL;
5569 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005570 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08005571 int _mark = p->mark;
5572 { // as_pattern
5573 if (p->error_indicator) {
5574 D(p->level--);
5575 return NULL;
5576 }
5577 D(fprintf(stderr, "%*c> pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "as_pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005578 pattern_ty as_pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08005579 if (
5580 (as_pattern_var = as_pattern_rule(p)) // as_pattern
5581 )
5582 {
5583 D(fprintf(stderr, "%*c+ pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "as_pattern"));
5584 _res = as_pattern_var;
5585 goto done;
5586 }
5587 p->mark = _mark;
5588 D(fprintf(stderr, "%*c%s pattern[%d-%d]: %s failed!\n", p->level, ' ',
5589 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "as_pattern"));
5590 }
5591 { // or_pattern
5592 if (p->error_indicator) {
5593 D(p->level--);
5594 return NULL;
5595 }
5596 D(fprintf(stderr, "%*c> pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "or_pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005597 pattern_ty or_pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08005598 if (
5599 (or_pattern_var = or_pattern_rule(p)) // or_pattern
5600 )
5601 {
5602 D(fprintf(stderr, "%*c+ pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "or_pattern"));
5603 _res = or_pattern_var;
5604 goto done;
5605 }
5606 p->mark = _mark;
5607 D(fprintf(stderr, "%*c%s pattern[%d-%d]: %s failed!\n", p->level, ' ',
5608 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "or_pattern"));
5609 }
5610 _res = NULL;
5611 done:
5612 D(p->level--);
5613 return _res;
5614}
5615
Pablo Galindoa8c418d2021-06-18 22:15:57 +01005616// as_pattern: or_pattern 'as' pattern_capture_target | invalid_as_pattern
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005617static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08005618as_pattern_rule(Parser *p)
5619{
5620 D(p->level++);
5621 if (p->error_indicator) {
5622 D(p->level--);
5623 return NULL;
5624 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005625 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08005626 int _mark = p->mark;
5627 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
5628 p->error_indicator = 1;
5629 D(p->level--);
5630 return NULL;
5631 }
5632 int _start_lineno = p->tokens[_mark]->lineno;
5633 UNUSED(_start_lineno); // Only used by EXTRA macro
5634 int _start_col_offset = p->tokens[_mark]->col_offset;
5635 UNUSED(_start_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005636 { // or_pattern 'as' pattern_capture_target
Brandt Bucher145bf262021-02-26 14:51:55 -08005637 if (p->error_indicator) {
5638 D(p->level--);
5639 return NULL;
5640 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005641 D(fprintf(stderr, "%*c> as_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "or_pattern 'as' pattern_capture_target"));
Brandt Bucher145bf262021-02-26 14:51:55 -08005642 Token * _keyword;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005643 pattern_ty pattern;
Brandt Bucher145bf262021-02-26 14:51:55 -08005644 expr_ty target;
5645 if (
5646 (pattern = or_pattern_rule(p)) // or_pattern
5647 &&
5648 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
5649 &&
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005650 (target = pattern_capture_target_rule(p)) // pattern_capture_target
Brandt Bucher145bf262021-02-26 14:51:55 -08005651 )
5652 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005653 D(fprintf(stderr, "%*c+ as_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "or_pattern 'as' pattern_capture_target"));
Brandt Bucher145bf262021-02-26 14:51:55 -08005654 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5655 if (_token == NULL) {
5656 D(p->level--);
5657 return NULL;
5658 }
5659 int _end_lineno = _token->end_lineno;
5660 UNUSED(_end_lineno); // Only used by EXTRA macro
5661 int _end_col_offset = _token->end_col_offset;
5662 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02005663 _res = _PyAST_MatchAs ( pattern , target -> v . Name . id , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08005664 if (_res == NULL && PyErr_Occurred()) {
5665 p->error_indicator = 1;
5666 D(p->level--);
5667 return NULL;
5668 }
5669 goto done;
5670 }
5671 p->mark = _mark;
5672 D(fprintf(stderr, "%*c%s as_pattern[%d-%d]: %s failed!\n", p->level, ' ',
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005673 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "or_pattern 'as' pattern_capture_target"));
Brandt Bucher145bf262021-02-26 14:51:55 -08005674 }
Pablo Galindoa8c418d2021-06-18 22:15:57 +01005675 if (p->call_invalid_rules) { // invalid_as_pattern
5676 if (p->error_indicator) {
5677 D(p->level--);
5678 return NULL;
5679 }
5680 D(fprintf(stderr, "%*c> as_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_as_pattern"));
5681 void *invalid_as_pattern_var;
5682 if (
5683 (invalid_as_pattern_var = invalid_as_pattern_rule(p)) // invalid_as_pattern
5684 )
5685 {
5686 D(fprintf(stderr, "%*c+ as_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_as_pattern"));
5687 _res = invalid_as_pattern_var;
5688 goto done;
5689 }
5690 p->mark = _mark;
5691 D(fprintf(stderr, "%*c%s as_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5692 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_as_pattern"));
5693 }
Brandt Bucher145bf262021-02-26 14:51:55 -08005694 _res = NULL;
5695 done:
5696 D(p->level--);
5697 return _res;
5698}
5699
5700// or_pattern: '|'.closed_pattern+
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005701static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08005702or_pattern_rule(Parser *p)
5703{
5704 D(p->level++);
5705 if (p->error_indicator) {
5706 D(p->level--);
5707 return NULL;
5708 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005709 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08005710 int _mark = p->mark;
5711 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
5712 p->error_indicator = 1;
5713 D(p->level--);
5714 return NULL;
5715 }
5716 int _start_lineno = p->tokens[_mark]->lineno;
5717 UNUSED(_start_lineno); // Only used by EXTRA macro
5718 int _start_col_offset = p->tokens[_mark]->col_offset;
5719 UNUSED(_start_col_offset); // Only used by EXTRA macro
5720 { // '|'.closed_pattern+
5721 if (p->error_indicator) {
5722 D(p->level--);
5723 return NULL;
5724 }
5725 D(fprintf(stderr, "%*c> or_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'|'.closed_pattern+"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005726 asdl_pattern_seq* patterns;
Brandt Bucher145bf262021-02-26 14:51:55 -08005727 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005728 (patterns = (asdl_pattern_seq*)_gather_51_rule(p)) // '|'.closed_pattern+
Brandt Bucher145bf262021-02-26 14:51:55 -08005729 )
5730 {
5731 D(fprintf(stderr, "%*c+ or_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'|'.closed_pattern+"));
5732 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5733 if (_token == NULL) {
5734 D(p->level--);
5735 return NULL;
5736 }
5737 int _end_lineno = _token->end_lineno;
5738 UNUSED(_end_lineno); // Only used by EXTRA macro
5739 int _end_col_offset = _token->end_col_offset;
5740 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02005741 _res = asdl_seq_LEN ( patterns ) == 1 ? asdl_seq_GET ( patterns , 0 ) : _PyAST_MatchOr ( patterns , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08005742 if (_res == NULL && PyErr_Occurred()) {
5743 p->error_indicator = 1;
5744 D(p->level--);
5745 return NULL;
5746 }
5747 goto done;
5748 }
5749 p->mark = _mark;
5750 D(fprintf(stderr, "%*c%s or_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5751 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'|'.closed_pattern+"));
5752 }
5753 _res = NULL;
5754 done:
5755 D(p->level--);
5756 return _res;
5757}
5758
5759// closed_pattern:
5760// | literal_pattern
5761// | capture_pattern
5762// | wildcard_pattern
5763// | value_pattern
5764// | group_pattern
5765// | sequence_pattern
5766// | mapping_pattern
5767// | class_pattern
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005768static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08005769closed_pattern_rule(Parser *p)
5770{
5771 D(p->level++);
5772 if (p->error_indicator) {
5773 D(p->level--);
5774 return NULL;
5775 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005776 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08005777 int _mark = p->mark;
5778 { // literal_pattern
5779 if (p->error_indicator) {
5780 D(p->level--);
5781 return NULL;
5782 }
5783 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "literal_pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005784 pattern_ty literal_pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08005785 if (
5786 (literal_pattern_var = literal_pattern_rule(p)) // literal_pattern
5787 )
5788 {
5789 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "literal_pattern"));
5790 _res = literal_pattern_var;
5791 goto done;
5792 }
5793 p->mark = _mark;
5794 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5795 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "literal_pattern"));
5796 }
5797 { // capture_pattern
5798 if (p->error_indicator) {
5799 D(p->level--);
5800 return NULL;
5801 }
5802 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "capture_pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005803 pattern_ty capture_pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08005804 if (
5805 (capture_pattern_var = capture_pattern_rule(p)) // capture_pattern
5806 )
5807 {
5808 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "capture_pattern"));
5809 _res = capture_pattern_var;
5810 goto done;
5811 }
5812 p->mark = _mark;
5813 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5814 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "capture_pattern"));
5815 }
5816 { // wildcard_pattern
5817 if (p->error_indicator) {
5818 D(p->level--);
5819 return NULL;
5820 }
5821 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "wildcard_pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005822 pattern_ty wildcard_pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08005823 if (
5824 (wildcard_pattern_var = wildcard_pattern_rule(p)) // wildcard_pattern
5825 )
5826 {
5827 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "wildcard_pattern"));
5828 _res = wildcard_pattern_var;
5829 goto done;
5830 }
5831 p->mark = _mark;
5832 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5833 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "wildcard_pattern"));
5834 }
5835 { // value_pattern
5836 if (p->error_indicator) {
5837 D(p->level--);
5838 return NULL;
5839 }
5840 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "value_pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005841 pattern_ty value_pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08005842 if (
5843 (value_pattern_var = value_pattern_rule(p)) // value_pattern
5844 )
5845 {
5846 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "value_pattern"));
5847 _res = value_pattern_var;
5848 goto done;
5849 }
5850 p->mark = _mark;
5851 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5852 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "value_pattern"));
5853 }
5854 { // group_pattern
5855 if (p->error_indicator) {
5856 D(p->level--);
5857 return NULL;
5858 }
5859 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "group_pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005860 pattern_ty group_pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08005861 if (
5862 (group_pattern_var = group_pattern_rule(p)) // group_pattern
5863 )
5864 {
5865 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "group_pattern"));
5866 _res = group_pattern_var;
5867 goto done;
5868 }
5869 p->mark = _mark;
5870 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5871 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "group_pattern"));
5872 }
5873 { // sequence_pattern
5874 if (p->error_indicator) {
5875 D(p->level--);
5876 return NULL;
5877 }
5878 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "sequence_pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005879 pattern_ty sequence_pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08005880 if (
5881 (sequence_pattern_var = sequence_pattern_rule(p)) // sequence_pattern
5882 )
5883 {
5884 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "sequence_pattern"));
5885 _res = sequence_pattern_var;
5886 goto done;
5887 }
5888 p->mark = _mark;
5889 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5890 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "sequence_pattern"));
5891 }
5892 { // mapping_pattern
5893 if (p->error_indicator) {
5894 D(p->level--);
5895 return NULL;
5896 }
5897 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "mapping_pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005898 pattern_ty mapping_pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08005899 if (
5900 (mapping_pattern_var = mapping_pattern_rule(p)) // mapping_pattern
5901 )
5902 {
5903 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "mapping_pattern"));
5904 _res = mapping_pattern_var;
5905 goto done;
5906 }
5907 p->mark = _mark;
5908 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5909 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "mapping_pattern"));
5910 }
5911 { // class_pattern
5912 if (p->error_indicator) {
5913 D(p->level--);
5914 return NULL;
5915 }
5916 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "class_pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005917 pattern_ty class_pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08005918 if (
5919 (class_pattern_var = class_pattern_rule(p)) // class_pattern
5920 )
5921 {
5922 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "class_pattern"));
5923 _res = class_pattern_var;
5924 goto done;
5925 }
5926 p->mark = _mark;
5927 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5928 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "class_pattern"));
5929 }
5930 _res = NULL;
5931 done:
5932 D(p->level--);
5933 return _res;
5934}
5935
5936// literal_pattern:
5937// | signed_number !('+' | '-')
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005938// | complex_number
Brandt Bucher145bf262021-02-26 14:51:55 -08005939// | strings
5940// | 'None'
5941// | 'True'
5942// | 'False'
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005943static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08005944literal_pattern_rule(Parser *p)
5945{
5946 D(p->level++);
5947 if (p->error_indicator) {
5948 D(p->level--);
5949 return NULL;
5950 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005951 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08005952 int _mark = p->mark;
5953 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
5954 p->error_indicator = 1;
5955 D(p->level--);
5956 return NULL;
5957 }
5958 int _start_lineno = p->tokens[_mark]->lineno;
5959 UNUSED(_start_lineno); // Only used by EXTRA macro
5960 int _start_col_offset = p->tokens[_mark]->col_offset;
5961 UNUSED(_start_col_offset); // Only used by EXTRA macro
5962 { // signed_number !('+' | '-')
5963 if (p->error_indicator) {
5964 D(p->level--);
5965 return NULL;
5966 }
5967 D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "signed_number !('+' | '-')"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005968 expr_ty value;
Brandt Bucher145bf262021-02-26 14:51:55 -08005969 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005970 (value = signed_number_rule(p)) // signed_number
Brandt Bucher145bf262021-02-26 14:51:55 -08005971 &&
5972 _PyPegen_lookahead(0, _tmp_53_rule, p)
5973 )
5974 {
5975 D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "signed_number !('+' | '-')"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005976 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5977 if (_token == NULL) {
5978 D(p->level--);
5979 return NULL;
5980 }
5981 int _end_lineno = _token->end_lineno;
5982 UNUSED(_end_lineno); // Only used by EXTRA macro
5983 int _end_col_offset = _token->end_col_offset;
5984 UNUSED(_end_col_offset); // Only used by EXTRA macro
5985 _res = _PyAST_MatchValue ( value , EXTRA );
5986 if (_res == NULL && PyErr_Occurred()) {
5987 p->error_indicator = 1;
5988 D(p->level--);
5989 return NULL;
5990 }
Brandt Bucher145bf262021-02-26 14:51:55 -08005991 goto done;
5992 }
5993 p->mark = _mark;
5994 D(fprintf(stderr, "%*c%s literal_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5995 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "signed_number !('+' | '-')"));
5996 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005997 { // complex_number
Brandt Bucher145bf262021-02-26 14:51:55 -08005998 if (p->error_indicator) {
5999 D(p->level--);
6000 return NULL;
6001 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006002 D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "complex_number"));
6003 expr_ty value;
Brandt Bucher145bf262021-02-26 14:51:55 -08006004 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006005 (value = complex_number_rule(p)) // complex_number
Brandt Bucher145bf262021-02-26 14:51:55 -08006006 )
6007 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006008 D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "complex_number"));
Brandt Bucher145bf262021-02-26 14:51:55 -08006009 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6010 if (_token == NULL) {
6011 D(p->level--);
6012 return NULL;
6013 }
6014 int _end_lineno = _token->end_lineno;
6015 UNUSED(_end_lineno); // Only used by EXTRA macro
6016 int _end_col_offset = _token->end_col_offset;
6017 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006018 _res = _PyAST_MatchValue ( value , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08006019 if (_res == NULL && PyErr_Occurred()) {
6020 p->error_indicator = 1;
6021 D(p->level--);
6022 return NULL;
6023 }
6024 goto done;
6025 }
6026 p->mark = _mark;
6027 D(fprintf(stderr, "%*c%s literal_pattern[%d-%d]: %s failed!\n", p->level, ' ',
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006028 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "complex_number"));
Brandt Bucher145bf262021-02-26 14:51:55 -08006029 }
6030 { // strings
6031 if (p->error_indicator) {
6032 D(p->level--);
6033 return NULL;
6034 }
6035 D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "strings"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006036 expr_ty value;
Brandt Bucher145bf262021-02-26 14:51:55 -08006037 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006038 (value = strings_rule(p)) // strings
Brandt Bucher145bf262021-02-26 14:51:55 -08006039 )
6040 {
6041 D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "strings"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006042 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6043 if (_token == NULL) {
6044 D(p->level--);
6045 return NULL;
6046 }
6047 int _end_lineno = _token->end_lineno;
6048 UNUSED(_end_lineno); // Only used by EXTRA macro
6049 int _end_col_offset = _token->end_col_offset;
6050 UNUSED(_end_col_offset); // Only used by EXTRA macro
6051 _res = _PyAST_MatchValue ( value , EXTRA );
6052 if (_res == NULL && PyErr_Occurred()) {
6053 p->error_indicator = 1;
6054 D(p->level--);
6055 return NULL;
6056 }
Brandt Bucher145bf262021-02-26 14:51:55 -08006057 goto done;
6058 }
6059 p->mark = _mark;
6060 D(fprintf(stderr, "%*c%s literal_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6061 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "strings"));
6062 }
6063 { // 'None'
6064 if (p->error_indicator) {
6065 D(p->level--);
6066 return NULL;
6067 }
6068 D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'None'"));
6069 Token * _keyword;
6070 if (
6071 (_keyword = _PyPegen_expect_token(p, 523)) // token='None'
6072 )
6073 {
6074 D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'"));
6075 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6076 if (_token == NULL) {
6077 D(p->level--);
6078 return NULL;
6079 }
6080 int _end_lineno = _token->end_lineno;
6081 UNUSED(_end_lineno); // Only used by EXTRA macro
6082 int _end_col_offset = _token->end_col_offset;
6083 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006084 _res = _PyAST_MatchSingleton ( Py_None , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08006085 if (_res == NULL && PyErr_Occurred()) {
6086 p->error_indicator = 1;
6087 D(p->level--);
6088 return NULL;
6089 }
6090 goto done;
6091 }
6092 p->mark = _mark;
6093 D(fprintf(stderr, "%*c%s literal_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6094 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'None'"));
6095 }
6096 { // 'True'
6097 if (p->error_indicator) {
6098 D(p->level--);
6099 return NULL;
6100 }
6101 D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'True'"));
6102 Token * _keyword;
6103 if (
6104 (_keyword = _PyPegen_expect_token(p, 524)) // token='True'
6105 )
6106 {
6107 D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'"));
6108 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6109 if (_token == NULL) {
6110 D(p->level--);
6111 return NULL;
6112 }
6113 int _end_lineno = _token->end_lineno;
6114 UNUSED(_end_lineno); // Only used by EXTRA macro
6115 int _end_col_offset = _token->end_col_offset;
6116 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006117 _res = _PyAST_MatchSingleton ( Py_True , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08006118 if (_res == NULL && PyErr_Occurred()) {
6119 p->error_indicator = 1;
6120 D(p->level--);
6121 return NULL;
6122 }
6123 goto done;
6124 }
6125 p->mark = _mark;
6126 D(fprintf(stderr, "%*c%s literal_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6127 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'True'"));
6128 }
6129 { // 'False'
6130 if (p->error_indicator) {
6131 D(p->level--);
6132 return NULL;
6133 }
6134 D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False'"));
6135 Token * _keyword;
6136 if (
6137 (_keyword = _PyPegen_expect_token(p, 525)) // token='False'
6138 )
6139 {
6140 D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'"));
6141 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6142 if (_token == NULL) {
6143 D(p->level--);
6144 return NULL;
6145 }
6146 int _end_lineno = _token->end_lineno;
6147 UNUSED(_end_lineno); // Only used by EXTRA macro
6148 int _end_col_offset = _token->end_col_offset;
6149 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006150 _res = _PyAST_MatchSingleton ( Py_False , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08006151 if (_res == NULL && PyErr_Occurred()) {
6152 p->error_indicator = 1;
6153 D(p->level--);
6154 return NULL;
6155 }
6156 goto done;
6157 }
6158 p->mark = _mark;
6159 D(fprintf(stderr, "%*c%s literal_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6160 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'False'"));
6161 }
6162 _res = NULL;
6163 done:
6164 D(p->level--);
6165 return _res;
6166}
6167
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006168// literal_expr:
6169// | signed_number !('+' | '-')
6170// | complex_number
6171// | strings
6172// | 'None'
6173// | 'True'
6174// | 'False'
6175static expr_ty
6176literal_expr_rule(Parser *p)
6177{
6178 D(p->level++);
6179 if (p->error_indicator) {
6180 D(p->level--);
6181 return NULL;
6182 }
6183 expr_ty _res = NULL;
6184 int _mark = p->mark;
6185 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6186 p->error_indicator = 1;
6187 D(p->level--);
6188 return NULL;
6189 }
6190 int _start_lineno = p->tokens[_mark]->lineno;
6191 UNUSED(_start_lineno); // Only used by EXTRA macro
6192 int _start_col_offset = p->tokens[_mark]->col_offset;
6193 UNUSED(_start_col_offset); // Only used by EXTRA macro
6194 { // signed_number !('+' | '-')
6195 if (p->error_indicator) {
6196 D(p->level--);
6197 return NULL;
6198 }
6199 D(fprintf(stderr, "%*c> literal_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "signed_number !('+' | '-')"));
6200 expr_ty signed_number_var;
6201 if (
6202 (signed_number_var = signed_number_rule(p)) // signed_number
6203 &&
6204 _PyPegen_lookahead(0, _tmp_54_rule, p)
6205 )
6206 {
6207 D(fprintf(stderr, "%*c+ literal_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "signed_number !('+' | '-')"));
6208 _res = signed_number_var;
6209 goto done;
6210 }
6211 p->mark = _mark;
6212 D(fprintf(stderr, "%*c%s literal_expr[%d-%d]: %s failed!\n", p->level, ' ',
6213 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "signed_number !('+' | '-')"));
6214 }
6215 { // complex_number
6216 if (p->error_indicator) {
6217 D(p->level--);
6218 return NULL;
6219 }
6220 D(fprintf(stderr, "%*c> literal_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "complex_number"));
6221 expr_ty complex_number_var;
6222 if (
6223 (complex_number_var = complex_number_rule(p)) // complex_number
6224 )
6225 {
6226 D(fprintf(stderr, "%*c+ literal_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "complex_number"));
6227 _res = complex_number_var;
6228 goto done;
6229 }
6230 p->mark = _mark;
6231 D(fprintf(stderr, "%*c%s literal_expr[%d-%d]: %s failed!\n", p->level, ' ',
6232 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "complex_number"));
6233 }
6234 { // strings
6235 if (p->error_indicator) {
6236 D(p->level--);
6237 return NULL;
6238 }
6239 D(fprintf(stderr, "%*c> literal_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "strings"));
6240 expr_ty strings_var;
6241 if (
6242 (strings_var = strings_rule(p)) // strings
6243 )
6244 {
6245 D(fprintf(stderr, "%*c+ literal_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "strings"));
6246 _res = strings_var;
6247 goto done;
6248 }
6249 p->mark = _mark;
6250 D(fprintf(stderr, "%*c%s literal_expr[%d-%d]: %s failed!\n", p->level, ' ',
6251 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "strings"));
6252 }
6253 { // 'None'
6254 if (p->error_indicator) {
6255 D(p->level--);
6256 return NULL;
6257 }
6258 D(fprintf(stderr, "%*c> literal_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'None'"));
6259 Token * _keyword;
6260 if (
6261 (_keyword = _PyPegen_expect_token(p, 523)) // token='None'
6262 )
6263 {
6264 D(fprintf(stderr, "%*c+ literal_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'"));
6265 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6266 if (_token == NULL) {
6267 D(p->level--);
6268 return NULL;
6269 }
6270 int _end_lineno = _token->end_lineno;
6271 UNUSED(_end_lineno); // Only used by EXTRA macro
6272 int _end_col_offset = _token->end_col_offset;
6273 UNUSED(_end_col_offset); // Only used by EXTRA macro
6274 _res = _PyAST_Constant ( Py_None , NULL , EXTRA );
6275 if (_res == NULL && PyErr_Occurred()) {
6276 p->error_indicator = 1;
6277 D(p->level--);
6278 return NULL;
6279 }
6280 goto done;
6281 }
6282 p->mark = _mark;
6283 D(fprintf(stderr, "%*c%s literal_expr[%d-%d]: %s failed!\n", p->level, ' ',
6284 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'None'"));
6285 }
6286 { // 'True'
6287 if (p->error_indicator) {
6288 D(p->level--);
6289 return NULL;
6290 }
6291 D(fprintf(stderr, "%*c> literal_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'True'"));
6292 Token * _keyword;
6293 if (
6294 (_keyword = _PyPegen_expect_token(p, 524)) // token='True'
6295 )
6296 {
6297 D(fprintf(stderr, "%*c+ literal_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'"));
6298 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6299 if (_token == NULL) {
6300 D(p->level--);
6301 return NULL;
6302 }
6303 int _end_lineno = _token->end_lineno;
6304 UNUSED(_end_lineno); // Only used by EXTRA macro
6305 int _end_col_offset = _token->end_col_offset;
6306 UNUSED(_end_col_offset); // Only used by EXTRA macro
6307 _res = _PyAST_Constant ( Py_True , NULL , EXTRA );
6308 if (_res == NULL && PyErr_Occurred()) {
6309 p->error_indicator = 1;
6310 D(p->level--);
6311 return NULL;
6312 }
6313 goto done;
6314 }
6315 p->mark = _mark;
6316 D(fprintf(stderr, "%*c%s literal_expr[%d-%d]: %s failed!\n", p->level, ' ',
6317 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'True'"));
6318 }
6319 { // 'False'
6320 if (p->error_indicator) {
6321 D(p->level--);
6322 return NULL;
6323 }
6324 D(fprintf(stderr, "%*c> literal_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False'"));
6325 Token * _keyword;
6326 if (
6327 (_keyword = _PyPegen_expect_token(p, 525)) // token='False'
6328 )
6329 {
6330 D(fprintf(stderr, "%*c+ literal_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'"));
6331 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6332 if (_token == NULL) {
6333 D(p->level--);
6334 return NULL;
6335 }
6336 int _end_lineno = _token->end_lineno;
6337 UNUSED(_end_lineno); // Only used by EXTRA macro
6338 int _end_col_offset = _token->end_col_offset;
6339 UNUSED(_end_col_offset); // Only used by EXTRA macro
6340 _res = _PyAST_Constant ( Py_False , NULL , EXTRA );
6341 if (_res == NULL && PyErr_Occurred()) {
6342 p->error_indicator = 1;
6343 D(p->level--);
6344 return NULL;
6345 }
6346 goto done;
6347 }
6348 p->mark = _mark;
6349 D(fprintf(stderr, "%*c%s literal_expr[%d-%d]: %s failed!\n", p->level, ' ',
6350 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'False'"));
6351 }
6352 _res = NULL;
6353 done:
6354 D(p->level--);
6355 return _res;
6356}
6357
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07006358// complex_number:
6359// | signed_real_number '+' imaginary_number
6360// | signed_real_number '-' imaginary_number
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006361static expr_ty
6362complex_number_rule(Parser *p)
6363{
6364 D(p->level++);
6365 if (p->error_indicator) {
6366 D(p->level--);
6367 return NULL;
6368 }
6369 expr_ty _res = NULL;
6370 int _mark = p->mark;
6371 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6372 p->error_indicator = 1;
6373 D(p->level--);
6374 return NULL;
6375 }
6376 int _start_lineno = p->tokens[_mark]->lineno;
6377 UNUSED(_start_lineno); // Only used by EXTRA macro
6378 int _start_col_offset = p->tokens[_mark]->col_offset;
6379 UNUSED(_start_col_offset); // Only used by EXTRA macro
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07006380 { // signed_real_number '+' imaginary_number
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006381 if (p->error_indicator) {
6382 D(p->level--);
6383 return NULL;
6384 }
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07006385 D(fprintf(stderr, "%*c> complex_number[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "signed_real_number '+' imaginary_number"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006386 Token * _literal;
6387 expr_ty imag;
6388 expr_ty real;
6389 if (
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07006390 (real = signed_real_number_rule(p)) // signed_real_number
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006391 &&
6392 (_literal = _PyPegen_expect_token(p, 14)) // token='+'
6393 &&
6394 (imag = imaginary_number_rule(p)) // imaginary_number
6395 )
6396 {
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07006397 D(fprintf(stderr, "%*c+ complex_number[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "signed_real_number '+' imaginary_number"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006398 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6399 if (_token == NULL) {
6400 D(p->level--);
6401 return NULL;
6402 }
6403 int _end_lineno = _token->end_lineno;
6404 UNUSED(_end_lineno); // Only used by EXTRA macro
6405 int _end_col_offset = _token->end_col_offset;
6406 UNUSED(_end_col_offset); // Only used by EXTRA macro
6407 _res = _PyAST_BinOp ( real , Add , imag , EXTRA );
6408 if (_res == NULL && PyErr_Occurred()) {
6409 p->error_indicator = 1;
6410 D(p->level--);
6411 return NULL;
6412 }
6413 goto done;
6414 }
6415 p->mark = _mark;
6416 D(fprintf(stderr, "%*c%s complex_number[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07006417 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "signed_real_number '+' imaginary_number"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006418 }
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07006419 { // signed_real_number '-' imaginary_number
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006420 if (p->error_indicator) {
6421 D(p->level--);
6422 return NULL;
6423 }
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07006424 D(fprintf(stderr, "%*c> complex_number[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "signed_real_number '-' imaginary_number"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006425 Token * _literal;
6426 expr_ty imag;
6427 expr_ty real;
6428 if (
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07006429 (real = signed_real_number_rule(p)) // signed_real_number
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006430 &&
6431 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
6432 &&
6433 (imag = imaginary_number_rule(p)) // imaginary_number
6434 )
6435 {
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07006436 D(fprintf(stderr, "%*c+ complex_number[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "signed_real_number '-' imaginary_number"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006437 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6438 if (_token == NULL) {
6439 D(p->level--);
6440 return NULL;
6441 }
6442 int _end_lineno = _token->end_lineno;
6443 UNUSED(_end_lineno); // Only used by EXTRA macro
6444 int _end_col_offset = _token->end_col_offset;
6445 UNUSED(_end_col_offset); // Only used by EXTRA macro
6446 _res = _PyAST_BinOp ( real , Sub , imag , EXTRA );
6447 if (_res == NULL && PyErr_Occurred()) {
6448 p->error_indicator = 1;
6449 D(p->level--);
6450 return NULL;
6451 }
6452 goto done;
6453 }
6454 p->mark = _mark;
6455 D(fprintf(stderr, "%*c%s complex_number[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07006456 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "signed_real_number '-' imaginary_number"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006457 }
6458 _res = NULL;
6459 done:
6460 D(p->level--);
6461 return _res;
6462}
6463
Brandt Bucher145bf262021-02-26 14:51:55 -08006464// signed_number: NUMBER | '-' NUMBER
6465static expr_ty
6466signed_number_rule(Parser *p)
6467{
6468 D(p->level++);
6469 if (p->error_indicator) {
6470 D(p->level--);
6471 return NULL;
6472 }
6473 expr_ty _res = NULL;
6474 int _mark = p->mark;
6475 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6476 p->error_indicator = 1;
6477 D(p->level--);
6478 return NULL;
6479 }
6480 int _start_lineno = p->tokens[_mark]->lineno;
6481 UNUSED(_start_lineno); // Only used by EXTRA macro
6482 int _start_col_offset = p->tokens[_mark]->col_offset;
6483 UNUSED(_start_col_offset); // Only used by EXTRA macro
6484 { // NUMBER
6485 if (p->error_indicator) {
6486 D(p->level--);
6487 return NULL;
6488 }
6489 D(fprintf(stderr, "%*c> signed_number[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NUMBER"));
6490 expr_ty number_var;
6491 if (
6492 (number_var = _PyPegen_number_token(p)) // NUMBER
6493 )
6494 {
6495 D(fprintf(stderr, "%*c+ signed_number[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NUMBER"));
6496 _res = number_var;
6497 goto done;
6498 }
6499 p->mark = _mark;
6500 D(fprintf(stderr, "%*c%s signed_number[%d-%d]: %s failed!\n", p->level, ' ',
6501 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NUMBER"));
6502 }
6503 { // '-' NUMBER
6504 if (p->error_indicator) {
6505 D(p->level--);
6506 return NULL;
6507 }
6508 D(fprintf(stderr, "%*c> signed_number[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-' NUMBER"));
6509 Token * _literal;
6510 expr_ty number;
6511 if (
6512 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
6513 &&
6514 (number = _PyPegen_number_token(p)) // NUMBER
6515 )
6516 {
6517 D(fprintf(stderr, "%*c+ signed_number[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-' NUMBER"));
6518 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6519 if (_token == NULL) {
6520 D(p->level--);
6521 return NULL;
6522 }
6523 int _end_lineno = _token->end_lineno;
6524 UNUSED(_end_lineno); // Only used by EXTRA macro
6525 int _end_col_offset = _token->end_col_offset;
6526 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02006527 _res = _PyAST_UnaryOp ( USub , number , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08006528 if (_res == NULL && PyErr_Occurred()) {
6529 p->error_indicator = 1;
6530 D(p->level--);
6531 return NULL;
6532 }
6533 goto done;
6534 }
6535 p->mark = _mark;
6536 D(fprintf(stderr, "%*c%s signed_number[%d-%d]: %s failed!\n", p->level, ' ',
6537 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-' NUMBER"));
6538 }
6539 _res = NULL;
6540 done:
6541 D(p->level--);
6542 return _res;
6543}
6544
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07006545// signed_real_number: real_number | '-' real_number
6546static expr_ty
6547signed_real_number_rule(Parser *p)
6548{
6549 D(p->level++);
6550 if (p->error_indicator) {
6551 D(p->level--);
6552 return NULL;
6553 }
6554 expr_ty _res = NULL;
6555 int _mark = p->mark;
6556 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6557 p->error_indicator = 1;
6558 D(p->level--);
6559 return NULL;
6560 }
6561 int _start_lineno = p->tokens[_mark]->lineno;
6562 UNUSED(_start_lineno); // Only used by EXTRA macro
6563 int _start_col_offset = p->tokens[_mark]->col_offset;
6564 UNUSED(_start_col_offset); // Only used by EXTRA macro
6565 { // real_number
6566 if (p->error_indicator) {
6567 D(p->level--);
6568 return NULL;
6569 }
6570 D(fprintf(stderr, "%*c> signed_real_number[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "real_number"));
6571 expr_ty real_number_var;
6572 if (
6573 (real_number_var = real_number_rule(p)) // real_number
6574 )
6575 {
6576 D(fprintf(stderr, "%*c+ signed_real_number[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "real_number"));
6577 _res = real_number_var;
6578 goto done;
6579 }
6580 p->mark = _mark;
6581 D(fprintf(stderr, "%*c%s signed_real_number[%d-%d]: %s failed!\n", p->level, ' ',
6582 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "real_number"));
6583 }
6584 { // '-' real_number
6585 if (p->error_indicator) {
6586 D(p->level--);
6587 return NULL;
6588 }
6589 D(fprintf(stderr, "%*c> signed_real_number[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-' real_number"));
6590 Token * _literal;
6591 expr_ty real;
6592 if (
6593 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
6594 &&
6595 (real = real_number_rule(p)) // real_number
6596 )
6597 {
6598 D(fprintf(stderr, "%*c+ signed_real_number[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-' real_number"));
6599 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6600 if (_token == NULL) {
6601 D(p->level--);
6602 return NULL;
6603 }
6604 int _end_lineno = _token->end_lineno;
6605 UNUSED(_end_lineno); // Only used by EXTRA macro
6606 int _end_col_offset = _token->end_col_offset;
6607 UNUSED(_end_col_offset); // Only used by EXTRA macro
6608 _res = _PyAST_UnaryOp ( USub , real , EXTRA );
6609 if (_res == NULL && PyErr_Occurred()) {
6610 p->error_indicator = 1;
6611 D(p->level--);
6612 return NULL;
6613 }
6614 goto done;
6615 }
6616 p->mark = _mark;
6617 D(fprintf(stderr, "%*c%s signed_real_number[%d-%d]: %s failed!\n", p->level, ' ',
6618 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-' real_number"));
6619 }
6620 _res = NULL;
6621 done:
6622 D(p->level--);
6623 return _res;
6624}
6625
6626// real_number: NUMBER
6627static expr_ty
6628real_number_rule(Parser *p)
6629{
6630 D(p->level++);
6631 if (p->error_indicator) {
6632 D(p->level--);
6633 return NULL;
6634 }
6635 expr_ty _res = NULL;
6636 int _mark = p->mark;
6637 { // NUMBER
6638 if (p->error_indicator) {
6639 D(p->level--);
6640 return NULL;
6641 }
6642 D(fprintf(stderr, "%*c> real_number[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NUMBER"));
6643 expr_ty real;
6644 if (
6645 (real = _PyPegen_number_token(p)) // NUMBER
6646 )
6647 {
6648 D(fprintf(stderr, "%*c+ real_number[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NUMBER"));
6649 _res = _PyPegen_ensure_real ( p , real );
6650 if (_res == NULL && PyErr_Occurred()) {
6651 p->error_indicator = 1;
6652 D(p->level--);
6653 return NULL;
6654 }
6655 goto done;
6656 }
6657 p->mark = _mark;
6658 D(fprintf(stderr, "%*c%s real_number[%d-%d]: %s failed!\n", p->level, ' ',
6659 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NUMBER"));
6660 }
6661 _res = NULL;
6662 done:
6663 D(p->level--);
6664 return _res;
6665}
6666
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006667// imaginary_number: NUMBER
Brandt Bucher145bf262021-02-26 14:51:55 -08006668static expr_ty
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006669imaginary_number_rule(Parser *p)
6670{
6671 D(p->level++);
6672 if (p->error_indicator) {
6673 D(p->level--);
6674 return NULL;
6675 }
6676 expr_ty _res = NULL;
6677 int _mark = p->mark;
6678 { // NUMBER
6679 if (p->error_indicator) {
6680 D(p->level--);
6681 return NULL;
6682 }
6683 D(fprintf(stderr, "%*c> imaginary_number[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NUMBER"));
6684 expr_ty imag;
6685 if (
6686 (imag = _PyPegen_number_token(p)) // NUMBER
6687 )
6688 {
6689 D(fprintf(stderr, "%*c+ imaginary_number[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NUMBER"));
6690 _res = _PyPegen_ensure_imaginary ( p , imag );
6691 if (_res == NULL && PyErr_Occurred()) {
6692 p->error_indicator = 1;
6693 D(p->level--);
6694 return NULL;
6695 }
6696 goto done;
6697 }
6698 p->mark = _mark;
6699 D(fprintf(stderr, "%*c%s imaginary_number[%d-%d]: %s failed!\n", p->level, ' ',
6700 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NUMBER"));
6701 }
6702 _res = NULL;
6703 done:
6704 D(p->level--);
6705 return _res;
6706}
6707
6708// capture_pattern: pattern_capture_target
6709static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08006710capture_pattern_rule(Parser *p)
6711{
6712 D(p->level++);
6713 if (p->error_indicator) {
6714 D(p->level--);
6715 return NULL;
6716 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006717 pattern_ty _res = NULL;
6718 int _mark = p->mark;
6719 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6720 p->error_indicator = 1;
6721 D(p->level--);
6722 return NULL;
6723 }
6724 int _start_lineno = p->tokens[_mark]->lineno;
6725 UNUSED(_start_lineno); // Only used by EXTRA macro
6726 int _start_col_offset = p->tokens[_mark]->col_offset;
6727 UNUSED(_start_col_offset); // Only used by EXTRA macro
6728 { // pattern_capture_target
6729 if (p->error_indicator) {
6730 D(p->level--);
6731 return NULL;
6732 }
6733 D(fprintf(stderr, "%*c> capture_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "pattern_capture_target"));
6734 expr_ty target;
6735 if (
6736 (target = pattern_capture_target_rule(p)) // pattern_capture_target
6737 )
6738 {
6739 D(fprintf(stderr, "%*c+ capture_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "pattern_capture_target"));
6740 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6741 if (_token == NULL) {
6742 D(p->level--);
6743 return NULL;
6744 }
6745 int _end_lineno = _token->end_lineno;
6746 UNUSED(_end_lineno); // Only used by EXTRA macro
6747 int _end_col_offset = _token->end_col_offset;
6748 UNUSED(_end_col_offset); // Only used by EXTRA macro
6749 _res = _PyAST_MatchAs ( NULL , target -> v . Name . id , EXTRA );
6750 if (_res == NULL && PyErr_Occurred()) {
6751 p->error_indicator = 1;
6752 D(p->level--);
6753 return NULL;
6754 }
6755 goto done;
6756 }
6757 p->mark = _mark;
6758 D(fprintf(stderr, "%*c%s capture_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6759 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "pattern_capture_target"));
6760 }
6761 _res = NULL;
6762 done:
6763 D(p->level--);
6764 return _res;
6765}
6766
6767// pattern_capture_target: !"_" NAME !('.' | '(' | '=')
6768static expr_ty
6769pattern_capture_target_rule(Parser *p)
6770{
6771 D(p->level++);
6772 if (p->error_indicator) {
6773 D(p->level--);
6774 return NULL;
6775 }
Brandt Bucher145bf262021-02-26 14:51:55 -08006776 expr_ty _res = NULL;
6777 int _mark = p->mark;
6778 { // !"_" NAME !('.' | '(' | '=')
6779 if (p->error_indicator) {
6780 D(p->level--);
6781 return NULL;
6782 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006783 D(fprintf(stderr, "%*c> pattern_capture_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "!\"_\" NAME !('.' | '(' | '=')"));
Brandt Bucher145bf262021-02-26 14:51:55 -08006784 expr_ty name;
6785 if (
6786 _PyPegen_lookahead_with_string(0, _PyPegen_expect_soft_keyword, p, "_")
6787 &&
6788 (name = _PyPegen_name_token(p)) // NAME
6789 &&
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006790 _PyPegen_lookahead(0, _tmp_55_rule, p)
Brandt Bucher145bf262021-02-26 14:51:55 -08006791 )
6792 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006793 D(fprintf(stderr, "%*c+ pattern_capture_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "!\"_\" NAME !('.' | '(' | '=')"));
Brandt Bucher145bf262021-02-26 14:51:55 -08006794 _res = _PyPegen_set_expr_context ( p , name , Store );
6795 if (_res == NULL && PyErr_Occurred()) {
6796 p->error_indicator = 1;
6797 D(p->level--);
6798 return NULL;
6799 }
6800 goto done;
6801 }
6802 p->mark = _mark;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006803 D(fprintf(stderr, "%*c%s pattern_capture_target[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -08006804 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "!\"_\" NAME !('.' | '(' | '=')"));
6805 }
6806 _res = NULL;
6807 done:
6808 D(p->level--);
6809 return _res;
6810}
6811
6812// wildcard_pattern: "_"
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006813static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08006814wildcard_pattern_rule(Parser *p)
6815{
6816 D(p->level++);
6817 if (p->error_indicator) {
6818 D(p->level--);
6819 return NULL;
6820 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006821 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08006822 int _mark = p->mark;
6823 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6824 p->error_indicator = 1;
6825 D(p->level--);
6826 return NULL;
6827 }
6828 int _start_lineno = p->tokens[_mark]->lineno;
6829 UNUSED(_start_lineno); // Only used by EXTRA macro
6830 int _start_col_offset = p->tokens[_mark]->col_offset;
6831 UNUSED(_start_col_offset); // Only used by EXTRA macro
6832 { // "_"
6833 if (p->error_indicator) {
6834 D(p->level--);
6835 return NULL;
6836 }
6837 D(fprintf(stderr, "%*c> wildcard_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"_\""));
6838 expr_ty _keyword;
6839 if (
6840 (_keyword = _PyPegen_expect_soft_keyword(p, "_")) // soft_keyword='"_"'
6841 )
6842 {
6843 D(fprintf(stderr, "%*c+ wildcard_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"_\""));
6844 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6845 if (_token == NULL) {
6846 D(p->level--);
6847 return NULL;
6848 }
6849 int _end_lineno = _token->end_lineno;
6850 UNUSED(_end_lineno); // Only used by EXTRA macro
6851 int _end_col_offset = _token->end_col_offset;
6852 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006853 _res = _PyAST_MatchAs ( NULL , NULL , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08006854 if (_res == NULL && PyErr_Occurred()) {
6855 p->error_indicator = 1;
6856 D(p->level--);
6857 return NULL;
6858 }
6859 goto done;
6860 }
6861 p->mark = _mark;
6862 D(fprintf(stderr, "%*c%s wildcard_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6863 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"_\""));
6864 }
6865 _res = NULL;
6866 done:
6867 D(p->level--);
6868 return _res;
6869}
6870
6871// value_pattern: attr !('.' | '(' | '=')
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006872static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08006873value_pattern_rule(Parser *p)
6874{
6875 D(p->level++);
6876 if (p->error_indicator) {
6877 D(p->level--);
6878 return NULL;
6879 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006880 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08006881 int _mark = p->mark;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006882 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6883 p->error_indicator = 1;
6884 D(p->level--);
6885 return NULL;
6886 }
6887 int _start_lineno = p->tokens[_mark]->lineno;
6888 UNUSED(_start_lineno); // Only used by EXTRA macro
6889 int _start_col_offset = p->tokens[_mark]->col_offset;
6890 UNUSED(_start_col_offset); // Only used by EXTRA macro
Brandt Bucher145bf262021-02-26 14:51:55 -08006891 { // attr !('.' | '(' | '=')
6892 if (p->error_indicator) {
6893 D(p->level--);
6894 return NULL;
6895 }
6896 D(fprintf(stderr, "%*c> value_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "attr !('.' | '(' | '=')"));
6897 expr_ty attr;
6898 if (
6899 (attr = attr_rule(p)) // attr
6900 &&
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006901 _PyPegen_lookahead(0, _tmp_56_rule, p)
Brandt Bucher145bf262021-02-26 14:51:55 -08006902 )
6903 {
6904 D(fprintf(stderr, "%*c+ value_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "attr !('.' | '(' | '=')"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006905 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6906 if (_token == NULL) {
6907 D(p->level--);
6908 return NULL;
6909 }
6910 int _end_lineno = _token->end_lineno;
6911 UNUSED(_end_lineno); // Only used by EXTRA macro
6912 int _end_col_offset = _token->end_col_offset;
6913 UNUSED(_end_col_offset); // Only used by EXTRA macro
6914 _res = _PyAST_MatchValue ( attr , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08006915 if (_res == NULL && PyErr_Occurred()) {
6916 p->error_indicator = 1;
6917 D(p->level--);
6918 return NULL;
6919 }
6920 goto done;
6921 }
6922 p->mark = _mark;
6923 D(fprintf(stderr, "%*c%s value_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6924 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "attr !('.' | '(' | '=')"));
6925 }
6926 _res = NULL;
6927 done:
6928 D(p->level--);
6929 return _res;
6930}
6931
6932// Left-recursive
6933// attr: name_or_attr '.' NAME
6934static expr_ty attr_raw(Parser *);
6935static expr_ty
6936attr_rule(Parser *p)
6937{
6938 D(p->level++);
6939 expr_ty _res = NULL;
6940 if (_PyPegen_is_memoized(p, attr_type, &_res)) {
6941 D(p->level--);
6942 return _res;
6943 }
6944 int _mark = p->mark;
6945 int _resmark = p->mark;
6946 while (1) {
6947 int tmpvar_1 = _PyPegen_update_memo(p, _mark, attr_type, _res);
6948 if (tmpvar_1) {
6949 D(p->level--);
6950 return _res;
6951 }
6952 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -07006953 p->in_raw_rule++;
Brandt Bucher145bf262021-02-26 14:51:55 -08006954 void *_raw = attr_raw(p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -07006955 p->in_raw_rule--;
Brandt Bucher145bf262021-02-26 14:51:55 -08006956 if (p->error_indicator)
6957 return NULL;
6958 if (_raw == NULL || p->mark <= _resmark)
6959 break;
6960 _resmark = p->mark;
6961 _res = _raw;
6962 }
6963 p->mark = _resmark;
6964 D(p->level--);
6965 return _res;
6966}
6967static expr_ty
6968attr_raw(Parser *p)
6969{
6970 D(p->level++);
6971 if (p->error_indicator) {
6972 D(p->level--);
6973 return NULL;
6974 }
6975 expr_ty _res = NULL;
6976 int _mark = p->mark;
6977 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6978 p->error_indicator = 1;
6979 D(p->level--);
6980 return NULL;
6981 }
6982 int _start_lineno = p->tokens[_mark]->lineno;
6983 UNUSED(_start_lineno); // Only used by EXTRA macro
6984 int _start_col_offset = p->tokens[_mark]->col_offset;
6985 UNUSED(_start_col_offset); // Only used by EXTRA macro
6986 { // name_or_attr '.' NAME
6987 if (p->error_indicator) {
6988 D(p->level--);
6989 return NULL;
6990 }
6991 D(fprintf(stderr, "%*c> attr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "name_or_attr '.' NAME"));
6992 Token * _literal;
6993 expr_ty attr;
6994 expr_ty value;
6995 if (
6996 (value = name_or_attr_rule(p)) // name_or_attr
6997 &&
6998 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
6999 &&
7000 (attr = _PyPegen_name_token(p)) // NAME
7001 )
7002 {
7003 D(fprintf(stderr, "%*c+ attr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "name_or_attr '.' NAME"));
7004 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7005 if (_token == NULL) {
7006 D(p->level--);
7007 return NULL;
7008 }
7009 int _end_lineno = _token->end_lineno;
7010 UNUSED(_end_lineno); // Only used by EXTRA macro
7011 int _end_col_offset = _token->end_col_offset;
7012 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02007013 _res = _PyAST_Attribute ( value , attr -> v . Name . id , Load , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08007014 if (_res == NULL && PyErr_Occurred()) {
7015 p->error_indicator = 1;
7016 D(p->level--);
7017 return NULL;
7018 }
7019 goto done;
7020 }
7021 p->mark = _mark;
7022 D(fprintf(stderr, "%*c%s attr[%d-%d]: %s failed!\n", p->level, ' ',
7023 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "name_or_attr '.' NAME"));
7024 }
7025 _res = NULL;
7026 done:
7027 D(p->level--);
7028 return _res;
7029}
7030
7031// Left-recursive
7032// name_or_attr: attr | NAME
7033static expr_ty
7034name_or_attr_rule(Parser *p)
7035{
7036 D(p->level++);
7037 if (p->error_indicator) {
7038 D(p->level--);
7039 return NULL;
7040 }
7041 expr_ty _res = NULL;
7042 int _mark = p->mark;
7043 { // attr
7044 if (p->error_indicator) {
7045 D(p->level--);
7046 return NULL;
7047 }
7048 D(fprintf(stderr, "%*c> name_or_attr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "attr"));
7049 expr_ty attr_var;
7050 if (
7051 (attr_var = attr_rule(p)) // attr
7052 )
7053 {
7054 D(fprintf(stderr, "%*c+ name_or_attr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "attr"));
7055 _res = attr_var;
7056 goto done;
7057 }
7058 p->mark = _mark;
7059 D(fprintf(stderr, "%*c%s name_or_attr[%d-%d]: %s failed!\n", p->level, ' ',
7060 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "attr"));
7061 }
7062 { // NAME
7063 if (p->error_indicator) {
7064 D(p->level--);
7065 return NULL;
7066 }
7067 D(fprintf(stderr, "%*c> name_or_attr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
7068 expr_ty name_var;
7069 if (
7070 (name_var = _PyPegen_name_token(p)) // NAME
7071 )
7072 {
7073 D(fprintf(stderr, "%*c+ name_or_attr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
7074 _res = name_var;
7075 goto done;
7076 }
7077 p->mark = _mark;
7078 D(fprintf(stderr, "%*c%s name_or_attr[%d-%d]: %s failed!\n", p->level, ' ',
7079 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
7080 }
7081 _res = NULL;
7082 done:
7083 D(p->level--);
7084 return _res;
7085}
7086
7087// group_pattern: '(' pattern ')'
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007088static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08007089group_pattern_rule(Parser *p)
7090{
7091 D(p->level++);
7092 if (p->error_indicator) {
7093 D(p->level--);
7094 return NULL;
7095 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007096 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08007097 int _mark = p->mark;
7098 { // '(' pattern ')'
7099 if (p->error_indicator) {
7100 D(p->level--);
7101 return NULL;
7102 }
7103 D(fprintf(stderr, "%*c> group_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' pattern ')'"));
7104 Token * _literal;
7105 Token * _literal_1;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007106 pattern_ty pattern;
Brandt Bucher145bf262021-02-26 14:51:55 -08007107 if (
7108 (_literal = _PyPegen_expect_token(p, 7)) // token='('
7109 &&
7110 (pattern = pattern_rule(p)) // pattern
7111 &&
7112 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
7113 )
7114 {
7115 D(fprintf(stderr, "%*c+ group_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' pattern ')'"));
7116 _res = pattern;
7117 if (_res == NULL && PyErr_Occurred()) {
7118 p->error_indicator = 1;
7119 D(p->level--);
7120 return NULL;
7121 }
7122 goto done;
7123 }
7124 p->mark = _mark;
7125 D(fprintf(stderr, "%*c%s group_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7126 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' pattern ')'"));
7127 }
7128 _res = NULL;
7129 done:
7130 D(p->level--);
7131 return _res;
7132}
7133
7134// sequence_pattern: '[' maybe_sequence_pattern? ']' | '(' open_sequence_pattern? ')'
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007135static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08007136sequence_pattern_rule(Parser *p)
7137{
7138 D(p->level++);
7139 if (p->error_indicator) {
7140 D(p->level--);
7141 return NULL;
7142 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007143 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08007144 int _mark = p->mark;
7145 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
7146 p->error_indicator = 1;
7147 D(p->level--);
7148 return NULL;
7149 }
7150 int _start_lineno = p->tokens[_mark]->lineno;
7151 UNUSED(_start_lineno); // Only used by EXTRA macro
7152 int _start_col_offset = p->tokens[_mark]->col_offset;
7153 UNUSED(_start_col_offset); // Only used by EXTRA macro
7154 { // '[' maybe_sequence_pattern? ']'
7155 if (p->error_indicator) {
7156 D(p->level--);
7157 return NULL;
7158 }
7159 D(fprintf(stderr, "%*c> sequence_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' maybe_sequence_pattern? ']'"));
7160 Token * _literal;
7161 Token * _literal_1;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007162 void *patterns;
Brandt Bucher145bf262021-02-26 14:51:55 -08007163 if (
7164 (_literal = _PyPegen_expect_token(p, 9)) // token='['
7165 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02007166 (patterns = maybe_sequence_pattern_rule(p), !p->error_indicator) // maybe_sequence_pattern?
Brandt Bucher145bf262021-02-26 14:51:55 -08007167 &&
7168 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
7169 )
7170 {
7171 D(fprintf(stderr, "%*c+ sequence_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'[' maybe_sequence_pattern? ']'"));
7172 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7173 if (_token == NULL) {
7174 D(p->level--);
7175 return NULL;
7176 }
7177 int _end_lineno = _token->end_lineno;
7178 UNUSED(_end_lineno); // Only used by EXTRA macro
7179 int _end_col_offset = _token->end_col_offset;
7180 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007181 _res = _PyAST_MatchSequence ( patterns , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08007182 if (_res == NULL && PyErr_Occurred()) {
7183 p->error_indicator = 1;
7184 D(p->level--);
7185 return NULL;
7186 }
7187 goto done;
7188 }
7189 p->mark = _mark;
7190 D(fprintf(stderr, "%*c%s sequence_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7191 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' maybe_sequence_pattern? ']'"));
7192 }
7193 { // '(' open_sequence_pattern? ')'
7194 if (p->error_indicator) {
7195 D(p->level--);
7196 return NULL;
7197 }
7198 D(fprintf(stderr, "%*c> sequence_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' open_sequence_pattern? ')'"));
7199 Token * _literal;
7200 Token * _literal_1;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007201 void *patterns;
Brandt Bucher145bf262021-02-26 14:51:55 -08007202 if (
7203 (_literal = _PyPegen_expect_token(p, 7)) // token='('
7204 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02007205 (patterns = open_sequence_pattern_rule(p), !p->error_indicator) // open_sequence_pattern?
Brandt Bucher145bf262021-02-26 14:51:55 -08007206 &&
7207 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
7208 )
7209 {
7210 D(fprintf(stderr, "%*c+ sequence_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' open_sequence_pattern? ')'"));
7211 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7212 if (_token == NULL) {
7213 D(p->level--);
7214 return NULL;
7215 }
7216 int _end_lineno = _token->end_lineno;
7217 UNUSED(_end_lineno); // Only used by EXTRA macro
7218 int _end_col_offset = _token->end_col_offset;
7219 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007220 _res = _PyAST_MatchSequence ( patterns , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08007221 if (_res == NULL && PyErr_Occurred()) {
7222 p->error_indicator = 1;
7223 D(p->level--);
7224 return NULL;
7225 }
7226 goto done;
7227 }
7228 p->mark = _mark;
7229 D(fprintf(stderr, "%*c%s sequence_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7230 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' open_sequence_pattern? ')'"));
7231 }
7232 _res = NULL;
7233 done:
7234 D(p->level--);
7235 return _res;
7236}
7237
7238// open_sequence_pattern: maybe_star_pattern ',' maybe_sequence_pattern?
7239static asdl_seq*
7240open_sequence_pattern_rule(Parser *p)
7241{
7242 D(p->level++);
7243 if (p->error_indicator) {
7244 D(p->level--);
7245 return NULL;
7246 }
7247 asdl_seq* _res = NULL;
7248 int _mark = p->mark;
7249 { // maybe_star_pattern ',' maybe_sequence_pattern?
7250 if (p->error_indicator) {
7251 D(p->level--);
7252 return NULL;
7253 }
7254 D(fprintf(stderr, "%*c> open_sequence_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "maybe_star_pattern ',' maybe_sequence_pattern?"));
7255 Token * _literal;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007256 pattern_ty pattern;
7257 void *patterns;
Brandt Bucher145bf262021-02-26 14:51:55 -08007258 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007259 (pattern = maybe_star_pattern_rule(p)) // maybe_star_pattern
Brandt Bucher145bf262021-02-26 14:51:55 -08007260 &&
7261 (_literal = _PyPegen_expect_token(p, 12)) // token=','
7262 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02007263 (patterns = maybe_sequence_pattern_rule(p), !p->error_indicator) // maybe_sequence_pattern?
Brandt Bucher145bf262021-02-26 14:51:55 -08007264 )
7265 {
7266 D(fprintf(stderr, "%*c+ open_sequence_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "maybe_star_pattern ',' maybe_sequence_pattern?"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007267 _res = _PyPegen_seq_insert_in_front ( p , pattern , patterns );
Brandt Bucher145bf262021-02-26 14:51:55 -08007268 if (_res == NULL && PyErr_Occurred()) {
7269 p->error_indicator = 1;
7270 D(p->level--);
7271 return NULL;
7272 }
7273 goto done;
7274 }
7275 p->mark = _mark;
7276 D(fprintf(stderr, "%*c%s open_sequence_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7277 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "maybe_star_pattern ',' maybe_sequence_pattern?"));
7278 }
7279 _res = NULL;
7280 done:
7281 D(p->level--);
7282 return _res;
7283}
7284
7285// maybe_sequence_pattern: ','.maybe_star_pattern+ ','?
7286static asdl_seq*
7287maybe_sequence_pattern_rule(Parser *p)
7288{
7289 D(p->level++);
7290 if (p->error_indicator) {
7291 D(p->level--);
7292 return NULL;
7293 }
7294 asdl_seq* _res = NULL;
7295 int _mark = p->mark;
7296 { // ','.maybe_star_pattern+ ','?
7297 if (p->error_indicator) {
7298 D(p->level--);
7299 return NULL;
7300 }
7301 D(fprintf(stderr, "%*c> maybe_sequence_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.maybe_star_pattern+ ','?"));
7302 void *_opt_var;
7303 UNUSED(_opt_var); // Silence compiler warnings
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007304 asdl_seq * patterns;
Brandt Bucher145bf262021-02-26 14:51:55 -08007305 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007306 (patterns = _gather_57_rule(p)) // ','.maybe_star_pattern+
Brandt Bucher145bf262021-02-26 14:51:55 -08007307 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02007308 (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','?
Brandt Bucher145bf262021-02-26 14:51:55 -08007309 )
7310 {
7311 D(fprintf(stderr, "%*c+ maybe_sequence_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.maybe_star_pattern+ ','?"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007312 _res = patterns;
Brandt Bucher145bf262021-02-26 14:51:55 -08007313 if (_res == NULL && PyErr_Occurred()) {
7314 p->error_indicator = 1;
7315 D(p->level--);
7316 return NULL;
7317 }
7318 goto done;
7319 }
7320 p->mark = _mark;
7321 D(fprintf(stderr, "%*c%s maybe_sequence_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7322 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.maybe_star_pattern+ ','?"));
7323 }
7324 _res = NULL;
7325 done:
7326 D(p->level--);
7327 return _res;
7328}
7329
7330// maybe_star_pattern: star_pattern | pattern
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007331static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08007332maybe_star_pattern_rule(Parser *p)
7333{
7334 D(p->level++);
7335 if (p->error_indicator) {
7336 D(p->level--);
7337 return NULL;
7338 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007339 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08007340 int _mark = p->mark;
7341 { // star_pattern
7342 if (p->error_indicator) {
7343 D(p->level--);
7344 return NULL;
7345 }
7346 D(fprintf(stderr, "%*c> maybe_star_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007347 pattern_ty star_pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08007348 if (
7349 (star_pattern_var = star_pattern_rule(p)) // star_pattern
7350 )
7351 {
7352 D(fprintf(stderr, "%*c+ maybe_star_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_pattern"));
7353 _res = star_pattern_var;
7354 goto done;
7355 }
7356 p->mark = _mark;
7357 D(fprintf(stderr, "%*c%s maybe_star_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7358 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_pattern"));
7359 }
7360 { // pattern
7361 if (p->error_indicator) {
7362 D(p->level--);
7363 return NULL;
7364 }
7365 D(fprintf(stderr, "%*c> maybe_star_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007366 pattern_ty pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08007367 if (
7368 (pattern_var = pattern_rule(p)) // pattern
7369 )
7370 {
7371 D(fprintf(stderr, "%*c+ maybe_star_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "pattern"));
7372 _res = pattern_var;
7373 goto done;
7374 }
7375 p->mark = _mark;
7376 D(fprintf(stderr, "%*c%s maybe_star_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7377 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "pattern"));
7378 }
7379 _res = NULL;
7380 done:
7381 D(p->level--);
7382 return _res;
7383}
7384
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007385// star_pattern: '*' pattern_capture_target | '*' wildcard_pattern
7386static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08007387star_pattern_rule(Parser *p)
7388{
7389 D(p->level++);
7390 if (p->error_indicator) {
7391 D(p->level--);
7392 return NULL;
7393 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007394 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08007395 int _mark = p->mark;
7396 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
7397 p->error_indicator = 1;
7398 D(p->level--);
7399 return NULL;
7400 }
7401 int _start_lineno = p->tokens[_mark]->lineno;
7402 UNUSED(_start_lineno); // Only used by EXTRA macro
7403 int _start_col_offset = p->tokens[_mark]->col_offset;
7404 UNUSED(_start_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007405 { // '*' pattern_capture_target
Brandt Bucher145bf262021-02-26 14:51:55 -08007406 if (p->error_indicator) {
7407 D(p->level--);
7408 return NULL;
7409 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007410 D(fprintf(stderr, "%*c> star_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' pattern_capture_target"));
Brandt Bucher145bf262021-02-26 14:51:55 -08007411 Token * _literal;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007412 expr_ty target;
Brandt Bucher145bf262021-02-26 14:51:55 -08007413 if (
7414 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
7415 &&
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007416 (target = pattern_capture_target_rule(p)) // pattern_capture_target
Brandt Bucher145bf262021-02-26 14:51:55 -08007417 )
7418 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007419 D(fprintf(stderr, "%*c+ star_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' pattern_capture_target"));
Brandt Bucher145bf262021-02-26 14:51:55 -08007420 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7421 if (_token == NULL) {
7422 D(p->level--);
7423 return NULL;
7424 }
7425 int _end_lineno = _token->end_lineno;
7426 UNUSED(_end_lineno); // Only used by EXTRA macro
7427 int _end_col_offset = _token->end_col_offset;
7428 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007429 _res = _PyAST_MatchStar ( target -> v . Name . id , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08007430 if (_res == NULL && PyErr_Occurred()) {
7431 p->error_indicator = 1;
7432 D(p->level--);
7433 return NULL;
7434 }
7435 goto done;
7436 }
7437 p->mark = _mark;
7438 D(fprintf(stderr, "%*c%s star_pattern[%d-%d]: %s failed!\n", p->level, ' ',
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007439 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' pattern_capture_target"));
7440 }
7441 { // '*' wildcard_pattern
7442 if (p->error_indicator) {
7443 D(p->level--);
7444 return NULL;
7445 }
7446 D(fprintf(stderr, "%*c> star_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' wildcard_pattern"));
7447 Token * _literal;
7448 pattern_ty wildcard_pattern_var;
7449 if (
7450 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
7451 &&
7452 (wildcard_pattern_var = wildcard_pattern_rule(p)) // wildcard_pattern
7453 )
7454 {
7455 D(fprintf(stderr, "%*c+ star_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' wildcard_pattern"));
7456 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7457 if (_token == NULL) {
7458 D(p->level--);
7459 return NULL;
7460 }
7461 int _end_lineno = _token->end_lineno;
7462 UNUSED(_end_lineno); // Only used by EXTRA macro
7463 int _end_col_offset = _token->end_col_offset;
7464 UNUSED(_end_col_offset); // Only used by EXTRA macro
7465 _res = _PyAST_MatchStar ( NULL , EXTRA );
7466 if (_res == NULL && PyErr_Occurred()) {
7467 p->error_indicator = 1;
7468 D(p->level--);
7469 return NULL;
7470 }
7471 goto done;
7472 }
7473 p->mark = _mark;
7474 D(fprintf(stderr, "%*c%s star_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7475 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' wildcard_pattern"));
Brandt Bucher145bf262021-02-26 14:51:55 -08007476 }
7477 _res = NULL;
7478 done:
7479 D(p->level--);
7480 return _res;
7481}
7482
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007483// mapping_pattern:
7484// | '{' '}'
7485// | '{' double_star_pattern ','? '}'
7486// | '{' items_pattern ',' double_star_pattern ','? '}'
7487// | '{' items_pattern ','? '}'
7488static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08007489mapping_pattern_rule(Parser *p)
7490{
7491 D(p->level++);
7492 if (p->error_indicator) {
7493 D(p->level--);
7494 return NULL;
7495 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007496 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08007497 int _mark = p->mark;
7498 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
7499 p->error_indicator = 1;
7500 D(p->level--);
7501 return NULL;
7502 }
7503 int _start_lineno = p->tokens[_mark]->lineno;
7504 UNUSED(_start_lineno); // Only used by EXTRA macro
7505 int _start_col_offset = p->tokens[_mark]->col_offset;
7506 UNUSED(_start_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007507 { // '{' '}'
Brandt Bucher145bf262021-02-26 14:51:55 -08007508 if (p->error_indicator) {
7509 D(p->level--);
7510 return NULL;
7511 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007512 D(fprintf(stderr, "%*c> mapping_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' '}'"));
Brandt Bucher145bf262021-02-26 14:51:55 -08007513 Token * _literal;
7514 Token * _literal_1;
Brandt Bucher145bf262021-02-26 14:51:55 -08007515 if (
7516 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
7517 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08007518 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
7519 )
7520 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007521 D(fprintf(stderr, "%*c+ mapping_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' '}'"));
Brandt Bucher145bf262021-02-26 14:51:55 -08007522 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7523 if (_token == NULL) {
7524 D(p->level--);
7525 return NULL;
7526 }
7527 int _end_lineno = _token->end_lineno;
7528 UNUSED(_end_lineno); // Only used by EXTRA macro
7529 int _end_col_offset = _token->end_col_offset;
7530 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007531 _res = _PyAST_MatchMapping ( NULL , NULL , NULL , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08007532 if (_res == NULL && PyErr_Occurred()) {
7533 p->error_indicator = 1;
7534 D(p->level--);
7535 return NULL;
7536 }
7537 goto done;
7538 }
7539 p->mark = _mark;
7540 D(fprintf(stderr, "%*c%s mapping_pattern[%d-%d]: %s failed!\n", p->level, ' ',
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007541 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' '}'"));
7542 }
7543 { // '{' double_star_pattern ','? '}'
7544 if (p->error_indicator) {
7545 D(p->level--);
7546 return NULL;
7547 }
7548 D(fprintf(stderr, "%*c> mapping_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' double_star_pattern ','? '}'"));
7549 Token * _literal;
7550 Token * _literal_1;
7551 void *_opt_var;
7552 UNUSED(_opt_var); // Silence compiler warnings
7553 expr_ty rest;
7554 if (
7555 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
7556 &&
7557 (rest = double_star_pattern_rule(p)) // double_star_pattern
7558 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02007559 (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','?
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007560 &&
7561 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
7562 )
7563 {
7564 D(fprintf(stderr, "%*c+ mapping_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' double_star_pattern ','? '}'"));
7565 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7566 if (_token == NULL) {
7567 D(p->level--);
7568 return NULL;
7569 }
7570 int _end_lineno = _token->end_lineno;
7571 UNUSED(_end_lineno); // Only used by EXTRA macro
7572 int _end_col_offset = _token->end_col_offset;
7573 UNUSED(_end_col_offset); // Only used by EXTRA macro
7574 _res = _PyAST_MatchMapping ( NULL , NULL , rest -> v . Name . id , EXTRA );
7575 if (_res == NULL && PyErr_Occurred()) {
7576 p->error_indicator = 1;
7577 D(p->level--);
7578 return NULL;
7579 }
7580 goto done;
7581 }
7582 p->mark = _mark;
7583 D(fprintf(stderr, "%*c%s mapping_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7584 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' double_star_pattern ','? '}'"));
7585 }
7586 { // '{' items_pattern ',' double_star_pattern ','? '}'
7587 if (p->error_indicator) {
7588 D(p->level--);
7589 return NULL;
7590 }
7591 D(fprintf(stderr, "%*c> mapping_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' items_pattern ',' double_star_pattern ','? '}'"));
7592 Token * _literal;
7593 Token * _literal_1;
7594 Token * _literal_2;
7595 void *_opt_var;
7596 UNUSED(_opt_var); // Silence compiler warnings
7597 asdl_seq* items;
7598 expr_ty rest;
7599 if (
7600 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
7601 &&
7602 (items = items_pattern_rule(p)) // items_pattern
7603 &&
7604 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
7605 &&
7606 (rest = double_star_pattern_rule(p)) // double_star_pattern
7607 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02007608 (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','?
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007609 &&
7610 (_literal_2 = _PyPegen_expect_token(p, 26)) // token='}'
7611 )
7612 {
7613 D(fprintf(stderr, "%*c+ mapping_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' items_pattern ',' double_star_pattern ','? '}'"));
7614 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7615 if (_token == NULL) {
7616 D(p->level--);
7617 return NULL;
7618 }
7619 int _end_lineno = _token->end_lineno;
7620 UNUSED(_end_lineno); // Only used by EXTRA macro
7621 int _end_col_offset = _token->end_col_offset;
7622 UNUSED(_end_col_offset); // Only used by EXTRA macro
7623 _res = _PyAST_MatchMapping ( CHECK ( asdl_expr_seq * , _PyPegen_get_pattern_keys ( p , items ) ) , CHECK ( asdl_pattern_seq * , _PyPegen_get_patterns ( p , items ) ) , rest -> v . Name . id , EXTRA );
7624 if (_res == NULL && PyErr_Occurred()) {
7625 p->error_indicator = 1;
7626 D(p->level--);
7627 return NULL;
7628 }
7629 goto done;
7630 }
7631 p->mark = _mark;
7632 D(fprintf(stderr, "%*c%s mapping_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7633 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' items_pattern ',' double_star_pattern ','? '}'"));
7634 }
7635 { // '{' items_pattern ','? '}'
7636 if (p->error_indicator) {
7637 D(p->level--);
7638 return NULL;
7639 }
7640 D(fprintf(stderr, "%*c> mapping_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' items_pattern ','? '}'"));
7641 Token * _literal;
7642 Token * _literal_1;
7643 void *_opt_var;
7644 UNUSED(_opt_var); // Silence compiler warnings
7645 asdl_seq* items;
7646 if (
7647 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
7648 &&
7649 (items = items_pattern_rule(p)) // items_pattern
7650 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02007651 (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','?
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007652 &&
7653 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
7654 )
7655 {
7656 D(fprintf(stderr, "%*c+ mapping_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' items_pattern ','? '}'"));
7657 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7658 if (_token == NULL) {
7659 D(p->level--);
7660 return NULL;
7661 }
7662 int _end_lineno = _token->end_lineno;
7663 UNUSED(_end_lineno); // Only used by EXTRA macro
7664 int _end_col_offset = _token->end_col_offset;
7665 UNUSED(_end_col_offset); // Only used by EXTRA macro
7666 _res = _PyAST_MatchMapping ( CHECK ( asdl_expr_seq * , _PyPegen_get_pattern_keys ( p , items ) ) , CHECK ( asdl_pattern_seq * , _PyPegen_get_patterns ( p , items ) ) , NULL , EXTRA );
7667 if (_res == NULL && PyErr_Occurred()) {
7668 p->error_indicator = 1;
7669 D(p->level--);
7670 return NULL;
7671 }
7672 goto done;
7673 }
7674 p->mark = _mark;
7675 D(fprintf(stderr, "%*c%s mapping_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7676 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' items_pattern ','? '}'"));
Brandt Bucher145bf262021-02-26 14:51:55 -08007677 }
7678 _res = NULL;
7679 done:
7680 D(p->level--);
7681 return _res;
7682}
7683
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007684// items_pattern: ','.key_value_pattern+
Brandt Bucher145bf262021-02-26 14:51:55 -08007685static asdl_seq*
7686items_pattern_rule(Parser *p)
7687{
7688 D(p->level++);
7689 if (p->error_indicator) {
7690 D(p->level--);
7691 return NULL;
7692 }
7693 asdl_seq* _res = NULL;
7694 int _mark = p->mark;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007695 { // ','.key_value_pattern+
Brandt Bucher145bf262021-02-26 14:51:55 -08007696 if (p->error_indicator) {
7697 D(p->level--);
7698 return NULL;
7699 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007700 D(fprintf(stderr, "%*c> items_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.key_value_pattern+"));
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07007701 asdl_seq * _gather_59_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08007702 if (
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07007703 (_gather_59_var = _gather_59_rule(p)) // ','.key_value_pattern+
Brandt Bucher145bf262021-02-26 14:51:55 -08007704 )
7705 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007706 D(fprintf(stderr, "%*c+ items_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.key_value_pattern+"));
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07007707 _res = _gather_59_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08007708 goto done;
7709 }
7710 p->mark = _mark;
7711 D(fprintf(stderr, "%*c%s items_pattern[%d-%d]: %s failed!\n", p->level, ' ',
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007712 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.key_value_pattern+"));
Brandt Bucher145bf262021-02-26 14:51:55 -08007713 }
7714 _res = NULL;
7715 done:
7716 D(p->level--);
7717 return _res;
7718}
7719
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007720// key_value_pattern: (literal_expr | attr) ':' pattern
7721static KeyPatternPair*
Brandt Bucher145bf262021-02-26 14:51:55 -08007722key_value_pattern_rule(Parser *p)
7723{
7724 D(p->level++);
7725 if (p->error_indicator) {
7726 D(p->level--);
7727 return NULL;
7728 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007729 KeyPatternPair* _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08007730 int _mark = p->mark;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007731 { // (literal_expr | attr) ':' pattern
Brandt Bucher145bf262021-02-26 14:51:55 -08007732 if (p->error_indicator) {
7733 D(p->level--);
7734 return NULL;
7735 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007736 D(fprintf(stderr, "%*c> key_value_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(literal_expr | attr) ':' pattern"));
Brandt Bucher145bf262021-02-26 14:51:55 -08007737 Token * _literal;
7738 void *key;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007739 pattern_ty pattern;
Brandt Bucher145bf262021-02-26 14:51:55 -08007740 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007741 (key = _tmp_61_rule(p)) // literal_expr | attr
Brandt Bucher145bf262021-02-26 14:51:55 -08007742 &&
7743 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
7744 &&
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007745 (pattern = pattern_rule(p)) // pattern
Brandt Bucher145bf262021-02-26 14:51:55 -08007746 )
7747 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007748 D(fprintf(stderr, "%*c+ key_value_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(literal_expr | attr) ':' pattern"));
7749 _res = _PyPegen_key_pattern_pair ( p , key , pattern );
Brandt Bucher145bf262021-02-26 14:51:55 -08007750 if (_res == NULL && PyErr_Occurred()) {
7751 p->error_indicator = 1;
7752 D(p->level--);
7753 return NULL;
7754 }
7755 goto done;
7756 }
7757 p->mark = _mark;
7758 D(fprintf(stderr, "%*c%s key_value_pattern[%d-%d]: %s failed!\n", p->level, ' ',
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007759 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(literal_expr | attr) ':' pattern"));
Brandt Bucher145bf262021-02-26 14:51:55 -08007760 }
7761 _res = NULL;
7762 done:
7763 D(p->level--);
7764 return _res;
7765}
7766
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007767// double_star_pattern: '**' pattern_capture_target
7768static expr_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08007769double_star_pattern_rule(Parser *p)
7770{
7771 D(p->level++);
7772 if (p->error_indicator) {
7773 D(p->level--);
7774 return NULL;
7775 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007776 expr_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08007777 int _mark = p->mark;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007778 { // '**' pattern_capture_target
Brandt Bucher145bf262021-02-26 14:51:55 -08007779 if (p->error_indicator) {
7780 D(p->level--);
7781 return NULL;
7782 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007783 D(fprintf(stderr, "%*c> double_star_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' pattern_capture_target"));
Brandt Bucher145bf262021-02-26 14:51:55 -08007784 Token * _literal;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007785 expr_ty target;
Brandt Bucher145bf262021-02-26 14:51:55 -08007786 if (
7787 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
7788 &&
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007789 (target = pattern_capture_target_rule(p)) // pattern_capture_target
Brandt Bucher145bf262021-02-26 14:51:55 -08007790 )
7791 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007792 D(fprintf(stderr, "%*c+ double_star_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' pattern_capture_target"));
7793 _res = target;
Brandt Bucher145bf262021-02-26 14:51:55 -08007794 if (_res == NULL && PyErr_Occurred()) {
7795 p->error_indicator = 1;
7796 D(p->level--);
7797 return NULL;
7798 }
7799 goto done;
7800 }
7801 p->mark = _mark;
7802 D(fprintf(stderr, "%*c%s double_star_pattern[%d-%d]: %s failed!\n", p->level, ' ',
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007803 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' pattern_capture_target"));
Brandt Bucher145bf262021-02-26 14:51:55 -08007804 }
7805 _res = NULL;
7806 done:
7807 D(p->level--);
7808 return _res;
7809}
7810
7811// class_pattern:
7812// | name_or_attr '(' ')'
7813// | name_or_attr '(' positional_patterns ','? ')'
7814// | name_or_attr '(' keyword_patterns ','? ')'
7815// | name_or_attr '(' positional_patterns ',' keyword_patterns ','? ')'
Miss Islington (bot)11f1a302021-06-24 08:34:28 -07007816// | invalid_class_pattern
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007817static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08007818class_pattern_rule(Parser *p)
7819{
7820 D(p->level++);
7821 if (p->error_indicator) {
7822 D(p->level--);
7823 return NULL;
7824 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007825 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08007826 int _mark = p->mark;
7827 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
7828 p->error_indicator = 1;
7829 D(p->level--);
7830 return NULL;
7831 }
7832 int _start_lineno = p->tokens[_mark]->lineno;
7833 UNUSED(_start_lineno); // Only used by EXTRA macro
7834 int _start_col_offset = p->tokens[_mark]->col_offset;
7835 UNUSED(_start_col_offset); // Only used by EXTRA macro
7836 { // name_or_attr '(' ')'
7837 if (p->error_indicator) {
7838 D(p->level--);
7839 return NULL;
7840 }
7841 D(fprintf(stderr, "%*c> class_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' ')'"));
7842 Token * _literal;
7843 Token * _literal_1;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007844 expr_ty cls;
Brandt Bucher145bf262021-02-26 14:51:55 -08007845 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007846 (cls = name_or_attr_rule(p)) // name_or_attr
Brandt Bucher145bf262021-02-26 14:51:55 -08007847 &&
7848 (_literal = _PyPegen_expect_token(p, 7)) // token='('
7849 &&
7850 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
7851 )
7852 {
7853 D(fprintf(stderr, "%*c+ class_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' ')'"));
7854 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7855 if (_token == NULL) {
7856 D(p->level--);
7857 return NULL;
7858 }
7859 int _end_lineno = _token->end_lineno;
7860 UNUSED(_end_lineno); // Only used by EXTRA macro
7861 int _end_col_offset = _token->end_col_offset;
7862 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007863 _res = _PyAST_MatchClass ( cls , NULL , NULL , NULL , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08007864 if (_res == NULL && PyErr_Occurred()) {
7865 p->error_indicator = 1;
7866 D(p->level--);
7867 return NULL;
7868 }
7869 goto done;
7870 }
7871 p->mark = _mark;
7872 D(fprintf(stderr, "%*c%s class_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7873 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "name_or_attr '(' ')'"));
7874 }
7875 { // name_or_attr '(' positional_patterns ','? ')'
7876 if (p->error_indicator) {
7877 D(p->level--);
7878 return NULL;
7879 }
7880 D(fprintf(stderr, "%*c> class_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' positional_patterns ','? ')'"));
7881 Token * _literal;
7882 Token * _literal_1;
7883 void *_opt_var;
7884 UNUSED(_opt_var); // Silence compiler warnings
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007885 expr_ty cls;
7886 asdl_pattern_seq* patterns;
Brandt Bucher145bf262021-02-26 14:51:55 -08007887 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007888 (cls = name_or_attr_rule(p)) // name_or_attr
Brandt Bucher145bf262021-02-26 14:51:55 -08007889 &&
7890 (_literal = _PyPegen_expect_token(p, 7)) // token='('
7891 &&
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007892 (patterns = positional_patterns_rule(p)) // positional_patterns
Brandt Bucher145bf262021-02-26 14:51:55 -08007893 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02007894 (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','?
Brandt Bucher145bf262021-02-26 14:51:55 -08007895 &&
7896 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
7897 )
7898 {
7899 D(fprintf(stderr, "%*c+ class_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' positional_patterns ','? ')'"));
7900 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7901 if (_token == NULL) {
7902 D(p->level--);
7903 return NULL;
7904 }
7905 int _end_lineno = _token->end_lineno;
7906 UNUSED(_end_lineno); // Only used by EXTRA macro
7907 int _end_col_offset = _token->end_col_offset;
7908 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007909 _res = _PyAST_MatchClass ( cls , patterns , NULL , NULL , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08007910 if (_res == NULL && PyErr_Occurred()) {
7911 p->error_indicator = 1;
7912 D(p->level--);
7913 return NULL;
7914 }
7915 goto done;
7916 }
7917 p->mark = _mark;
7918 D(fprintf(stderr, "%*c%s class_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7919 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "name_or_attr '(' positional_patterns ','? ')'"));
7920 }
7921 { // name_or_attr '(' keyword_patterns ','? ')'
7922 if (p->error_indicator) {
7923 D(p->level--);
7924 return NULL;
7925 }
7926 D(fprintf(stderr, "%*c> class_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' keyword_patterns ','? ')'"));
7927 Token * _literal;
7928 Token * _literal_1;
7929 void *_opt_var;
7930 UNUSED(_opt_var); // Silence compiler warnings
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007931 expr_ty cls;
7932 asdl_seq* keywords;
Brandt Bucher145bf262021-02-26 14:51:55 -08007933 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007934 (cls = name_or_attr_rule(p)) // name_or_attr
Brandt Bucher145bf262021-02-26 14:51:55 -08007935 &&
7936 (_literal = _PyPegen_expect_token(p, 7)) // token='('
7937 &&
7938 (keywords = keyword_patterns_rule(p)) // keyword_patterns
7939 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02007940 (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','?
Brandt Bucher145bf262021-02-26 14:51:55 -08007941 &&
7942 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
7943 )
7944 {
7945 D(fprintf(stderr, "%*c+ class_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' keyword_patterns ','? ')'"));
7946 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7947 if (_token == NULL) {
7948 D(p->level--);
7949 return NULL;
7950 }
7951 int _end_lineno = _token->end_lineno;
7952 UNUSED(_end_lineno); // Only used by EXTRA macro
7953 int _end_col_offset = _token->end_col_offset;
7954 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007955 _res = _PyAST_MatchClass ( cls , NULL , CHECK ( asdl_identifier_seq * , _PyPegen_map_names_to_ids ( p , CHECK ( asdl_expr_seq * , _PyPegen_get_pattern_keys ( p , keywords ) ) ) ) , CHECK ( asdl_pattern_seq * , _PyPegen_get_patterns ( p , keywords ) ) , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08007956 if (_res == NULL && PyErr_Occurred()) {
7957 p->error_indicator = 1;
7958 D(p->level--);
7959 return NULL;
7960 }
7961 goto done;
7962 }
7963 p->mark = _mark;
7964 D(fprintf(stderr, "%*c%s class_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7965 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "name_or_attr '(' keyword_patterns ','? ')'"));
7966 }
7967 { // name_or_attr '(' positional_patterns ',' keyword_patterns ','? ')'
7968 if (p->error_indicator) {
7969 D(p->level--);
7970 return NULL;
7971 }
7972 D(fprintf(stderr, "%*c> class_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' positional_patterns ',' keyword_patterns ','? ')'"));
7973 Token * _literal;
7974 Token * _literal_1;
7975 Token * _literal_2;
7976 void *_opt_var;
7977 UNUSED(_opt_var); // Silence compiler warnings
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007978 expr_ty cls;
7979 asdl_seq* keywords;
7980 asdl_pattern_seq* patterns;
Brandt Bucher145bf262021-02-26 14:51:55 -08007981 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007982 (cls = name_or_attr_rule(p)) // name_or_attr
Brandt Bucher145bf262021-02-26 14:51:55 -08007983 &&
7984 (_literal = _PyPegen_expect_token(p, 7)) // token='('
7985 &&
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007986 (patterns = positional_patterns_rule(p)) // positional_patterns
Brandt Bucher145bf262021-02-26 14:51:55 -08007987 &&
7988 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
7989 &&
7990 (keywords = keyword_patterns_rule(p)) // keyword_patterns
7991 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02007992 (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','?
Brandt Bucher145bf262021-02-26 14:51:55 -08007993 &&
7994 (_literal_2 = _PyPegen_expect_token(p, 8)) // token=')'
7995 )
7996 {
7997 D(fprintf(stderr, "%*c+ class_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' positional_patterns ',' keyword_patterns ','? ')'"));
7998 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7999 if (_token == NULL) {
8000 D(p->level--);
8001 return NULL;
8002 }
8003 int _end_lineno = _token->end_lineno;
8004 UNUSED(_end_lineno); // Only used by EXTRA macro
8005 int _end_col_offset = _token->end_col_offset;
8006 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10008007 _res = _PyAST_MatchClass ( cls , patterns , CHECK ( asdl_identifier_seq * , _PyPegen_map_names_to_ids ( p , CHECK ( asdl_expr_seq * , _PyPegen_get_pattern_keys ( p , keywords ) ) ) ) , CHECK ( asdl_pattern_seq * , _PyPegen_get_patterns ( p , keywords ) ) , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08008008 if (_res == NULL && PyErr_Occurred()) {
8009 p->error_indicator = 1;
8010 D(p->level--);
8011 return NULL;
8012 }
8013 goto done;
8014 }
8015 p->mark = _mark;
8016 D(fprintf(stderr, "%*c%s class_pattern[%d-%d]: %s failed!\n", p->level, ' ',
8017 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "name_or_attr '(' positional_patterns ',' keyword_patterns ','? ')'"));
8018 }
Miss Islington (bot)11f1a302021-06-24 08:34:28 -07008019 if (p->call_invalid_rules) { // invalid_class_pattern
8020 if (p->error_indicator) {
8021 D(p->level--);
8022 return NULL;
8023 }
8024 D(fprintf(stderr, "%*c> class_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_class_pattern"));
8025 void *invalid_class_pattern_var;
8026 if (
8027 (invalid_class_pattern_var = invalid_class_pattern_rule(p)) // invalid_class_pattern
8028 )
8029 {
8030 D(fprintf(stderr, "%*c+ class_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_class_pattern"));
8031 _res = invalid_class_pattern_var;
8032 goto done;
8033 }
8034 p->mark = _mark;
8035 D(fprintf(stderr, "%*c%s class_pattern[%d-%d]: %s failed!\n", p->level, ' ',
8036 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_class_pattern"));
8037 }
Brandt Bucher145bf262021-02-26 14:51:55 -08008038 _res = NULL;
8039 done:
8040 D(p->level--);
8041 return _res;
8042}
8043
8044// positional_patterns: ','.pattern+
Nick Coghlan1e7b8582021-04-29 15:58:44 +10008045static asdl_pattern_seq*
Brandt Bucher145bf262021-02-26 14:51:55 -08008046positional_patterns_rule(Parser *p)
8047{
8048 D(p->level++);
8049 if (p->error_indicator) {
8050 D(p->level--);
8051 return NULL;
8052 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10008053 asdl_pattern_seq* _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08008054 int _mark = p->mark;
8055 { // ','.pattern+
8056 if (p->error_indicator) {
8057 D(p->level--);
8058 return NULL;
8059 }
8060 D(fprintf(stderr, "%*c> positional_patterns[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.pattern+"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10008061 asdl_pattern_seq* args;
Brandt Bucher145bf262021-02-26 14:51:55 -08008062 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10008063 (args = (asdl_pattern_seq*)_gather_62_rule(p)) // ','.pattern+
Brandt Bucher145bf262021-02-26 14:51:55 -08008064 )
8065 {
8066 D(fprintf(stderr, "%*c+ positional_patterns[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.pattern+"));
8067 _res = args;
8068 if (_res == NULL && PyErr_Occurred()) {
8069 p->error_indicator = 1;
8070 D(p->level--);
8071 return NULL;
8072 }
8073 goto done;
8074 }
8075 p->mark = _mark;
8076 D(fprintf(stderr, "%*c%s positional_patterns[%d-%d]: %s failed!\n", p->level, ' ',
8077 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.pattern+"));
8078 }
8079 _res = NULL;
8080 done:
8081 D(p->level--);
8082 return _res;
8083}
8084
8085// keyword_patterns: ','.keyword_pattern+
Nick Coghlan1e7b8582021-04-29 15:58:44 +10008086static asdl_seq*
Brandt Bucher145bf262021-02-26 14:51:55 -08008087keyword_patterns_rule(Parser *p)
8088{
8089 D(p->level++);
8090 if (p->error_indicator) {
8091 D(p->level--);
8092 return NULL;
8093 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10008094 asdl_seq* _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08008095 int _mark = p->mark;
8096 { // ','.keyword_pattern+
8097 if (p->error_indicator) {
8098 D(p->level--);
8099 return NULL;
8100 }
8101 D(fprintf(stderr, "%*c> keyword_patterns[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.keyword_pattern+"));
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07008102 asdl_seq * _gather_64_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08008103 if (
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07008104 (_gather_64_var = _gather_64_rule(p)) // ','.keyword_pattern+
Brandt Bucher145bf262021-02-26 14:51:55 -08008105 )
8106 {
8107 D(fprintf(stderr, "%*c+ keyword_patterns[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.keyword_pattern+"));
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07008108 _res = _gather_64_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08008109 goto done;
8110 }
8111 p->mark = _mark;
8112 D(fprintf(stderr, "%*c%s keyword_patterns[%d-%d]: %s failed!\n", p->level, ' ',
8113 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.keyword_pattern+"));
8114 }
8115 _res = NULL;
8116 done:
8117 D(p->level--);
8118 return _res;
8119}
8120
8121// keyword_pattern: NAME '=' pattern
Nick Coghlan1e7b8582021-04-29 15:58:44 +10008122static KeyPatternPair*
Brandt Bucher145bf262021-02-26 14:51:55 -08008123keyword_pattern_rule(Parser *p)
8124{
8125 D(p->level++);
8126 if (p->error_indicator) {
8127 D(p->level--);
8128 return NULL;
8129 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10008130 KeyPatternPair* _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08008131 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -08008132 { // NAME '=' pattern
8133 if (p->error_indicator) {
8134 D(p->level--);
8135 return NULL;
8136 }
8137 D(fprintf(stderr, "%*c> keyword_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME '=' pattern"));
8138 Token * _literal;
8139 expr_ty arg;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10008140 pattern_ty value;
Brandt Bucher145bf262021-02-26 14:51:55 -08008141 if (
8142 (arg = _PyPegen_name_token(p)) // NAME
8143 &&
8144 (_literal = _PyPegen_expect_token(p, 22)) // token='='
8145 &&
8146 (value = pattern_rule(p)) // pattern
8147 )
8148 {
8149 D(fprintf(stderr, "%*c+ keyword_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '=' pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10008150 _res = _PyPegen_key_pattern_pair ( p , arg , value );
Brandt Bucher145bf262021-02-26 14:51:55 -08008151 if (_res == NULL && PyErr_Occurred()) {
8152 p->error_indicator = 1;
8153 D(p->level--);
8154 return NULL;
8155 }
8156 goto done;
8157 }
8158 p->mark = _mark;
8159 D(fprintf(stderr, "%*c%s keyword_pattern[%d-%d]: %s failed!\n", p->level, ' ',
8160 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' pattern"));
8161 }
8162 _res = NULL;
8163 done:
8164 D(p->level--);
8165 return _res;
8166}
8167
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008168// return_stmt: 'return' star_expressions?
8169static stmt_ty
8170return_stmt_rule(Parser *p)
8171{
8172 D(p->level++);
8173 if (p->error_indicator) {
8174 D(p->level--);
8175 return NULL;
8176 }
8177 stmt_ty _res = NULL;
8178 int _mark = p->mark;
8179 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
8180 p->error_indicator = 1;
8181 D(p->level--);
8182 return NULL;
8183 }
8184 int _start_lineno = p->tokens[_mark]->lineno;
8185 UNUSED(_start_lineno); // Only used by EXTRA macro
8186 int _start_col_offset = p->tokens[_mark]->col_offset;
8187 UNUSED(_start_col_offset); // Only used by EXTRA macro
8188 { // 'return' star_expressions?
8189 if (p->error_indicator) {
8190 D(p->level--);
8191 return NULL;
8192 }
8193 D(fprintf(stderr, "%*c> return_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'return' star_expressions?"));
8194 Token * _keyword;
8195 void *a;
8196 if (
8197 (_keyword = _PyPegen_expect_token(p, 500)) // token='return'
8198 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02008199 (a = star_expressions_rule(p), !p->error_indicator) // star_expressions?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008200 )
8201 {
8202 D(fprintf(stderr, "%*c+ return_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'return' star_expressions?"));
8203 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8204 if (_token == NULL) {
8205 D(p->level--);
8206 return NULL;
8207 }
8208 int _end_lineno = _token->end_lineno;
8209 UNUSED(_end_lineno); // Only used by EXTRA macro
8210 int _end_col_offset = _token->end_col_offset;
8211 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02008212 _res = _PyAST_Return ( a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008213 if (_res == NULL && PyErr_Occurred()) {
8214 p->error_indicator = 1;
8215 D(p->level--);
8216 return NULL;
8217 }
8218 goto done;
8219 }
8220 p->mark = _mark;
8221 D(fprintf(stderr, "%*c%s return_stmt[%d-%d]: %s failed!\n", p->level, ' ',
8222 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'return' star_expressions?"));
8223 }
8224 _res = NULL;
8225 done:
8226 D(p->level--);
8227 return _res;
8228}
8229
8230// raise_stmt: 'raise' expression ['from' expression] | 'raise'
8231static stmt_ty
8232raise_stmt_rule(Parser *p)
8233{
8234 D(p->level++);
8235 if (p->error_indicator) {
8236 D(p->level--);
8237 return NULL;
8238 }
8239 stmt_ty _res = NULL;
8240 int _mark = p->mark;
8241 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
8242 p->error_indicator = 1;
8243 D(p->level--);
8244 return NULL;
8245 }
8246 int _start_lineno = p->tokens[_mark]->lineno;
8247 UNUSED(_start_lineno); // Only used by EXTRA macro
8248 int _start_col_offset = p->tokens[_mark]->col_offset;
8249 UNUSED(_start_col_offset); // Only used by EXTRA macro
8250 { // 'raise' expression ['from' expression]
8251 if (p->error_indicator) {
8252 D(p->level--);
8253 return NULL;
8254 }
8255 D(fprintf(stderr, "%*c> raise_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'raise' expression ['from' expression]"));
8256 Token * _keyword;
8257 expr_ty a;
8258 void *b;
8259 if (
8260 (_keyword = _PyPegen_expect_token(p, 501)) // token='raise'
8261 &&
8262 (a = expression_rule(p)) // expression
8263 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02008264 (b = _tmp_66_rule(p), !p->error_indicator) // ['from' expression]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008265 )
8266 {
8267 D(fprintf(stderr, "%*c+ raise_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'raise' expression ['from' expression]"));
8268 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8269 if (_token == NULL) {
8270 D(p->level--);
8271 return NULL;
8272 }
8273 int _end_lineno = _token->end_lineno;
8274 UNUSED(_end_lineno); // Only used by EXTRA macro
8275 int _end_col_offset = _token->end_col_offset;
8276 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02008277 _res = _PyAST_Raise ( a , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008278 if (_res == NULL && PyErr_Occurred()) {
8279 p->error_indicator = 1;
8280 D(p->level--);
8281 return NULL;
8282 }
8283 goto done;
8284 }
8285 p->mark = _mark;
8286 D(fprintf(stderr, "%*c%s raise_stmt[%d-%d]: %s failed!\n", p->level, ' ',
8287 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'raise' expression ['from' expression]"));
8288 }
8289 { // 'raise'
8290 if (p->error_indicator) {
8291 D(p->level--);
8292 return NULL;
8293 }
8294 D(fprintf(stderr, "%*c> raise_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'raise'"));
8295 Token * _keyword;
8296 if (
8297 (_keyword = _PyPegen_expect_token(p, 501)) // token='raise'
8298 )
8299 {
8300 D(fprintf(stderr, "%*c+ raise_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'raise'"));
8301 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8302 if (_token == NULL) {
8303 D(p->level--);
8304 return NULL;
8305 }
8306 int _end_lineno = _token->end_lineno;
8307 UNUSED(_end_lineno); // Only used by EXTRA macro
8308 int _end_col_offset = _token->end_col_offset;
8309 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02008310 _res = _PyAST_Raise ( NULL , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008311 if (_res == NULL && PyErr_Occurred()) {
8312 p->error_indicator = 1;
8313 D(p->level--);
8314 return NULL;
8315 }
8316 goto done;
8317 }
8318 p->mark = _mark;
8319 D(fprintf(stderr, "%*c%s raise_stmt[%d-%d]: %s failed!\n", p->level, ' ',
8320 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'raise'"));
8321 }
8322 _res = NULL;
8323 done:
8324 D(p->level--);
8325 return _res;
8326}
8327
8328// function_def: decorators function_def_raw | function_def_raw
8329static stmt_ty
8330function_def_rule(Parser *p)
8331{
8332 D(p->level++);
8333 if (p->error_indicator) {
8334 D(p->level--);
8335 return NULL;
8336 }
8337 stmt_ty _res = NULL;
8338 int _mark = p->mark;
8339 { // decorators function_def_raw
8340 if (p->error_indicator) {
8341 D(p->level--);
8342 return NULL;
8343 }
8344 D(fprintf(stderr, "%*c> function_def[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "decorators function_def_raw"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01008345 asdl_expr_seq* d;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008346 stmt_ty f;
8347 if (
8348 (d = decorators_rule(p)) // decorators
8349 &&
8350 (f = function_def_raw_rule(p)) // function_def_raw
8351 )
8352 {
8353 D(fprintf(stderr, "%*c+ function_def[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "decorators function_def_raw"));
8354 _res = _PyPegen_function_def_decorators ( p , d , f );
8355 if (_res == NULL && PyErr_Occurred()) {
8356 p->error_indicator = 1;
8357 D(p->level--);
8358 return NULL;
8359 }
8360 goto done;
8361 }
8362 p->mark = _mark;
8363 D(fprintf(stderr, "%*c%s function_def[%d-%d]: %s failed!\n", p->level, ' ',
8364 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "decorators function_def_raw"));
8365 }
8366 { // function_def_raw
8367 if (p->error_indicator) {
8368 D(p->level--);
8369 return NULL;
8370 }
8371 D(fprintf(stderr, "%*c> function_def[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "function_def_raw"));
8372 stmt_ty function_def_raw_var;
8373 if (
8374 (function_def_raw_var = function_def_raw_rule(p)) // function_def_raw
8375 )
8376 {
8377 D(fprintf(stderr, "%*c+ function_def[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "function_def_raw"));
8378 _res = function_def_raw_var;
8379 goto done;
8380 }
8381 p->mark = _mark;
8382 D(fprintf(stderr, "%*c%s function_def[%d-%d]: %s failed!\n", p->level, ' ',
8383 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "function_def_raw"));
8384 }
8385 _res = NULL;
8386 done:
8387 D(p->level--);
8388 return _res;
8389}
8390
8391// function_def_raw:
Pablo Galindo56c95df2021-04-21 15:28:21 +01008392// | invalid_def_raw
Pablo Galindo58fb1562021-02-02 19:54:22 +00008393// | 'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block
8394// | ASYNC 'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008395static stmt_ty
8396function_def_raw_rule(Parser *p)
8397{
8398 D(p->level++);
8399 if (p->error_indicator) {
8400 D(p->level--);
8401 return NULL;
8402 }
8403 stmt_ty _res = NULL;
8404 int _mark = p->mark;
8405 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
8406 p->error_indicator = 1;
8407 D(p->level--);
8408 return NULL;
8409 }
8410 int _start_lineno = p->tokens[_mark]->lineno;
8411 UNUSED(_start_lineno); // Only used by EXTRA macro
8412 int _start_col_offset = p->tokens[_mark]->col_offset;
8413 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo56c95df2021-04-21 15:28:21 +01008414 if (p->call_invalid_rules) { // invalid_def_raw
8415 if (p->error_indicator) {
8416 D(p->level--);
8417 return NULL;
8418 }
8419 D(fprintf(stderr, "%*c> function_def_raw[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_def_raw"));
8420 void *invalid_def_raw_var;
8421 if (
8422 (invalid_def_raw_var = invalid_def_raw_rule(p)) // invalid_def_raw
8423 )
8424 {
8425 D(fprintf(stderr, "%*c+ function_def_raw[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_def_raw"));
8426 _res = invalid_def_raw_var;
8427 goto done;
8428 }
8429 p->mark = _mark;
8430 D(fprintf(stderr, "%*c%s function_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
8431 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_def_raw"));
8432 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00008433 { // 'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008434 if (p->error_indicator) {
8435 D(p->level--);
8436 return NULL;
8437 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00008438 D(fprintf(stderr, "%*c> function_def_raw[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008439 Token * _keyword;
8440 Token * _literal;
8441 Token * _literal_1;
8442 Token * _literal_2;
8443 void *a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01008444 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008445 expr_ty n;
8446 void *params;
8447 void *tc;
8448 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08008449 (_keyword = _PyPegen_expect_token(p, 526)) // token='def'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008450 &&
8451 (n = _PyPegen_name_token(p)) // NAME
8452 &&
8453 (_literal = _PyPegen_expect_token(p, 7)) // token='('
8454 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02008455 (params = params_rule(p), !p->error_indicator) // params?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008456 &&
8457 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
8458 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02008459 (a = _tmp_67_rule(p), !p->error_indicator) // ['->' expression]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008460 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00008461 (_literal_2 = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008462 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02008463 (tc = func_type_comment_rule(p), !p->error_indicator) // func_type_comment?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008464 &&
8465 (b = block_rule(p)) // block
8466 )
8467 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00008468 D(fprintf(stderr, "%*c+ function_def_raw[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008469 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8470 if (_token == NULL) {
8471 D(p->level--);
8472 return NULL;
8473 }
8474 int _end_lineno = _token->end_lineno;
8475 UNUSED(_end_lineno); // Only used by EXTRA macro
8476 int _end_col_offset = _token->end_col_offset;
8477 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02008478 _res = _PyAST_FunctionDef ( n -> v . Name . id , ( params ) ? params : CHECK ( arguments_ty , _PyPegen_empty_arguments ( p ) ) , b , NULL , a , NEW_TYPE_COMMENT ( p , tc ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008479 if (_res == NULL && PyErr_Occurred()) {
8480 p->error_indicator = 1;
8481 D(p->level--);
8482 return NULL;
8483 }
8484 goto done;
8485 }
8486 p->mark = _mark;
8487 D(fprintf(stderr, "%*c%s function_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00008488 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008489 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00008490 { // ASYNC 'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008491 if (p->error_indicator) {
8492 D(p->level--);
8493 return NULL;
8494 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00008495 D(fprintf(stderr, "%*c> function_def_raw[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC 'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008496 Token * _keyword;
8497 Token * _literal;
8498 Token * _literal_1;
8499 Token * _literal_2;
8500 void *a;
8501 Token * async_var;
Pablo Galindoa5634c42020-09-16 19:42:00 +01008502 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008503 expr_ty n;
8504 void *params;
8505 void *tc;
8506 if (
8507 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
8508 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008509 (_keyword = _PyPegen_expect_token(p, 526)) // token='def'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008510 &&
8511 (n = _PyPegen_name_token(p)) // NAME
8512 &&
8513 (_literal = _PyPegen_expect_token(p, 7)) // token='('
8514 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02008515 (params = params_rule(p), !p->error_indicator) // params?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008516 &&
8517 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
8518 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02008519 (a = _tmp_68_rule(p), !p->error_indicator) // ['->' expression]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008520 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00008521 (_literal_2 = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008522 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02008523 (tc = func_type_comment_rule(p), !p->error_indicator) // func_type_comment?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008524 &&
8525 (b = block_rule(p)) // block
8526 )
8527 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00008528 D(fprintf(stderr, "%*c+ function_def_raw[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC 'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008529 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8530 if (_token == NULL) {
8531 D(p->level--);
8532 return NULL;
8533 }
8534 int _end_lineno = _token->end_lineno;
8535 UNUSED(_end_lineno); // Only used by EXTRA macro
8536 int _end_col_offset = _token->end_col_offset;
8537 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02008538 _res = CHECK_VERSION ( stmt_ty , 5 , "Async functions are" , _PyAST_AsyncFunctionDef ( n -> v . Name . id , ( params ) ? params : CHECK ( arguments_ty , _PyPegen_empty_arguments ( p ) ) , b , NULL , a , NEW_TYPE_COMMENT ( p , tc ) , EXTRA ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008539 if (_res == NULL && PyErr_Occurred()) {
8540 p->error_indicator = 1;
8541 D(p->level--);
8542 return NULL;
8543 }
8544 goto done;
8545 }
8546 p->mark = _mark;
8547 D(fprintf(stderr, "%*c%s function_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00008548 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008549 }
8550 _res = NULL;
8551 done:
8552 D(p->level--);
8553 return _res;
8554}
8555
8556// func_type_comment:
8557// | NEWLINE TYPE_COMMENT &(NEWLINE INDENT)
8558// | invalid_double_type_comments
8559// | TYPE_COMMENT
8560static Token*
8561func_type_comment_rule(Parser *p)
8562{
8563 D(p->level++);
8564 if (p->error_indicator) {
8565 D(p->level--);
8566 return NULL;
8567 }
8568 Token* _res = NULL;
8569 int _mark = p->mark;
8570 { // NEWLINE TYPE_COMMENT &(NEWLINE INDENT)
8571 if (p->error_indicator) {
8572 D(p->level--);
8573 return NULL;
8574 }
8575 D(fprintf(stderr, "%*c> func_type_comment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE TYPE_COMMENT &(NEWLINE INDENT)"));
8576 Token * newline_var;
8577 Token * t;
8578 if (
8579 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
8580 &&
8581 (t = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
8582 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008583 _PyPegen_lookahead(1, _tmp_69_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008584 )
8585 {
8586 D(fprintf(stderr, "%*c+ func_type_comment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE TYPE_COMMENT &(NEWLINE INDENT)"));
8587 _res = t;
8588 if (_res == NULL && PyErr_Occurred()) {
8589 p->error_indicator = 1;
8590 D(p->level--);
8591 return NULL;
8592 }
8593 goto done;
8594 }
8595 p->mark = _mark;
8596 D(fprintf(stderr, "%*c%s func_type_comment[%d-%d]: %s failed!\n", p->level, ' ',
8597 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE TYPE_COMMENT &(NEWLINE INDENT)"));
8598 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02008599 if (p->call_invalid_rules) { // invalid_double_type_comments
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008600 if (p->error_indicator) {
8601 D(p->level--);
8602 return NULL;
8603 }
8604 D(fprintf(stderr, "%*c> func_type_comment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_double_type_comments"));
8605 void *invalid_double_type_comments_var;
8606 if (
8607 (invalid_double_type_comments_var = invalid_double_type_comments_rule(p)) // invalid_double_type_comments
8608 )
8609 {
8610 D(fprintf(stderr, "%*c+ func_type_comment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_double_type_comments"));
8611 _res = invalid_double_type_comments_var;
8612 goto done;
8613 }
8614 p->mark = _mark;
8615 D(fprintf(stderr, "%*c%s func_type_comment[%d-%d]: %s failed!\n", p->level, ' ',
8616 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_double_type_comments"));
8617 }
8618 { // TYPE_COMMENT
8619 if (p->error_indicator) {
8620 D(p->level--);
8621 return NULL;
8622 }
8623 D(fprintf(stderr, "%*c> func_type_comment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "TYPE_COMMENT"));
8624 Token * type_comment_var;
8625 if (
8626 (type_comment_var = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
8627 )
8628 {
8629 D(fprintf(stderr, "%*c+ func_type_comment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "TYPE_COMMENT"));
8630 _res = type_comment_var;
8631 goto done;
8632 }
8633 p->mark = _mark;
8634 D(fprintf(stderr, "%*c%s func_type_comment[%d-%d]: %s failed!\n", p->level, ' ',
8635 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "TYPE_COMMENT"));
8636 }
8637 _res = NULL;
8638 done:
8639 D(p->level--);
8640 return _res;
8641}
8642
8643// params: invalid_parameters | parameters
8644static arguments_ty
8645params_rule(Parser *p)
8646{
8647 D(p->level++);
8648 if (p->error_indicator) {
8649 D(p->level--);
8650 return NULL;
8651 }
8652 arguments_ty _res = NULL;
8653 int _mark = p->mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02008654 if (p->call_invalid_rules) { // invalid_parameters
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008655 if (p->error_indicator) {
8656 D(p->level--);
8657 return NULL;
8658 }
8659 D(fprintf(stderr, "%*c> params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_parameters"));
8660 void *invalid_parameters_var;
8661 if (
8662 (invalid_parameters_var = invalid_parameters_rule(p)) // invalid_parameters
8663 )
8664 {
8665 D(fprintf(stderr, "%*c+ params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_parameters"));
8666 _res = invalid_parameters_var;
8667 goto done;
8668 }
8669 p->mark = _mark;
8670 D(fprintf(stderr, "%*c%s params[%d-%d]: %s failed!\n", p->level, ' ',
8671 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_parameters"));
8672 }
8673 { // parameters
8674 if (p->error_indicator) {
8675 D(p->level--);
8676 return NULL;
8677 }
8678 D(fprintf(stderr, "%*c> params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "parameters"));
8679 arguments_ty parameters_var;
8680 if (
8681 (parameters_var = parameters_rule(p)) // parameters
8682 )
8683 {
8684 D(fprintf(stderr, "%*c+ params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "parameters"));
8685 _res = parameters_var;
8686 goto done;
8687 }
8688 p->mark = _mark;
8689 D(fprintf(stderr, "%*c%s params[%d-%d]: %s failed!\n", p->level, ' ',
8690 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "parameters"));
8691 }
8692 _res = NULL;
8693 done:
8694 D(p->level--);
8695 return _res;
8696}
8697
8698// parameters:
8699// | slash_no_default param_no_default* param_with_default* star_etc?
8700// | slash_with_default param_with_default* star_etc?
8701// | param_no_default+ param_with_default* star_etc?
8702// | param_with_default+ star_etc?
8703// | star_etc
8704static arguments_ty
8705parameters_rule(Parser *p)
8706{
8707 D(p->level++);
8708 if (p->error_indicator) {
8709 D(p->level--);
8710 return NULL;
8711 }
8712 arguments_ty _res = NULL;
8713 int _mark = p->mark;
8714 { // slash_no_default param_no_default* param_with_default* star_etc?
8715 if (p->error_indicator) {
8716 D(p->level--);
8717 return NULL;
8718 }
8719 D(fprintf(stderr, "%*c> parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slash_no_default param_no_default* param_with_default* star_etc?"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01008720 asdl_arg_seq* a;
8721 asdl_arg_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008722 asdl_seq * c;
8723 void *d;
8724 if (
8725 (a = slash_no_default_rule(p)) // slash_no_default
8726 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008727 (b = (asdl_arg_seq*)_loop0_70_rule(p)) // param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008728 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008729 (c = _loop0_71_rule(p)) // param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008730 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02008731 (d = star_etc_rule(p), !p->error_indicator) // star_etc?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008732 )
8733 {
8734 D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slash_no_default param_no_default* param_with_default* star_etc?"));
8735 _res = _PyPegen_make_arguments ( p , a , NULL , b , c , d );
8736 if (_res == NULL && PyErr_Occurred()) {
8737 p->error_indicator = 1;
8738 D(p->level--);
8739 return NULL;
8740 }
8741 goto done;
8742 }
8743 p->mark = _mark;
8744 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
8745 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slash_no_default param_no_default* param_with_default* star_etc?"));
8746 }
8747 { // slash_with_default param_with_default* star_etc?
8748 if (p->error_indicator) {
8749 D(p->level--);
8750 return NULL;
8751 }
8752 D(fprintf(stderr, "%*c> parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slash_with_default param_with_default* star_etc?"));
8753 SlashWithDefault* a;
8754 asdl_seq * b;
8755 void *c;
8756 if (
8757 (a = slash_with_default_rule(p)) // slash_with_default
8758 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008759 (b = _loop0_72_rule(p)) // param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008760 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02008761 (c = star_etc_rule(p), !p->error_indicator) // star_etc?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008762 )
8763 {
8764 D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slash_with_default param_with_default* star_etc?"));
8765 _res = _PyPegen_make_arguments ( p , NULL , a , NULL , b , c );
8766 if (_res == NULL && PyErr_Occurred()) {
8767 p->error_indicator = 1;
8768 D(p->level--);
8769 return NULL;
8770 }
8771 goto done;
8772 }
8773 p->mark = _mark;
8774 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
8775 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slash_with_default param_with_default* star_etc?"));
8776 }
8777 { // param_no_default+ param_with_default* star_etc?
8778 if (p->error_indicator) {
8779 D(p->level--);
8780 return NULL;
8781 }
8782 D(fprintf(stderr, "%*c> parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default+ param_with_default* star_etc?"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01008783 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008784 asdl_seq * b;
8785 void *c;
8786 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08008787 (a = (asdl_arg_seq*)_loop1_73_rule(p)) // param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008788 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008789 (b = _loop0_74_rule(p)) // param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008790 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02008791 (c = star_etc_rule(p), !p->error_indicator) // star_etc?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008792 )
8793 {
8794 D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default+ param_with_default* star_etc?"));
8795 _res = _PyPegen_make_arguments ( p , NULL , NULL , a , b , c );
8796 if (_res == NULL && PyErr_Occurred()) {
8797 p->error_indicator = 1;
8798 D(p->level--);
8799 return NULL;
8800 }
8801 goto done;
8802 }
8803 p->mark = _mark;
8804 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
8805 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default+ param_with_default* star_etc?"));
8806 }
8807 { // param_with_default+ star_etc?
8808 if (p->error_indicator) {
8809 D(p->level--);
8810 return NULL;
8811 }
8812 D(fprintf(stderr, "%*c> parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default+ star_etc?"));
8813 asdl_seq * a;
8814 void *b;
8815 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08008816 (a = _loop1_75_rule(p)) // param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008817 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02008818 (b = star_etc_rule(p), !p->error_indicator) // star_etc?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008819 )
8820 {
8821 D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_with_default+ star_etc?"));
8822 _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , a , b );
8823 if (_res == NULL && PyErr_Occurred()) {
8824 p->error_indicator = 1;
8825 D(p->level--);
8826 return NULL;
8827 }
8828 goto done;
8829 }
8830 p->mark = _mark;
8831 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
8832 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default+ star_etc?"));
8833 }
8834 { // star_etc
8835 if (p->error_indicator) {
8836 D(p->level--);
8837 return NULL;
8838 }
8839 D(fprintf(stderr, "%*c> parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_etc"));
8840 StarEtc* a;
8841 if (
8842 (a = star_etc_rule(p)) // star_etc
8843 )
8844 {
8845 D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_etc"));
8846 _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , NULL , a );
8847 if (_res == NULL && PyErr_Occurred()) {
8848 p->error_indicator = 1;
8849 D(p->level--);
8850 return NULL;
8851 }
8852 goto done;
8853 }
8854 p->mark = _mark;
8855 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
8856 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_etc"));
8857 }
8858 _res = NULL;
8859 done:
8860 D(p->level--);
8861 return _res;
8862}
8863
8864// slash_no_default: param_no_default+ '/' ',' | param_no_default+ '/' &')'
Pablo Galindoa5634c42020-09-16 19:42:00 +01008865static asdl_arg_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008866slash_no_default_rule(Parser *p)
8867{
8868 D(p->level++);
8869 if (p->error_indicator) {
8870 D(p->level--);
8871 return NULL;
8872 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01008873 asdl_arg_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008874 int _mark = p->mark;
8875 { // param_no_default+ '/' ','
8876 if (p->error_indicator) {
8877 D(p->level--);
8878 return NULL;
8879 }
8880 D(fprintf(stderr, "%*c> slash_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default+ '/' ','"));
8881 Token * _literal;
8882 Token * _literal_1;
Pablo Galindoa5634c42020-09-16 19:42:00 +01008883 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008884 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08008885 (a = (asdl_arg_seq*)_loop1_76_rule(p)) // param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008886 &&
8887 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
8888 &&
8889 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
8890 )
8891 {
8892 D(fprintf(stderr, "%*c+ slash_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default+ '/' ','"));
8893 _res = a;
8894 if (_res == NULL && PyErr_Occurred()) {
8895 p->error_indicator = 1;
8896 D(p->level--);
8897 return NULL;
8898 }
8899 goto done;
8900 }
8901 p->mark = _mark;
8902 D(fprintf(stderr, "%*c%s slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
8903 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default+ '/' ','"));
8904 }
8905 { // param_no_default+ '/' &')'
8906 if (p->error_indicator) {
8907 D(p->level--);
8908 return NULL;
8909 }
8910 D(fprintf(stderr, "%*c> slash_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default+ '/' &')'"));
8911 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01008912 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008913 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08008914 (a = (asdl_arg_seq*)_loop1_77_rule(p)) // param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008915 &&
8916 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
8917 &&
8918 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
8919 )
8920 {
8921 D(fprintf(stderr, "%*c+ slash_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default+ '/' &')'"));
8922 _res = a;
8923 if (_res == NULL && PyErr_Occurred()) {
8924 p->error_indicator = 1;
8925 D(p->level--);
8926 return NULL;
8927 }
8928 goto done;
8929 }
8930 p->mark = _mark;
8931 D(fprintf(stderr, "%*c%s slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
8932 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default+ '/' &')'"));
8933 }
8934 _res = NULL;
8935 done:
8936 D(p->level--);
8937 return _res;
8938}
8939
8940// slash_with_default:
8941// | param_no_default* param_with_default+ '/' ','
8942// | param_no_default* param_with_default+ '/' &')'
8943static SlashWithDefault*
8944slash_with_default_rule(Parser *p)
8945{
8946 D(p->level++);
8947 if (p->error_indicator) {
8948 D(p->level--);
8949 return NULL;
8950 }
8951 SlashWithDefault* _res = NULL;
8952 int _mark = p->mark;
8953 { // param_no_default* param_with_default+ '/' ','
8954 if (p->error_indicator) {
8955 D(p->level--);
8956 return NULL;
8957 }
8958 D(fprintf(stderr, "%*c> slash_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default* param_with_default+ '/' ','"));
8959 Token * _literal;
8960 Token * _literal_1;
8961 asdl_seq * a;
8962 asdl_seq * b;
8963 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08008964 (a = _loop0_78_rule(p)) // param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008965 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008966 (b = _loop1_79_rule(p)) // param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008967 &&
8968 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
8969 &&
8970 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
8971 )
8972 {
8973 D(fprintf(stderr, "%*c+ slash_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default* param_with_default+ '/' ','"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01008974 _res = _PyPegen_slash_with_default ( p , ( asdl_arg_seq * ) a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008975 if (_res == NULL && PyErr_Occurred()) {
8976 p->error_indicator = 1;
8977 D(p->level--);
8978 return NULL;
8979 }
8980 goto done;
8981 }
8982 p->mark = _mark;
8983 D(fprintf(stderr, "%*c%s slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
8984 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default* param_with_default+ '/' ','"));
8985 }
8986 { // param_no_default* param_with_default+ '/' &')'
8987 if (p->error_indicator) {
8988 D(p->level--);
8989 return NULL;
8990 }
8991 D(fprintf(stderr, "%*c> slash_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default* param_with_default+ '/' &')'"));
8992 Token * _literal;
8993 asdl_seq * a;
8994 asdl_seq * b;
8995 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08008996 (a = _loop0_80_rule(p)) // param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008997 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008998 (b = _loop1_81_rule(p)) // param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008999 &&
9000 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
9001 &&
9002 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
9003 )
9004 {
9005 D(fprintf(stderr, "%*c+ slash_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default* param_with_default+ '/' &')'"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01009006 _res = _PyPegen_slash_with_default ( p , ( asdl_arg_seq * ) a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009007 if (_res == NULL && PyErr_Occurred()) {
9008 p->error_indicator = 1;
9009 D(p->level--);
9010 return NULL;
9011 }
9012 goto done;
9013 }
9014 p->mark = _mark;
9015 D(fprintf(stderr, "%*c%s slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
9016 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default* param_with_default+ '/' &')'"));
9017 }
9018 _res = NULL;
9019 done:
9020 D(p->level--);
9021 return _res;
9022}
9023
9024// star_etc:
9025// | '*' param_no_default param_maybe_default* kwds?
9026// | '*' ',' param_maybe_default+ kwds?
9027// | kwds
9028// | invalid_star_etc
9029static StarEtc*
9030star_etc_rule(Parser *p)
9031{
9032 D(p->level++);
9033 if (p->error_indicator) {
9034 D(p->level--);
9035 return NULL;
9036 }
9037 StarEtc* _res = NULL;
9038 int _mark = p->mark;
9039 { // '*' param_no_default param_maybe_default* kwds?
9040 if (p->error_indicator) {
9041 D(p->level--);
9042 return NULL;
9043 }
9044 D(fprintf(stderr, "%*c> star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' param_no_default param_maybe_default* kwds?"));
9045 Token * _literal;
9046 arg_ty a;
9047 asdl_seq * b;
9048 void *c;
9049 if (
9050 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
9051 &&
9052 (a = param_no_default_rule(p)) // param_no_default
9053 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08009054 (b = _loop0_82_rule(p)) // param_maybe_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009055 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02009056 (c = kwds_rule(p), !p->error_indicator) // kwds?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009057 )
9058 {
9059 D(fprintf(stderr, "%*c+ star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' param_no_default param_maybe_default* kwds?"));
9060 _res = _PyPegen_star_etc ( p , a , b , c );
9061 if (_res == NULL && PyErr_Occurred()) {
9062 p->error_indicator = 1;
9063 D(p->level--);
9064 return NULL;
9065 }
9066 goto done;
9067 }
9068 p->mark = _mark;
9069 D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
9070 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' param_no_default param_maybe_default* kwds?"));
9071 }
9072 { // '*' ',' param_maybe_default+ kwds?
9073 if (p->error_indicator) {
9074 D(p->level--);
9075 return NULL;
9076 }
9077 D(fprintf(stderr, "%*c> star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' ',' param_maybe_default+ kwds?"));
9078 Token * _literal;
9079 Token * _literal_1;
9080 asdl_seq * b;
9081 void *c;
9082 if (
9083 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
9084 &&
9085 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
9086 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08009087 (b = _loop1_83_rule(p)) // param_maybe_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009088 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02009089 (c = kwds_rule(p), !p->error_indicator) // kwds?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009090 )
9091 {
9092 D(fprintf(stderr, "%*c+ star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' ',' param_maybe_default+ kwds?"));
9093 _res = _PyPegen_star_etc ( p , NULL , b , c );
9094 if (_res == NULL && PyErr_Occurred()) {
9095 p->error_indicator = 1;
9096 D(p->level--);
9097 return NULL;
9098 }
9099 goto done;
9100 }
9101 p->mark = _mark;
9102 D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
9103 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' ',' param_maybe_default+ kwds?"));
9104 }
9105 { // kwds
9106 if (p->error_indicator) {
9107 D(p->level--);
9108 return NULL;
9109 }
9110 D(fprintf(stderr, "%*c> star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwds"));
9111 arg_ty a;
9112 if (
9113 (a = kwds_rule(p)) // kwds
9114 )
9115 {
9116 D(fprintf(stderr, "%*c+ star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwds"));
9117 _res = _PyPegen_star_etc ( p , NULL , NULL , a );
9118 if (_res == NULL && PyErr_Occurred()) {
9119 p->error_indicator = 1;
9120 D(p->level--);
9121 return NULL;
9122 }
9123 goto done;
9124 }
9125 p->mark = _mark;
9126 D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
9127 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwds"));
9128 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02009129 if (p->call_invalid_rules) { // invalid_star_etc
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009130 if (p->error_indicator) {
9131 D(p->level--);
9132 return NULL;
9133 }
9134 D(fprintf(stderr, "%*c> star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_star_etc"));
9135 void *invalid_star_etc_var;
9136 if (
9137 (invalid_star_etc_var = invalid_star_etc_rule(p)) // invalid_star_etc
9138 )
9139 {
9140 D(fprintf(stderr, "%*c+ star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_star_etc"));
9141 _res = invalid_star_etc_var;
9142 goto done;
9143 }
9144 p->mark = _mark;
9145 D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
9146 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_star_etc"));
9147 }
9148 _res = NULL;
9149 done:
9150 D(p->level--);
9151 return _res;
9152}
9153
9154// kwds: '**' param_no_default
9155static arg_ty
9156kwds_rule(Parser *p)
9157{
9158 D(p->level++);
9159 if (p->error_indicator) {
9160 D(p->level--);
9161 return NULL;
9162 }
9163 arg_ty _res = NULL;
9164 int _mark = p->mark;
9165 { // '**' param_no_default
9166 if (p->error_indicator) {
9167 D(p->level--);
9168 return NULL;
9169 }
9170 D(fprintf(stderr, "%*c> kwds[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' param_no_default"));
9171 Token * _literal;
9172 arg_ty a;
9173 if (
9174 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
9175 &&
9176 (a = param_no_default_rule(p)) // param_no_default
9177 )
9178 {
9179 D(fprintf(stderr, "%*c+ kwds[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' param_no_default"));
9180 _res = a;
9181 if (_res == NULL && PyErr_Occurred()) {
9182 p->error_indicator = 1;
9183 D(p->level--);
9184 return NULL;
9185 }
9186 goto done;
9187 }
9188 p->mark = _mark;
9189 D(fprintf(stderr, "%*c%s kwds[%d-%d]: %s failed!\n", p->level, ' ',
9190 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' param_no_default"));
9191 }
9192 _res = NULL;
9193 done:
9194 D(p->level--);
9195 return _res;
9196}
9197
9198// param_no_default: param ',' TYPE_COMMENT? | param TYPE_COMMENT? &')'
9199static arg_ty
9200param_no_default_rule(Parser *p)
9201{
9202 D(p->level++);
9203 if (p->error_indicator) {
9204 D(p->level--);
9205 return NULL;
9206 }
9207 arg_ty _res = NULL;
9208 int _mark = p->mark;
9209 { // param ',' TYPE_COMMENT?
9210 if (p->error_indicator) {
9211 D(p->level--);
9212 return NULL;
9213 }
9214 D(fprintf(stderr, "%*c> param_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param ',' TYPE_COMMENT?"));
9215 Token * _literal;
9216 arg_ty a;
9217 void *tc;
9218 if (
9219 (a = param_rule(p)) // param
9220 &&
9221 (_literal = _PyPegen_expect_token(p, 12)) // token=','
9222 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02009223 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), !p->error_indicator) // TYPE_COMMENT?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009224 )
9225 {
9226 D(fprintf(stderr, "%*c+ param_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param ',' TYPE_COMMENT?"));
9227 _res = _PyPegen_add_type_comment_to_arg ( p , a , tc );
9228 if (_res == NULL && PyErr_Occurred()) {
9229 p->error_indicator = 1;
9230 D(p->level--);
9231 return NULL;
9232 }
9233 goto done;
9234 }
9235 p->mark = _mark;
9236 D(fprintf(stderr, "%*c%s param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
9237 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param ',' TYPE_COMMENT?"));
9238 }
9239 { // param TYPE_COMMENT? &')'
9240 if (p->error_indicator) {
9241 D(p->level--);
9242 return NULL;
9243 }
9244 D(fprintf(stderr, "%*c> param_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param TYPE_COMMENT? &')'"));
9245 arg_ty a;
9246 void *tc;
9247 if (
9248 (a = param_rule(p)) // param
9249 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02009250 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), !p->error_indicator) // TYPE_COMMENT?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009251 &&
9252 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
9253 )
9254 {
9255 D(fprintf(stderr, "%*c+ param_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param TYPE_COMMENT? &')'"));
9256 _res = _PyPegen_add_type_comment_to_arg ( p , a , tc );
9257 if (_res == NULL && PyErr_Occurred()) {
9258 p->error_indicator = 1;
9259 D(p->level--);
9260 return NULL;
9261 }
9262 goto done;
9263 }
9264 p->mark = _mark;
9265 D(fprintf(stderr, "%*c%s param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
9266 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param TYPE_COMMENT? &')'"));
9267 }
9268 _res = NULL;
9269 done:
9270 D(p->level--);
9271 return _res;
9272}
9273
9274// param_with_default: param default ',' TYPE_COMMENT? | param default TYPE_COMMENT? &')'
9275static NameDefaultPair*
9276param_with_default_rule(Parser *p)
9277{
9278 D(p->level++);
9279 if (p->error_indicator) {
9280 D(p->level--);
9281 return NULL;
9282 }
9283 NameDefaultPair* _res = NULL;
9284 int _mark = p->mark;
9285 { // param default ',' TYPE_COMMENT?
9286 if (p->error_indicator) {
9287 D(p->level--);
9288 return NULL;
9289 }
9290 D(fprintf(stderr, "%*c> param_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param default ',' TYPE_COMMENT?"));
9291 Token * _literal;
9292 arg_ty a;
9293 expr_ty c;
9294 void *tc;
9295 if (
9296 (a = param_rule(p)) // param
9297 &&
9298 (c = default_rule(p)) // default
9299 &&
9300 (_literal = _PyPegen_expect_token(p, 12)) // token=','
9301 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02009302 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), !p->error_indicator) // TYPE_COMMENT?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009303 )
9304 {
9305 D(fprintf(stderr, "%*c+ param_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param default ',' TYPE_COMMENT?"));
9306 _res = _PyPegen_name_default_pair ( p , a , c , tc );
9307 if (_res == NULL && PyErr_Occurred()) {
9308 p->error_indicator = 1;
9309 D(p->level--);
9310 return NULL;
9311 }
9312 goto done;
9313 }
9314 p->mark = _mark;
9315 D(fprintf(stderr, "%*c%s param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
9316 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default ',' TYPE_COMMENT?"));
9317 }
9318 { // param default TYPE_COMMENT? &')'
9319 if (p->error_indicator) {
9320 D(p->level--);
9321 return NULL;
9322 }
9323 D(fprintf(stderr, "%*c> param_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param default TYPE_COMMENT? &')'"));
9324 arg_ty a;
9325 expr_ty c;
9326 void *tc;
9327 if (
9328 (a = param_rule(p)) // param
9329 &&
9330 (c = default_rule(p)) // default
9331 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02009332 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), !p->error_indicator) // TYPE_COMMENT?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009333 &&
9334 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
9335 )
9336 {
9337 D(fprintf(stderr, "%*c+ param_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param default TYPE_COMMENT? &')'"));
9338 _res = _PyPegen_name_default_pair ( p , a , c , tc );
9339 if (_res == NULL && PyErr_Occurred()) {
9340 p->error_indicator = 1;
9341 D(p->level--);
9342 return NULL;
9343 }
9344 goto done;
9345 }
9346 p->mark = _mark;
9347 D(fprintf(stderr, "%*c%s param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
9348 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default TYPE_COMMENT? &')'"));
9349 }
9350 _res = NULL;
9351 done:
9352 D(p->level--);
9353 return _res;
9354}
9355
9356// param_maybe_default:
9357// | param default? ',' TYPE_COMMENT?
9358// | param default? TYPE_COMMENT? &')'
9359static NameDefaultPair*
9360param_maybe_default_rule(Parser *p)
9361{
9362 D(p->level++);
9363 if (p->error_indicator) {
9364 D(p->level--);
9365 return NULL;
9366 }
9367 NameDefaultPair* _res = NULL;
9368 int _mark = p->mark;
9369 { // param default? ',' TYPE_COMMENT?
9370 if (p->error_indicator) {
9371 D(p->level--);
9372 return NULL;
9373 }
9374 D(fprintf(stderr, "%*c> param_maybe_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param default? ',' TYPE_COMMENT?"));
9375 Token * _literal;
9376 arg_ty a;
9377 void *c;
9378 void *tc;
9379 if (
9380 (a = param_rule(p)) // param
9381 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02009382 (c = default_rule(p), !p->error_indicator) // default?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009383 &&
9384 (_literal = _PyPegen_expect_token(p, 12)) // token=','
9385 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02009386 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), !p->error_indicator) // TYPE_COMMENT?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009387 )
9388 {
9389 D(fprintf(stderr, "%*c+ param_maybe_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param default? ',' TYPE_COMMENT?"));
9390 _res = _PyPegen_name_default_pair ( p , a , c , tc );
9391 if (_res == NULL && PyErr_Occurred()) {
9392 p->error_indicator = 1;
9393 D(p->level--);
9394 return NULL;
9395 }
9396 goto done;
9397 }
9398 p->mark = _mark;
9399 D(fprintf(stderr, "%*c%s param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
9400 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default? ',' TYPE_COMMENT?"));
9401 }
9402 { // param default? TYPE_COMMENT? &')'
9403 if (p->error_indicator) {
9404 D(p->level--);
9405 return NULL;
9406 }
9407 D(fprintf(stderr, "%*c> param_maybe_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param default? TYPE_COMMENT? &')'"));
9408 arg_ty a;
9409 void *c;
9410 void *tc;
9411 if (
9412 (a = param_rule(p)) // param
9413 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02009414 (c = default_rule(p), !p->error_indicator) // default?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009415 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02009416 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), !p->error_indicator) // TYPE_COMMENT?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009417 &&
9418 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
9419 )
9420 {
9421 D(fprintf(stderr, "%*c+ param_maybe_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param default? TYPE_COMMENT? &')'"));
9422 _res = _PyPegen_name_default_pair ( p , a , c , tc );
9423 if (_res == NULL && PyErr_Occurred()) {
9424 p->error_indicator = 1;
9425 D(p->level--);
9426 return NULL;
9427 }
9428 goto done;
9429 }
9430 p->mark = _mark;
9431 D(fprintf(stderr, "%*c%s param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
9432 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default? TYPE_COMMENT? &')'"));
9433 }
9434 _res = NULL;
9435 done:
9436 D(p->level--);
9437 return _res;
9438}
9439
9440// param: NAME annotation?
9441static arg_ty
9442param_rule(Parser *p)
9443{
9444 D(p->level++);
9445 if (p->error_indicator) {
9446 D(p->level--);
9447 return NULL;
9448 }
9449 arg_ty _res = NULL;
9450 int _mark = p->mark;
9451 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9452 p->error_indicator = 1;
9453 D(p->level--);
9454 return NULL;
9455 }
9456 int _start_lineno = p->tokens[_mark]->lineno;
9457 UNUSED(_start_lineno); // Only used by EXTRA macro
9458 int _start_col_offset = p->tokens[_mark]->col_offset;
9459 UNUSED(_start_col_offset); // Only used by EXTRA macro
9460 { // NAME annotation?
9461 if (p->error_indicator) {
9462 D(p->level--);
9463 return NULL;
9464 }
9465 D(fprintf(stderr, "%*c> param[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME annotation?"));
9466 expr_ty a;
9467 void *b;
9468 if (
9469 (a = _PyPegen_name_token(p)) // NAME
9470 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02009471 (b = annotation_rule(p), !p->error_indicator) // annotation?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009472 )
9473 {
9474 D(fprintf(stderr, "%*c+ param[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME annotation?"));
9475 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9476 if (_token == NULL) {
9477 D(p->level--);
9478 return NULL;
9479 }
9480 int _end_lineno = _token->end_lineno;
9481 UNUSED(_end_lineno); // Only used by EXTRA macro
9482 int _end_col_offset = _token->end_col_offset;
9483 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02009484 _res = _PyAST_arg ( a -> v . Name . id , b , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009485 if (_res == NULL && PyErr_Occurred()) {
9486 p->error_indicator = 1;
9487 D(p->level--);
9488 return NULL;
9489 }
9490 goto done;
9491 }
9492 p->mark = _mark;
9493 D(fprintf(stderr, "%*c%s param[%d-%d]: %s failed!\n", p->level, ' ',
9494 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME annotation?"));
9495 }
9496 _res = NULL;
9497 done:
9498 D(p->level--);
9499 return _res;
9500}
9501
9502// annotation: ':' expression
9503static expr_ty
9504annotation_rule(Parser *p)
9505{
9506 D(p->level++);
9507 if (p->error_indicator) {
9508 D(p->level--);
9509 return NULL;
9510 }
9511 expr_ty _res = NULL;
9512 int _mark = p->mark;
9513 { // ':' expression
9514 if (p->error_indicator) {
9515 D(p->level--);
9516 return NULL;
9517 }
9518 D(fprintf(stderr, "%*c> annotation[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':' expression"));
9519 Token * _literal;
9520 expr_ty a;
9521 if (
9522 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
9523 &&
9524 (a = expression_rule(p)) // expression
9525 )
9526 {
9527 D(fprintf(stderr, "%*c+ annotation[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':' expression"));
9528 _res = a;
9529 if (_res == NULL && PyErr_Occurred()) {
9530 p->error_indicator = 1;
9531 D(p->level--);
9532 return NULL;
9533 }
9534 goto done;
9535 }
9536 p->mark = _mark;
9537 D(fprintf(stderr, "%*c%s annotation[%d-%d]: %s failed!\n", p->level, ' ',
9538 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':' expression"));
9539 }
9540 _res = NULL;
9541 done:
9542 D(p->level--);
9543 return _res;
9544}
9545
9546// default: '=' expression
9547static expr_ty
9548default_rule(Parser *p)
9549{
9550 D(p->level++);
9551 if (p->error_indicator) {
9552 D(p->level--);
9553 return NULL;
9554 }
9555 expr_ty _res = NULL;
9556 int _mark = p->mark;
9557 { // '=' expression
9558 if (p->error_indicator) {
9559 D(p->level--);
9560 return NULL;
9561 }
9562 D(fprintf(stderr, "%*c> default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'=' expression"));
9563 Token * _literal;
9564 expr_ty a;
9565 if (
9566 (_literal = _PyPegen_expect_token(p, 22)) // token='='
9567 &&
9568 (a = expression_rule(p)) // expression
9569 )
9570 {
9571 D(fprintf(stderr, "%*c+ default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'=' expression"));
9572 _res = a;
9573 if (_res == NULL && PyErr_Occurred()) {
9574 p->error_indicator = 1;
9575 D(p->level--);
9576 return NULL;
9577 }
9578 goto done;
9579 }
9580 p->mark = _mark;
9581 D(fprintf(stderr, "%*c%s default[%d-%d]: %s failed!\n", p->level, ' ',
9582 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'=' expression"));
9583 }
9584 _res = NULL;
9585 done:
9586 D(p->level--);
9587 return _res;
9588}
9589
9590// decorators: (('@' named_expression NEWLINE))+
Pablo Galindoa5634c42020-09-16 19:42:00 +01009591static asdl_expr_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009592decorators_rule(Parser *p)
9593{
9594 D(p->level++);
9595 if (p->error_indicator) {
9596 D(p->level--);
9597 return NULL;
9598 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01009599 asdl_expr_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009600 int _mark = p->mark;
9601 { // (('@' named_expression NEWLINE))+
9602 if (p->error_indicator) {
9603 D(p->level--);
9604 return NULL;
9605 }
9606 D(fprintf(stderr, "%*c> decorators[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(('@' named_expression NEWLINE))+"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01009607 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009608 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08009609 (a = (asdl_expr_seq*)_loop1_84_rule(p)) // (('@' named_expression NEWLINE))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009610 )
9611 {
9612 D(fprintf(stderr, "%*c+ decorators[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(('@' named_expression NEWLINE))+"));
9613 _res = a;
9614 if (_res == NULL && PyErr_Occurred()) {
9615 p->error_indicator = 1;
9616 D(p->level--);
9617 return NULL;
9618 }
9619 goto done;
9620 }
9621 p->mark = _mark;
9622 D(fprintf(stderr, "%*c%s decorators[%d-%d]: %s failed!\n", p->level, ' ',
9623 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(('@' named_expression NEWLINE))+"));
9624 }
9625 _res = NULL;
9626 done:
9627 D(p->level--);
9628 return _res;
9629}
9630
9631// class_def: decorators class_def_raw | class_def_raw
9632static stmt_ty
9633class_def_rule(Parser *p)
9634{
9635 D(p->level++);
9636 if (p->error_indicator) {
9637 D(p->level--);
9638 return NULL;
9639 }
9640 stmt_ty _res = NULL;
9641 int _mark = p->mark;
9642 { // decorators class_def_raw
9643 if (p->error_indicator) {
9644 D(p->level--);
9645 return NULL;
9646 }
9647 D(fprintf(stderr, "%*c> class_def[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "decorators class_def_raw"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01009648 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009649 stmt_ty b;
9650 if (
9651 (a = decorators_rule(p)) // decorators
9652 &&
9653 (b = class_def_raw_rule(p)) // class_def_raw
9654 )
9655 {
9656 D(fprintf(stderr, "%*c+ class_def[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "decorators class_def_raw"));
9657 _res = _PyPegen_class_def_decorators ( p , a , b );
9658 if (_res == NULL && PyErr_Occurred()) {
9659 p->error_indicator = 1;
9660 D(p->level--);
9661 return NULL;
9662 }
9663 goto done;
9664 }
9665 p->mark = _mark;
9666 D(fprintf(stderr, "%*c%s class_def[%d-%d]: %s failed!\n", p->level, ' ',
9667 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "decorators class_def_raw"));
9668 }
9669 { // class_def_raw
9670 if (p->error_indicator) {
9671 D(p->level--);
9672 return NULL;
9673 }
9674 D(fprintf(stderr, "%*c> class_def[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "class_def_raw"));
9675 stmt_ty class_def_raw_var;
9676 if (
9677 (class_def_raw_var = class_def_raw_rule(p)) // class_def_raw
9678 )
9679 {
9680 D(fprintf(stderr, "%*c+ class_def[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "class_def_raw"));
9681 _res = class_def_raw_var;
9682 goto done;
9683 }
9684 p->mark = _mark;
9685 D(fprintf(stderr, "%*c%s class_def[%d-%d]: %s failed!\n", p->level, ' ',
9686 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "class_def_raw"));
9687 }
9688 _res = NULL;
9689 done:
9690 D(p->level--);
9691 return _res;
9692}
9693
Pablo Galindo56c95df2021-04-21 15:28:21 +01009694// class_def_raw: invalid_class_def_raw | 'class' NAME ['(' arguments? ')'] &&':' block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009695static stmt_ty
9696class_def_raw_rule(Parser *p)
9697{
9698 D(p->level++);
9699 if (p->error_indicator) {
9700 D(p->level--);
9701 return NULL;
9702 }
9703 stmt_ty _res = NULL;
9704 int _mark = p->mark;
9705 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9706 p->error_indicator = 1;
9707 D(p->level--);
9708 return NULL;
9709 }
9710 int _start_lineno = p->tokens[_mark]->lineno;
9711 UNUSED(_start_lineno); // Only used by EXTRA macro
9712 int _start_col_offset = p->tokens[_mark]->col_offset;
9713 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo56c95df2021-04-21 15:28:21 +01009714 if (p->call_invalid_rules) { // invalid_class_def_raw
9715 if (p->error_indicator) {
9716 D(p->level--);
9717 return NULL;
9718 }
9719 D(fprintf(stderr, "%*c> class_def_raw[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_class_def_raw"));
9720 void *invalid_class_def_raw_var;
9721 if (
9722 (invalid_class_def_raw_var = invalid_class_def_raw_rule(p)) // invalid_class_def_raw
9723 )
9724 {
9725 D(fprintf(stderr, "%*c+ class_def_raw[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_class_def_raw"));
9726 _res = invalid_class_def_raw_var;
9727 goto done;
9728 }
9729 p->mark = _mark;
9730 D(fprintf(stderr, "%*c%s class_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
9731 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_class_def_raw"));
9732 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00009733 { // 'class' NAME ['(' arguments? ')'] &&':' block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009734 if (p->error_indicator) {
9735 D(p->level--);
9736 return NULL;
9737 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00009738 D(fprintf(stderr, "%*c> class_def_raw[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'class' NAME ['(' arguments? ')'] &&':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009739 Token * _keyword;
9740 Token * _literal;
9741 expr_ty a;
9742 void *b;
Pablo Galindoa5634c42020-09-16 19:42:00 +01009743 asdl_stmt_seq* c;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009744 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08009745 (_keyword = _PyPegen_expect_token(p, 527)) // token='class'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009746 &&
9747 (a = _PyPegen_name_token(p)) // NAME
9748 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02009749 (b = _tmp_85_rule(p), !p->error_indicator) // ['(' arguments? ')']
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009750 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00009751 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009752 &&
9753 (c = block_rule(p)) // block
9754 )
9755 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00009756 D(fprintf(stderr, "%*c+ class_def_raw[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'class' NAME ['(' arguments? ')'] &&':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009757 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9758 if (_token == NULL) {
9759 D(p->level--);
9760 return NULL;
9761 }
9762 int _end_lineno = _token->end_lineno;
9763 UNUSED(_end_lineno); // Only used by EXTRA macro
9764 int _end_col_offset = _token->end_col_offset;
9765 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02009766 _res = _PyAST_ClassDef ( a -> v . Name . id , ( b ) ? ( ( expr_ty ) b ) -> v . Call . args : NULL , ( b ) ? ( ( expr_ty ) b ) -> v . Call . keywords : NULL , c , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009767 if (_res == NULL && PyErr_Occurred()) {
9768 p->error_indicator = 1;
9769 D(p->level--);
9770 return NULL;
9771 }
9772 goto done;
9773 }
9774 p->mark = _mark;
9775 D(fprintf(stderr, "%*c%s class_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00009776 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'class' NAME ['(' arguments? ')'] &&':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009777 }
9778 _res = NULL;
9779 done:
9780 D(p->level--);
9781 return _res;
9782}
9783
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00009784// block: NEWLINE INDENT statements DEDENT | simple_stmts | invalid_block
Pablo Galindoa5634c42020-09-16 19:42:00 +01009785static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009786block_rule(Parser *p)
9787{
9788 D(p->level++);
9789 if (p->error_indicator) {
9790 D(p->level--);
9791 return NULL;
9792 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01009793 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009794 if (_PyPegen_is_memoized(p, block_type, &_res)) {
9795 D(p->level--);
9796 return _res;
9797 }
9798 int _mark = p->mark;
9799 { // NEWLINE INDENT statements DEDENT
9800 if (p->error_indicator) {
9801 D(p->level--);
9802 return NULL;
9803 }
9804 D(fprintf(stderr, "%*c> block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE INDENT statements DEDENT"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01009805 asdl_stmt_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009806 Token * dedent_var;
9807 Token * indent_var;
9808 Token * newline_var;
9809 if (
9810 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
9811 &&
9812 (indent_var = _PyPegen_expect_token(p, INDENT)) // token='INDENT'
9813 &&
9814 (a = statements_rule(p)) // statements
9815 &&
9816 (dedent_var = _PyPegen_expect_token(p, DEDENT)) // token='DEDENT'
9817 )
9818 {
9819 D(fprintf(stderr, "%*c+ block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE INDENT statements DEDENT"));
9820 _res = a;
9821 if (_res == NULL && PyErr_Occurred()) {
9822 p->error_indicator = 1;
9823 D(p->level--);
9824 return NULL;
9825 }
9826 goto done;
9827 }
9828 p->mark = _mark;
9829 D(fprintf(stderr, "%*c%s block[%d-%d]: %s failed!\n", p->level, ' ',
9830 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE INDENT statements DEDENT"));
9831 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00009832 { // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009833 if (p->error_indicator) {
9834 D(p->level--);
9835 return NULL;
9836 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00009837 D(fprintf(stderr, "%*c> block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
9838 asdl_stmt_seq* simple_stmts_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009839 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00009840 (simple_stmts_var = simple_stmts_rule(p)) // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009841 )
9842 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00009843 D(fprintf(stderr, "%*c+ block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
9844 _res = simple_stmts_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009845 goto done;
9846 }
9847 p->mark = _mark;
9848 D(fprintf(stderr, "%*c%s block[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00009849 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmts"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009850 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02009851 if (p->call_invalid_rules) { // invalid_block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009852 if (p->error_indicator) {
9853 D(p->level--);
9854 return NULL;
9855 }
9856 D(fprintf(stderr, "%*c> block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_block"));
9857 void *invalid_block_var;
9858 if (
9859 (invalid_block_var = invalid_block_rule(p)) // invalid_block
9860 )
9861 {
9862 D(fprintf(stderr, "%*c+ block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_block"));
9863 _res = invalid_block_var;
9864 goto done;
9865 }
9866 p->mark = _mark;
9867 D(fprintf(stderr, "%*c%s block[%d-%d]: %s failed!\n", p->level, ' ',
9868 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_block"));
9869 }
9870 _res = NULL;
9871 done:
9872 _PyPegen_insert_memo(p, _mark, block_type, _res);
9873 D(p->level--);
9874 return _res;
9875}
9876
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009877// star_expressions:
9878// | star_expression ((',' star_expression))+ ','?
9879// | star_expression ','
9880// | star_expression
9881static expr_ty
9882star_expressions_rule(Parser *p)
9883{
9884 D(p->level++);
9885 if (p->error_indicator) {
9886 D(p->level--);
9887 return NULL;
9888 }
9889 expr_ty _res = NULL;
9890 int _mark = p->mark;
9891 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9892 p->error_indicator = 1;
9893 D(p->level--);
9894 return NULL;
9895 }
9896 int _start_lineno = p->tokens[_mark]->lineno;
9897 UNUSED(_start_lineno); // Only used by EXTRA macro
9898 int _start_col_offset = p->tokens[_mark]->col_offset;
9899 UNUSED(_start_col_offset); // Only used by EXTRA macro
9900 { // star_expression ((',' star_expression))+ ','?
9901 if (p->error_indicator) {
9902 D(p->level--);
9903 return NULL;
9904 }
9905 D(fprintf(stderr, "%*c> star_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expression ((',' star_expression))+ ','?"));
9906 void *_opt_var;
9907 UNUSED(_opt_var); // Silence compiler warnings
9908 expr_ty a;
9909 asdl_seq * b;
9910 if (
9911 (a = star_expression_rule(p)) // star_expression
9912 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08009913 (b = _loop1_86_rule(p)) // ((',' star_expression))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009914 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02009915 (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009916 )
9917 {
9918 D(fprintf(stderr, "%*c+ star_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expression ((',' star_expression))+ ','?"));
9919 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9920 if (_token == NULL) {
9921 D(p->level--);
9922 return NULL;
9923 }
9924 int _end_lineno = _token->end_lineno;
9925 UNUSED(_end_lineno); // Only used by EXTRA macro
9926 int _end_col_offset = _token->end_col_offset;
9927 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02009928 _res = _PyAST_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , a , b ) ) , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009929 if (_res == NULL && PyErr_Occurred()) {
9930 p->error_indicator = 1;
9931 D(p->level--);
9932 return NULL;
9933 }
9934 goto done;
9935 }
9936 p->mark = _mark;
9937 D(fprintf(stderr, "%*c%s star_expressions[%d-%d]: %s failed!\n", p->level, ' ',
9938 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expression ((',' star_expression))+ ','?"));
9939 }
9940 { // star_expression ','
9941 if (p->error_indicator) {
9942 D(p->level--);
9943 return NULL;
9944 }
9945 D(fprintf(stderr, "%*c> star_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expression ','"));
9946 Token * _literal;
9947 expr_ty a;
9948 if (
9949 (a = star_expression_rule(p)) // star_expression
9950 &&
9951 (_literal = _PyPegen_expect_token(p, 12)) // token=','
9952 )
9953 {
9954 D(fprintf(stderr, "%*c+ star_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expression ','"));
9955 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9956 if (_token == NULL) {
9957 D(p->level--);
9958 return NULL;
9959 }
9960 int _end_lineno = _token->end_lineno;
9961 UNUSED(_end_lineno); // Only used by EXTRA macro
9962 int _end_col_offset = _token->end_col_offset;
9963 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02009964 _res = _PyAST_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_singleton_seq ( p , a ) ) , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009965 if (_res == NULL && PyErr_Occurred()) {
9966 p->error_indicator = 1;
9967 D(p->level--);
9968 return NULL;
9969 }
9970 goto done;
9971 }
9972 p->mark = _mark;
9973 D(fprintf(stderr, "%*c%s star_expressions[%d-%d]: %s failed!\n", p->level, ' ',
9974 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expression ','"));
9975 }
9976 { // star_expression
9977 if (p->error_indicator) {
9978 D(p->level--);
9979 return NULL;
9980 }
9981 D(fprintf(stderr, "%*c> star_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expression"));
9982 expr_ty star_expression_var;
9983 if (
9984 (star_expression_var = star_expression_rule(p)) // star_expression
9985 )
9986 {
9987 D(fprintf(stderr, "%*c+ star_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expression"));
9988 _res = star_expression_var;
9989 goto done;
9990 }
9991 p->mark = _mark;
9992 D(fprintf(stderr, "%*c%s star_expressions[%d-%d]: %s failed!\n", p->level, ' ',
9993 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expression"));
9994 }
9995 _res = NULL;
9996 done:
9997 D(p->level--);
9998 return _res;
9999}
10000
10001// star_expression: '*' bitwise_or | expression
10002static expr_ty
10003star_expression_rule(Parser *p)
10004{
10005 D(p->level++);
10006 if (p->error_indicator) {
10007 D(p->level--);
10008 return NULL;
10009 }
10010 expr_ty _res = NULL;
10011 if (_PyPegen_is_memoized(p, star_expression_type, &_res)) {
10012 D(p->level--);
10013 return _res;
10014 }
10015 int _mark = p->mark;
10016 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10017 p->error_indicator = 1;
10018 D(p->level--);
10019 return NULL;
10020 }
10021 int _start_lineno = p->tokens[_mark]->lineno;
10022 UNUSED(_start_lineno); // Only used by EXTRA macro
10023 int _start_col_offset = p->tokens[_mark]->col_offset;
10024 UNUSED(_start_col_offset); // Only used by EXTRA macro
10025 { // '*' bitwise_or
10026 if (p->error_indicator) {
10027 D(p->level--);
10028 return NULL;
10029 }
10030 D(fprintf(stderr, "%*c> star_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' bitwise_or"));
10031 Token * _literal;
10032 expr_ty a;
10033 if (
10034 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
10035 &&
10036 (a = bitwise_or_rule(p)) // bitwise_or
10037 )
10038 {
10039 D(fprintf(stderr, "%*c+ star_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' bitwise_or"));
10040 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10041 if (_token == NULL) {
10042 D(p->level--);
10043 return NULL;
10044 }
10045 int _end_lineno = _token->end_lineno;
10046 UNUSED(_end_lineno); // Only used by EXTRA macro
10047 int _end_col_offset = _token->end_col_offset;
10048 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020010049 _res = _PyAST_Starred ( a , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010050 if (_res == NULL && PyErr_Occurred()) {
10051 p->error_indicator = 1;
10052 D(p->level--);
10053 return NULL;
10054 }
10055 goto done;
10056 }
10057 p->mark = _mark;
10058 D(fprintf(stderr, "%*c%s star_expression[%d-%d]: %s failed!\n", p->level, ' ',
10059 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' bitwise_or"));
10060 }
10061 { // expression
10062 if (p->error_indicator) {
10063 D(p->level--);
10064 return NULL;
10065 }
10066 D(fprintf(stderr, "%*c> star_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression"));
10067 expr_ty expression_var;
10068 if (
10069 (expression_var = expression_rule(p)) // expression
10070 )
10071 {
10072 D(fprintf(stderr, "%*c+ star_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression"));
10073 _res = expression_var;
10074 goto done;
10075 }
10076 p->mark = _mark;
10077 D(fprintf(stderr, "%*c%s star_expression[%d-%d]: %s failed!\n", p->level, ' ',
10078 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression"));
10079 }
10080 _res = NULL;
10081 done:
10082 _PyPegen_insert_memo(p, _mark, star_expression_type, _res);
10083 D(p->level--);
10084 return _res;
10085}
10086
10087// star_named_expressions: ','.star_named_expression+ ','?
Pablo Galindoa5634c42020-09-16 19:42:00 +010010088static asdl_expr_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010089star_named_expressions_rule(Parser *p)
10090{
10091 D(p->level++);
10092 if (p->error_indicator) {
10093 D(p->level--);
10094 return NULL;
10095 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010010096 asdl_expr_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010097 int _mark = p->mark;
10098 { // ','.star_named_expression+ ','?
10099 if (p->error_indicator) {
10100 D(p->level--);
10101 return NULL;
10102 }
10103 D(fprintf(stderr, "%*c> star_named_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.star_named_expression+ ','?"));
10104 void *_opt_var;
10105 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +010010106 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010107 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080010108 (a = (asdl_expr_seq*)_gather_87_rule(p)) // ','.star_named_expression+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010109 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +020010110 (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010111 )
10112 {
10113 D(fprintf(stderr, "%*c+ star_named_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.star_named_expression+ ','?"));
10114 _res = a;
10115 if (_res == NULL && PyErr_Occurred()) {
10116 p->error_indicator = 1;
10117 D(p->level--);
10118 return NULL;
10119 }
10120 goto done;
10121 }
10122 p->mark = _mark;
10123 D(fprintf(stderr, "%*c%s star_named_expressions[%d-%d]: %s failed!\n", p->level, ' ',
10124 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.star_named_expression+ ','?"));
10125 }
10126 _res = NULL;
10127 done:
10128 D(p->level--);
10129 return _res;
10130}
10131
10132// star_named_expression: '*' bitwise_or | named_expression
10133static expr_ty
10134star_named_expression_rule(Parser *p)
10135{
10136 D(p->level++);
10137 if (p->error_indicator) {
10138 D(p->level--);
10139 return NULL;
10140 }
10141 expr_ty _res = NULL;
10142 int _mark = p->mark;
10143 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10144 p->error_indicator = 1;
10145 D(p->level--);
10146 return NULL;
10147 }
10148 int _start_lineno = p->tokens[_mark]->lineno;
10149 UNUSED(_start_lineno); // Only used by EXTRA macro
10150 int _start_col_offset = p->tokens[_mark]->col_offset;
10151 UNUSED(_start_col_offset); // Only used by EXTRA macro
10152 { // '*' bitwise_or
10153 if (p->error_indicator) {
10154 D(p->level--);
10155 return NULL;
10156 }
10157 D(fprintf(stderr, "%*c> star_named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' bitwise_or"));
10158 Token * _literal;
10159 expr_ty a;
10160 if (
10161 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
10162 &&
10163 (a = bitwise_or_rule(p)) // bitwise_or
10164 )
10165 {
10166 D(fprintf(stderr, "%*c+ star_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' bitwise_or"));
10167 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10168 if (_token == NULL) {
10169 D(p->level--);
10170 return NULL;
10171 }
10172 int _end_lineno = _token->end_lineno;
10173 UNUSED(_end_lineno); // Only used by EXTRA macro
10174 int _end_col_offset = _token->end_col_offset;
10175 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020010176 _res = _PyAST_Starred ( a , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010177 if (_res == NULL && PyErr_Occurred()) {
10178 p->error_indicator = 1;
10179 D(p->level--);
10180 return NULL;
10181 }
10182 goto done;
10183 }
10184 p->mark = _mark;
10185 D(fprintf(stderr, "%*c%s star_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
10186 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' bitwise_or"));
10187 }
10188 { // named_expression
10189 if (p->error_indicator) {
10190 D(p->level--);
10191 return NULL;
10192 }
10193 D(fprintf(stderr, "%*c> star_named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression"));
10194 expr_ty named_expression_var;
10195 if (
10196 (named_expression_var = named_expression_rule(p)) // named_expression
10197 )
10198 {
10199 D(fprintf(stderr, "%*c+ star_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "named_expression"));
10200 _res = named_expression_var;
10201 goto done;
10202 }
10203 p->mark = _mark;
10204 D(fprintf(stderr, "%*c%s star_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
10205 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression"));
10206 }
10207 _res = NULL;
10208 done:
10209 D(p->level--);
10210 return _res;
10211}
10212
Pablo Galindo Salgado0e34a592021-11-04 23:19:27 +000010213// assignment_expression: NAME ':=' ~ expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010214static expr_ty
Pablo Galindo Salgado0e34a592021-11-04 23:19:27 +000010215assignment_expression_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010216{
10217 D(p->level++);
10218 if (p->error_indicator) {
10219 D(p->level--);
10220 return NULL;
10221 }
10222 expr_ty _res = NULL;
10223 int _mark = p->mark;
10224 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10225 p->error_indicator = 1;
10226 D(p->level--);
10227 return NULL;
10228 }
10229 int _start_lineno = p->tokens[_mark]->lineno;
10230 UNUSED(_start_lineno); // Only used by EXTRA macro
10231 int _start_col_offset = p->tokens[_mark]->col_offset;
10232 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030010233 { // NAME ':=' ~ expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010234 if (p->error_indicator) {
10235 D(p->level--);
10236 return NULL;
10237 }
Pablo Galindo Salgado0e34a592021-11-04 23:19:27 +000010238 D(fprintf(stderr, "%*c> assignment_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME ':=' ~ expression"));
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030010239 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010240 Token * _literal;
10241 expr_ty a;
10242 expr_ty b;
10243 if (
10244 (a = _PyPegen_name_token(p)) // NAME
10245 &&
10246 (_literal = _PyPegen_expect_token(p, 53)) // token=':='
10247 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030010248 (_cut_var = 1)
10249 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010250 (b = expression_rule(p)) // expression
10251 )
10252 {
Pablo Galindo Salgado0e34a592021-11-04 23:19:27 +000010253 D(fprintf(stderr, "%*c+ assignment_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME ':=' ~ expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010254 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10255 if (_token == NULL) {
10256 D(p->level--);
10257 return NULL;
10258 }
10259 int _end_lineno = _token->end_lineno;
10260 UNUSED(_end_lineno); // Only used by EXTRA macro
10261 int _end_col_offset = _token->end_col_offset;
10262 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020010263 _res = _PyAST_NamedExpr ( CHECK ( expr_ty , _PyPegen_set_expr_context ( p , a , Store ) ) , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010264 if (_res == NULL && PyErr_Occurred()) {
10265 p->error_indicator = 1;
10266 D(p->level--);
10267 return NULL;
10268 }
10269 goto done;
10270 }
10271 p->mark = _mark;
Pablo Galindo Salgado0e34a592021-11-04 23:19:27 +000010272 D(fprintf(stderr, "%*c%s assignment_expression[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030010273 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME ':=' ~ expression"));
10274 if (_cut_var) {
10275 D(p->level--);
10276 return NULL;
10277 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010278 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070010279 _res = NULL;
10280 done:
10281 D(p->level--);
10282 return _res;
10283}
10284
Pablo Galindo Salgado0e34a592021-11-04 23:19:27 +000010285// named_expression: assignment_expression | invalid_named_expression | expression !':='
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070010286static expr_ty
10287named_expression_rule(Parser *p)
10288{
10289 D(p->level++);
10290 if (p->error_indicator) {
10291 D(p->level--);
10292 return NULL;
10293 }
10294 expr_ty _res = NULL;
10295 int _mark = p->mark;
Pablo Galindo Salgado0e34a592021-11-04 23:19:27 +000010296 { // assignment_expression
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070010297 if (p->error_indicator) {
10298 D(p->level--);
10299 return NULL;
10300 }
Pablo Galindo Salgado0e34a592021-11-04 23:19:27 +000010301 D(fprintf(stderr, "%*c> named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "assignment_expression"));
10302 expr_ty assignment_expression_var;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070010303 if (
Pablo Galindo Salgado0e34a592021-11-04 23:19:27 +000010304 (assignment_expression_var = assignment_expression_rule(p)) // assignment_expression
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070010305 )
10306 {
Pablo Galindo Salgado0e34a592021-11-04 23:19:27 +000010307 D(fprintf(stderr, "%*c+ named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "assignment_expression"));
10308 _res = assignment_expression_var;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070010309 goto done;
10310 }
10311 p->mark = _mark;
10312 D(fprintf(stderr, "%*c%s named_expression[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo Salgado0e34a592021-11-04 23:19:27 +000010313 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "assignment_expression"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070010314 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010010315 if (p->call_invalid_rules) { // invalid_named_expression
10316 if (p->error_indicator) {
10317 D(p->level--);
10318 return NULL;
10319 }
10320 D(fprintf(stderr, "%*c> named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_named_expression"));
10321 void *invalid_named_expression_var;
10322 if (
10323 (invalid_named_expression_var = invalid_named_expression_rule(p)) // invalid_named_expression
10324 )
10325 {
10326 D(fprintf(stderr, "%*c+ named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_named_expression"));
10327 _res = invalid_named_expression_var;
10328 goto done;
10329 }
10330 p->mark = _mark;
10331 D(fprintf(stderr, "%*c%s named_expression[%d-%d]: %s failed!\n", p->level, ' ',
10332 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_named_expression"));
10333 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010334 { // expression !':='
10335 if (p->error_indicator) {
10336 D(p->level--);
10337 return NULL;
10338 }
10339 D(fprintf(stderr, "%*c> named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression !':='"));
10340 expr_ty expression_var;
10341 if (
10342 (expression_var = expression_rule(p)) // expression
10343 &&
10344 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 53) // token=':='
10345 )
10346 {
10347 D(fprintf(stderr, "%*c+ named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression !':='"));
10348 _res = expression_var;
10349 goto done;
10350 }
10351 p->mark = _mark;
10352 D(fprintf(stderr, "%*c%s named_expression[%d-%d]: %s failed!\n", p->level, ' ',
10353 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression !':='"));
10354 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010355 _res = NULL;
10356 done:
10357 D(p->level--);
10358 return _res;
10359}
10360
10361// annotated_rhs: yield_expr | star_expressions
10362static expr_ty
10363annotated_rhs_rule(Parser *p)
10364{
10365 D(p->level++);
10366 if (p->error_indicator) {
10367 D(p->level--);
10368 return NULL;
10369 }
10370 expr_ty _res = NULL;
10371 int _mark = p->mark;
10372 { // yield_expr
10373 if (p->error_indicator) {
10374 D(p->level--);
10375 return NULL;
10376 }
10377 D(fprintf(stderr, "%*c> annotated_rhs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
10378 expr_ty yield_expr_var;
10379 if (
10380 (yield_expr_var = yield_expr_rule(p)) // yield_expr
10381 )
10382 {
10383 D(fprintf(stderr, "%*c+ annotated_rhs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
10384 _res = yield_expr_var;
10385 goto done;
10386 }
10387 p->mark = _mark;
10388 D(fprintf(stderr, "%*c%s annotated_rhs[%d-%d]: %s failed!\n", p->level, ' ',
10389 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
10390 }
10391 { // star_expressions
10392 if (p->error_indicator) {
10393 D(p->level--);
10394 return NULL;
10395 }
10396 D(fprintf(stderr, "%*c> annotated_rhs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
10397 expr_ty star_expressions_var;
10398 if (
10399 (star_expressions_var = star_expressions_rule(p)) // star_expressions
10400 )
10401 {
10402 D(fprintf(stderr, "%*c+ annotated_rhs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
10403 _res = star_expressions_var;
10404 goto done;
10405 }
10406 p->mark = _mark;
10407 D(fprintf(stderr, "%*c%s annotated_rhs[%d-%d]: %s failed!\n", p->level, ' ',
10408 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
10409 }
10410 _res = NULL;
10411 done:
10412 D(p->level--);
10413 return _res;
10414}
10415
10416// expressions: expression ((',' expression))+ ','? | expression ',' | expression
10417static expr_ty
10418expressions_rule(Parser *p)
10419{
10420 D(p->level++);
10421 if (p->error_indicator) {
10422 D(p->level--);
10423 return NULL;
10424 }
10425 expr_ty _res = NULL;
10426 int _mark = p->mark;
10427 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10428 p->error_indicator = 1;
10429 D(p->level--);
10430 return NULL;
10431 }
10432 int _start_lineno = p->tokens[_mark]->lineno;
10433 UNUSED(_start_lineno); // Only used by EXTRA macro
10434 int _start_col_offset = p->tokens[_mark]->col_offset;
10435 UNUSED(_start_col_offset); // Only used by EXTRA macro
10436 { // expression ((',' expression))+ ','?
10437 if (p->error_indicator) {
10438 D(p->level--);
10439 return NULL;
10440 }
10441 D(fprintf(stderr, "%*c> expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ((',' expression))+ ','?"));
10442 void *_opt_var;
10443 UNUSED(_opt_var); // Silence compiler warnings
10444 expr_ty a;
10445 asdl_seq * b;
10446 if (
10447 (a = expression_rule(p)) // expression
10448 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080010449 (b = _loop1_89_rule(p)) // ((',' expression))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010450 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +020010451 (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010452 )
10453 {
10454 D(fprintf(stderr, "%*c+ expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ((',' expression))+ ','?"));
10455 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10456 if (_token == NULL) {
10457 D(p->level--);
10458 return NULL;
10459 }
10460 int _end_lineno = _token->end_lineno;
10461 UNUSED(_end_lineno); // Only used by EXTRA macro
10462 int _end_col_offset = _token->end_col_offset;
10463 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020010464 _res = _PyAST_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , a , b ) ) , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010465 if (_res == NULL && PyErr_Occurred()) {
10466 p->error_indicator = 1;
10467 D(p->level--);
10468 return NULL;
10469 }
10470 goto done;
10471 }
10472 p->mark = _mark;
10473 D(fprintf(stderr, "%*c%s expressions[%d-%d]: %s failed!\n", p->level, ' ',
10474 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ((',' expression))+ ','?"));
10475 }
10476 { // expression ','
10477 if (p->error_indicator) {
10478 D(p->level--);
10479 return NULL;
10480 }
10481 D(fprintf(stderr, "%*c> expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ','"));
10482 Token * _literal;
10483 expr_ty a;
10484 if (
10485 (a = expression_rule(p)) // expression
10486 &&
10487 (_literal = _PyPegen_expect_token(p, 12)) // token=','
10488 )
10489 {
10490 D(fprintf(stderr, "%*c+ expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ','"));
10491 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10492 if (_token == NULL) {
10493 D(p->level--);
10494 return NULL;
10495 }
10496 int _end_lineno = _token->end_lineno;
10497 UNUSED(_end_lineno); // Only used by EXTRA macro
10498 int _end_col_offset = _token->end_col_offset;
10499 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020010500 _res = _PyAST_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_singleton_seq ( p , a ) ) , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010501 if (_res == NULL && PyErr_Occurred()) {
10502 p->error_indicator = 1;
10503 D(p->level--);
10504 return NULL;
10505 }
10506 goto done;
10507 }
10508 p->mark = _mark;
10509 D(fprintf(stderr, "%*c%s expressions[%d-%d]: %s failed!\n", p->level, ' ',
10510 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ','"));
10511 }
10512 { // expression
10513 if (p->error_indicator) {
10514 D(p->level--);
10515 return NULL;
10516 }
10517 D(fprintf(stderr, "%*c> expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression"));
10518 expr_ty expression_var;
10519 if (
10520 (expression_var = expression_rule(p)) // expression
10521 )
10522 {
10523 D(fprintf(stderr, "%*c+ expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression"));
10524 _res = expression_var;
10525 goto done;
10526 }
10527 p->mark = _mark;
10528 D(fprintf(stderr, "%*c%s expressions[%d-%d]: %s failed!\n", p->level, ' ',
10529 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression"));
10530 }
10531 _res = NULL;
10532 done:
10533 D(p->level--);
10534 return _res;
10535}
10536
Pablo Galindob2802482021-04-15 21:38:45 +010010537// expression:
10538// | invalid_expression
Pablo Galindo Salgado511ee1c2021-11-20 17:39:17 +000010539// | invalid_legacy_expression
Pablo Galindob2802482021-04-15 21:38:45 +010010540// | disjunction 'if' disjunction 'else' expression
10541// | disjunction
10542// | lambdef
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010543static expr_ty
10544expression_rule(Parser *p)
10545{
10546 D(p->level++);
10547 if (p->error_indicator) {
10548 D(p->level--);
10549 return NULL;
10550 }
10551 expr_ty _res = NULL;
10552 if (_PyPegen_is_memoized(p, expression_type, &_res)) {
10553 D(p->level--);
10554 return _res;
10555 }
10556 int _mark = p->mark;
10557 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10558 p->error_indicator = 1;
10559 D(p->level--);
10560 return NULL;
10561 }
10562 int _start_lineno = p->tokens[_mark]->lineno;
10563 UNUSED(_start_lineno); // Only used by EXTRA macro
10564 int _start_col_offset = p->tokens[_mark]->col_offset;
10565 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindob2802482021-04-15 21:38:45 +010010566 if (p->call_invalid_rules) { // invalid_expression
10567 if (p->error_indicator) {
10568 D(p->level--);
10569 return NULL;
10570 }
10571 D(fprintf(stderr, "%*c> expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_expression"));
10572 void *invalid_expression_var;
10573 if (
10574 (invalid_expression_var = invalid_expression_rule(p)) // invalid_expression
10575 )
10576 {
10577 D(fprintf(stderr, "%*c+ expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_expression"));
10578 _res = invalid_expression_var;
10579 goto done;
10580 }
10581 p->mark = _mark;
10582 D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ',
10583 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_expression"));
10584 }
Pablo Galindo Salgado511ee1c2021-11-20 17:39:17 +000010585 if (p->call_invalid_rules) { // invalid_legacy_expression
10586 if (p->error_indicator) {
10587 D(p->level--);
10588 return NULL;
10589 }
10590 D(fprintf(stderr, "%*c> expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_legacy_expression"));
10591 void *invalid_legacy_expression_var;
10592 if (
10593 (invalid_legacy_expression_var = invalid_legacy_expression_rule(p)) // invalid_legacy_expression
10594 )
10595 {
10596 D(fprintf(stderr, "%*c+ expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_legacy_expression"));
10597 _res = invalid_legacy_expression_var;
10598 goto done;
10599 }
10600 p->mark = _mark;
10601 D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ',
10602 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_legacy_expression"));
10603 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010604 { // disjunction 'if' disjunction 'else' expression
10605 if (p->error_indicator) {
10606 D(p->level--);
10607 return NULL;
10608 }
10609 D(fprintf(stderr, "%*c> expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "disjunction 'if' disjunction 'else' expression"));
10610 Token * _keyword;
10611 Token * _keyword_1;
10612 expr_ty a;
10613 expr_ty b;
10614 expr_ty c;
10615 if (
10616 (a = disjunction_rule(p)) // disjunction
10617 &&
10618 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
10619 &&
10620 (b = disjunction_rule(p)) // disjunction
10621 &&
10622 (_keyword_1 = _PyPegen_expect_token(p, 516)) // token='else'
10623 &&
10624 (c = expression_rule(p)) // expression
10625 )
10626 {
10627 D(fprintf(stderr, "%*c+ expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "disjunction 'if' disjunction 'else' expression"));
10628 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10629 if (_token == NULL) {
10630 D(p->level--);
10631 return NULL;
10632 }
10633 int _end_lineno = _token->end_lineno;
10634 UNUSED(_end_lineno); // Only used by EXTRA macro
10635 int _end_col_offset = _token->end_col_offset;
10636 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020010637 _res = _PyAST_IfExp ( b , a , c , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010638 if (_res == NULL && PyErr_Occurred()) {
10639 p->error_indicator = 1;
10640 D(p->level--);
10641 return NULL;
10642 }
10643 goto done;
10644 }
10645 p->mark = _mark;
10646 D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ',
10647 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "disjunction 'if' disjunction 'else' expression"));
10648 }
10649 { // disjunction
10650 if (p->error_indicator) {
10651 D(p->level--);
10652 return NULL;
10653 }
10654 D(fprintf(stderr, "%*c> expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "disjunction"));
10655 expr_ty disjunction_var;
10656 if (
10657 (disjunction_var = disjunction_rule(p)) // disjunction
10658 )
10659 {
10660 D(fprintf(stderr, "%*c+ expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "disjunction"));
10661 _res = disjunction_var;
10662 goto done;
10663 }
10664 p->mark = _mark;
10665 D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ',
10666 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "disjunction"));
10667 }
10668 { // lambdef
10669 if (p->error_indicator) {
10670 D(p->level--);
10671 return NULL;
10672 }
10673 D(fprintf(stderr, "%*c> expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambdef"));
10674 expr_ty lambdef_var;
10675 if (
10676 (lambdef_var = lambdef_rule(p)) // lambdef
10677 )
10678 {
10679 D(fprintf(stderr, "%*c+ expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambdef"));
10680 _res = lambdef_var;
10681 goto done;
10682 }
10683 p->mark = _mark;
10684 D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ',
10685 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambdef"));
10686 }
10687 _res = NULL;
10688 done:
10689 _PyPegen_insert_memo(p, _mark, expression_type, _res);
10690 D(p->level--);
10691 return _res;
10692}
10693
10694// lambdef: 'lambda' lambda_params? ':' expression
10695static expr_ty
10696lambdef_rule(Parser *p)
10697{
10698 D(p->level++);
10699 if (p->error_indicator) {
10700 D(p->level--);
10701 return NULL;
10702 }
10703 expr_ty _res = NULL;
10704 int _mark = p->mark;
10705 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10706 p->error_indicator = 1;
10707 D(p->level--);
10708 return NULL;
10709 }
10710 int _start_lineno = p->tokens[_mark]->lineno;
10711 UNUSED(_start_lineno); // Only used by EXTRA macro
10712 int _start_col_offset = p->tokens[_mark]->col_offset;
10713 UNUSED(_start_col_offset); // Only used by EXTRA macro
10714 { // 'lambda' lambda_params? ':' expression
10715 if (p->error_indicator) {
10716 D(p->level--);
10717 return NULL;
10718 }
10719 D(fprintf(stderr, "%*c> lambdef[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'lambda' lambda_params? ':' expression"));
10720 Token * _keyword;
10721 Token * _literal;
10722 void *a;
10723 expr_ty b;
10724 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080010725 (_keyword = _PyPegen_expect_token(p, 528)) // token='lambda'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010726 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +020010727 (a = lambda_params_rule(p), !p->error_indicator) // lambda_params?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010728 &&
10729 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
10730 &&
10731 (b = expression_rule(p)) // expression
10732 )
10733 {
10734 D(fprintf(stderr, "%*c+ lambdef[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'lambda' lambda_params? ':' expression"));
10735 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10736 if (_token == NULL) {
10737 D(p->level--);
10738 return NULL;
10739 }
10740 int _end_lineno = _token->end_lineno;
10741 UNUSED(_end_lineno); // Only used by EXTRA macro
10742 int _end_col_offset = _token->end_col_offset;
10743 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020010744 _res = _PyAST_Lambda ( ( a ) ? a : CHECK ( arguments_ty , _PyPegen_empty_arguments ( p ) ) , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010745 if (_res == NULL && PyErr_Occurred()) {
10746 p->error_indicator = 1;
10747 D(p->level--);
10748 return NULL;
10749 }
10750 goto done;
10751 }
10752 p->mark = _mark;
10753 D(fprintf(stderr, "%*c%s lambdef[%d-%d]: %s failed!\n", p->level, ' ',
10754 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'lambda' lambda_params? ':' expression"));
10755 }
10756 _res = NULL;
10757 done:
10758 D(p->level--);
10759 return _res;
10760}
10761
10762// lambda_params: invalid_lambda_parameters | lambda_parameters
10763static arguments_ty
10764lambda_params_rule(Parser *p)
10765{
10766 D(p->level++);
10767 if (p->error_indicator) {
10768 D(p->level--);
10769 return NULL;
10770 }
10771 arguments_ty _res = NULL;
10772 int _mark = p->mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020010773 if (p->call_invalid_rules) { // invalid_lambda_parameters
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010774 if (p->error_indicator) {
10775 D(p->level--);
10776 return NULL;
10777 }
10778 D(fprintf(stderr, "%*c> lambda_params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_lambda_parameters"));
10779 void *invalid_lambda_parameters_var;
10780 if (
10781 (invalid_lambda_parameters_var = invalid_lambda_parameters_rule(p)) // invalid_lambda_parameters
10782 )
10783 {
10784 D(fprintf(stderr, "%*c+ lambda_params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_lambda_parameters"));
10785 _res = invalid_lambda_parameters_var;
10786 goto done;
10787 }
10788 p->mark = _mark;
10789 D(fprintf(stderr, "%*c%s lambda_params[%d-%d]: %s failed!\n", p->level, ' ',
10790 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_lambda_parameters"));
10791 }
10792 { // lambda_parameters
10793 if (p->error_indicator) {
10794 D(p->level--);
10795 return NULL;
10796 }
10797 D(fprintf(stderr, "%*c> lambda_params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_parameters"));
10798 arguments_ty lambda_parameters_var;
10799 if (
10800 (lambda_parameters_var = lambda_parameters_rule(p)) // lambda_parameters
10801 )
10802 {
10803 D(fprintf(stderr, "%*c+ lambda_params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_parameters"));
10804 _res = lambda_parameters_var;
10805 goto done;
10806 }
10807 p->mark = _mark;
10808 D(fprintf(stderr, "%*c%s lambda_params[%d-%d]: %s failed!\n", p->level, ' ',
10809 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_parameters"));
10810 }
10811 _res = NULL;
10812 done:
10813 D(p->level--);
10814 return _res;
10815}
10816
10817// lambda_parameters:
10818// | lambda_slash_no_default lambda_param_no_default* lambda_param_with_default* lambda_star_etc?
10819// | lambda_slash_with_default lambda_param_with_default* lambda_star_etc?
10820// | lambda_param_no_default+ lambda_param_with_default* lambda_star_etc?
10821// | lambda_param_with_default+ lambda_star_etc?
10822// | lambda_star_etc
10823static arguments_ty
10824lambda_parameters_rule(Parser *p)
10825{
10826 D(p->level++);
10827 if (p->error_indicator) {
10828 D(p->level--);
10829 return NULL;
10830 }
10831 arguments_ty _res = NULL;
10832 int _mark = p->mark;
10833 { // lambda_slash_no_default lambda_param_no_default* lambda_param_with_default* lambda_star_etc?
10834 if (p->error_indicator) {
10835 D(p->level--);
10836 return NULL;
10837 }
10838 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 +010010839 asdl_arg_seq* a;
10840 asdl_arg_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010841 asdl_seq * c;
10842 void *d;
10843 if (
10844 (a = lambda_slash_no_default_rule(p)) // lambda_slash_no_default
10845 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080010846 (b = (asdl_arg_seq*)_loop0_90_rule(p)) // lambda_param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010847 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080010848 (c = _loop0_91_rule(p)) // lambda_param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010849 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +020010850 (d = lambda_star_etc_rule(p), !p->error_indicator) // lambda_star_etc?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010851 )
10852 {
10853 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?"));
10854 _res = _PyPegen_make_arguments ( p , a , NULL , b , c , d );
10855 if (_res == NULL && PyErr_Occurred()) {
10856 p->error_indicator = 1;
10857 D(p->level--);
10858 return NULL;
10859 }
10860 goto done;
10861 }
10862 p->mark = _mark;
10863 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
10864 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_slash_no_default lambda_param_no_default* lambda_param_with_default* lambda_star_etc?"));
10865 }
10866 { // lambda_slash_with_default lambda_param_with_default* lambda_star_etc?
10867 if (p->error_indicator) {
10868 D(p->level--);
10869 return NULL;
10870 }
10871 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?"));
10872 SlashWithDefault* a;
10873 asdl_seq * b;
10874 void *c;
10875 if (
10876 (a = lambda_slash_with_default_rule(p)) // lambda_slash_with_default
10877 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080010878 (b = _loop0_92_rule(p)) // lambda_param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010879 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +020010880 (c = lambda_star_etc_rule(p), !p->error_indicator) // lambda_star_etc?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010881 )
10882 {
10883 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?"));
10884 _res = _PyPegen_make_arguments ( p , NULL , a , NULL , b , c );
10885 if (_res == NULL && PyErr_Occurred()) {
10886 p->error_indicator = 1;
10887 D(p->level--);
10888 return NULL;
10889 }
10890 goto done;
10891 }
10892 p->mark = _mark;
10893 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
10894 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_slash_with_default lambda_param_with_default* lambda_star_etc?"));
10895 }
10896 { // lambda_param_no_default+ lambda_param_with_default* lambda_star_etc?
10897 if (p->error_indicator) {
10898 D(p->level--);
10899 return NULL;
10900 }
10901 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 +010010902 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010903 asdl_seq * b;
10904 void *c;
10905 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080010906 (a = (asdl_arg_seq*)_loop1_93_rule(p)) // lambda_param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010907 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080010908 (b = _loop0_94_rule(p)) // lambda_param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010909 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +020010910 (c = lambda_star_etc_rule(p), !p->error_indicator) // lambda_star_etc?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010911 )
10912 {
10913 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?"));
10914 _res = _PyPegen_make_arguments ( p , NULL , NULL , a , b , c );
10915 if (_res == NULL && PyErr_Occurred()) {
10916 p->error_indicator = 1;
10917 D(p->level--);
10918 return NULL;
10919 }
10920 goto done;
10921 }
10922 p->mark = _mark;
10923 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
10924 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default+ lambda_param_with_default* lambda_star_etc?"));
10925 }
10926 { // lambda_param_with_default+ lambda_star_etc?
10927 if (p->error_indicator) {
10928 D(p->level--);
10929 return NULL;
10930 }
10931 D(fprintf(stderr, "%*c> lambda_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default+ lambda_star_etc?"));
10932 asdl_seq * a;
10933 void *b;
10934 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080010935 (a = _loop1_95_rule(p)) // lambda_param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010936 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +020010937 (b = lambda_star_etc_rule(p), !p->error_indicator) // lambda_star_etc?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010938 )
10939 {
10940 D(fprintf(stderr, "%*c+ lambda_parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default+ lambda_star_etc?"));
10941 _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , a , b );
10942 if (_res == NULL && PyErr_Occurred()) {
10943 p->error_indicator = 1;
10944 D(p->level--);
10945 return NULL;
10946 }
10947 goto done;
10948 }
10949 p->mark = _mark;
10950 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
10951 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default+ lambda_star_etc?"));
10952 }
10953 { // lambda_star_etc
10954 if (p->error_indicator) {
10955 D(p->level--);
10956 return NULL;
10957 }
10958 D(fprintf(stderr, "%*c> lambda_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_star_etc"));
10959 StarEtc* a;
10960 if (
10961 (a = lambda_star_etc_rule(p)) // lambda_star_etc
10962 )
10963 {
10964 D(fprintf(stderr, "%*c+ lambda_parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_star_etc"));
10965 _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , NULL , a );
10966 if (_res == NULL && PyErr_Occurred()) {
10967 p->error_indicator = 1;
10968 D(p->level--);
10969 return NULL;
10970 }
10971 goto done;
10972 }
10973 p->mark = _mark;
10974 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
10975 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_star_etc"));
10976 }
10977 _res = NULL;
10978 done:
10979 D(p->level--);
10980 return _res;
10981}
10982
10983// lambda_slash_no_default:
10984// | lambda_param_no_default+ '/' ','
10985// | lambda_param_no_default+ '/' &':'
Pablo Galindoa5634c42020-09-16 19:42:00 +010010986static asdl_arg_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010987lambda_slash_no_default_rule(Parser *p)
10988{
10989 D(p->level++);
10990 if (p->error_indicator) {
10991 D(p->level--);
10992 return NULL;
10993 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010010994 asdl_arg_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010995 int _mark = p->mark;
10996 { // lambda_param_no_default+ '/' ','
10997 if (p->error_indicator) {
10998 D(p->level--);
10999 return NULL;
11000 }
11001 D(fprintf(stderr, "%*c> lambda_slash_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default+ '/' ','"));
11002 Token * _literal;
11003 Token * _literal_1;
Pablo Galindoa5634c42020-09-16 19:42:00 +010011004 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011005 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080011006 (a = (asdl_arg_seq*)_loop1_96_rule(p)) // lambda_param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011007 &&
11008 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
11009 &&
11010 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
11011 )
11012 {
11013 D(fprintf(stderr, "%*c+ lambda_slash_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default+ '/' ','"));
11014 _res = a;
11015 if (_res == NULL && PyErr_Occurred()) {
11016 p->error_indicator = 1;
11017 D(p->level--);
11018 return NULL;
11019 }
11020 goto done;
11021 }
11022 p->mark = _mark;
11023 D(fprintf(stderr, "%*c%s lambda_slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
11024 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default+ '/' ','"));
11025 }
11026 { // lambda_param_no_default+ '/' &':'
11027 if (p->error_indicator) {
11028 D(p->level--);
11029 return NULL;
11030 }
11031 D(fprintf(stderr, "%*c> lambda_slash_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default+ '/' &':'"));
11032 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +010011033 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011034 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080011035 (a = (asdl_arg_seq*)_loop1_97_rule(p)) // lambda_param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011036 &&
11037 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
11038 &&
11039 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
11040 )
11041 {
11042 D(fprintf(stderr, "%*c+ lambda_slash_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default+ '/' &':'"));
11043 _res = a;
11044 if (_res == NULL && PyErr_Occurred()) {
11045 p->error_indicator = 1;
11046 D(p->level--);
11047 return NULL;
11048 }
11049 goto done;
11050 }
11051 p->mark = _mark;
11052 D(fprintf(stderr, "%*c%s lambda_slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
11053 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default+ '/' &':'"));
11054 }
11055 _res = NULL;
11056 done:
11057 D(p->level--);
11058 return _res;
11059}
11060
11061// lambda_slash_with_default:
11062// | lambda_param_no_default* lambda_param_with_default+ '/' ','
11063// | lambda_param_no_default* lambda_param_with_default+ '/' &':'
11064static SlashWithDefault*
11065lambda_slash_with_default_rule(Parser *p)
11066{
11067 D(p->level++);
11068 if (p->error_indicator) {
11069 D(p->level--);
11070 return NULL;
11071 }
11072 SlashWithDefault* _res = NULL;
11073 int _mark = p->mark;
11074 { // lambda_param_no_default* lambda_param_with_default+ '/' ','
11075 if (p->error_indicator) {
11076 D(p->level--);
11077 return NULL;
11078 }
11079 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+ '/' ','"));
11080 Token * _literal;
11081 Token * _literal_1;
11082 asdl_seq * a;
11083 asdl_seq * b;
11084 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080011085 (a = _loop0_98_rule(p)) // lambda_param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011086 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080011087 (b = _loop1_99_rule(p)) // lambda_param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011088 &&
11089 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
11090 &&
11091 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
11092 )
11093 {
11094 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 +010011095 _res = _PyPegen_slash_with_default ( p , ( asdl_arg_seq * ) a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011096 if (_res == NULL && PyErr_Occurred()) {
11097 p->error_indicator = 1;
11098 D(p->level--);
11099 return NULL;
11100 }
11101 goto done;
11102 }
11103 p->mark = _mark;
11104 D(fprintf(stderr, "%*c%s lambda_slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
11105 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default* lambda_param_with_default+ '/' ','"));
11106 }
11107 { // lambda_param_no_default* lambda_param_with_default+ '/' &':'
11108 if (p->error_indicator) {
11109 D(p->level--);
11110 return NULL;
11111 }
11112 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+ '/' &':'"));
11113 Token * _literal;
11114 asdl_seq * a;
11115 asdl_seq * b;
11116 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080011117 (a = _loop0_100_rule(p)) // lambda_param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011118 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080011119 (b = _loop1_101_rule(p)) // lambda_param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011120 &&
11121 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
11122 &&
11123 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
11124 )
11125 {
11126 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 +010011127 _res = _PyPegen_slash_with_default ( p , ( asdl_arg_seq * ) a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011128 if (_res == NULL && PyErr_Occurred()) {
11129 p->error_indicator = 1;
11130 D(p->level--);
11131 return NULL;
11132 }
11133 goto done;
11134 }
11135 p->mark = _mark;
11136 D(fprintf(stderr, "%*c%s lambda_slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
11137 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default* lambda_param_with_default+ '/' &':'"));
11138 }
11139 _res = NULL;
11140 done:
11141 D(p->level--);
11142 return _res;
11143}
11144
11145// lambda_star_etc:
11146// | '*' lambda_param_no_default lambda_param_maybe_default* lambda_kwds?
11147// | '*' ',' lambda_param_maybe_default+ lambda_kwds?
11148// | lambda_kwds
11149// | invalid_lambda_star_etc
11150static StarEtc*
11151lambda_star_etc_rule(Parser *p)
11152{
11153 D(p->level++);
11154 if (p->error_indicator) {
11155 D(p->level--);
11156 return NULL;
11157 }
11158 StarEtc* _res = NULL;
11159 int _mark = p->mark;
11160 { // '*' lambda_param_no_default lambda_param_maybe_default* lambda_kwds?
11161 if (p->error_indicator) {
11162 D(p->level--);
11163 return NULL;
11164 }
11165 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?"));
11166 Token * _literal;
11167 arg_ty a;
11168 asdl_seq * b;
11169 void *c;
11170 if (
11171 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
11172 &&
11173 (a = lambda_param_no_default_rule(p)) // lambda_param_no_default
11174 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080011175 (b = _loop0_102_rule(p)) // lambda_param_maybe_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011176 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +020011177 (c = lambda_kwds_rule(p), !p->error_indicator) // lambda_kwds?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011178 )
11179 {
11180 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?"));
11181 _res = _PyPegen_star_etc ( p , a , b , c );
11182 if (_res == NULL && PyErr_Occurred()) {
11183 p->error_indicator = 1;
11184 D(p->level--);
11185 return NULL;
11186 }
11187 goto done;
11188 }
11189 p->mark = _mark;
11190 D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
11191 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' lambda_param_no_default lambda_param_maybe_default* lambda_kwds?"));
11192 }
11193 { // '*' ',' lambda_param_maybe_default+ lambda_kwds?
11194 if (p->error_indicator) {
11195 D(p->level--);
11196 return NULL;
11197 }
11198 D(fprintf(stderr, "%*c> lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' ',' lambda_param_maybe_default+ lambda_kwds?"));
11199 Token * _literal;
11200 Token * _literal_1;
11201 asdl_seq * b;
11202 void *c;
11203 if (
11204 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
11205 &&
11206 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
11207 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080011208 (b = _loop1_103_rule(p)) // lambda_param_maybe_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011209 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +020011210 (c = lambda_kwds_rule(p), !p->error_indicator) // lambda_kwds?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011211 )
11212 {
11213 D(fprintf(stderr, "%*c+ lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' ',' lambda_param_maybe_default+ lambda_kwds?"));
11214 _res = _PyPegen_star_etc ( p , NULL , b , c );
11215 if (_res == NULL && PyErr_Occurred()) {
11216 p->error_indicator = 1;
11217 D(p->level--);
11218 return NULL;
11219 }
11220 goto done;
11221 }
11222 p->mark = _mark;
11223 D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
11224 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' ',' lambda_param_maybe_default+ lambda_kwds?"));
11225 }
11226 { // lambda_kwds
11227 if (p->error_indicator) {
11228 D(p->level--);
11229 return NULL;
11230 }
11231 D(fprintf(stderr, "%*c> lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_kwds"));
11232 arg_ty a;
11233 if (
11234 (a = lambda_kwds_rule(p)) // lambda_kwds
11235 )
11236 {
11237 D(fprintf(stderr, "%*c+ lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_kwds"));
11238 _res = _PyPegen_star_etc ( p , NULL , NULL , a );
11239 if (_res == NULL && PyErr_Occurred()) {
11240 p->error_indicator = 1;
11241 D(p->level--);
11242 return NULL;
11243 }
11244 goto done;
11245 }
11246 p->mark = _mark;
11247 D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
11248 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_kwds"));
11249 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020011250 if (p->call_invalid_rules) { // invalid_lambda_star_etc
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011251 if (p->error_indicator) {
11252 D(p->level--);
11253 return NULL;
11254 }
11255 D(fprintf(stderr, "%*c> lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_lambda_star_etc"));
11256 void *invalid_lambda_star_etc_var;
11257 if (
11258 (invalid_lambda_star_etc_var = invalid_lambda_star_etc_rule(p)) // invalid_lambda_star_etc
11259 )
11260 {
11261 D(fprintf(stderr, "%*c+ lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_lambda_star_etc"));
11262 _res = invalid_lambda_star_etc_var;
11263 goto done;
11264 }
11265 p->mark = _mark;
11266 D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
11267 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_lambda_star_etc"));
11268 }
11269 _res = NULL;
11270 done:
11271 D(p->level--);
11272 return _res;
11273}
11274
11275// lambda_kwds: '**' lambda_param_no_default
11276static arg_ty
11277lambda_kwds_rule(Parser *p)
11278{
11279 D(p->level++);
11280 if (p->error_indicator) {
11281 D(p->level--);
11282 return NULL;
11283 }
11284 arg_ty _res = NULL;
11285 int _mark = p->mark;
11286 { // '**' lambda_param_no_default
11287 if (p->error_indicator) {
11288 D(p->level--);
11289 return NULL;
11290 }
11291 D(fprintf(stderr, "%*c> lambda_kwds[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' lambda_param_no_default"));
11292 Token * _literal;
11293 arg_ty a;
11294 if (
11295 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
11296 &&
11297 (a = lambda_param_no_default_rule(p)) // lambda_param_no_default
11298 )
11299 {
11300 D(fprintf(stderr, "%*c+ lambda_kwds[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' lambda_param_no_default"));
11301 _res = a;
11302 if (_res == NULL && PyErr_Occurred()) {
11303 p->error_indicator = 1;
11304 D(p->level--);
11305 return NULL;
11306 }
11307 goto done;
11308 }
11309 p->mark = _mark;
11310 D(fprintf(stderr, "%*c%s lambda_kwds[%d-%d]: %s failed!\n", p->level, ' ',
11311 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' lambda_param_no_default"));
11312 }
11313 _res = NULL;
11314 done:
11315 D(p->level--);
11316 return _res;
11317}
11318
11319// lambda_param_no_default: lambda_param ',' | lambda_param &':'
11320static arg_ty
11321lambda_param_no_default_rule(Parser *p)
11322{
11323 D(p->level++);
11324 if (p->error_indicator) {
11325 D(p->level--);
11326 return NULL;
11327 }
11328 arg_ty _res = NULL;
11329 int _mark = p->mark;
11330 { // lambda_param ','
11331 if (p->error_indicator) {
11332 D(p->level--);
11333 return NULL;
11334 }
11335 D(fprintf(stderr, "%*c> lambda_param_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param ','"));
11336 Token * _literal;
11337 arg_ty a;
11338 if (
11339 (a = lambda_param_rule(p)) // lambda_param
11340 &&
11341 (_literal = _PyPegen_expect_token(p, 12)) // token=','
11342 )
11343 {
11344 D(fprintf(stderr, "%*c+ lambda_param_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param ','"));
11345 _res = a;
11346 if (_res == NULL && PyErr_Occurred()) {
11347 p->error_indicator = 1;
11348 D(p->level--);
11349 return NULL;
11350 }
11351 goto done;
11352 }
11353 p->mark = _mark;
11354 D(fprintf(stderr, "%*c%s lambda_param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
11355 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param ','"));
11356 }
11357 { // lambda_param &':'
11358 if (p->error_indicator) {
11359 D(p->level--);
11360 return NULL;
11361 }
11362 D(fprintf(stderr, "%*c> lambda_param_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param &':'"));
11363 arg_ty a;
11364 if (
11365 (a = lambda_param_rule(p)) // lambda_param
11366 &&
11367 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
11368 )
11369 {
11370 D(fprintf(stderr, "%*c+ lambda_param_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param &':'"));
11371 _res = a;
11372 if (_res == NULL && PyErr_Occurred()) {
11373 p->error_indicator = 1;
11374 D(p->level--);
11375 return NULL;
11376 }
11377 goto done;
11378 }
11379 p->mark = _mark;
11380 D(fprintf(stderr, "%*c%s lambda_param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
11381 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param &':'"));
11382 }
11383 _res = NULL;
11384 done:
11385 D(p->level--);
11386 return _res;
11387}
11388
11389// lambda_param_with_default: lambda_param default ',' | lambda_param default &':'
11390static NameDefaultPair*
11391lambda_param_with_default_rule(Parser *p)
11392{
11393 D(p->level++);
11394 if (p->error_indicator) {
11395 D(p->level--);
11396 return NULL;
11397 }
11398 NameDefaultPair* _res = NULL;
11399 int _mark = p->mark;
11400 { // lambda_param default ','
11401 if (p->error_indicator) {
11402 D(p->level--);
11403 return NULL;
11404 }
11405 D(fprintf(stderr, "%*c> lambda_param_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param default ','"));
11406 Token * _literal;
11407 arg_ty a;
11408 expr_ty c;
11409 if (
11410 (a = lambda_param_rule(p)) // lambda_param
11411 &&
11412 (c = default_rule(p)) // default
11413 &&
11414 (_literal = _PyPegen_expect_token(p, 12)) // token=','
11415 )
11416 {
11417 D(fprintf(stderr, "%*c+ lambda_param_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param default ','"));
11418 _res = _PyPegen_name_default_pair ( p , a , c , NULL );
11419 if (_res == NULL && PyErr_Occurred()) {
11420 p->error_indicator = 1;
11421 D(p->level--);
11422 return NULL;
11423 }
11424 goto done;
11425 }
11426 p->mark = _mark;
11427 D(fprintf(stderr, "%*c%s lambda_param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
11428 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default ','"));
11429 }
11430 { // lambda_param default &':'
11431 if (p->error_indicator) {
11432 D(p->level--);
11433 return NULL;
11434 }
11435 D(fprintf(stderr, "%*c> lambda_param_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param default &':'"));
11436 arg_ty a;
11437 expr_ty c;
11438 if (
11439 (a = lambda_param_rule(p)) // lambda_param
11440 &&
11441 (c = default_rule(p)) // default
11442 &&
11443 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
11444 )
11445 {
11446 D(fprintf(stderr, "%*c+ lambda_param_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param default &':'"));
11447 _res = _PyPegen_name_default_pair ( p , a , c , NULL );
11448 if (_res == NULL && PyErr_Occurred()) {
11449 p->error_indicator = 1;
11450 D(p->level--);
11451 return NULL;
11452 }
11453 goto done;
11454 }
11455 p->mark = _mark;
11456 D(fprintf(stderr, "%*c%s lambda_param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
11457 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default &':'"));
11458 }
11459 _res = NULL;
11460 done:
11461 D(p->level--);
11462 return _res;
11463}
11464
11465// lambda_param_maybe_default: lambda_param default? ',' | lambda_param default? &':'
11466static NameDefaultPair*
11467lambda_param_maybe_default_rule(Parser *p)
11468{
11469 D(p->level++);
11470 if (p->error_indicator) {
11471 D(p->level--);
11472 return NULL;
11473 }
11474 NameDefaultPair* _res = NULL;
11475 int _mark = p->mark;
11476 { // lambda_param default? ','
11477 if (p->error_indicator) {
11478 D(p->level--);
11479 return NULL;
11480 }
11481 D(fprintf(stderr, "%*c> lambda_param_maybe_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param default? ','"));
11482 Token * _literal;
11483 arg_ty a;
11484 void *c;
11485 if (
11486 (a = lambda_param_rule(p)) // lambda_param
11487 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +020011488 (c = default_rule(p), !p->error_indicator) // default?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011489 &&
11490 (_literal = _PyPegen_expect_token(p, 12)) // token=','
11491 )
11492 {
11493 D(fprintf(stderr, "%*c+ lambda_param_maybe_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param default? ','"));
11494 _res = _PyPegen_name_default_pair ( p , a , c , NULL );
11495 if (_res == NULL && PyErr_Occurred()) {
11496 p->error_indicator = 1;
11497 D(p->level--);
11498 return NULL;
11499 }
11500 goto done;
11501 }
11502 p->mark = _mark;
11503 D(fprintf(stderr, "%*c%s lambda_param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
11504 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default? ','"));
11505 }
11506 { // lambda_param default? &':'
11507 if (p->error_indicator) {
11508 D(p->level--);
11509 return NULL;
11510 }
11511 D(fprintf(stderr, "%*c> lambda_param_maybe_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param default? &':'"));
11512 arg_ty a;
11513 void *c;
11514 if (
11515 (a = lambda_param_rule(p)) // lambda_param
11516 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +020011517 (c = default_rule(p), !p->error_indicator) // default?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011518 &&
11519 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
11520 )
11521 {
11522 D(fprintf(stderr, "%*c+ lambda_param_maybe_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param default? &':'"));
11523 _res = _PyPegen_name_default_pair ( p , a , c , NULL );
11524 if (_res == NULL && PyErr_Occurred()) {
11525 p->error_indicator = 1;
11526 D(p->level--);
11527 return NULL;
11528 }
11529 goto done;
11530 }
11531 p->mark = _mark;
11532 D(fprintf(stderr, "%*c%s lambda_param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
11533 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default? &':'"));
11534 }
11535 _res = NULL;
11536 done:
11537 D(p->level--);
11538 return _res;
11539}
11540
11541// lambda_param: NAME
11542static arg_ty
11543lambda_param_rule(Parser *p)
11544{
11545 D(p->level++);
11546 if (p->error_indicator) {
11547 D(p->level--);
11548 return NULL;
11549 }
11550 arg_ty _res = NULL;
11551 int _mark = p->mark;
11552 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11553 p->error_indicator = 1;
11554 D(p->level--);
11555 return NULL;
11556 }
11557 int _start_lineno = p->tokens[_mark]->lineno;
11558 UNUSED(_start_lineno); // Only used by EXTRA macro
11559 int _start_col_offset = p->tokens[_mark]->col_offset;
11560 UNUSED(_start_col_offset); // Only used by EXTRA macro
11561 { // NAME
11562 if (p->error_indicator) {
11563 D(p->level--);
11564 return NULL;
11565 }
11566 D(fprintf(stderr, "%*c> lambda_param[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
11567 expr_ty a;
11568 if (
11569 (a = _PyPegen_name_token(p)) // NAME
11570 )
11571 {
11572 D(fprintf(stderr, "%*c+ lambda_param[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
11573 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11574 if (_token == NULL) {
11575 D(p->level--);
11576 return NULL;
11577 }
11578 int _end_lineno = _token->end_lineno;
11579 UNUSED(_end_lineno); // Only used by EXTRA macro
11580 int _end_col_offset = _token->end_col_offset;
11581 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020011582 _res = _PyAST_arg ( a -> v . Name . id , NULL , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011583 if (_res == NULL && PyErr_Occurred()) {
11584 p->error_indicator = 1;
11585 D(p->level--);
11586 return NULL;
11587 }
11588 goto done;
11589 }
11590 p->mark = _mark;
11591 D(fprintf(stderr, "%*c%s lambda_param[%d-%d]: %s failed!\n", p->level, ' ',
11592 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
11593 }
11594 _res = NULL;
11595 done:
11596 D(p->level--);
11597 return _res;
11598}
11599
11600// disjunction: conjunction (('or' conjunction))+ | conjunction
11601static expr_ty
11602disjunction_rule(Parser *p)
11603{
11604 D(p->level++);
11605 if (p->error_indicator) {
11606 D(p->level--);
11607 return NULL;
11608 }
11609 expr_ty _res = NULL;
11610 if (_PyPegen_is_memoized(p, disjunction_type, &_res)) {
11611 D(p->level--);
11612 return _res;
11613 }
11614 int _mark = p->mark;
11615 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11616 p->error_indicator = 1;
11617 D(p->level--);
11618 return NULL;
11619 }
11620 int _start_lineno = p->tokens[_mark]->lineno;
11621 UNUSED(_start_lineno); // Only used by EXTRA macro
11622 int _start_col_offset = p->tokens[_mark]->col_offset;
11623 UNUSED(_start_col_offset); // Only used by EXTRA macro
11624 { // conjunction (('or' conjunction))+
11625 if (p->error_indicator) {
11626 D(p->level--);
11627 return NULL;
11628 }
11629 D(fprintf(stderr, "%*c> disjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "conjunction (('or' conjunction))+"));
11630 expr_ty a;
11631 asdl_seq * b;
11632 if (
11633 (a = conjunction_rule(p)) // conjunction
11634 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080011635 (b = _loop1_104_rule(p)) // (('or' conjunction))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011636 )
11637 {
11638 D(fprintf(stderr, "%*c+ disjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "conjunction (('or' conjunction))+"));
11639 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11640 if (_token == NULL) {
11641 D(p->level--);
11642 return NULL;
11643 }
11644 int _end_lineno = _token->end_lineno;
11645 UNUSED(_end_lineno); // Only used by EXTRA macro
11646 int _end_col_offset = _token->end_col_offset;
11647 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020011648 _res = _PyAST_BoolOp ( Or , CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , a , b ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011649 if (_res == NULL && PyErr_Occurred()) {
11650 p->error_indicator = 1;
11651 D(p->level--);
11652 return NULL;
11653 }
11654 goto done;
11655 }
11656 p->mark = _mark;
11657 D(fprintf(stderr, "%*c%s disjunction[%d-%d]: %s failed!\n", p->level, ' ',
11658 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "conjunction (('or' conjunction))+"));
11659 }
11660 { // conjunction
11661 if (p->error_indicator) {
11662 D(p->level--);
11663 return NULL;
11664 }
11665 D(fprintf(stderr, "%*c> disjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "conjunction"));
11666 expr_ty conjunction_var;
11667 if (
11668 (conjunction_var = conjunction_rule(p)) // conjunction
11669 )
11670 {
11671 D(fprintf(stderr, "%*c+ disjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "conjunction"));
11672 _res = conjunction_var;
11673 goto done;
11674 }
11675 p->mark = _mark;
11676 D(fprintf(stderr, "%*c%s disjunction[%d-%d]: %s failed!\n", p->level, ' ',
11677 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "conjunction"));
11678 }
11679 _res = NULL;
11680 done:
11681 _PyPegen_insert_memo(p, _mark, disjunction_type, _res);
11682 D(p->level--);
11683 return _res;
11684}
11685
11686// conjunction: inversion (('and' inversion))+ | inversion
11687static expr_ty
11688conjunction_rule(Parser *p)
11689{
11690 D(p->level++);
11691 if (p->error_indicator) {
11692 D(p->level--);
11693 return NULL;
11694 }
11695 expr_ty _res = NULL;
11696 if (_PyPegen_is_memoized(p, conjunction_type, &_res)) {
11697 D(p->level--);
11698 return _res;
11699 }
11700 int _mark = p->mark;
11701 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11702 p->error_indicator = 1;
11703 D(p->level--);
11704 return NULL;
11705 }
11706 int _start_lineno = p->tokens[_mark]->lineno;
11707 UNUSED(_start_lineno); // Only used by EXTRA macro
11708 int _start_col_offset = p->tokens[_mark]->col_offset;
11709 UNUSED(_start_col_offset); // Only used by EXTRA macro
11710 { // inversion (('and' inversion))+
11711 if (p->error_indicator) {
11712 D(p->level--);
11713 return NULL;
11714 }
11715 D(fprintf(stderr, "%*c> conjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "inversion (('and' inversion))+"));
11716 expr_ty a;
11717 asdl_seq * b;
11718 if (
11719 (a = inversion_rule(p)) // inversion
11720 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080011721 (b = _loop1_105_rule(p)) // (('and' inversion))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011722 )
11723 {
11724 D(fprintf(stderr, "%*c+ conjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "inversion (('and' inversion))+"));
11725 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11726 if (_token == NULL) {
11727 D(p->level--);
11728 return NULL;
11729 }
11730 int _end_lineno = _token->end_lineno;
11731 UNUSED(_end_lineno); // Only used by EXTRA macro
11732 int _end_col_offset = _token->end_col_offset;
11733 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020011734 _res = _PyAST_BoolOp ( And , CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , a , b ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011735 if (_res == NULL && PyErr_Occurred()) {
11736 p->error_indicator = 1;
11737 D(p->level--);
11738 return NULL;
11739 }
11740 goto done;
11741 }
11742 p->mark = _mark;
11743 D(fprintf(stderr, "%*c%s conjunction[%d-%d]: %s failed!\n", p->level, ' ',
11744 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "inversion (('and' inversion))+"));
11745 }
11746 { // inversion
11747 if (p->error_indicator) {
11748 D(p->level--);
11749 return NULL;
11750 }
11751 D(fprintf(stderr, "%*c> conjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "inversion"));
11752 expr_ty inversion_var;
11753 if (
11754 (inversion_var = inversion_rule(p)) // inversion
11755 )
11756 {
11757 D(fprintf(stderr, "%*c+ conjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "inversion"));
11758 _res = inversion_var;
11759 goto done;
11760 }
11761 p->mark = _mark;
11762 D(fprintf(stderr, "%*c%s conjunction[%d-%d]: %s failed!\n", p->level, ' ',
11763 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "inversion"));
11764 }
11765 _res = NULL;
11766 done:
11767 _PyPegen_insert_memo(p, _mark, conjunction_type, _res);
11768 D(p->level--);
11769 return _res;
11770}
11771
11772// inversion: 'not' inversion | comparison
11773static expr_ty
11774inversion_rule(Parser *p)
11775{
11776 D(p->level++);
11777 if (p->error_indicator) {
11778 D(p->level--);
11779 return NULL;
11780 }
11781 expr_ty _res = NULL;
11782 if (_PyPegen_is_memoized(p, inversion_type, &_res)) {
11783 D(p->level--);
11784 return _res;
11785 }
11786 int _mark = p->mark;
11787 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11788 p->error_indicator = 1;
11789 D(p->level--);
11790 return NULL;
11791 }
11792 int _start_lineno = p->tokens[_mark]->lineno;
11793 UNUSED(_start_lineno); // Only used by EXTRA macro
11794 int _start_col_offset = p->tokens[_mark]->col_offset;
11795 UNUSED(_start_col_offset); // Only used by EXTRA macro
11796 { // 'not' inversion
11797 if (p->error_indicator) {
11798 D(p->level--);
11799 return NULL;
11800 }
11801 D(fprintf(stderr, "%*c> inversion[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'not' inversion"));
11802 Token * _keyword;
11803 expr_ty a;
11804 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080011805 (_keyword = _PyPegen_expect_token(p, 529)) // token='not'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011806 &&
11807 (a = inversion_rule(p)) // inversion
11808 )
11809 {
11810 D(fprintf(stderr, "%*c+ inversion[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'not' inversion"));
11811 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11812 if (_token == NULL) {
11813 D(p->level--);
11814 return NULL;
11815 }
11816 int _end_lineno = _token->end_lineno;
11817 UNUSED(_end_lineno); // Only used by EXTRA macro
11818 int _end_col_offset = _token->end_col_offset;
11819 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020011820 _res = _PyAST_UnaryOp ( Not , a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011821 if (_res == NULL && PyErr_Occurred()) {
11822 p->error_indicator = 1;
11823 D(p->level--);
11824 return NULL;
11825 }
11826 goto done;
11827 }
11828 p->mark = _mark;
11829 D(fprintf(stderr, "%*c%s inversion[%d-%d]: %s failed!\n", p->level, ' ',
11830 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'not' inversion"));
11831 }
11832 { // comparison
11833 if (p->error_indicator) {
11834 D(p->level--);
11835 return NULL;
11836 }
11837 D(fprintf(stderr, "%*c> inversion[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "comparison"));
11838 expr_ty comparison_var;
11839 if (
11840 (comparison_var = comparison_rule(p)) // comparison
11841 )
11842 {
11843 D(fprintf(stderr, "%*c+ inversion[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "comparison"));
11844 _res = comparison_var;
11845 goto done;
11846 }
11847 p->mark = _mark;
11848 D(fprintf(stderr, "%*c%s inversion[%d-%d]: %s failed!\n", p->level, ' ',
11849 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "comparison"));
11850 }
11851 _res = NULL;
11852 done:
11853 _PyPegen_insert_memo(p, _mark, inversion_type, _res);
11854 D(p->level--);
11855 return _res;
11856}
11857
11858// comparison: bitwise_or compare_op_bitwise_or_pair+ | bitwise_or
11859static expr_ty
11860comparison_rule(Parser *p)
11861{
11862 D(p->level++);
11863 if (p->error_indicator) {
11864 D(p->level--);
11865 return NULL;
11866 }
11867 expr_ty _res = NULL;
11868 int _mark = p->mark;
11869 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11870 p->error_indicator = 1;
11871 D(p->level--);
11872 return NULL;
11873 }
11874 int _start_lineno = p->tokens[_mark]->lineno;
11875 UNUSED(_start_lineno); // Only used by EXTRA macro
11876 int _start_col_offset = p->tokens[_mark]->col_offset;
11877 UNUSED(_start_col_offset); // Only used by EXTRA macro
11878 { // bitwise_or compare_op_bitwise_or_pair+
11879 if (p->error_indicator) {
11880 D(p->level--);
11881 return NULL;
11882 }
11883 D(fprintf(stderr, "%*c> comparison[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_or compare_op_bitwise_or_pair+"));
11884 expr_ty a;
11885 asdl_seq * b;
11886 if (
11887 (a = bitwise_or_rule(p)) // bitwise_or
11888 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080011889 (b = _loop1_106_rule(p)) // compare_op_bitwise_or_pair+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011890 )
11891 {
11892 D(fprintf(stderr, "%*c+ comparison[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_or compare_op_bitwise_or_pair+"));
11893 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11894 if (_token == NULL) {
11895 D(p->level--);
11896 return NULL;
11897 }
11898 int _end_lineno = _token->end_lineno;
11899 UNUSED(_end_lineno); // Only used by EXTRA macro
11900 int _end_col_offset = _token->end_col_offset;
11901 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020011902 _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 +010011903 if (_res == NULL && PyErr_Occurred()) {
11904 p->error_indicator = 1;
11905 D(p->level--);
11906 return NULL;
11907 }
11908 goto done;
11909 }
11910 p->mark = _mark;
11911 D(fprintf(stderr, "%*c%s comparison[%d-%d]: %s failed!\n", p->level, ' ',
11912 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_or compare_op_bitwise_or_pair+"));
11913 }
11914 { // bitwise_or
11915 if (p->error_indicator) {
11916 D(p->level--);
11917 return NULL;
11918 }
11919 D(fprintf(stderr, "%*c> comparison[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_or"));
11920 expr_ty bitwise_or_var;
11921 if (
11922 (bitwise_or_var = bitwise_or_rule(p)) // bitwise_or
11923 )
11924 {
11925 D(fprintf(stderr, "%*c+ comparison[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_or"));
11926 _res = bitwise_or_var;
11927 goto done;
11928 }
11929 p->mark = _mark;
11930 D(fprintf(stderr, "%*c%s comparison[%d-%d]: %s failed!\n", p->level, ' ',
11931 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_or"));
11932 }
11933 _res = NULL;
11934 done:
11935 D(p->level--);
11936 return _res;
11937}
11938
11939// compare_op_bitwise_or_pair:
11940// | eq_bitwise_or
11941// | noteq_bitwise_or
11942// | lte_bitwise_or
11943// | lt_bitwise_or
11944// | gte_bitwise_or
11945// | gt_bitwise_or
11946// | notin_bitwise_or
11947// | in_bitwise_or
11948// | isnot_bitwise_or
11949// | is_bitwise_or
11950static CmpopExprPair*
11951compare_op_bitwise_or_pair_rule(Parser *p)
11952{
11953 D(p->level++);
11954 if (p->error_indicator) {
11955 D(p->level--);
11956 return NULL;
11957 }
11958 CmpopExprPair* _res = NULL;
11959 int _mark = p->mark;
11960 { // eq_bitwise_or
11961 if (p->error_indicator) {
11962 D(p->level--);
11963 return NULL;
11964 }
11965 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "eq_bitwise_or"));
11966 CmpopExprPair* eq_bitwise_or_var;
11967 if (
11968 (eq_bitwise_or_var = eq_bitwise_or_rule(p)) // eq_bitwise_or
11969 )
11970 {
11971 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "eq_bitwise_or"));
11972 _res = eq_bitwise_or_var;
11973 goto done;
11974 }
11975 p->mark = _mark;
11976 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
11977 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "eq_bitwise_or"));
11978 }
11979 { // noteq_bitwise_or
11980 if (p->error_indicator) {
11981 D(p->level--);
11982 return NULL;
11983 }
11984 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "noteq_bitwise_or"));
11985 CmpopExprPair* noteq_bitwise_or_var;
11986 if (
11987 (noteq_bitwise_or_var = noteq_bitwise_or_rule(p)) // noteq_bitwise_or
11988 )
11989 {
11990 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "noteq_bitwise_or"));
11991 _res = noteq_bitwise_or_var;
11992 goto done;
11993 }
11994 p->mark = _mark;
11995 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
11996 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "noteq_bitwise_or"));
11997 }
11998 { // lte_bitwise_or
11999 if (p->error_indicator) {
12000 D(p->level--);
12001 return NULL;
12002 }
12003 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lte_bitwise_or"));
12004 CmpopExprPair* lte_bitwise_or_var;
12005 if (
12006 (lte_bitwise_or_var = lte_bitwise_or_rule(p)) // lte_bitwise_or
12007 )
12008 {
12009 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lte_bitwise_or"));
12010 _res = lte_bitwise_or_var;
12011 goto done;
12012 }
12013 p->mark = _mark;
12014 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
12015 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lte_bitwise_or"));
12016 }
12017 { // lt_bitwise_or
12018 if (p->error_indicator) {
12019 D(p->level--);
12020 return NULL;
12021 }
12022 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lt_bitwise_or"));
12023 CmpopExprPair* lt_bitwise_or_var;
12024 if (
12025 (lt_bitwise_or_var = lt_bitwise_or_rule(p)) // lt_bitwise_or
12026 )
12027 {
12028 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lt_bitwise_or"));
12029 _res = lt_bitwise_or_var;
12030 goto done;
12031 }
12032 p->mark = _mark;
12033 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
12034 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lt_bitwise_or"));
12035 }
12036 { // gte_bitwise_or
12037 if (p->error_indicator) {
12038 D(p->level--);
12039 return NULL;
12040 }
12041 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "gte_bitwise_or"));
12042 CmpopExprPair* gte_bitwise_or_var;
12043 if (
12044 (gte_bitwise_or_var = gte_bitwise_or_rule(p)) // gte_bitwise_or
12045 )
12046 {
12047 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "gte_bitwise_or"));
12048 _res = gte_bitwise_or_var;
12049 goto done;
12050 }
12051 p->mark = _mark;
12052 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
12053 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "gte_bitwise_or"));
12054 }
12055 { // gt_bitwise_or
12056 if (p->error_indicator) {
12057 D(p->level--);
12058 return NULL;
12059 }
12060 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "gt_bitwise_or"));
12061 CmpopExprPair* gt_bitwise_or_var;
12062 if (
12063 (gt_bitwise_or_var = gt_bitwise_or_rule(p)) // gt_bitwise_or
12064 )
12065 {
12066 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "gt_bitwise_or"));
12067 _res = gt_bitwise_or_var;
12068 goto done;
12069 }
12070 p->mark = _mark;
12071 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
12072 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "gt_bitwise_or"));
12073 }
12074 { // notin_bitwise_or
12075 if (p->error_indicator) {
12076 D(p->level--);
12077 return NULL;
12078 }
12079 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "notin_bitwise_or"));
12080 CmpopExprPair* notin_bitwise_or_var;
12081 if (
12082 (notin_bitwise_or_var = notin_bitwise_or_rule(p)) // notin_bitwise_or
12083 )
12084 {
12085 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "notin_bitwise_or"));
12086 _res = notin_bitwise_or_var;
12087 goto done;
12088 }
12089 p->mark = _mark;
12090 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
12091 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "notin_bitwise_or"));
12092 }
12093 { // in_bitwise_or
12094 if (p->error_indicator) {
12095 D(p->level--);
12096 return NULL;
12097 }
12098 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "in_bitwise_or"));
12099 CmpopExprPair* in_bitwise_or_var;
12100 if (
12101 (in_bitwise_or_var = in_bitwise_or_rule(p)) // in_bitwise_or
12102 )
12103 {
12104 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "in_bitwise_or"));
12105 _res = in_bitwise_or_var;
12106 goto done;
12107 }
12108 p->mark = _mark;
12109 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
12110 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "in_bitwise_or"));
12111 }
12112 { // isnot_bitwise_or
12113 if (p->error_indicator) {
12114 D(p->level--);
12115 return NULL;
12116 }
12117 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "isnot_bitwise_or"));
12118 CmpopExprPair* isnot_bitwise_or_var;
12119 if (
12120 (isnot_bitwise_or_var = isnot_bitwise_or_rule(p)) // isnot_bitwise_or
12121 )
12122 {
12123 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "isnot_bitwise_or"));
12124 _res = isnot_bitwise_or_var;
12125 goto done;
12126 }
12127 p->mark = _mark;
12128 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
12129 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "isnot_bitwise_or"));
12130 }
12131 { // is_bitwise_or
12132 if (p->error_indicator) {
12133 D(p->level--);
12134 return NULL;
12135 }
12136 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "is_bitwise_or"));
12137 CmpopExprPair* is_bitwise_or_var;
12138 if (
12139 (is_bitwise_or_var = is_bitwise_or_rule(p)) // is_bitwise_or
12140 )
12141 {
12142 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "is_bitwise_or"));
12143 _res = is_bitwise_or_var;
12144 goto done;
12145 }
12146 p->mark = _mark;
12147 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
12148 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "is_bitwise_or"));
12149 }
12150 _res = NULL;
12151 done:
12152 D(p->level--);
12153 return _res;
12154}
12155
12156// eq_bitwise_or: '==' bitwise_or
12157static CmpopExprPair*
12158eq_bitwise_or_rule(Parser *p)
12159{
12160 D(p->level++);
12161 if (p->error_indicator) {
12162 D(p->level--);
12163 return NULL;
12164 }
12165 CmpopExprPair* _res = NULL;
12166 int _mark = p->mark;
12167 { // '==' bitwise_or
12168 if (p->error_indicator) {
12169 D(p->level--);
12170 return NULL;
12171 }
12172 D(fprintf(stderr, "%*c> eq_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'==' bitwise_or"));
12173 Token * _literal;
12174 expr_ty a;
12175 if (
12176 (_literal = _PyPegen_expect_token(p, 27)) // token='=='
12177 &&
12178 (a = bitwise_or_rule(p)) // bitwise_or
12179 )
12180 {
12181 D(fprintf(stderr, "%*c+ eq_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'==' bitwise_or"));
12182 _res = _PyPegen_cmpop_expr_pair ( p , Eq , a );
12183 if (_res == NULL && PyErr_Occurred()) {
12184 p->error_indicator = 1;
12185 D(p->level--);
12186 return NULL;
12187 }
12188 goto done;
12189 }
12190 p->mark = _mark;
12191 D(fprintf(stderr, "%*c%s eq_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12192 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'==' bitwise_or"));
12193 }
12194 _res = NULL;
12195 done:
12196 D(p->level--);
12197 return _res;
12198}
12199
12200// noteq_bitwise_or: ('!=') bitwise_or
12201static CmpopExprPair*
12202noteq_bitwise_or_rule(Parser *p)
12203{
12204 D(p->level++);
12205 if (p->error_indicator) {
12206 D(p->level--);
12207 return NULL;
12208 }
12209 CmpopExprPair* _res = NULL;
12210 int _mark = p->mark;
12211 { // ('!=') bitwise_or
12212 if (p->error_indicator) {
12213 D(p->level--);
12214 return NULL;
12215 }
12216 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 -080012217 void *_tmp_107_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012218 expr_ty a;
12219 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080012220 (_tmp_107_var = _tmp_107_rule(p)) // '!='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012221 &&
12222 (a = bitwise_or_rule(p)) // bitwise_or
12223 )
12224 {
12225 D(fprintf(stderr, "%*c+ noteq_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "('!=') bitwise_or"));
12226 _res = _PyPegen_cmpop_expr_pair ( p , NotEq , a );
12227 if (_res == NULL && PyErr_Occurred()) {
12228 p->error_indicator = 1;
12229 D(p->level--);
12230 return NULL;
12231 }
12232 goto done;
12233 }
12234 p->mark = _mark;
12235 D(fprintf(stderr, "%*c%s noteq_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12236 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('!=') bitwise_or"));
12237 }
12238 _res = NULL;
12239 done:
12240 D(p->level--);
12241 return _res;
12242}
12243
12244// lte_bitwise_or: '<=' bitwise_or
12245static CmpopExprPair*
12246lte_bitwise_or_rule(Parser *p)
12247{
12248 D(p->level++);
12249 if (p->error_indicator) {
12250 D(p->level--);
12251 return NULL;
12252 }
12253 CmpopExprPair* _res = NULL;
12254 int _mark = p->mark;
12255 { // '<=' bitwise_or
12256 if (p->error_indicator) {
12257 D(p->level--);
12258 return NULL;
12259 }
12260 D(fprintf(stderr, "%*c> lte_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'<=' bitwise_or"));
12261 Token * _literal;
12262 expr_ty a;
12263 if (
12264 (_literal = _PyPegen_expect_token(p, 29)) // token='<='
12265 &&
12266 (a = bitwise_or_rule(p)) // bitwise_or
12267 )
12268 {
12269 D(fprintf(stderr, "%*c+ lte_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'<=' bitwise_or"));
12270 _res = _PyPegen_cmpop_expr_pair ( p , LtE , a );
12271 if (_res == NULL && PyErr_Occurred()) {
12272 p->error_indicator = 1;
12273 D(p->level--);
12274 return NULL;
12275 }
12276 goto done;
12277 }
12278 p->mark = _mark;
12279 D(fprintf(stderr, "%*c%s lte_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12280 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'<=' bitwise_or"));
12281 }
12282 _res = NULL;
12283 done:
12284 D(p->level--);
12285 return _res;
12286}
12287
12288// lt_bitwise_or: '<' bitwise_or
12289static CmpopExprPair*
12290lt_bitwise_or_rule(Parser *p)
12291{
12292 D(p->level++);
12293 if (p->error_indicator) {
12294 D(p->level--);
12295 return NULL;
12296 }
12297 CmpopExprPair* _res = NULL;
12298 int _mark = p->mark;
12299 { // '<' bitwise_or
12300 if (p->error_indicator) {
12301 D(p->level--);
12302 return NULL;
12303 }
12304 D(fprintf(stderr, "%*c> lt_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'<' bitwise_or"));
12305 Token * _literal;
12306 expr_ty a;
12307 if (
12308 (_literal = _PyPegen_expect_token(p, 20)) // token='<'
12309 &&
12310 (a = bitwise_or_rule(p)) // bitwise_or
12311 )
12312 {
12313 D(fprintf(stderr, "%*c+ lt_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'<' bitwise_or"));
12314 _res = _PyPegen_cmpop_expr_pair ( p , Lt , a );
12315 if (_res == NULL && PyErr_Occurred()) {
12316 p->error_indicator = 1;
12317 D(p->level--);
12318 return NULL;
12319 }
12320 goto done;
12321 }
12322 p->mark = _mark;
12323 D(fprintf(stderr, "%*c%s lt_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12324 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'<' bitwise_or"));
12325 }
12326 _res = NULL;
12327 done:
12328 D(p->level--);
12329 return _res;
12330}
12331
12332// gte_bitwise_or: '>=' bitwise_or
12333static CmpopExprPair*
12334gte_bitwise_or_rule(Parser *p)
12335{
12336 D(p->level++);
12337 if (p->error_indicator) {
12338 D(p->level--);
12339 return NULL;
12340 }
12341 CmpopExprPair* _res = NULL;
12342 int _mark = p->mark;
12343 { // '>=' bitwise_or
12344 if (p->error_indicator) {
12345 D(p->level--);
12346 return NULL;
12347 }
12348 D(fprintf(stderr, "%*c> gte_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'>=' bitwise_or"));
12349 Token * _literal;
12350 expr_ty a;
12351 if (
12352 (_literal = _PyPegen_expect_token(p, 30)) // token='>='
12353 &&
12354 (a = bitwise_or_rule(p)) // bitwise_or
12355 )
12356 {
12357 D(fprintf(stderr, "%*c+ gte_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'>=' bitwise_or"));
12358 _res = _PyPegen_cmpop_expr_pair ( p , GtE , a );
12359 if (_res == NULL && PyErr_Occurred()) {
12360 p->error_indicator = 1;
12361 D(p->level--);
12362 return NULL;
12363 }
12364 goto done;
12365 }
12366 p->mark = _mark;
12367 D(fprintf(stderr, "%*c%s gte_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12368 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'>=' bitwise_or"));
12369 }
12370 _res = NULL;
12371 done:
12372 D(p->level--);
12373 return _res;
12374}
12375
12376// gt_bitwise_or: '>' bitwise_or
12377static CmpopExprPair*
12378gt_bitwise_or_rule(Parser *p)
12379{
12380 D(p->level++);
12381 if (p->error_indicator) {
12382 D(p->level--);
12383 return NULL;
12384 }
12385 CmpopExprPair* _res = NULL;
12386 int _mark = p->mark;
12387 { // '>' bitwise_or
12388 if (p->error_indicator) {
12389 D(p->level--);
12390 return NULL;
12391 }
12392 D(fprintf(stderr, "%*c> gt_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'>' bitwise_or"));
12393 Token * _literal;
12394 expr_ty a;
12395 if (
12396 (_literal = _PyPegen_expect_token(p, 21)) // token='>'
12397 &&
12398 (a = bitwise_or_rule(p)) // bitwise_or
12399 )
12400 {
12401 D(fprintf(stderr, "%*c+ gt_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'>' bitwise_or"));
12402 _res = _PyPegen_cmpop_expr_pair ( p , Gt , a );
12403 if (_res == NULL && PyErr_Occurred()) {
12404 p->error_indicator = 1;
12405 D(p->level--);
12406 return NULL;
12407 }
12408 goto done;
12409 }
12410 p->mark = _mark;
12411 D(fprintf(stderr, "%*c%s gt_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12412 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'>' bitwise_or"));
12413 }
12414 _res = NULL;
12415 done:
12416 D(p->level--);
12417 return _res;
12418}
12419
12420// notin_bitwise_or: 'not' 'in' bitwise_or
12421static CmpopExprPair*
12422notin_bitwise_or_rule(Parser *p)
12423{
12424 D(p->level++);
12425 if (p->error_indicator) {
12426 D(p->level--);
12427 return NULL;
12428 }
12429 CmpopExprPair* _res = NULL;
12430 int _mark = p->mark;
12431 { // 'not' 'in' bitwise_or
12432 if (p->error_indicator) {
12433 D(p->level--);
12434 return NULL;
12435 }
12436 D(fprintf(stderr, "%*c> notin_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'not' 'in' bitwise_or"));
12437 Token * _keyword;
12438 Token * _keyword_1;
12439 expr_ty a;
12440 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080012441 (_keyword = _PyPegen_expect_token(p, 529)) // token='not'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012442 &&
12443 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
12444 &&
12445 (a = bitwise_or_rule(p)) // bitwise_or
12446 )
12447 {
12448 D(fprintf(stderr, "%*c+ notin_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'not' 'in' bitwise_or"));
12449 _res = _PyPegen_cmpop_expr_pair ( p , NotIn , a );
12450 if (_res == NULL && PyErr_Occurred()) {
12451 p->error_indicator = 1;
12452 D(p->level--);
12453 return NULL;
12454 }
12455 goto done;
12456 }
12457 p->mark = _mark;
12458 D(fprintf(stderr, "%*c%s notin_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12459 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'not' 'in' bitwise_or"));
12460 }
12461 _res = NULL;
12462 done:
12463 D(p->level--);
12464 return _res;
12465}
12466
12467// in_bitwise_or: 'in' bitwise_or
12468static CmpopExprPair*
12469in_bitwise_or_rule(Parser *p)
12470{
12471 D(p->level++);
12472 if (p->error_indicator) {
12473 D(p->level--);
12474 return NULL;
12475 }
12476 CmpopExprPair* _res = NULL;
12477 int _mark = p->mark;
12478 { // 'in' bitwise_or
12479 if (p->error_indicator) {
12480 D(p->level--);
12481 return NULL;
12482 }
12483 D(fprintf(stderr, "%*c> in_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'in' bitwise_or"));
12484 Token * _keyword;
12485 expr_ty a;
12486 if (
12487 (_keyword = _PyPegen_expect_token(p, 518)) // token='in'
12488 &&
12489 (a = bitwise_or_rule(p)) // bitwise_or
12490 )
12491 {
12492 D(fprintf(stderr, "%*c+ in_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'in' bitwise_or"));
12493 _res = _PyPegen_cmpop_expr_pair ( p , In , a );
12494 if (_res == NULL && PyErr_Occurred()) {
12495 p->error_indicator = 1;
12496 D(p->level--);
12497 return NULL;
12498 }
12499 goto done;
12500 }
12501 p->mark = _mark;
12502 D(fprintf(stderr, "%*c%s in_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12503 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'in' bitwise_or"));
12504 }
12505 _res = NULL;
12506 done:
12507 D(p->level--);
12508 return _res;
12509}
12510
12511// isnot_bitwise_or: 'is' 'not' bitwise_or
12512static CmpopExprPair*
12513isnot_bitwise_or_rule(Parser *p)
12514{
12515 D(p->level++);
12516 if (p->error_indicator) {
12517 D(p->level--);
12518 return NULL;
12519 }
12520 CmpopExprPair* _res = NULL;
12521 int _mark = p->mark;
12522 { // 'is' 'not' bitwise_or
12523 if (p->error_indicator) {
12524 D(p->level--);
12525 return NULL;
12526 }
12527 D(fprintf(stderr, "%*c> isnot_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'is' 'not' bitwise_or"));
12528 Token * _keyword;
12529 Token * _keyword_1;
12530 expr_ty a;
12531 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080012532 (_keyword = _PyPegen_expect_token(p, 530)) // token='is'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012533 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080012534 (_keyword_1 = _PyPegen_expect_token(p, 529)) // token='not'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012535 &&
12536 (a = bitwise_or_rule(p)) // bitwise_or
12537 )
12538 {
12539 D(fprintf(stderr, "%*c+ isnot_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'is' 'not' bitwise_or"));
12540 _res = _PyPegen_cmpop_expr_pair ( p , IsNot , a );
12541 if (_res == NULL && PyErr_Occurred()) {
12542 p->error_indicator = 1;
12543 D(p->level--);
12544 return NULL;
12545 }
12546 goto done;
12547 }
12548 p->mark = _mark;
12549 D(fprintf(stderr, "%*c%s isnot_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12550 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'is' 'not' bitwise_or"));
12551 }
12552 _res = NULL;
12553 done:
12554 D(p->level--);
12555 return _res;
12556}
12557
12558// is_bitwise_or: 'is' bitwise_or
12559static CmpopExprPair*
12560is_bitwise_or_rule(Parser *p)
12561{
12562 D(p->level++);
12563 if (p->error_indicator) {
12564 D(p->level--);
12565 return NULL;
12566 }
12567 CmpopExprPair* _res = NULL;
12568 int _mark = p->mark;
12569 { // 'is' bitwise_or
12570 if (p->error_indicator) {
12571 D(p->level--);
12572 return NULL;
12573 }
12574 D(fprintf(stderr, "%*c> is_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'is' bitwise_or"));
12575 Token * _keyword;
12576 expr_ty a;
12577 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080012578 (_keyword = _PyPegen_expect_token(p, 530)) // token='is'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012579 &&
12580 (a = bitwise_or_rule(p)) // bitwise_or
12581 )
12582 {
12583 D(fprintf(stderr, "%*c+ is_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'is' bitwise_or"));
12584 _res = _PyPegen_cmpop_expr_pair ( p , Is , a );
12585 if (_res == NULL && PyErr_Occurred()) {
12586 p->error_indicator = 1;
12587 D(p->level--);
12588 return NULL;
12589 }
12590 goto done;
12591 }
12592 p->mark = _mark;
12593 D(fprintf(stderr, "%*c%s is_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12594 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'is' bitwise_or"));
12595 }
12596 _res = NULL;
12597 done:
12598 D(p->level--);
12599 return _res;
12600}
12601
12602// Left-recursive
12603// bitwise_or: bitwise_or '|' bitwise_xor | bitwise_xor
12604static expr_ty bitwise_or_raw(Parser *);
12605static expr_ty
12606bitwise_or_rule(Parser *p)
12607{
12608 D(p->level++);
12609 expr_ty _res = NULL;
12610 if (_PyPegen_is_memoized(p, bitwise_or_type, &_res)) {
12611 D(p->level--);
12612 return _res;
12613 }
12614 int _mark = p->mark;
12615 int _resmark = p->mark;
12616 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080012617 int tmpvar_2 = _PyPegen_update_memo(p, _mark, bitwise_or_type, _res);
12618 if (tmpvar_2) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012619 D(p->level--);
12620 return _res;
12621 }
12622 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070012623 p->in_raw_rule++;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012624 void *_raw = bitwise_or_raw(p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070012625 p->in_raw_rule--;
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020012626 if (p->error_indicator)
12627 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012628 if (_raw == NULL || p->mark <= _resmark)
12629 break;
12630 _resmark = p->mark;
12631 _res = _raw;
12632 }
12633 p->mark = _resmark;
12634 D(p->level--);
12635 return _res;
12636}
12637static expr_ty
12638bitwise_or_raw(Parser *p)
12639{
12640 D(p->level++);
12641 if (p->error_indicator) {
12642 D(p->level--);
12643 return NULL;
12644 }
12645 expr_ty _res = NULL;
12646 int _mark = p->mark;
12647 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12648 p->error_indicator = 1;
12649 D(p->level--);
12650 return NULL;
12651 }
12652 int _start_lineno = p->tokens[_mark]->lineno;
12653 UNUSED(_start_lineno); // Only used by EXTRA macro
12654 int _start_col_offset = p->tokens[_mark]->col_offset;
12655 UNUSED(_start_col_offset); // Only used by EXTRA macro
12656 { // bitwise_or '|' bitwise_xor
12657 if (p->error_indicator) {
12658 D(p->level--);
12659 return NULL;
12660 }
12661 D(fprintf(stderr, "%*c> bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_or '|' bitwise_xor"));
12662 Token * _literal;
12663 expr_ty a;
12664 expr_ty b;
12665 if (
12666 (a = bitwise_or_rule(p)) // bitwise_or
12667 &&
12668 (_literal = _PyPegen_expect_token(p, 18)) // token='|'
12669 &&
12670 (b = bitwise_xor_rule(p)) // bitwise_xor
12671 )
12672 {
12673 D(fprintf(stderr, "%*c+ bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_or '|' bitwise_xor"));
12674 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12675 if (_token == NULL) {
12676 D(p->level--);
12677 return NULL;
12678 }
12679 int _end_lineno = _token->end_lineno;
12680 UNUSED(_end_lineno); // Only used by EXTRA macro
12681 int _end_col_offset = _token->end_col_offset;
12682 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020012683 _res = _PyAST_BinOp ( a , BitOr , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012684 if (_res == NULL && PyErr_Occurred()) {
12685 p->error_indicator = 1;
12686 D(p->level--);
12687 return NULL;
12688 }
12689 goto done;
12690 }
12691 p->mark = _mark;
12692 D(fprintf(stderr, "%*c%s bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12693 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_or '|' bitwise_xor"));
12694 }
12695 { // bitwise_xor
12696 if (p->error_indicator) {
12697 D(p->level--);
12698 return NULL;
12699 }
12700 D(fprintf(stderr, "%*c> bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_xor"));
12701 expr_ty bitwise_xor_var;
12702 if (
12703 (bitwise_xor_var = bitwise_xor_rule(p)) // bitwise_xor
12704 )
12705 {
12706 D(fprintf(stderr, "%*c+ bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_xor"));
12707 _res = bitwise_xor_var;
12708 goto done;
12709 }
12710 p->mark = _mark;
12711 D(fprintf(stderr, "%*c%s bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12712 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_xor"));
12713 }
12714 _res = NULL;
12715 done:
12716 D(p->level--);
12717 return _res;
12718}
12719
12720// Left-recursive
12721// bitwise_xor: bitwise_xor '^' bitwise_and | bitwise_and
12722static expr_ty bitwise_xor_raw(Parser *);
12723static expr_ty
12724bitwise_xor_rule(Parser *p)
12725{
12726 D(p->level++);
12727 expr_ty _res = NULL;
12728 if (_PyPegen_is_memoized(p, bitwise_xor_type, &_res)) {
12729 D(p->level--);
12730 return _res;
12731 }
12732 int _mark = p->mark;
12733 int _resmark = p->mark;
12734 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080012735 int tmpvar_3 = _PyPegen_update_memo(p, _mark, bitwise_xor_type, _res);
12736 if (tmpvar_3) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012737 D(p->level--);
12738 return _res;
12739 }
12740 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070012741 p->in_raw_rule++;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012742 void *_raw = bitwise_xor_raw(p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070012743 p->in_raw_rule--;
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020012744 if (p->error_indicator)
12745 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012746 if (_raw == NULL || p->mark <= _resmark)
12747 break;
12748 _resmark = p->mark;
12749 _res = _raw;
12750 }
12751 p->mark = _resmark;
12752 D(p->level--);
12753 return _res;
12754}
12755static expr_ty
12756bitwise_xor_raw(Parser *p)
12757{
12758 D(p->level++);
12759 if (p->error_indicator) {
12760 D(p->level--);
12761 return NULL;
12762 }
12763 expr_ty _res = NULL;
12764 int _mark = p->mark;
12765 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12766 p->error_indicator = 1;
12767 D(p->level--);
12768 return NULL;
12769 }
12770 int _start_lineno = p->tokens[_mark]->lineno;
12771 UNUSED(_start_lineno); // Only used by EXTRA macro
12772 int _start_col_offset = p->tokens[_mark]->col_offset;
12773 UNUSED(_start_col_offset); // Only used by EXTRA macro
12774 { // bitwise_xor '^' bitwise_and
12775 if (p->error_indicator) {
12776 D(p->level--);
12777 return NULL;
12778 }
12779 D(fprintf(stderr, "%*c> bitwise_xor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_xor '^' bitwise_and"));
12780 Token * _literal;
12781 expr_ty a;
12782 expr_ty b;
12783 if (
12784 (a = bitwise_xor_rule(p)) // bitwise_xor
12785 &&
12786 (_literal = _PyPegen_expect_token(p, 32)) // token='^'
12787 &&
12788 (b = bitwise_and_rule(p)) // bitwise_and
12789 )
12790 {
12791 D(fprintf(stderr, "%*c+ bitwise_xor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_xor '^' bitwise_and"));
12792 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12793 if (_token == NULL) {
12794 D(p->level--);
12795 return NULL;
12796 }
12797 int _end_lineno = _token->end_lineno;
12798 UNUSED(_end_lineno); // Only used by EXTRA macro
12799 int _end_col_offset = _token->end_col_offset;
12800 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020012801 _res = _PyAST_BinOp ( a , BitXor , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012802 if (_res == NULL && PyErr_Occurred()) {
12803 p->error_indicator = 1;
12804 D(p->level--);
12805 return NULL;
12806 }
12807 goto done;
12808 }
12809 p->mark = _mark;
12810 D(fprintf(stderr, "%*c%s bitwise_xor[%d-%d]: %s failed!\n", p->level, ' ',
12811 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_xor '^' bitwise_and"));
12812 }
12813 { // bitwise_and
12814 if (p->error_indicator) {
12815 D(p->level--);
12816 return NULL;
12817 }
12818 D(fprintf(stderr, "%*c> bitwise_xor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_and"));
12819 expr_ty bitwise_and_var;
12820 if (
12821 (bitwise_and_var = bitwise_and_rule(p)) // bitwise_and
12822 )
12823 {
12824 D(fprintf(stderr, "%*c+ bitwise_xor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_and"));
12825 _res = bitwise_and_var;
12826 goto done;
12827 }
12828 p->mark = _mark;
12829 D(fprintf(stderr, "%*c%s bitwise_xor[%d-%d]: %s failed!\n", p->level, ' ',
12830 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_and"));
12831 }
12832 _res = NULL;
12833 done:
12834 D(p->level--);
12835 return _res;
12836}
12837
12838// Left-recursive
12839// bitwise_and: bitwise_and '&' shift_expr | shift_expr
12840static expr_ty bitwise_and_raw(Parser *);
12841static expr_ty
12842bitwise_and_rule(Parser *p)
12843{
12844 D(p->level++);
12845 expr_ty _res = NULL;
12846 if (_PyPegen_is_memoized(p, bitwise_and_type, &_res)) {
12847 D(p->level--);
12848 return _res;
12849 }
12850 int _mark = p->mark;
12851 int _resmark = p->mark;
12852 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080012853 int tmpvar_4 = _PyPegen_update_memo(p, _mark, bitwise_and_type, _res);
12854 if (tmpvar_4) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012855 D(p->level--);
12856 return _res;
12857 }
12858 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070012859 p->in_raw_rule++;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012860 void *_raw = bitwise_and_raw(p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070012861 p->in_raw_rule--;
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020012862 if (p->error_indicator)
12863 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012864 if (_raw == NULL || p->mark <= _resmark)
12865 break;
12866 _resmark = p->mark;
12867 _res = _raw;
12868 }
12869 p->mark = _resmark;
12870 D(p->level--);
12871 return _res;
12872}
12873static expr_ty
12874bitwise_and_raw(Parser *p)
12875{
12876 D(p->level++);
12877 if (p->error_indicator) {
12878 D(p->level--);
12879 return NULL;
12880 }
12881 expr_ty _res = NULL;
12882 int _mark = p->mark;
12883 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12884 p->error_indicator = 1;
12885 D(p->level--);
12886 return NULL;
12887 }
12888 int _start_lineno = p->tokens[_mark]->lineno;
12889 UNUSED(_start_lineno); // Only used by EXTRA macro
12890 int _start_col_offset = p->tokens[_mark]->col_offset;
12891 UNUSED(_start_col_offset); // Only used by EXTRA macro
12892 { // bitwise_and '&' shift_expr
12893 if (p->error_indicator) {
12894 D(p->level--);
12895 return NULL;
12896 }
12897 D(fprintf(stderr, "%*c> bitwise_and[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_and '&' shift_expr"));
12898 Token * _literal;
12899 expr_ty a;
12900 expr_ty b;
12901 if (
12902 (a = bitwise_and_rule(p)) // bitwise_and
12903 &&
12904 (_literal = _PyPegen_expect_token(p, 19)) // token='&'
12905 &&
12906 (b = shift_expr_rule(p)) // shift_expr
12907 )
12908 {
12909 D(fprintf(stderr, "%*c+ bitwise_and[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_and '&' shift_expr"));
12910 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12911 if (_token == NULL) {
12912 D(p->level--);
12913 return NULL;
12914 }
12915 int _end_lineno = _token->end_lineno;
12916 UNUSED(_end_lineno); // Only used by EXTRA macro
12917 int _end_col_offset = _token->end_col_offset;
12918 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020012919 _res = _PyAST_BinOp ( a , BitAnd , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012920 if (_res == NULL && PyErr_Occurred()) {
12921 p->error_indicator = 1;
12922 D(p->level--);
12923 return NULL;
12924 }
12925 goto done;
12926 }
12927 p->mark = _mark;
12928 D(fprintf(stderr, "%*c%s bitwise_and[%d-%d]: %s failed!\n", p->level, ' ',
12929 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_and '&' shift_expr"));
12930 }
12931 { // shift_expr
12932 if (p->error_indicator) {
12933 D(p->level--);
12934 return NULL;
12935 }
12936 D(fprintf(stderr, "%*c> bitwise_and[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "shift_expr"));
12937 expr_ty shift_expr_var;
12938 if (
12939 (shift_expr_var = shift_expr_rule(p)) // shift_expr
12940 )
12941 {
12942 D(fprintf(stderr, "%*c+ bitwise_and[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "shift_expr"));
12943 _res = shift_expr_var;
12944 goto done;
12945 }
12946 p->mark = _mark;
12947 D(fprintf(stderr, "%*c%s bitwise_and[%d-%d]: %s failed!\n", p->level, ' ',
12948 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "shift_expr"));
12949 }
12950 _res = NULL;
12951 done:
12952 D(p->level--);
12953 return _res;
12954}
12955
12956// Left-recursive
12957// shift_expr: shift_expr '<<' sum | shift_expr '>>' sum | sum
12958static expr_ty shift_expr_raw(Parser *);
12959static expr_ty
12960shift_expr_rule(Parser *p)
12961{
12962 D(p->level++);
12963 expr_ty _res = NULL;
12964 if (_PyPegen_is_memoized(p, shift_expr_type, &_res)) {
12965 D(p->level--);
12966 return _res;
12967 }
12968 int _mark = p->mark;
12969 int _resmark = p->mark;
12970 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080012971 int tmpvar_5 = _PyPegen_update_memo(p, _mark, shift_expr_type, _res);
12972 if (tmpvar_5) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012973 D(p->level--);
12974 return _res;
12975 }
12976 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070012977 p->in_raw_rule++;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012978 void *_raw = shift_expr_raw(p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070012979 p->in_raw_rule--;
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020012980 if (p->error_indicator)
12981 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012982 if (_raw == NULL || p->mark <= _resmark)
12983 break;
12984 _resmark = p->mark;
12985 _res = _raw;
12986 }
12987 p->mark = _resmark;
12988 D(p->level--);
12989 return _res;
12990}
12991static expr_ty
12992shift_expr_raw(Parser *p)
12993{
12994 D(p->level++);
12995 if (p->error_indicator) {
12996 D(p->level--);
12997 return NULL;
12998 }
12999 expr_ty _res = NULL;
13000 int _mark = p->mark;
13001 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13002 p->error_indicator = 1;
13003 D(p->level--);
13004 return NULL;
13005 }
13006 int _start_lineno = p->tokens[_mark]->lineno;
13007 UNUSED(_start_lineno); // Only used by EXTRA macro
13008 int _start_col_offset = p->tokens[_mark]->col_offset;
13009 UNUSED(_start_col_offset); // Only used by EXTRA macro
13010 { // shift_expr '<<' sum
13011 if (p->error_indicator) {
13012 D(p->level--);
13013 return NULL;
13014 }
13015 D(fprintf(stderr, "%*c> shift_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "shift_expr '<<' sum"));
13016 Token * _literal;
13017 expr_ty a;
13018 expr_ty b;
13019 if (
13020 (a = shift_expr_rule(p)) // shift_expr
13021 &&
13022 (_literal = _PyPegen_expect_token(p, 33)) // token='<<'
13023 &&
13024 (b = sum_rule(p)) // sum
13025 )
13026 {
13027 D(fprintf(stderr, "%*c+ shift_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "shift_expr '<<' sum"));
13028 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13029 if (_token == NULL) {
13030 D(p->level--);
13031 return NULL;
13032 }
13033 int _end_lineno = _token->end_lineno;
13034 UNUSED(_end_lineno); // Only used by EXTRA macro
13035 int _end_col_offset = _token->end_col_offset;
13036 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013037 _res = _PyAST_BinOp ( a , LShift , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013038 if (_res == NULL && PyErr_Occurred()) {
13039 p->error_indicator = 1;
13040 D(p->level--);
13041 return NULL;
13042 }
13043 goto done;
13044 }
13045 p->mark = _mark;
13046 D(fprintf(stderr, "%*c%s shift_expr[%d-%d]: %s failed!\n", p->level, ' ',
13047 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "shift_expr '<<' sum"));
13048 }
13049 { // shift_expr '>>' sum
13050 if (p->error_indicator) {
13051 D(p->level--);
13052 return NULL;
13053 }
13054 D(fprintf(stderr, "%*c> shift_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "shift_expr '>>' sum"));
13055 Token * _literal;
13056 expr_ty a;
13057 expr_ty b;
13058 if (
13059 (a = shift_expr_rule(p)) // shift_expr
13060 &&
13061 (_literal = _PyPegen_expect_token(p, 34)) // token='>>'
13062 &&
13063 (b = sum_rule(p)) // sum
13064 )
13065 {
13066 D(fprintf(stderr, "%*c+ shift_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "shift_expr '>>' sum"));
13067 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13068 if (_token == NULL) {
13069 D(p->level--);
13070 return NULL;
13071 }
13072 int _end_lineno = _token->end_lineno;
13073 UNUSED(_end_lineno); // Only used by EXTRA macro
13074 int _end_col_offset = _token->end_col_offset;
13075 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013076 _res = _PyAST_BinOp ( a , RShift , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013077 if (_res == NULL && PyErr_Occurred()) {
13078 p->error_indicator = 1;
13079 D(p->level--);
13080 return NULL;
13081 }
13082 goto done;
13083 }
13084 p->mark = _mark;
13085 D(fprintf(stderr, "%*c%s shift_expr[%d-%d]: %s failed!\n", p->level, ' ',
13086 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "shift_expr '>>' sum"));
13087 }
13088 { // sum
13089 if (p->error_indicator) {
13090 D(p->level--);
13091 return NULL;
13092 }
13093 D(fprintf(stderr, "%*c> shift_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "sum"));
13094 expr_ty sum_var;
13095 if (
13096 (sum_var = sum_rule(p)) // sum
13097 )
13098 {
13099 D(fprintf(stderr, "%*c+ shift_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "sum"));
13100 _res = sum_var;
13101 goto done;
13102 }
13103 p->mark = _mark;
13104 D(fprintf(stderr, "%*c%s shift_expr[%d-%d]: %s failed!\n", p->level, ' ',
13105 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "sum"));
13106 }
13107 _res = NULL;
13108 done:
13109 D(p->level--);
13110 return _res;
13111}
13112
13113// Left-recursive
13114// sum: sum '+' term | sum '-' term | term
13115static expr_ty sum_raw(Parser *);
13116static expr_ty
13117sum_rule(Parser *p)
13118{
13119 D(p->level++);
13120 expr_ty _res = NULL;
13121 if (_PyPegen_is_memoized(p, sum_type, &_res)) {
13122 D(p->level--);
13123 return _res;
13124 }
13125 int _mark = p->mark;
13126 int _resmark = p->mark;
13127 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080013128 int tmpvar_6 = _PyPegen_update_memo(p, _mark, sum_type, _res);
13129 if (tmpvar_6) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013130 D(p->level--);
13131 return _res;
13132 }
13133 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070013134 p->in_raw_rule++;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013135 void *_raw = sum_raw(p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070013136 p->in_raw_rule--;
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020013137 if (p->error_indicator)
13138 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013139 if (_raw == NULL || p->mark <= _resmark)
13140 break;
13141 _resmark = p->mark;
13142 _res = _raw;
13143 }
13144 p->mark = _resmark;
13145 D(p->level--);
13146 return _res;
13147}
13148static expr_ty
13149sum_raw(Parser *p)
13150{
13151 D(p->level++);
13152 if (p->error_indicator) {
13153 D(p->level--);
13154 return NULL;
13155 }
13156 expr_ty _res = NULL;
13157 int _mark = p->mark;
13158 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13159 p->error_indicator = 1;
13160 D(p->level--);
13161 return NULL;
13162 }
13163 int _start_lineno = p->tokens[_mark]->lineno;
13164 UNUSED(_start_lineno); // Only used by EXTRA macro
13165 int _start_col_offset = p->tokens[_mark]->col_offset;
13166 UNUSED(_start_col_offset); // Only used by EXTRA macro
13167 { // sum '+' term
13168 if (p->error_indicator) {
13169 D(p->level--);
13170 return NULL;
13171 }
13172 D(fprintf(stderr, "%*c> sum[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "sum '+' term"));
13173 Token * _literal;
13174 expr_ty a;
13175 expr_ty b;
13176 if (
13177 (a = sum_rule(p)) // sum
13178 &&
13179 (_literal = _PyPegen_expect_token(p, 14)) // token='+'
13180 &&
13181 (b = term_rule(p)) // term
13182 )
13183 {
13184 D(fprintf(stderr, "%*c+ sum[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "sum '+' term"));
13185 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13186 if (_token == NULL) {
13187 D(p->level--);
13188 return NULL;
13189 }
13190 int _end_lineno = _token->end_lineno;
13191 UNUSED(_end_lineno); // Only used by EXTRA macro
13192 int _end_col_offset = _token->end_col_offset;
13193 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013194 _res = _PyAST_BinOp ( a , Add , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013195 if (_res == NULL && PyErr_Occurred()) {
13196 p->error_indicator = 1;
13197 D(p->level--);
13198 return NULL;
13199 }
13200 goto done;
13201 }
13202 p->mark = _mark;
13203 D(fprintf(stderr, "%*c%s sum[%d-%d]: %s failed!\n", p->level, ' ',
13204 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "sum '+' term"));
13205 }
13206 { // sum '-' term
13207 if (p->error_indicator) {
13208 D(p->level--);
13209 return NULL;
13210 }
13211 D(fprintf(stderr, "%*c> sum[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "sum '-' term"));
13212 Token * _literal;
13213 expr_ty a;
13214 expr_ty b;
13215 if (
13216 (a = sum_rule(p)) // sum
13217 &&
13218 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
13219 &&
13220 (b = term_rule(p)) // term
13221 )
13222 {
13223 D(fprintf(stderr, "%*c+ sum[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "sum '-' term"));
13224 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13225 if (_token == NULL) {
13226 D(p->level--);
13227 return NULL;
13228 }
13229 int _end_lineno = _token->end_lineno;
13230 UNUSED(_end_lineno); // Only used by EXTRA macro
13231 int _end_col_offset = _token->end_col_offset;
13232 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013233 _res = _PyAST_BinOp ( a , Sub , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013234 if (_res == NULL && PyErr_Occurred()) {
13235 p->error_indicator = 1;
13236 D(p->level--);
13237 return NULL;
13238 }
13239 goto done;
13240 }
13241 p->mark = _mark;
13242 D(fprintf(stderr, "%*c%s sum[%d-%d]: %s failed!\n", p->level, ' ',
13243 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "sum '-' term"));
13244 }
13245 { // term
13246 if (p->error_indicator) {
13247 D(p->level--);
13248 return NULL;
13249 }
13250 D(fprintf(stderr, "%*c> sum[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term"));
13251 expr_ty term_var;
13252 if (
13253 (term_var = term_rule(p)) // term
13254 )
13255 {
13256 D(fprintf(stderr, "%*c+ sum[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term"));
13257 _res = term_var;
13258 goto done;
13259 }
13260 p->mark = _mark;
13261 D(fprintf(stderr, "%*c%s sum[%d-%d]: %s failed!\n", p->level, ' ',
13262 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term"));
13263 }
13264 _res = NULL;
13265 done:
13266 D(p->level--);
13267 return _res;
13268}
13269
13270// Left-recursive
13271// term:
13272// | term '*' factor
13273// | term '/' factor
13274// | term '//' factor
13275// | term '%' factor
13276// | term '@' factor
13277// | factor
13278static expr_ty term_raw(Parser *);
13279static expr_ty
13280term_rule(Parser *p)
13281{
13282 D(p->level++);
13283 expr_ty _res = NULL;
13284 if (_PyPegen_is_memoized(p, term_type, &_res)) {
13285 D(p->level--);
13286 return _res;
13287 }
13288 int _mark = p->mark;
13289 int _resmark = p->mark;
13290 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080013291 int tmpvar_7 = _PyPegen_update_memo(p, _mark, term_type, _res);
13292 if (tmpvar_7) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013293 D(p->level--);
13294 return _res;
13295 }
13296 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070013297 p->in_raw_rule++;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013298 void *_raw = term_raw(p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070013299 p->in_raw_rule--;
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020013300 if (p->error_indicator)
13301 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013302 if (_raw == NULL || p->mark <= _resmark)
13303 break;
13304 _resmark = p->mark;
13305 _res = _raw;
13306 }
13307 p->mark = _resmark;
13308 D(p->level--);
13309 return _res;
13310}
13311static expr_ty
13312term_raw(Parser *p)
13313{
13314 D(p->level++);
13315 if (p->error_indicator) {
13316 D(p->level--);
13317 return NULL;
13318 }
13319 expr_ty _res = NULL;
13320 int _mark = p->mark;
13321 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13322 p->error_indicator = 1;
13323 D(p->level--);
13324 return NULL;
13325 }
13326 int _start_lineno = p->tokens[_mark]->lineno;
13327 UNUSED(_start_lineno); // Only used by EXTRA macro
13328 int _start_col_offset = p->tokens[_mark]->col_offset;
13329 UNUSED(_start_col_offset); // Only used by EXTRA macro
13330 { // term '*' factor
13331 if (p->error_indicator) {
13332 D(p->level--);
13333 return NULL;
13334 }
13335 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '*' factor"));
13336 Token * _literal;
13337 expr_ty a;
13338 expr_ty b;
13339 if (
13340 (a = term_rule(p)) // term
13341 &&
13342 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
13343 &&
13344 (b = factor_rule(p)) // factor
13345 )
13346 {
13347 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '*' factor"));
13348 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13349 if (_token == NULL) {
13350 D(p->level--);
13351 return NULL;
13352 }
13353 int _end_lineno = _token->end_lineno;
13354 UNUSED(_end_lineno); // Only used by EXTRA macro
13355 int _end_col_offset = _token->end_col_offset;
13356 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013357 _res = _PyAST_BinOp ( a , Mult , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013358 if (_res == NULL && PyErr_Occurred()) {
13359 p->error_indicator = 1;
13360 D(p->level--);
13361 return NULL;
13362 }
13363 goto done;
13364 }
13365 p->mark = _mark;
13366 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
13367 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '*' factor"));
13368 }
13369 { // term '/' factor
13370 if (p->error_indicator) {
13371 D(p->level--);
13372 return NULL;
13373 }
13374 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '/' factor"));
13375 Token * _literal;
13376 expr_ty a;
13377 expr_ty b;
13378 if (
13379 (a = term_rule(p)) // term
13380 &&
13381 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
13382 &&
13383 (b = factor_rule(p)) // factor
13384 )
13385 {
13386 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '/' factor"));
13387 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13388 if (_token == NULL) {
13389 D(p->level--);
13390 return NULL;
13391 }
13392 int _end_lineno = _token->end_lineno;
13393 UNUSED(_end_lineno); // Only used by EXTRA macro
13394 int _end_col_offset = _token->end_col_offset;
13395 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013396 _res = _PyAST_BinOp ( a , Div , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013397 if (_res == NULL && PyErr_Occurred()) {
13398 p->error_indicator = 1;
13399 D(p->level--);
13400 return NULL;
13401 }
13402 goto done;
13403 }
13404 p->mark = _mark;
13405 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
13406 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '/' factor"));
13407 }
13408 { // term '//' factor
13409 if (p->error_indicator) {
13410 D(p->level--);
13411 return NULL;
13412 }
13413 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '//' factor"));
13414 Token * _literal;
13415 expr_ty a;
13416 expr_ty b;
13417 if (
13418 (a = term_rule(p)) // term
13419 &&
13420 (_literal = _PyPegen_expect_token(p, 47)) // token='//'
13421 &&
13422 (b = factor_rule(p)) // factor
13423 )
13424 {
13425 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '//' factor"));
13426 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13427 if (_token == NULL) {
13428 D(p->level--);
13429 return NULL;
13430 }
13431 int _end_lineno = _token->end_lineno;
13432 UNUSED(_end_lineno); // Only used by EXTRA macro
13433 int _end_col_offset = _token->end_col_offset;
13434 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013435 _res = _PyAST_BinOp ( a , FloorDiv , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013436 if (_res == NULL && PyErr_Occurred()) {
13437 p->error_indicator = 1;
13438 D(p->level--);
13439 return NULL;
13440 }
13441 goto done;
13442 }
13443 p->mark = _mark;
13444 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
13445 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '//' factor"));
13446 }
13447 { // term '%' factor
13448 if (p->error_indicator) {
13449 D(p->level--);
13450 return NULL;
13451 }
13452 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '%' factor"));
13453 Token * _literal;
13454 expr_ty a;
13455 expr_ty b;
13456 if (
13457 (a = term_rule(p)) // term
13458 &&
13459 (_literal = _PyPegen_expect_token(p, 24)) // token='%'
13460 &&
13461 (b = factor_rule(p)) // factor
13462 )
13463 {
13464 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '%' factor"));
13465 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13466 if (_token == NULL) {
13467 D(p->level--);
13468 return NULL;
13469 }
13470 int _end_lineno = _token->end_lineno;
13471 UNUSED(_end_lineno); // Only used by EXTRA macro
13472 int _end_col_offset = _token->end_col_offset;
13473 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013474 _res = _PyAST_BinOp ( a , Mod , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013475 if (_res == NULL && PyErr_Occurred()) {
13476 p->error_indicator = 1;
13477 D(p->level--);
13478 return NULL;
13479 }
13480 goto done;
13481 }
13482 p->mark = _mark;
13483 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
13484 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '%' factor"));
13485 }
13486 { // term '@' factor
13487 if (p->error_indicator) {
13488 D(p->level--);
13489 return NULL;
13490 }
13491 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '@' factor"));
13492 Token * _literal;
13493 expr_ty a;
13494 expr_ty b;
13495 if (
13496 (a = term_rule(p)) // term
13497 &&
13498 (_literal = _PyPegen_expect_token(p, 49)) // token='@'
13499 &&
13500 (b = factor_rule(p)) // factor
13501 )
13502 {
13503 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '@' factor"));
13504 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13505 if (_token == NULL) {
13506 D(p->level--);
13507 return NULL;
13508 }
13509 int _end_lineno = _token->end_lineno;
13510 UNUSED(_end_lineno); // Only used by EXTRA macro
13511 int _end_col_offset = _token->end_col_offset;
13512 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013513 _res = CHECK_VERSION ( expr_ty , 5 , "The '@' operator is" , _PyAST_BinOp ( a , MatMult , b , EXTRA ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013514 if (_res == NULL && PyErr_Occurred()) {
13515 p->error_indicator = 1;
13516 D(p->level--);
13517 return NULL;
13518 }
13519 goto done;
13520 }
13521 p->mark = _mark;
13522 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
13523 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '@' factor"));
13524 }
13525 { // factor
13526 if (p->error_indicator) {
13527 D(p->level--);
13528 return NULL;
13529 }
13530 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "factor"));
13531 expr_ty factor_var;
13532 if (
13533 (factor_var = factor_rule(p)) // factor
13534 )
13535 {
13536 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "factor"));
13537 _res = factor_var;
13538 goto done;
13539 }
13540 p->mark = _mark;
13541 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
13542 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "factor"));
13543 }
13544 _res = NULL;
13545 done:
13546 D(p->level--);
13547 return _res;
13548}
13549
13550// factor: '+' factor | '-' factor | '~' factor | power
13551static expr_ty
13552factor_rule(Parser *p)
13553{
13554 D(p->level++);
13555 if (p->error_indicator) {
13556 D(p->level--);
13557 return NULL;
13558 }
13559 expr_ty _res = NULL;
13560 if (_PyPegen_is_memoized(p, factor_type, &_res)) {
13561 D(p->level--);
13562 return _res;
13563 }
13564 int _mark = p->mark;
13565 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13566 p->error_indicator = 1;
13567 D(p->level--);
13568 return NULL;
13569 }
13570 int _start_lineno = p->tokens[_mark]->lineno;
13571 UNUSED(_start_lineno); // Only used by EXTRA macro
13572 int _start_col_offset = p->tokens[_mark]->col_offset;
13573 UNUSED(_start_col_offset); // Only used by EXTRA macro
13574 { // '+' factor
13575 if (p->error_indicator) {
13576 D(p->level--);
13577 return NULL;
13578 }
13579 D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'+' factor"));
13580 Token * _literal;
13581 expr_ty a;
13582 if (
13583 (_literal = _PyPegen_expect_token(p, 14)) // token='+'
13584 &&
13585 (a = factor_rule(p)) // factor
13586 )
13587 {
13588 D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'+' factor"));
13589 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13590 if (_token == NULL) {
13591 D(p->level--);
13592 return NULL;
13593 }
13594 int _end_lineno = _token->end_lineno;
13595 UNUSED(_end_lineno); // Only used by EXTRA macro
13596 int _end_col_offset = _token->end_col_offset;
13597 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013598 _res = _PyAST_UnaryOp ( UAdd , a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013599 if (_res == NULL && PyErr_Occurred()) {
13600 p->error_indicator = 1;
13601 D(p->level--);
13602 return NULL;
13603 }
13604 goto done;
13605 }
13606 p->mark = _mark;
13607 D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
13608 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'+' factor"));
13609 }
13610 { // '-' factor
13611 if (p->error_indicator) {
13612 D(p->level--);
13613 return NULL;
13614 }
13615 D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-' factor"));
13616 Token * _literal;
13617 expr_ty a;
13618 if (
13619 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
13620 &&
13621 (a = factor_rule(p)) // factor
13622 )
13623 {
13624 D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-' factor"));
13625 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13626 if (_token == NULL) {
13627 D(p->level--);
13628 return NULL;
13629 }
13630 int _end_lineno = _token->end_lineno;
13631 UNUSED(_end_lineno); // Only used by EXTRA macro
13632 int _end_col_offset = _token->end_col_offset;
13633 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013634 _res = _PyAST_UnaryOp ( USub , a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013635 if (_res == NULL && PyErr_Occurred()) {
13636 p->error_indicator = 1;
13637 D(p->level--);
13638 return NULL;
13639 }
13640 goto done;
13641 }
13642 p->mark = _mark;
13643 D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
13644 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-' factor"));
13645 }
13646 { // '~' factor
13647 if (p->error_indicator) {
13648 D(p->level--);
13649 return NULL;
13650 }
13651 D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'~' factor"));
13652 Token * _literal;
13653 expr_ty a;
13654 if (
13655 (_literal = _PyPegen_expect_token(p, 31)) // token='~'
13656 &&
13657 (a = factor_rule(p)) // factor
13658 )
13659 {
13660 D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'~' factor"));
13661 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13662 if (_token == NULL) {
13663 D(p->level--);
13664 return NULL;
13665 }
13666 int _end_lineno = _token->end_lineno;
13667 UNUSED(_end_lineno); // Only used by EXTRA macro
13668 int _end_col_offset = _token->end_col_offset;
13669 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013670 _res = _PyAST_UnaryOp ( Invert , a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013671 if (_res == NULL && PyErr_Occurred()) {
13672 p->error_indicator = 1;
13673 D(p->level--);
13674 return NULL;
13675 }
13676 goto done;
13677 }
13678 p->mark = _mark;
13679 D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
13680 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'~' factor"));
13681 }
13682 { // power
13683 if (p->error_indicator) {
13684 D(p->level--);
13685 return NULL;
13686 }
13687 D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "power"));
13688 expr_ty power_var;
13689 if (
13690 (power_var = power_rule(p)) // power
13691 )
13692 {
13693 D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "power"));
13694 _res = power_var;
13695 goto done;
13696 }
13697 p->mark = _mark;
13698 D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
13699 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "power"));
13700 }
13701 _res = NULL;
13702 done:
13703 _PyPegen_insert_memo(p, _mark, factor_type, _res);
13704 D(p->level--);
13705 return _res;
13706}
13707
13708// power: await_primary '**' factor | await_primary
13709static expr_ty
13710power_rule(Parser *p)
13711{
13712 D(p->level++);
13713 if (p->error_indicator) {
13714 D(p->level--);
13715 return NULL;
13716 }
13717 expr_ty _res = NULL;
13718 int _mark = p->mark;
13719 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13720 p->error_indicator = 1;
13721 D(p->level--);
13722 return NULL;
13723 }
13724 int _start_lineno = p->tokens[_mark]->lineno;
13725 UNUSED(_start_lineno); // Only used by EXTRA macro
13726 int _start_col_offset = p->tokens[_mark]->col_offset;
13727 UNUSED(_start_col_offset); // Only used by EXTRA macro
13728 { // await_primary '**' factor
13729 if (p->error_indicator) {
13730 D(p->level--);
13731 return NULL;
13732 }
13733 D(fprintf(stderr, "%*c> power[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "await_primary '**' factor"));
13734 Token * _literal;
13735 expr_ty a;
13736 expr_ty b;
13737 if (
13738 (a = await_primary_rule(p)) // await_primary
13739 &&
13740 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
13741 &&
13742 (b = factor_rule(p)) // factor
13743 )
13744 {
13745 D(fprintf(stderr, "%*c+ power[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "await_primary '**' factor"));
13746 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13747 if (_token == NULL) {
13748 D(p->level--);
13749 return NULL;
13750 }
13751 int _end_lineno = _token->end_lineno;
13752 UNUSED(_end_lineno); // Only used by EXTRA macro
13753 int _end_col_offset = _token->end_col_offset;
13754 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013755 _res = _PyAST_BinOp ( a , Pow , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013756 if (_res == NULL && PyErr_Occurred()) {
13757 p->error_indicator = 1;
13758 D(p->level--);
13759 return NULL;
13760 }
13761 goto done;
13762 }
13763 p->mark = _mark;
13764 D(fprintf(stderr, "%*c%s power[%d-%d]: %s failed!\n", p->level, ' ',
13765 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "await_primary '**' factor"));
13766 }
13767 { // await_primary
13768 if (p->error_indicator) {
13769 D(p->level--);
13770 return NULL;
13771 }
13772 D(fprintf(stderr, "%*c> power[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "await_primary"));
13773 expr_ty await_primary_var;
13774 if (
13775 (await_primary_var = await_primary_rule(p)) // await_primary
13776 )
13777 {
13778 D(fprintf(stderr, "%*c+ power[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "await_primary"));
13779 _res = await_primary_var;
13780 goto done;
13781 }
13782 p->mark = _mark;
13783 D(fprintf(stderr, "%*c%s power[%d-%d]: %s failed!\n", p->level, ' ',
13784 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "await_primary"));
13785 }
13786 _res = NULL;
13787 done:
13788 D(p->level--);
13789 return _res;
13790}
13791
13792// await_primary: AWAIT primary | primary
13793static expr_ty
13794await_primary_rule(Parser *p)
13795{
13796 D(p->level++);
13797 if (p->error_indicator) {
13798 D(p->level--);
13799 return NULL;
13800 }
13801 expr_ty _res = NULL;
13802 if (_PyPegen_is_memoized(p, await_primary_type, &_res)) {
13803 D(p->level--);
13804 return _res;
13805 }
13806 int _mark = p->mark;
13807 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13808 p->error_indicator = 1;
13809 D(p->level--);
13810 return NULL;
13811 }
13812 int _start_lineno = p->tokens[_mark]->lineno;
13813 UNUSED(_start_lineno); // Only used by EXTRA macro
13814 int _start_col_offset = p->tokens[_mark]->col_offset;
13815 UNUSED(_start_col_offset); // Only used by EXTRA macro
13816 { // AWAIT primary
13817 if (p->error_indicator) {
13818 D(p->level--);
13819 return NULL;
13820 }
13821 D(fprintf(stderr, "%*c> await_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "AWAIT primary"));
13822 expr_ty a;
13823 Token * await_var;
13824 if (
13825 (await_var = _PyPegen_expect_token(p, AWAIT)) // token='AWAIT'
13826 &&
13827 (a = primary_rule(p)) // primary
13828 )
13829 {
13830 D(fprintf(stderr, "%*c+ await_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "AWAIT primary"));
13831 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13832 if (_token == NULL) {
13833 D(p->level--);
13834 return NULL;
13835 }
13836 int _end_lineno = _token->end_lineno;
13837 UNUSED(_end_lineno); // Only used by EXTRA macro
13838 int _end_col_offset = _token->end_col_offset;
13839 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013840 _res = CHECK_VERSION ( expr_ty , 5 , "Await expressions are" , _PyAST_Await ( a , EXTRA ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013841 if (_res == NULL && PyErr_Occurred()) {
13842 p->error_indicator = 1;
13843 D(p->level--);
13844 return NULL;
13845 }
13846 goto done;
13847 }
13848 p->mark = _mark;
13849 D(fprintf(stderr, "%*c%s await_primary[%d-%d]: %s failed!\n", p->level, ' ',
13850 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "AWAIT primary"));
13851 }
13852 { // primary
13853 if (p->error_indicator) {
13854 D(p->level--);
13855 return NULL;
13856 }
13857 D(fprintf(stderr, "%*c> await_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary"));
13858 expr_ty primary_var;
13859 if (
13860 (primary_var = primary_rule(p)) // primary
13861 )
13862 {
13863 D(fprintf(stderr, "%*c+ await_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary"));
13864 _res = primary_var;
13865 goto done;
13866 }
13867 p->mark = _mark;
13868 D(fprintf(stderr, "%*c%s await_primary[%d-%d]: %s failed!\n", p->level, ' ',
13869 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary"));
13870 }
13871 _res = NULL;
13872 done:
13873 _PyPegen_insert_memo(p, _mark, await_primary_type, _res);
13874 D(p->level--);
13875 return _res;
13876}
13877
13878// Left-recursive
13879// primary:
13880// | primary '.' NAME
13881// | primary genexp
13882// | primary '(' arguments? ')'
13883// | primary '[' slices ']'
13884// | atom
13885static expr_ty primary_raw(Parser *);
13886static expr_ty
13887primary_rule(Parser *p)
13888{
13889 D(p->level++);
13890 expr_ty _res = NULL;
13891 if (_PyPegen_is_memoized(p, primary_type, &_res)) {
13892 D(p->level--);
13893 return _res;
13894 }
13895 int _mark = p->mark;
13896 int _resmark = p->mark;
13897 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080013898 int tmpvar_8 = _PyPegen_update_memo(p, _mark, primary_type, _res);
13899 if (tmpvar_8) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013900 D(p->level--);
13901 return _res;
13902 }
13903 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070013904 p->in_raw_rule++;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013905 void *_raw = primary_raw(p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070013906 p->in_raw_rule--;
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020013907 if (p->error_indicator)
13908 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013909 if (_raw == NULL || p->mark <= _resmark)
13910 break;
13911 _resmark = p->mark;
13912 _res = _raw;
13913 }
13914 p->mark = _resmark;
13915 D(p->level--);
13916 return _res;
13917}
13918static expr_ty
13919primary_raw(Parser *p)
13920{
13921 D(p->level++);
13922 if (p->error_indicator) {
13923 D(p->level--);
13924 return NULL;
13925 }
13926 expr_ty _res = NULL;
13927 int _mark = p->mark;
13928 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13929 p->error_indicator = 1;
13930 D(p->level--);
13931 return NULL;
13932 }
13933 int _start_lineno = p->tokens[_mark]->lineno;
13934 UNUSED(_start_lineno); // Only used by EXTRA macro
13935 int _start_col_offset = p->tokens[_mark]->col_offset;
13936 UNUSED(_start_col_offset); // Only used by EXTRA macro
13937 { // primary '.' NAME
13938 if (p->error_indicator) {
13939 D(p->level--);
13940 return NULL;
13941 }
13942 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '.' NAME"));
13943 Token * _literal;
13944 expr_ty a;
13945 expr_ty b;
13946 if (
13947 (a = primary_rule(p)) // primary
13948 &&
13949 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
13950 &&
13951 (b = _PyPegen_name_token(p)) // NAME
13952 )
13953 {
13954 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '.' NAME"));
13955 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13956 if (_token == NULL) {
13957 D(p->level--);
13958 return NULL;
13959 }
13960 int _end_lineno = _token->end_lineno;
13961 UNUSED(_end_lineno); // Only used by EXTRA macro
13962 int _end_col_offset = _token->end_col_offset;
13963 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013964 _res = _PyAST_Attribute ( a , b -> v . Name . id , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013965 if (_res == NULL && PyErr_Occurred()) {
13966 p->error_indicator = 1;
13967 D(p->level--);
13968 return NULL;
13969 }
13970 goto done;
13971 }
13972 p->mark = _mark;
13973 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
13974 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '.' NAME"));
13975 }
13976 { // primary genexp
13977 if (p->error_indicator) {
13978 D(p->level--);
13979 return NULL;
13980 }
13981 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary genexp"));
13982 expr_ty a;
13983 expr_ty b;
13984 if (
13985 (a = primary_rule(p)) // primary
13986 &&
13987 (b = genexp_rule(p)) // genexp
13988 )
13989 {
13990 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary genexp"));
13991 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13992 if (_token == NULL) {
13993 D(p->level--);
13994 return NULL;
13995 }
13996 int _end_lineno = _token->end_lineno;
13997 UNUSED(_end_lineno); // Only used by EXTRA macro
13998 int _end_col_offset = _token->end_col_offset;
13999 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014000 _res = _PyAST_Call ( a , CHECK ( asdl_expr_seq * , ( asdl_expr_seq * ) _PyPegen_singleton_seq ( p , b ) ) , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014001 if (_res == NULL && PyErr_Occurred()) {
14002 p->error_indicator = 1;
14003 D(p->level--);
14004 return NULL;
14005 }
14006 goto done;
14007 }
14008 p->mark = _mark;
14009 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
14010 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary genexp"));
14011 }
14012 { // primary '(' arguments? ')'
14013 if (p->error_indicator) {
14014 D(p->level--);
14015 return NULL;
14016 }
14017 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '(' arguments? ')'"));
14018 Token * _literal;
14019 Token * _literal_1;
14020 expr_ty a;
14021 void *b;
14022 if (
14023 (a = primary_rule(p)) // primary
14024 &&
14025 (_literal = _PyPegen_expect_token(p, 7)) // token='('
14026 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +020014027 (b = arguments_rule(p), !p->error_indicator) // arguments?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014028 &&
14029 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
14030 )
14031 {
14032 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '(' arguments? ')'"));
14033 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14034 if (_token == NULL) {
14035 D(p->level--);
14036 return NULL;
14037 }
14038 int _end_lineno = _token->end_lineno;
14039 UNUSED(_end_lineno); // Only used by EXTRA macro
14040 int _end_col_offset = _token->end_col_offset;
14041 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014042 _res = _PyAST_Call ( a , ( b ) ? ( ( expr_ty ) b ) -> v . Call . args : NULL , ( b ) ? ( ( expr_ty ) b ) -> v . Call . keywords : NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014043 if (_res == NULL && PyErr_Occurred()) {
14044 p->error_indicator = 1;
14045 D(p->level--);
14046 return NULL;
14047 }
14048 goto done;
14049 }
14050 p->mark = _mark;
14051 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
14052 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '(' arguments? ')'"));
14053 }
14054 { // primary '[' slices ']'
14055 if (p->error_indicator) {
14056 D(p->level--);
14057 return NULL;
14058 }
14059 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '[' slices ']'"));
14060 Token * _literal;
14061 Token * _literal_1;
14062 expr_ty a;
14063 expr_ty b;
14064 if (
14065 (a = primary_rule(p)) // primary
14066 &&
14067 (_literal = _PyPegen_expect_token(p, 9)) // token='['
14068 &&
14069 (b = slices_rule(p)) // slices
14070 &&
14071 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
14072 )
14073 {
14074 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '[' slices ']'"));
14075 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14076 if (_token == NULL) {
14077 D(p->level--);
14078 return NULL;
14079 }
14080 int _end_lineno = _token->end_lineno;
14081 UNUSED(_end_lineno); // Only used by EXTRA macro
14082 int _end_col_offset = _token->end_col_offset;
14083 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014084 _res = _PyAST_Subscript ( a , b , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014085 if (_res == NULL && PyErr_Occurred()) {
14086 p->error_indicator = 1;
14087 D(p->level--);
14088 return NULL;
14089 }
14090 goto done;
14091 }
14092 p->mark = _mark;
14093 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
14094 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '[' slices ']'"));
14095 }
14096 { // atom
14097 if (p->error_indicator) {
14098 D(p->level--);
14099 return NULL;
14100 }
14101 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "atom"));
14102 expr_ty atom_var;
14103 if (
14104 (atom_var = atom_rule(p)) // atom
14105 )
14106 {
14107 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "atom"));
14108 _res = atom_var;
14109 goto done;
14110 }
14111 p->mark = _mark;
14112 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
14113 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "atom"));
14114 }
14115 _res = NULL;
14116 done:
14117 D(p->level--);
14118 return _res;
14119}
14120
14121// slices: slice !',' | ','.slice+ ','?
14122static expr_ty
14123slices_rule(Parser *p)
14124{
14125 D(p->level++);
14126 if (p->error_indicator) {
14127 D(p->level--);
14128 return NULL;
14129 }
14130 expr_ty _res = NULL;
14131 int _mark = p->mark;
14132 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14133 p->error_indicator = 1;
14134 D(p->level--);
14135 return NULL;
14136 }
14137 int _start_lineno = p->tokens[_mark]->lineno;
14138 UNUSED(_start_lineno); // Only used by EXTRA macro
14139 int _start_col_offset = p->tokens[_mark]->col_offset;
14140 UNUSED(_start_col_offset); // Only used by EXTRA macro
14141 { // slice !','
14142 if (p->error_indicator) {
14143 D(p->level--);
14144 return NULL;
14145 }
14146 D(fprintf(stderr, "%*c> slices[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slice !','"));
14147 expr_ty a;
14148 if (
14149 (a = slice_rule(p)) // slice
14150 &&
14151 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 12) // token=','
14152 )
14153 {
14154 D(fprintf(stderr, "%*c+ slices[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slice !','"));
14155 _res = a;
14156 if (_res == NULL && PyErr_Occurred()) {
14157 p->error_indicator = 1;
14158 D(p->level--);
14159 return NULL;
14160 }
14161 goto done;
14162 }
14163 p->mark = _mark;
14164 D(fprintf(stderr, "%*c%s slices[%d-%d]: %s failed!\n", p->level, ' ',
14165 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slice !','"));
14166 }
14167 { // ','.slice+ ','?
14168 if (p->error_indicator) {
14169 D(p->level--);
14170 return NULL;
14171 }
14172 D(fprintf(stderr, "%*c> slices[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.slice+ ','?"));
14173 void *_opt_var;
14174 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +010014175 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014176 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080014177 (a = (asdl_expr_seq*)_gather_108_rule(p)) // ','.slice+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014178 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +020014179 (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014180 )
14181 {
14182 D(fprintf(stderr, "%*c+ slices[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.slice+ ','?"));
14183 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14184 if (_token == NULL) {
14185 D(p->level--);
14186 return NULL;
14187 }
14188 int _end_lineno = _token->end_lineno;
14189 UNUSED(_end_lineno); // Only used by EXTRA macro
14190 int _end_col_offset = _token->end_col_offset;
14191 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014192 _res = _PyAST_Tuple ( a , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014193 if (_res == NULL && PyErr_Occurred()) {
14194 p->error_indicator = 1;
14195 D(p->level--);
14196 return NULL;
14197 }
14198 goto done;
14199 }
14200 p->mark = _mark;
14201 D(fprintf(stderr, "%*c%s slices[%d-%d]: %s failed!\n", p->level, ' ',
14202 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.slice+ ','?"));
14203 }
14204 _res = NULL;
14205 done:
14206 D(p->level--);
14207 return _res;
14208}
14209
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020014210// slice: expression? ':' expression? [':' expression?] | named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014211static expr_ty
14212slice_rule(Parser *p)
14213{
14214 D(p->level++);
14215 if (p->error_indicator) {
14216 D(p->level--);
14217 return NULL;
14218 }
14219 expr_ty _res = NULL;
14220 int _mark = p->mark;
14221 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14222 p->error_indicator = 1;
14223 D(p->level--);
14224 return NULL;
14225 }
14226 int _start_lineno = p->tokens[_mark]->lineno;
14227 UNUSED(_start_lineno); // Only used by EXTRA macro
14228 int _start_col_offset = p->tokens[_mark]->col_offset;
14229 UNUSED(_start_col_offset); // Only used by EXTRA macro
14230 { // expression? ':' expression? [':' expression?]
14231 if (p->error_indicator) {
14232 D(p->level--);
14233 return NULL;
14234 }
14235 D(fprintf(stderr, "%*c> slice[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression? ':' expression? [':' expression?]"));
14236 Token * _literal;
14237 void *a;
14238 void *b;
14239 void *c;
14240 if (
Łukasz Langa5c9cab52021-10-19 22:31:18 +020014241 (a = expression_rule(p), !p->error_indicator) // expression?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014242 &&
14243 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
14244 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +020014245 (b = expression_rule(p), !p->error_indicator) // expression?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014246 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +020014247 (c = _tmp_110_rule(p), !p->error_indicator) // [':' expression?]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014248 )
14249 {
14250 D(fprintf(stderr, "%*c+ slice[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression? ':' expression? [':' expression?]"));
14251 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14252 if (_token == NULL) {
14253 D(p->level--);
14254 return NULL;
14255 }
14256 int _end_lineno = _token->end_lineno;
14257 UNUSED(_end_lineno); // Only used by EXTRA macro
14258 int _end_col_offset = _token->end_col_offset;
14259 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014260 _res = _PyAST_Slice ( a , b , c , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014261 if (_res == NULL && PyErr_Occurred()) {
14262 p->error_indicator = 1;
14263 D(p->level--);
14264 return NULL;
14265 }
14266 goto done;
14267 }
14268 p->mark = _mark;
14269 D(fprintf(stderr, "%*c%s slice[%d-%d]: %s failed!\n", p->level, ' ',
14270 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression? ':' expression? [':' expression?]"));
14271 }
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020014272 { // named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014273 if (p->error_indicator) {
14274 D(p->level--);
14275 return NULL;
14276 }
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020014277 D(fprintf(stderr, "%*c> slice[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014278 expr_ty a;
14279 if (
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020014280 (a = named_expression_rule(p)) // named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014281 )
14282 {
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020014283 D(fprintf(stderr, "%*c+ slice[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "named_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014284 _res = a;
14285 if (_res == NULL && PyErr_Occurred()) {
14286 p->error_indicator = 1;
14287 D(p->level--);
14288 return NULL;
14289 }
14290 goto done;
14291 }
14292 p->mark = _mark;
14293 D(fprintf(stderr, "%*c%s slice[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020014294 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014295 }
14296 _res = NULL;
14297 done:
14298 D(p->level--);
14299 return _res;
14300}
14301
14302// atom:
14303// | NAME
14304// | 'True'
14305// | 'False'
14306// | 'None'
14307// | &STRING strings
14308// | NUMBER
14309// | &'(' (tuple | group | genexp)
14310// | &'[' (list | listcomp)
14311// | &'{' (dict | set | dictcomp | setcomp)
14312// | '...'
14313static expr_ty
14314atom_rule(Parser *p)
14315{
14316 D(p->level++);
14317 if (p->error_indicator) {
14318 D(p->level--);
14319 return NULL;
14320 }
14321 expr_ty _res = NULL;
14322 int _mark = p->mark;
14323 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14324 p->error_indicator = 1;
14325 D(p->level--);
14326 return NULL;
14327 }
14328 int _start_lineno = p->tokens[_mark]->lineno;
14329 UNUSED(_start_lineno); // Only used by EXTRA macro
14330 int _start_col_offset = p->tokens[_mark]->col_offset;
14331 UNUSED(_start_col_offset); // Only used by EXTRA macro
14332 { // NAME
14333 if (p->error_indicator) {
14334 D(p->level--);
14335 return NULL;
14336 }
14337 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
14338 expr_ty name_var;
14339 if (
14340 (name_var = _PyPegen_name_token(p)) // NAME
14341 )
14342 {
14343 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
14344 _res = name_var;
14345 goto done;
14346 }
14347 p->mark = _mark;
14348 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
14349 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
14350 }
14351 { // 'True'
14352 if (p->error_indicator) {
14353 D(p->level--);
14354 return NULL;
14355 }
14356 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'True'"));
14357 Token * _keyword;
14358 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080014359 (_keyword = _PyPegen_expect_token(p, 524)) // token='True'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014360 )
14361 {
14362 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'"));
14363 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14364 if (_token == NULL) {
14365 D(p->level--);
14366 return NULL;
14367 }
14368 int _end_lineno = _token->end_lineno;
14369 UNUSED(_end_lineno); // Only used by EXTRA macro
14370 int _end_col_offset = _token->end_col_offset;
14371 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014372 _res = _PyAST_Constant ( Py_True , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014373 if (_res == NULL && PyErr_Occurred()) {
14374 p->error_indicator = 1;
14375 D(p->level--);
14376 return NULL;
14377 }
14378 goto done;
14379 }
14380 p->mark = _mark;
14381 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
14382 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'True'"));
14383 }
14384 { // 'False'
14385 if (p->error_indicator) {
14386 D(p->level--);
14387 return NULL;
14388 }
14389 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False'"));
14390 Token * _keyword;
14391 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080014392 (_keyword = _PyPegen_expect_token(p, 525)) // token='False'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014393 )
14394 {
14395 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'"));
14396 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14397 if (_token == NULL) {
14398 D(p->level--);
14399 return NULL;
14400 }
14401 int _end_lineno = _token->end_lineno;
14402 UNUSED(_end_lineno); // Only used by EXTRA macro
14403 int _end_col_offset = _token->end_col_offset;
14404 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014405 _res = _PyAST_Constant ( Py_False , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014406 if (_res == NULL && PyErr_Occurred()) {
14407 p->error_indicator = 1;
14408 D(p->level--);
14409 return NULL;
14410 }
14411 goto done;
14412 }
14413 p->mark = _mark;
14414 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
14415 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'False'"));
14416 }
14417 { // 'None'
14418 if (p->error_indicator) {
14419 D(p->level--);
14420 return NULL;
14421 }
14422 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'None'"));
14423 Token * _keyword;
14424 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080014425 (_keyword = _PyPegen_expect_token(p, 523)) // token='None'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014426 )
14427 {
14428 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'"));
14429 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14430 if (_token == NULL) {
14431 D(p->level--);
14432 return NULL;
14433 }
14434 int _end_lineno = _token->end_lineno;
14435 UNUSED(_end_lineno); // Only used by EXTRA macro
14436 int _end_col_offset = _token->end_col_offset;
14437 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014438 _res = _PyAST_Constant ( Py_None , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014439 if (_res == NULL && PyErr_Occurred()) {
14440 p->error_indicator = 1;
14441 D(p->level--);
14442 return NULL;
14443 }
14444 goto done;
14445 }
14446 p->mark = _mark;
14447 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
14448 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'None'"));
14449 }
14450 { // &STRING strings
14451 if (p->error_indicator) {
14452 D(p->level--);
14453 return NULL;
14454 }
14455 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&STRING strings"));
14456 expr_ty strings_var;
14457 if (
14458 _PyPegen_lookahead(1, _PyPegen_string_token, p)
14459 &&
14460 (strings_var = strings_rule(p)) // strings
14461 )
14462 {
14463 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&STRING strings"));
14464 _res = strings_var;
14465 goto done;
14466 }
14467 p->mark = _mark;
14468 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
14469 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&STRING strings"));
14470 }
14471 { // NUMBER
14472 if (p->error_indicator) {
14473 D(p->level--);
14474 return NULL;
14475 }
14476 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NUMBER"));
14477 expr_ty number_var;
14478 if (
14479 (number_var = _PyPegen_number_token(p)) // NUMBER
14480 )
14481 {
14482 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NUMBER"));
14483 _res = number_var;
14484 goto done;
14485 }
14486 p->mark = _mark;
14487 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
14488 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NUMBER"));
14489 }
14490 { // &'(' (tuple | group | genexp)
14491 if (p->error_indicator) {
14492 D(p->level--);
14493 return NULL;
14494 }
14495 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'(' (tuple | group | genexp)"));
Brandt Bucher145bf262021-02-26 14:51:55 -080014496 void *_tmp_111_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014497 if (
14498 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 7) // token='('
14499 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080014500 (_tmp_111_var = _tmp_111_rule(p)) // tuple | group | genexp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014501 )
14502 {
14503 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'(' (tuple | group | genexp)"));
Brandt Bucher145bf262021-02-26 14:51:55 -080014504 _res = _tmp_111_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014505 goto done;
14506 }
14507 p->mark = _mark;
14508 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
14509 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'(' (tuple | group | genexp)"));
14510 }
14511 { // &'[' (list | listcomp)
14512 if (p->error_indicator) {
14513 D(p->level--);
14514 return NULL;
14515 }
14516 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'[' (list | listcomp)"));
Brandt Bucher145bf262021-02-26 14:51:55 -080014517 void *_tmp_112_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014518 if (
14519 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 9) // token='['
14520 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080014521 (_tmp_112_var = _tmp_112_rule(p)) // list | listcomp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014522 )
14523 {
14524 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'[' (list | listcomp)"));
Brandt Bucher145bf262021-02-26 14:51:55 -080014525 _res = _tmp_112_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014526 goto done;
14527 }
14528 p->mark = _mark;
14529 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
14530 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'[' (list | listcomp)"));
14531 }
14532 { // &'{' (dict | set | dictcomp | setcomp)
14533 if (p->error_indicator) {
14534 D(p->level--);
14535 return NULL;
14536 }
14537 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'{' (dict | set | dictcomp | setcomp)"));
Brandt Bucher145bf262021-02-26 14:51:55 -080014538 void *_tmp_113_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014539 if (
14540 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 25) // token='{'
14541 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080014542 (_tmp_113_var = _tmp_113_rule(p)) // dict | set | dictcomp | setcomp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014543 )
14544 {
14545 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'{' (dict | set | dictcomp | setcomp)"));
Brandt Bucher145bf262021-02-26 14:51:55 -080014546 _res = _tmp_113_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014547 goto done;
14548 }
14549 p->mark = _mark;
14550 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
14551 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'{' (dict | set | dictcomp | setcomp)"));
14552 }
14553 { // '...'
14554 if (p->error_indicator) {
14555 D(p->level--);
14556 return NULL;
14557 }
14558 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'"));
14559 Token * _literal;
14560 if (
14561 (_literal = _PyPegen_expect_token(p, 52)) // token='...'
14562 )
14563 {
14564 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'"));
14565 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14566 if (_token == NULL) {
14567 D(p->level--);
14568 return NULL;
14569 }
14570 int _end_lineno = _token->end_lineno;
14571 UNUSED(_end_lineno); // Only used by EXTRA macro
14572 int _end_col_offset = _token->end_col_offset;
14573 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014574 _res = _PyAST_Constant ( Py_Ellipsis , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014575 if (_res == NULL && PyErr_Occurred()) {
14576 p->error_indicator = 1;
14577 D(p->level--);
14578 return NULL;
14579 }
14580 goto done;
14581 }
14582 p->mark = _mark;
14583 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
14584 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'...'"));
14585 }
14586 _res = NULL;
14587 done:
14588 D(p->level--);
14589 return _res;
14590}
14591
14592// strings: STRING+
14593static expr_ty
14594strings_rule(Parser *p)
14595{
14596 D(p->level++);
14597 if (p->error_indicator) {
14598 D(p->level--);
14599 return NULL;
14600 }
14601 expr_ty _res = NULL;
14602 if (_PyPegen_is_memoized(p, strings_type, &_res)) {
14603 D(p->level--);
14604 return _res;
14605 }
14606 int _mark = p->mark;
14607 { // STRING+
14608 if (p->error_indicator) {
14609 D(p->level--);
14610 return NULL;
14611 }
14612 D(fprintf(stderr, "%*c> strings[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "STRING+"));
14613 asdl_seq * a;
14614 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080014615 (a = _loop1_114_rule(p)) // STRING+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014616 )
14617 {
14618 D(fprintf(stderr, "%*c+ strings[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "STRING+"));
14619 _res = _PyPegen_concatenate_strings ( p , a );
14620 if (_res == NULL && PyErr_Occurred()) {
14621 p->error_indicator = 1;
14622 D(p->level--);
14623 return NULL;
14624 }
14625 goto done;
14626 }
14627 p->mark = _mark;
14628 D(fprintf(stderr, "%*c%s strings[%d-%d]: %s failed!\n", p->level, ' ',
14629 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "STRING+"));
14630 }
14631 _res = NULL;
14632 done:
14633 _PyPegen_insert_memo(p, _mark, strings_type, _res);
14634 D(p->level--);
14635 return _res;
14636}
14637
14638// list: '[' star_named_expressions? ']'
14639static expr_ty
14640list_rule(Parser *p)
14641{
14642 D(p->level++);
14643 if (p->error_indicator) {
14644 D(p->level--);
14645 return NULL;
14646 }
14647 expr_ty _res = NULL;
14648 int _mark = p->mark;
14649 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14650 p->error_indicator = 1;
14651 D(p->level--);
14652 return NULL;
14653 }
14654 int _start_lineno = p->tokens[_mark]->lineno;
14655 UNUSED(_start_lineno); // Only used by EXTRA macro
14656 int _start_col_offset = p->tokens[_mark]->col_offset;
14657 UNUSED(_start_col_offset); // Only used by EXTRA macro
14658 { // '[' star_named_expressions? ']'
14659 if (p->error_indicator) {
14660 D(p->level--);
14661 return NULL;
14662 }
14663 D(fprintf(stderr, "%*c> list[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' star_named_expressions? ']'"));
14664 Token * _literal;
14665 Token * _literal_1;
14666 void *a;
14667 if (
14668 (_literal = _PyPegen_expect_token(p, 9)) // token='['
14669 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +020014670 (a = star_named_expressions_rule(p), !p->error_indicator) // star_named_expressions?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014671 &&
14672 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
14673 )
14674 {
14675 D(fprintf(stderr, "%*c+ list[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'[' star_named_expressions? ']'"));
14676 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14677 if (_token == NULL) {
14678 D(p->level--);
14679 return NULL;
14680 }
14681 int _end_lineno = _token->end_lineno;
14682 UNUSED(_end_lineno); // Only used by EXTRA macro
14683 int _end_col_offset = _token->end_col_offset;
14684 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014685 _res = _PyAST_List ( a , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014686 if (_res == NULL && PyErr_Occurred()) {
14687 p->error_indicator = 1;
14688 D(p->level--);
14689 return NULL;
14690 }
14691 goto done;
14692 }
14693 p->mark = _mark;
14694 D(fprintf(stderr, "%*c%s list[%d-%d]: %s failed!\n", p->level, ' ',
14695 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' star_named_expressions? ']'"));
14696 }
14697 _res = NULL;
14698 done:
14699 D(p->level--);
14700 return _res;
14701}
14702
Pablo Galindo835f14f2021-01-31 22:52:56 +000014703// listcomp: '[' named_expression for_if_clauses ']' | invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014704static expr_ty
14705listcomp_rule(Parser *p)
14706{
14707 D(p->level++);
14708 if (p->error_indicator) {
14709 D(p->level--);
14710 return NULL;
14711 }
14712 expr_ty _res = NULL;
14713 int _mark = p->mark;
14714 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14715 p->error_indicator = 1;
14716 D(p->level--);
14717 return NULL;
14718 }
14719 int _start_lineno = p->tokens[_mark]->lineno;
14720 UNUSED(_start_lineno); // Only used by EXTRA macro
14721 int _start_col_offset = p->tokens[_mark]->col_offset;
14722 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo835f14f2021-01-31 22:52:56 +000014723 { // '[' named_expression for_if_clauses ']'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014724 if (p->error_indicator) {
14725 D(p->level--);
14726 return NULL;
14727 }
Pablo Galindo835f14f2021-01-31 22:52:56 +000014728 D(fprintf(stderr, "%*c> listcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' named_expression for_if_clauses ']'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014729 Token * _literal;
14730 Token * _literal_1;
14731 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010014732 asdl_comprehension_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014733 if (
14734 (_literal = _PyPegen_expect_token(p, 9)) // token='['
14735 &&
14736 (a = named_expression_rule(p)) // named_expression
14737 &&
14738 (b = for_if_clauses_rule(p)) // for_if_clauses
14739 &&
14740 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
14741 )
14742 {
Pablo Galindo835f14f2021-01-31 22:52:56 +000014743 D(fprintf(stderr, "%*c+ listcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'[' named_expression for_if_clauses ']'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014744 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14745 if (_token == NULL) {
14746 D(p->level--);
14747 return NULL;
14748 }
14749 int _end_lineno = _token->end_lineno;
14750 UNUSED(_end_lineno); // Only used by EXTRA macro
14751 int _end_col_offset = _token->end_col_offset;
14752 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014753 _res = _PyAST_ListComp ( a , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014754 if (_res == NULL && PyErr_Occurred()) {
14755 p->error_indicator = 1;
14756 D(p->level--);
14757 return NULL;
14758 }
14759 goto done;
14760 }
14761 p->mark = _mark;
14762 D(fprintf(stderr, "%*c%s listcomp[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo835f14f2021-01-31 22:52:56 +000014763 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' named_expression for_if_clauses ']'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014764 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014765 if (p->call_invalid_rules) { // invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014766 if (p->error_indicator) {
14767 D(p->level--);
14768 return NULL;
14769 }
14770 D(fprintf(stderr, "%*c> listcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
14771 void *invalid_comprehension_var;
14772 if (
14773 (invalid_comprehension_var = invalid_comprehension_rule(p)) // invalid_comprehension
14774 )
14775 {
14776 D(fprintf(stderr, "%*c+ listcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
14777 _res = invalid_comprehension_var;
14778 goto done;
14779 }
14780 p->mark = _mark;
14781 D(fprintf(stderr, "%*c%s listcomp[%d-%d]: %s failed!\n", p->level, ' ',
14782 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_comprehension"));
14783 }
14784 _res = NULL;
14785 done:
14786 D(p->level--);
14787 return _res;
14788}
14789
14790// tuple: '(' [star_named_expression ',' star_named_expressions?] ')'
14791static expr_ty
14792tuple_rule(Parser *p)
14793{
14794 D(p->level++);
14795 if (p->error_indicator) {
14796 D(p->level--);
14797 return NULL;
14798 }
14799 expr_ty _res = NULL;
14800 int _mark = p->mark;
14801 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14802 p->error_indicator = 1;
14803 D(p->level--);
14804 return NULL;
14805 }
14806 int _start_lineno = p->tokens[_mark]->lineno;
14807 UNUSED(_start_lineno); // Only used by EXTRA macro
14808 int _start_col_offset = p->tokens[_mark]->col_offset;
14809 UNUSED(_start_col_offset); // Only used by EXTRA macro
14810 { // '(' [star_named_expression ',' star_named_expressions?] ')'
14811 if (p->error_indicator) {
14812 D(p->level--);
14813 return NULL;
14814 }
14815 D(fprintf(stderr, "%*c> tuple[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' [star_named_expression ',' star_named_expressions?] ')'"));
14816 Token * _literal;
14817 Token * _literal_1;
14818 void *a;
14819 if (
14820 (_literal = _PyPegen_expect_token(p, 7)) // token='('
14821 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +020014822 (a = _tmp_115_rule(p), !p->error_indicator) // [star_named_expression ',' star_named_expressions?]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014823 &&
14824 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
14825 )
14826 {
14827 D(fprintf(stderr, "%*c+ tuple[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' [star_named_expression ',' star_named_expressions?] ')'"));
14828 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14829 if (_token == NULL) {
14830 D(p->level--);
14831 return NULL;
14832 }
14833 int _end_lineno = _token->end_lineno;
14834 UNUSED(_end_lineno); // Only used by EXTRA macro
14835 int _end_col_offset = _token->end_col_offset;
14836 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014837 _res = _PyAST_Tuple ( a , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014838 if (_res == NULL && PyErr_Occurred()) {
14839 p->error_indicator = 1;
14840 D(p->level--);
14841 return NULL;
14842 }
14843 goto done;
14844 }
14845 p->mark = _mark;
14846 D(fprintf(stderr, "%*c%s tuple[%d-%d]: %s failed!\n", p->level, ' ',
14847 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' [star_named_expression ',' star_named_expressions?] ')'"));
14848 }
14849 _res = NULL;
14850 done:
14851 D(p->level--);
14852 return _res;
14853}
14854
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030014855// group: '(' (yield_expr | named_expression) ')' | invalid_group
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014856static expr_ty
14857group_rule(Parser *p)
14858{
14859 D(p->level++);
14860 if (p->error_indicator) {
14861 D(p->level--);
14862 return NULL;
14863 }
14864 expr_ty _res = NULL;
14865 int _mark = p->mark;
14866 { // '(' (yield_expr | named_expression) ')'
14867 if (p->error_indicator) {
14868 D(p->level--);
14869 return NULL;
14870 }
14871 D(fprintf(stderr, "%*c> group[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' (yield_expr | named_expression) ')'"));
14872 Token * _literal;
14873 Token * _literal_1;
14874 void *a;
14875 if (
14876 (_literal = _PyPegen_expect_token(p, 7)) // token='('
14877 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080014878 (a = _tmp_116_rule(p)) // yield_expr | named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014879 &&
14880 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
14881 )
14882 {
14883 D(fprintf(stderr, "%*c+ group[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' (yield_expr | named_expression) ')'"));
14884 _res = a;
14885 if (_res == NULL && PyErr_Occurred()) {
14886 p->error_indicator = 1;
14887 D(p->level--);
14888 return NULL;
14889 }
14890 goto done;
14891 }
14892 p->mark = _mark;
14893 D(fprintf(stderr, "%*c%s group[%d-%d]: %s failed!\n", p->level, ' ',
14894 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' (yield_expr | named_expression) ')'"));
14895 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014896 if (p->call_invalid_rules) { // invalid_group
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030014897 if (p->error_indicator) {
14898 D(p->level--);
14899 return NULL;
14900 }
14901 D(fprintf(stderr, "%*c> group[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_group"));
14902 void *invalid_group_var;
14903 if (
14904 (invalid_group_var = invalid_group_rule(p)) // invalid_group
14905 )
14906 {
14907 D(fprintf(stderr, "%*c+ group[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_group"));
14908 _res = invalid_group_var;
14909 goto done;
14910 }
14911 p->mark = _mark;
14912 D(fprintf(stderr, "%*c%s group[%d-%d]: %s failed!\n", p->level, ' ',
14913 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_group"));
14914 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014915 _res = NULL;
14916 done:
14917 D(p->level--);
14918 return _res;
14919}
14920
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070014921// genexp:
Pablo Galindo Salgado0e34a592021-11-04 23:19:27 +000014922// | '(' (assignment_expression | expression !':=') for_if_clauses ')'
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070014923// | invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014924static expr_ty
14925genexp_rule(Parser *p)
14926{
14927 D(p->level++);
14928 if (p->error_indicator) {
14929 D(p->level--);
14930 return NULL;
14931 }
14932 expr_ty _res = NULL;
14933 int _mark = p->mark;
14934 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14935 p->error_indicator = 1;
14936 D(p->level--);
14937 return NULL;
14938 }
14939 int _start_lineno = p->tokens[_mark]->lineno;
14940 UNUSED(_start_lineno); // Only used by EXTRA macro
14941 int _start_col_offset = p->tokens[_mark]->col_offset;
14942 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo Salgado0e34a592021-11-04 23:19:27 +000014943 { // '(' (assignment_expression | expression !':=') for_if_clauses ')'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014944 if (p->error_indicator) {
14945 D(p->level--);
14946 return NULL;
14947 }
Pablo Galindo Salgado0e34a592021-11-04 23:19:27 +000014948 D(fprintf(stderr, "%*c> genexp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' (assignment_expression | expression !':=') for_if_clauses ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014949 Token * _literal;
14950 Token * _literal_1;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070014951 void *a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010014952 asdl_comprehension_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014953 if (
14954 (_literal = _PyPegen_expect_token(p, 7)) // token='('
14955 &&
Pablo Galindo Salgado0e34a592021-11-04 23:19:27 +000014956 (a = _tmp_117_rule(p)) // assignment_expression | expression !':='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014957 &&
14958 (b = for_if_clauses_rule(p)) // for_if_clauses
14959 &&
14960 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
14961 )
14962 {
Pablo Galindo Salgado0e34a592021-11-04 23:19:27 +000014963 D(fprintf(stderr, "%*c+ genexp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' (assignment_expression | expression !':=') for_if_clauses ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014964 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14965 if (_token == NULL) {
14966 D(p->level--);
14967 return NULL;
14968 }
14969 int _end_lineno = _token->end_lineno;
14970 UNUSED(_end_lineno); // Only used by EXTRA macro
14971 int _end_col_offset = _token->end_col_offset;
14972 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014973 _res = _PyAST_GeneratorExp ( a , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014974 if (_res == NULL && PyErr_Occurred()) {
14975 p->error_indicator = 1;
14976 D(p->level--);
14977 return NULL;
14978 }
14979 goto done;
14980 }
14981 p->mark = _mark;
14982 D(fprintf(stderr, "%*c%s genexp[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo Salgado0e34a592021-11-04 23:19:27 +000014983 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' (assignment_expression | expression !':=') for_if_clauses ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014984 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014985 if (p->call_invalid_rules) { // invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014986 if (p->error_indicator) {
14987 D(p->level--);
14988 return NULL;
14989 }
14990 D(fprintf(stderr, "%*c> genexp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
14991 void *invalid_comprehension_var;
14992 if (
14993 (invalid_comprehension_var = invalid_comprehension_rule(p)) // invalid_comprehension
14994 )
14995 {
14996 D(fprintf(stderr, "%*c+ genexp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
14997 _res = invalid_comprehension_var;
14998 goto done;
14999 }
15000 p->mark = _mark;
15001 D(fprintf(stderr, "%*c%s genexp[%d-%d]: %s failed!\n", p->level, ' ',
15002 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_comprehension"));
15003 }
15004 _res = NULL;
15005 done:
15006 D(p->level--);
15007 return _res;
15008}
15009
Pablo Galindob0aba1f2020-11-17 01:17:12 +000015010// set: '{' star_named_expressions '}'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015011static expr_ty
15012set_rule(Parser *p)
15013{
15014 D(p->level++);
15015 if (p->error_indicator) {
15016 D(p->level--);
15017 return NULL;
15018 }
15019 expr_ty _res = NULL;
15020 int _mark = p->mark;
15021 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
15022 p->error_indicator = 1;
15023 D(p->level--);
15024 return NULL;
15025 }
15026 int _start_lineno = p->tokens[_mark]->lineno;
15027 UNUSED(_start_lineno); // Only used by EXTRA macro
15028 int _start_col_offset = p->tokens[_mark]->col_offset;
15029 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindob0aba1f2020-11-17 01:17:12 +000015030 { // '{' star_named_expressions '}'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015031 if (p->error_indicator) {
15032 D(p->level--);
15033 return NULL;
15034 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000015035 D(fprintf(stderr, "%*c> set[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' star_named_expressions '}'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015036 Token * _literal;
15037 Token * _literal_1;
Pablo Galindoa5634c42020-09-16 19:42:00 +010015038 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015039 if (
15040 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
15041 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000015042 (a = star_named_expressions_rule(p)) // star_named_expressions
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015043 &&
15044 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
15045 )
15046 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000015047 D(fprintf(stderr, "%*c+ set[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' star_named_expressions '}'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015048 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15049 if (_token == NULL) {
15050 D(p->level--);
15051 return NULL;
15052 }
15053 int _end_lineno = _token->end_lineno;
15054 UNUSED(_end_lineno); // Only used by EXTRA macro
15055 int _end_col_offset = _token->end_col_offset;
15056 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015057 _res = _PyAST_Set ( a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015058 if (_res == NULL && PyErr_Occurred()) {
15059 p->error_indicator = 1;
15060 D(p->level--);
15061 return NULL;
15062 }
15063 goto done;
15064 }
15065 p->mark = _mark;
15066 D(fprintf(stderr, "%*c%s set[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000015067 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' star_named_expressions '}'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015068 }
15069 _res = NULL;
15070 done:
15071 D(p->level--);
15072 return _res;
15073}
15074
Pablo Galindo835f14f2021-01-31 22:52:56 +000015075// setcomp: '{' named_expression for_if_clauses '}' | invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015076static expr_ty
15077setcomp_rule(Parser *p)
15078{
15079 D(p->level++);
15080 if (p->error_indicator) {
15081 D(p->level--);
15082 return NULL;
15083 }
15084 expr_ty _res = NULL;
15085 int _mark = p->mark;
15086 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
15087 p->error_indicator = 1;
15088 D(p->level--);
15089 return NULL;
15090 }
15091 int _start_lineno = p->tokens[_mark]->lineno;
15092 UNUSED(_start_lineno); // Only used by EXTRA macro
15093 int _start_col_offset = p->tokens[_mark]->col_offset;
15094 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo835f14f2021-01-31 22:52:56 +000015095 { // '{' named_expression for_if_clauses '}'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015096 if (p->error_indicator) {
15097 D(p->level--);
15098 return NULL;
15099 }
Pablo Galindo835f14f2021-01-31 22:52:56 +000015100 D(fprintf(stderr, "%*c> setcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' named_expression for_if_clauses '}'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015101 Token * _literal;
15102 Token * _literal_1;
15103 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010015104 asdl_comprehension_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015105 if (
15106 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
15107 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000015108 (a = named_expression_rule(p)) // named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015109 &&
15110 (b = for_if_clauses_rule(p)) // for_if_clauses
15111 &&
15112 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
15113 )
15114 {
Pablo Galindo835f14f2021-01-31 22:52:56 +000015115 D(fprintf(stderr, "%*c+ setcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' named_expression for_if_clauses '}'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015116 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15117 if (_token == NULL) {
15118 D(p->level--);
15119 return NULL;
15120 }
15121 int _end_lineno = _token->end_lineno;
15122 UNUSED(_end_lineno); // Only used by EXTRA macro
15123 int _end_col_offset = _token->end_col_offset;
15124 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015125 _res = _PyAST_SetComp ( a , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015126 if (_res == NULL && PyErr_Occurred()) {
15127 p->error_indicator = 1;
15128 D(p->level--);
15129 return NULL;
15130 }
15131 goto done;
15132 }
15133 p->mark = _mark;
15134 D(fprintf(stderr, "%*c%s setcomp[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo835f14f2021-01-31 22:52:56 +000015135 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' named_expression for_if_clauses '}'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015136 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020015137 if (p->call_invalid_rules) { // invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015138 if (p->error_indicator) {
15139 D(p->level--);
15140 return NULL;
15141 }
15142 D(fprintf(stderr, "%*c> setcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
15143 void *invalid_comprehension_var;
15144 if (
15145 (invalid_comprehension_var = invalid_comprehension_rule(p)) // invalid_comprehension
15146 )
15147 {
15148 D(fprintf(stderr, "%*c+ setcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
15149 _res = invalid_comprehension_var;
15150 goto done;
15151 }
15152 p->mark = _mark;
15153 D(fprintf(stderr, "%*c%s setcomp[%d-%d]: %s failed!\n", p->level, ' ',
15154 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_comprehension"));
15155 }
15156 _res = NULL;
15157 done:
15158 D(p->level--);
15159 return _res;
15160}
15161
Pablo Galindoda743502021-04-15 14:06:39 +010015162// dict: '{' double_starred_kvpairs? '}' | '{' invalid_double_starred_kvpairs '}'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015163static expr_ty
15164dict_rule(Parser *p)
15165{
15166 D(p->level++);
15167 if (p->error_indicator) {
15168 D(p->level--);
15169 return NULL;
15170 }
15171 expr_ty _res = NULL;
15172 int _mark = p->mark;
15173 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
15174 p->error_indicator = 1;
15175 D(p->level--);
15176 return NULL;
15177 }
15178 int _start_lineno = p->tokens[_mark]->lineno;
15179 UNUSED(_start_lineno); // Only used by EXTRA macro
15180 int _start_col_offset = p->tokens[_mark]->col_offset;
15181 UNUSED(_start_col_offset); // Only used by EXTRA macro
15182 { // '{' double_starred_kvpairs? '}'
15183 if (p->error_indicator) {
15184 D(p->level--);
15185 return NULL;
15186 }
15187 D(fprintf(stderr, "%*c> dict[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' double_starred_kvpairs? '}'"));
15188 Token * _literal;
15189 Token * _literal_1;
15190 void *a;
15191 if (
15192 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
15193 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +020015194 (a = double_starred_kvpairs_rule(p), !p->error_indicator) // double_starred_kvpairs?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015195 &&
15196 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
15197 )
15198 {
15199 D(fprintf(stderr, "%*c+ dict[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' double_starred_kvpairs? '}'"));
15200 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15201 if (_token == NULL) {
15202 D(p->level--);
15203 return NULL;
15204 }
15205 int _end_lineno = _token->end_lineno;
15206 UNUSED(_end_lineno); // Only used by EXTRA macro
15207 int _end_col_offset = _token->end_col_offset;
15208 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015209 _res = _PyAST_Dict ( CHECK ( asdl_expr_seq * , _PyPegen_get_keys ( p , a ) ) , CHECK ( asdl_expr_seq * , _PyPegen_get_values ( p , a ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015210 if (_res == NULL && PyErr_Occurred()) {
15211 p->error_indicator = 1;
15212 D(p->level--);
15213 return NULL;
15214 }
15215 goto done;
15216 }
15217 p->mark = _mark;
15218 D(fprintf(stderr, "%*c%s dict[%d-%d]: %s failed!\n", p->level, ' ',
15219 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' double_starred_kvpairs? '}'"));
15220 }
Pablo Galindoda743502021-04-15 14:06:39 +010015221 { // '{' invalid_double_starred_kvpairs '}'
15222 if (p->error_indicator) {
15223 D(p->level--);
15224 return NULL;
15225 }
15226 D(fprintf(stderr, "%*c> dict[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' invalid_double_starred_kvpairs '}'"));
15227 Token * _literal;
15228 Token * _literal_1;
15229 void *invalid_double_starred_kvpairs_var;
15230 if (
15231 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
15232 &&
15233 (invalid_double_starred_kvpairs_var = invalid_double_starred_kvpairs_rule(p)) // invalid_double_starred_kvpairs
15234 &&
15235 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
15236 )
15237 {
15238 D(fprintf(stderr, "%*c+ dict[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' invalid_double_starred_kvpairs '}'"));
15239 _res = _PyPegen_dummy_name(p, _literal, invalid_double_starred_kvpairs_var, _literal_1);
15240 goto done;
15241 }
15242 p->mark = _mark;
15243 D(fprintf(stderr, "%*c%s dict[%d-%d]: %s failed!\n", p->level, ' ',
15244 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' invalid_double_starred_kvpairs '}'"));
15245 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015246 _res = NULL;
15247 done:
15248 D(p->level--);
15249 return _res;
15250}
15251
15252// dictcomp: '{' kvpair for_if_clauses '}' | invalid_dict_comprehension
15253static expr_ty
15254dictcomp_rule(Parser *p)
15255{
15256 D(p->level++);
15257 if (p->error_indicator) {
15258 D(p->level--);
15259 return NULL;
15260 }
15261 expr_ty _res = NULL;
15262 int _mark = p->mark;
15263 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
15264 p->error_indicator = 1;
15265 D(p->level--);
15266 return NULL;
15267 }
15268 int _start_lineno = p->tokens[_mark]->lineno;
15269 UNUSED(_start_lineno); // Only used by EXTRA macro
15270 int _start_col_offset = p->tokens[_mark]->col_offset;
15271 UNUSED(_start_col_offset); // Only used by EXTRA macro
15272 { // '{' kvpair for_if_clauses '}'
15273 if (p->error_indicator) {
15274 D(p->level--);
15275 return NULL;
15276 }
15277 D(fprintf(stderr, "%*c> dictcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' kvpair for_if_clauses '}'"));
15278 Token * _literal;
15279 Token * _literal_1;
15280 KeyValuePair* a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010015281 asdl_comprehension_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015282 if (
15283 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
15284 &&
15285 (a = kvpair_rule(p)) // kvpair
15286 &&
15287 (b = for_if_clauses_rule(p)) // for_if_clauses
15288 &&
15289 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
15290 )
15291 {
15292 D(fprintf(stderr, "%*c+ dictcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' kvpair for_if_clauses '}'"));
15293 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15294 if (_token == NULL) {
15295 D(p->level--);
15296 return NULL;
15297 }
15298 int _end_lineno = _token->end_lineno;
15299 UNUSED(_end_lineno); // Only used by EXTRA macro
15300 int _end_col_offset = _token->end_col_offset;
15301 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015302 _res = _PyAST_DictComp ( a -> key , a -> value , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015303 if (_res == NULL && PyErr_Occurred()) {
15304 p->error_indicator = 1;
15305 D(p->level--);
15306 return NULL;
15307 }
15308 goto done;
15309 }
15310 p->mark = _mark;
15311 D(fprintf(stderr, "%*c%s dictcomp[%d-%d]: %s failed!\n", p->level, ' ',
15312 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' kvpair for_if_clauses '}'"));
15313 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020015314 if (p->call_invalid_rules) { // invalid_dict_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015315 if (p->error_indicator) {
15316 D(p->level--);
15317 return NULL;
15318 }
15319 D(fprintf(stderr, "%*c> dictcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_dict_comprehension"));
15320 void *invalid_dict_comprehension_var;
15321 if (
15322 (invalid_dict_comprehension_var = invalid_dict_comprehension_rule(p)) // invalid_dict_comprehension
15323 )
15324 {
15325 D(fprintf(stderr, "%*c+ dictcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_dict_comprehension"));
15326 _res = invalid_dict_comprehension_var;
15327 goto done;
15328 }
15329 p->mark = _mark;
15330 D(fprintf(stderr, "%*c%s dictcomp[%d-%d]: %s failed!\n", p->level, ' ',
15331 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_dict_comprehension"));
15332 }
15333 _res = NULL;
15334 done:
15335 D(p->level--);
15336 return _res;
15337}
15338
15339// double_starred_kvpairs: ','.double_starred_kvpair+ ','?
15340static asdl_seq*
15341double_starred_kvpairs_rule(Parser *p)
15342{
15343 D(p->level++);
15344 if (p->error_indicator) {
15345 D(p->level--);
15346 return NULL;
15347 }
15348 asdl_seq* _res = NULL;
15349 int _mark = p->mark;
15350 { // ','.double_starred_kvpair+ ','?
15351 if (p->error_indicator) {
15352 D(p->level--);
15353 return NULL;
15354 }
15355 D(fprintf(stderr, "%*c> double_starred_kvpairs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.double_starred_kvpair+ ','?"));
15356 void *_opt_var;
15357 UNUSED(_opt_var); // Silence compiler warnings
15358 asdl_seq * a;
15359 if (
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070015360 (a = _gather_118_rule(p)) // ','.double_starred_kvpair+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015361 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +020015362 (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015363 )
15364 {
15365 D(fprintf(stderr, "%*c+ double_starred_kvpairs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.double_starred_kvpair+ ','?"));
15366 _res = a;
15367 if (_res == NULL && PyErr_Occurred()) {
15368 p->error_indicator = 1;
15369 D(p->level--);
15370 return NULL;
15371 }
15372 goto done;
15373 }
15374 p->mark = _mark;
15375 D(fprintf(stderr, "%*c%s double_starred_kvpairs[%d-%d]: %s failed!\n", p->level, ' ',
15376 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.double_starred_kvpair+ ','?"));
15377 }
15378 _res = NULL;
15379 done:
15380 D(p->level--);
15381 return _res;
15382}
15383
15384// double_starred_kvpair: '**' bitwise_or | kvpair
15385static KeyValuePair*
15386double_starred_kvpair_rule(Parser *p)
15387{
15388 D(p->level++);
15389 if (p->error_indicator) {
15390 D(p->level--);
15391 return NULL;
15392 }
15393 KeyValuePair* _res = NULL;
15394 int _mark = p->mark;
15395 { // '**' bitwise_or
15396 if (p->error_indicator) {
15397 D(p->level--);
15398 return NULL;
15399 }
15400 D(fprintf(stderr, "%*c> double_starred_kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' bitwise_or"));
15401 Token * _literal;
15402 expr_ty a;
15403 if (
15404 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
15405 &&
15406 (a = bitwise_or_rule(p)) // bitwise_or
15407 )
15408 {
15409 D(fprintf(stderr, "%*c+ double_starred_kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' bitwise_or"));
15410 _res = _PyPegen_key_value_pair ( p , NULL , a );
15411 if (_res == NULL && PyErr_Occurred()) {
15412 p->error_indicator = 1;
15413 D(p->level--);
15414 return NULL;
15415 }
15416 goto done;
15417 }
15418 p->mark = _mark;
15419 D(fprintf(stderr, "%*c%s double_starred_kvpair[%d-%d]: %s failed!\n", p->level, ' ',
15420 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' bitwise_or"));
15421 }
15422 { // kvpair
15423 if (p->error_indicator) {
15424 D(p->level--);
15425 return NULL;
15426 }
15427 D(fprintf(stderr, "%*c> double_starred_kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kvpair"));
15428 KeyValuePair* kvpair_var;
15429 if (
15430 (kvpair_var = kvpair_rule(p)) // kvpair
15431 )
15432 {
15433 D(fprintf(stderr, "%*c+ double_starred_kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kvpair"));
15434 _res = kvpair_var;
15435 goto done;
15436 }
15437 p->mark = _mark;
15438 D(fprintf(stderr, "%*c%s double_starred_kvpair[%d-%d]: %s failed!\n", p->level, ' ',
15439 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kvpair"));
15440 }
15441 _res = NULL;
15442 done:
15443 D(p->level--);
15444 return _res;
15445}
15446
15447// kvpair: expression ':' expression
15448static KeyValuePair*
15449kvpair_rule(Parser *p)
15450{
15451 D(p->level++);
15452 if (p->error_indicator) {
15453 D(p->level--);
15454 return NULL;
15455 }
15456 KeyValuePair* _res = NULL;
15457 int _mark = p->mark;
15458 { // expression ':' expression
15459 if (p->error_indicator) {
15460 D(p->level--);
15461 return NULL;
15462 }
15463 D(fprintf(stderr, "%*c> kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':' expression"));
15464 Token * _literal;
15465 expr_ty a;
15466 expr_ty b;
15467 if (
15468 (a = expression_rule(p)) // expression
15469 &&
15470 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
15471 &&
15472 (b = expression_rule(p)) // expression
15473 )
15474 {
15475 D(fprintf(stderr, "%*c+ kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':' expression"));
15476 _res = _PyPegen_key_value_pair ( p , a , b );
15477 if (_res == NULL && PyErr_Occurred()) {
15478 p->error_indicator = 1;
15479 D(p->level--);
15480 return NULL;
15481 }
15482 goto done;
15483 }
15484 p->mark = _mark;
15485 D(fprintf(stderr, "%*c%s kvpair[%d-%d]: %s failed!\n", p->level, ' ',
15486 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' expression"));
15487 }
15488 _res = NULL;
15489 done:
15490 D(p->level--);
15491 return _res;
15492}
15493
15494// for_if_clauses: for_if_clause+
Pablo Galindoa5634c42020-09-16 19:42:00 +010015495static asdl_comprehension_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015496for_if_clauses_rule(Parser *p)
15497{
15498 D(p->level++);
15499 if (p->error_indicator) {
15500 D(p->level--);
15501 return NULL;
15502 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010015503 asdl_comprehension_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015504 int _mark = p->mark;
15505 { // for_if_clause+
15506 if (p->error_indicator) {
15507 D(p->level--);
15508 return NULL;
15509 }
15510 D(fprintf(stderr, "%*c> for_if_clauses[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "for_if_clause+"));
Pablo Galindoa5634c42020-09-16 19:42:00 +010015511 asdl_comprehension_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015512 if (
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070015513 (a = (asdl_comprehension_seq*)_loop1_120_rule(p)) // for_if_clause+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015514 )
15515 {
15516 D(fprintf(stderr, "%*c+ for_if_clauses[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "for_if_clause+"));
Pablo Galindoa5634c42020-09-16 19:42:00 +010015517 _res = a;
15518 if (_res == NULL && PyErr_Occurred()) {
15519 p->error_indicator = 1;
15520 D(p->level--);
15521 return NULL;
15522 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015523 goto done;
15524 }
15525 p->mark = _mark;
15526 D(fprintf(stderr, "%*c%s for_if_clauses[%d-%d]: %s failed!\n", p->level, ' ',
15527 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "for_if_clause+"));
15528 }
15529 _res = NULL;
15530 done:
15531 D(p->level--);
15532 return _res;
15533}
15534
15535// for_if_clause:
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015536// | ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*
15537// | 'for' star_targets 'in' ~ disjunction (('if' disjunction))*
15538// | invalid_for_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015539static comprehension_ty
15540for_if_clause_rule(Parser *p)
15541{
15542 D(p->level++);
15543 if (p->error_indicator) {
15544 D(p->level--);
15545 return NULL;
15546 }
15547 comprehension_ty _res = NULL;
15548 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015549 { // ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015550 if (p->error_indicator) {
15551 D(p->level--);
15552 return NULL;
15553 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015554 D(fprintf(stderr, "%*c> for_if_clause[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
15555 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015556 Token * _keyword;
15557 Token * _keyword_1;
15558 expr_ty a;
15559 Token * async_var;
15560 expr_ty b;
Pablo Galindoa5634c42020-09-16 19:42:00 +010015561 asdl_expr_seq* c;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015562 if (
15563 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
15564 &&
15565 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
15566 &&
15567 (a = star_targets_rule(p)) // star_targets
15568 &&
15569 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
15570 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015571 (_cut_var = 1)
15572 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015573 (b = disjunction_rule(p)) // disjunction
15574 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070015575 (c = (asdl_expr_seq*)_loop0_121_rule(p)) // (('if' disjunction))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015576 )
15577 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015578 D(fprintf(stderr, "%*c+ for_if_clause[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015579 _res = CHECK_VERSION ( comprehension_ty , 6 , "Async comprehensions are" , _PyAST_comprehension ( a , b , c , 1 , p -> arena ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015580 if (_res == NULL && PyErr_Occurred()) {
15581 p->error_indicator = 1;
15582 D(p->level--);
15583 return NULL;
15584 }
15585 goto done;
15586 }
15587 p->mark = _mark;
15588 D(fprintf(stderr, "%*c%s for_if_clause[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015589 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
15590 if (_cut_var) {
15591 D(p->level--);
15592 return NULL;
15593 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015594 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015595 { // 'for' star_targets 'in' ~ disjunction (('if' disjunction))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015596 if (p->error_indicator) {
15597 D(p->level--);
15598 return NULL;
15599 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015600 D(fprintf(stderr, "%*c> for_if_clause[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
15601 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015602 Token * _keyword;
15603 Token * _keyword_1;
15604 expr_ty a;
15605 expr_ty b;
Pablo Galindoa5634c42020-09-16 19:42:00 +010015606 asdl_expr_seq* c;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015607 if (
15608 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
15609 &&
15610 (a = star_targets_rule(p)) // star_targets
15611 &&
15612 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
15613 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015614 (_cut_var = 1)
15615 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015616 (b = disjunction_rule(p)) // disjunction
15617 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070015618 (c = (asdl_expr_seq*)_loop0_122_rule(p)) // (('if' disjunction))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015619 )
15620 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015621 D(fprintf(stderr, "%*c+ for_if_clause[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015622 _res = _PyAST_comprehension ( a , b , c , 0 , p -> arena );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015623 if (_res == NULL && PyErr_Occurred()) {
15624 p->error_indicator = 1;
15625 D(p->level--);
15626 return NULL;
15627 }
15628 goto done;
15629 }
15630 p->mark = _mark;
15631 D(fprintf(stderr, "%*c%s for_if_clause[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015632 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
15633 if (_cut_var) {
15634 D(p->level--);
15635 return NULL;
15636 }
15637 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020015638 if (p->call_invalid_rules) { // invalid_for_target
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015639 if (p->error_indicator) {
15640 D(p->level--);
15641 return NULL;
15642 }
15643 D(fprintf(stderr, "%*c> for_if_clause[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_for_target"));
15644 void *invalid_for_target_var;
15645 if (
15646 (invalid_for_target_var = invalid_for_target_rule(p)) // invalid_for_target
15647 )
15648 {
15649 D(fprintf(stderr, "%*c+ for_if_clause[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_for_target"));
15650 _res = invalid_for_target_var;
15651 goto done;
15652 }
15653 p->mark = _mark;
15654 D(fprintf(stderr, "%*c%s for_if_clause[%d-%d]: %s failed!\n", p->level, ' ',
15655 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_for_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015656 }
15657 _res = NULL;
15658 done:
15659 D(p->level--);
15660 return _res;
15661}
15662
15663// yield_expr: 'yield' 'from' expression | 'yield' star_expressions?
15664static expr_ty
15665yield_expr_rule(Parser *p)
15666{
15667 D(p->level++);
15668 if (p->error_indicator) {
15669 D(p->level--);
15670 return NULL;
15671 }
15672 expr_ty _res = NULL;
15673 int _mark = p->mark;
15674 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
15675 p->error_indicator = 1;
15676 D(p->level--);
15677 return NULL;
15678 }
15679 int _start_lineno = p->tokens[_mark]->lineno;
15680 UNUSED(_start_lineno); // Only used by EXTRA macro
15681 int _start_col_offset = p->tokens[_mark]->col_offset;
15682 UNUSED(_start_col_offset); // Only used by EXTRA macro
15683 { // 'yield' 'from' expression
15684 if (p->error_indicator) {
15685 D(p->level--);
15686 return NULL;
15687 }
15688 D(fprintf(stderr, "%*c> yield_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'yield' 'from' expression"));
15689 Token * _keyword;
15690 Token * _keyword_1;
15691 expr_ty a;
15692 if (
15693 (_keyword = _PyPegen_expect_token(p, 504)) // token='yield'
15694 &&
15695 (_keyword_1 = _PyPegen_expect_token(p, 514)) // token='from'
15696 &&
15697 (a = expression_rule(p)) // expression
15698 )
15699 {
15700 D(fprintf(stderr, "%*c+ yield_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'yield' 'from' expression"));
15701 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15702 if (_token == NULL) {
15703 D(p->level--);
15704 return NULL;
15705 }
15706 int _end_lineno = _token->end_lineno;
15707 UNUSED(_end_lineno); // Only used by EXTRA macro
15708 int _end_col_offset = _token->end_col_offset;
15709 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015710 _res = _PyAST_YieldFrom ( a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015711 if (_res == NULL && PyErr_Occurred()) {
15712 p->error_indicator = 1;
15713 D(p->level--);
15714 return NULL;
15715 }
15716 goto done;
15717 }
15718 p->mark = _mark;
15719 D(fprintf(stderr, "%*c%s yield_expr[%d-%d]: %s failed!\n", p->level, ' ',
15720 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'yield' 'from' expression"));
15721 }
15722 { // 'yield' star_expressions?
15723 if (p->error_indicator) {
15724 D(p->level--);
15725 return NULL;
15726 }
15727 D(fprintf(stderr, "%*c> yield_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'yield' star_expressions?"));
15728 Token * _keyword;
15729 void *a;
15730 if (
15731 (_keyword = _PyPegen_expect_token(p, 504)) // token='yield'
15732 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +020015733 (a = star_expressions_rule(p), !p->error_indicator) // star_expressions?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015734 )
15735 {
15736 D(fprintf(stderr, "%*c+ yield_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'yield' star_expressions?"));
15737 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15738 if (_token == NULL) {
15739 D(p->level--);
15740 return NULL;
15741 }
15742 int _end_lineno = _token->end_lineno;
15743 UNUSED(_end_lineno); // Only used by EXTRA macro
15744 int _end_col_offset = _token->end_col_offset;
15745 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015746 _res = _PyAST_Yield ( a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015747 if (_res == NULL && PyErr_Occurred()) {
15748 p->error_indicator = 1;
15749 D(p->level--);
15750 return NULL;
15751 }
15752 goto done;
15753 }
15754 p->mark = _mark;
15755 D(fprintf(stderr, "%*c%s yield_expr[%d-%d]: %s failed!\n", p->level, ' ',
15756 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'yield' star_expressions?"));
15757 }
15758 _res = NULL;
15759 done:
15760 D(p->level--);
15761 return _res;
15762}
15763
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020015764// arguments: args ','? &')' | invalid_arguments
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015765static expr_ty
15766arguments_rule(Parser *p)
15767{
15768 D(p->level++);
15769 if (p->error_indicator) {
15770 D(p->level--);
15771 return NULL;
15772 }
15773 expr_ty _res = NULL;
15774 if (_PyPegen_is_memoized(p, arguments_type, &_res)) {
15775 D(p->level--);
15776 return _res;
15777 }
15778 int _mark = p->mark;
15779 { // args ','? &')'
15780 if (p->error_indicator) {
15781 D(p->level--);
15782 return NULL;
15783 }
15784 D(fprintf(stderr, "%*c> arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args ','? &')'"));
15785 void *_opt_var;
15786 UNUSED(_opt_var); // Silence compiler warnings
15787 expr_ty a;
15788 if (
15789 (a = args_rule(p)) // args
15790 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +020015791 (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015792 &&
15793 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
15794 )
15795 {
15796 D(fprintf(stderr, "%*c+ arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args ','? &')'"));
15797 _res = a;
15798 if (_res == NULL && PyErr_Occurred()) {
15799 p->error_indicator = 1;
15800 D(p->level--);
15801 return NULL;
15802 }
15803 goto done;
15804 }
15805 p->mark = _mark;
15806 D(fprintf(stderr, "%*c%s arguments[%d-%d]: %s failed!\n", p->level, ' ',
15807 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ','? &')'"));
15808 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020015809 if (p->call_invalid_rules) { // invalid_arguments
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015810 if (p->error_indicator) {
15811 D(p->level--);
15812 return NULL;
15813 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020015814 D(fprintf(stderr, "%*c> arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_arguments"));
15815 void *invalid_arguments_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015816 if (
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020015817 (invalid_arguments_var = invalid_arguments_rule(p)) // invalid_arguments
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015818 )
15819 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020015820 D(fprintf(stderr, "%*c+ arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_arguments"));
15821 _res = invalid_arguments_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015822 goto done;
15823 }
15824 p->mark = _mark;
15825 D(fprintf(stderr, "%*c%s arguments[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020015826 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_arguments"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015827 }
15828 _res = NULL;
15829 done:
15830 _PyPegen_insert_memo(p, _mark, arguments_type, _res);
15831 D(p->level--);
15832 return _res;
15833}
15834
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070015835// args:
Pablo Galindo Salgado0e34a592021-11-04 23:19:27 +000015836// | ','.(starred_expression | (assignment_expression | expression !':=') !'=')+ [',' kwargs]
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070015837// | kwargs
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015838static expr_ty
15839args_rule(Parser *p)
15840{
15841 D(p->level++);
15842 if (p->error_indicator) {
15843 D(p->level--);
15844 return NULL;
15845 }
15846 expr_ty _res = NULL;
15847 int _mark = p->mark;
15848 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
15849 p->error_indicator = 1;
15850 D(p->level--);
15851 return NULL;
15852 }
15853 int _start_lineno = p->tokens[_mark]->lineno;
15854 UNUSED(_start_lineno); // Only used by EXTRA macro
15855 int _start_col_offset = p->tokens[_mark]->col_offset;
15856 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo Salgado0e34a592021-11-04 23:19:27 +000015857 { // ','.(starred_expression | (assignment_expression | expression !':=') !'=')+ [',' kwargs]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015858 if (p->error_indicator) {
15859 D(p->level--);
15860 return NULL;
15861 }
Pablo Galindo Salgado0e34a592021-11-04 23:19:27 +000015862 D(fprintf(stderr, "%*c> args[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.(starred_expression | (assignment_expression | expression !':=') !'=')+ [',' kwargs]"));
Pablo Galindoa5634c42020-09-16 19:42:00 +010015863 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015864 void *b;
15865 if (
Pablo Galindo Salgado0e34a592021-11-04 23:19:27 +000015866 (a = (asdl_expr_seq*)_gather_123_rule(p)) // ','.(starred_expression | (assignment_expression | expression !':=') !'=')+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015867 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +020015868 (b = _tmp_125_rule(p), !p->error_indicator) // [',' kwargs]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015869 )
15870 {
Pablo Galindo Salgado0e34a592021-11-04 23:19:27 +000015871 D(fprintf(stderr, "%*c+ args[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.(starred_expression | (assignment_expression | expression !':=') !'=')+ [',' kwargs]"));
Pablo Galindo315a61f2020-09-03 15:29:32 +010015872 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15873 if (_token == NULL) {
15874 D(p->level--);
15875 return NULL;
15876 }
15877 int _end_lineno = _token->end_lineno;
15878 UNUSED(_end_lineno); // Only used by EXTRA macro
15879 int _end_col_offset = _token->end_col_offset;
15880 UNUSED(_end_col_offset); // Only used by EXTRA macro
15881 _res = _PyPegen_collect_call_seqs ( p , a , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015882 if (_res == NULL && PyErr_Occurred()) {
15883 p->error_indicator = 1;
15884 D(p->level--);
15885 return NULL;
15886 }
15887 goto done;
15888 }
15889 p->mark = _mark;
15890 D(fprintf(stderr, "%*c%s args[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo Salgado0e34a592021-11-04 23:19:27 +000015891 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.(starred_expression | (assignment_expression | expression !':=') !'=')+ [',' kwargs]"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015892 }
15893 { // kwargs
15894 if (p->error_indicator) {
15895 D(p->level--);
15896 return NULL;
15897 }
15898 D(fprintf(stderr, "%*c> args[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwargs"));
15899 asdl_seq* a;
15900 if (
15901 (a = kwargs_rule(p)) // kwargs
15902 )
15903 {
15904 D(fprintf(stderr, "%*c+ args[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwargs"));
15905 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15906 if (_token == NULL) {
15907 D(p->level--);
15908 return NULL;
15909 }
15910 int _end_lineno = _token->end_lineno;
15911 UNUSED(_end_lineno); // Only used by EXTRA macro
15912 int _end_col_offset = _token->end_col_offset;
15913 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015914 _res = _PyAST_Call ( _PyPegen_dummy_name ( p ) , CHECK_NULL_ALLOWED ( asdl_expr_seq * , _PyPegen_seq_extract_starred_exprs ( p , a ) ) , CHECK_NULL_ALLOWED ( asdl_keyword_seq * , _PyPegen_seq_delete_starred_exprs ( p , a ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015915 if (_res == NULL && PyErr_Occurred()) {
15916 p->error_indicator = 1;
15917 D(p->level--);
15918 return NULL;
15919 }
15920 goto done;
15921 }
15922 p->mark = _mark;
15923 D(fprintf(stderr, "%*c%s args[%d-%d]: %s failed!\n", p->level, ' ',
15924 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwargs"));
15925 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015926 _res = NULL;
15927 done:
15928 D(p->level--);
15929 return _res;
15930}
15931
15932// kwargs:
15933// | ','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+
15934// | ','.kwarg_or_starred+
15935// | ','.kwarg_or_double_starred+
15936static asdl_seq*
15937kwargs_rule(Parser *p)
15938{
15939 D(p->level++);
15940 if (p->error_indicator) {
15941 D(p->level--);
15942 return NULL;
15943 }
15944 asdl_seq* _res = NULL;
15945 int _mark = p->mark;
15946 { // ','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+
15947 if (p->error_indicator) {
15948 D(p->level--);
15949 return NULL;
15950 }
15951 D(fprintf(stderr, "%*c> kwargs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+"));
15952 Token * _literal;
15953 asdl_seq * a;
15954 asdl_seq * b;
15955 if (
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070015956 (a = _gather_126_rule(p)) // ','.kwarg_or_starred+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015957 &&
15958 (_literal = _PyPegen_expect_token(p, 12)) // token=','
15959 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070015960 (b = _gather_128_rule(p)) // ','.kwarg_or_double_starred+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015961 )
15962 {
15963 D(fprintf(stderr, "%*c+ kwargs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+"));
15964 _res = _PyPegen_join_sequences ( p , a , b );
15965 if (_res == NULL && PyErr_Occurred()) {
15966 p->error_indicator = 1;
15967 D(p->level--);
15968 return NULL;
15969 }
15970 goto done;
15971 }
15972 p->mark = _mark;
15973 D(fprintf(stderr, "%*c%s kwargs[%d-%d]: %s failed!\n", p->level, ' ',
15974 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+"));
15975 }
15976 { // ','.kwarg_or_starred+
15977 if (p->error_indicator) {
15978 D(p->level--);
15979 return NULL;
15980 }
15981 D(fprintf(stderr, "%*c> kwargs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_starred+"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070015982 asdl_seq * _gather_130_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015983 if (
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070015984 (_gather_130_var = _gather_130_rule(p)) // ','.kwarg_or_starred+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015985 )
15986 {
15987 D(fprintf(stderr, "%*c+ kwargs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_starred+"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070015988 _res = _gather_130_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015989 goto done;
15990 }
15991 p->mark = _mark;
15992 D(fprintf(stderr, "%*c%s kwargs[%d-%d]: %s failed!\n", p->level, ' ',
15993 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.kwarg_or_starred+"));
15994 }
15995 { // ','.kwarg_or_double_starred+
15996 if (p->error_indicator) {
15997 D(p->level--);
15998 return NULL;
15999 }
16000 D(fprintf(stderr, "%*c> kwargs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_double_starred+"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070016001 asdl_seq * _gather_132_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016002 if (
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070016003 (_gather_132_var = _gather_132_rule(p)) // ','.kwarg_or_double_starred+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016004 )
16005 {
16006 D(fprintf(stderr, "%*c+ kwargs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_double_starred+"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070016007 _res = _gather_132_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016008 goto done;
16009 }
16010 p->mark = _mark;
16011 D(fprintf(stderr, "%*c%s kwargs[%d-%d]: %s failed!\n", p->level, ' ',
16012 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.kwarg_or_double_starred+"));
16013 }
16014 _res = NULL;
16015 done:
16016 D(p->level--);
16017 return _res;
16018}
16019
16020// starred_expression: '*' expression
16021static expr_ty
16022starred_expression_rule(Parser *p)
16023{
16024 D(p->level++);
16025 if (p->error_indicator) {
16026 D(p->level--);
16027 return NULL;
16028 }
16029 expr_ty _res = NULL;
16030 int _mark = p->mark;
16031 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
16032 p->error_indicator = 1;
16033 D(p->level--);
16034 return NULL;
16035 }
16036 int _start_lineno = p->tokens[_mark]->lineno;
16037 UNUSED(_start_lineno); // Only used by EXTRA macro
16038 int _start_col_offset = p->tokens[_mark]->col_offset;
16039 UNUSED(_start_col_offset); // Only used by EXTRA macro
16040 { // '*' expression
16041 if (p->error_indicator) {
16042 D(p->level--);
16043 return NULL;
16044 }
16045 D(fprintf(stderr, "%*c> starred_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' expression"));
16046 Token * _literal;
16047 expr_ty a;
16048 if (
16049 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
16050 &&
16051 (a = expression_rule(p)) // expression
16052 )
16053 {
16054 D(fprintf(stderr, "%*c+ starred_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' expression"));
16055 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16056 if (_token == NULL) {
16057 D(p->level--);
16058 return NULL;
16059 }
16060 int _end_lineno = _token->end_lineno;
16061 UNUSED(_end_lineno); // Only used by EXTRA macro
16062 int _end_col_offset = _token->end_col_offset;
16063 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016064 _res = _PyAST_Starred ( a , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016065 if (_res == NULL && PyErr_Occurred()) {
16066 p->error_indicator = 1;
16067 D(p->level--);
16068 return NULL;
16069 }
16070 goto done;
16071 }
16072 p->mark = _mark;
16073 D(fprintf(stderr, "%*c%s starred_expression[%d-%d]: %s failed!\n", p->level, ' ',
16074 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' expression"));
16075 }
16076 _res = NULL;
16077 done:
16078 D(p->level--);
16079 return _res;
16080}
16081
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070016082// kwarg_or_starred: invalid_kwarg | NAME '=' expression | starred_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016083static KeywordOrStarred*
16084kwarg_or_starred_rule(Parser *p)
16085{
16086 D(p->level++);
16087 if (p->error_indicator) {
16088 D(p->level--);
16089 return NULL;
16090 }
16091 KeywordOrStarred* _res = NULL;
16092 int _mark = p->mark;
16093 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
16094 p->error_indicator = 1;
16095 D(p->level--);
16096 return NULL;
16097 }
16098 int _start_lineno = p->tokens[_mark]->lineno;
16099 UNUSED(_start_lineno); // Only used by EXTRA macro
16100 int _start_col_offset = p->tokens[_mark]->col_offset;
16101 UNUSED(_start_col_offset); // Only used by EXTRA macro
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070016102 if (p->call_invalid_rules) { // invalid_kwarg
16103 if (p->error_indicator) {
16104 D(p->level--);
16105 return NULL;
16106 }
16107 D(fprintf(stderr, "%*c> kwarg_or_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_kwarg"));
16108 void *invalid_kwarg_var;
16109 if (
16110 (invalid_kwarg_var = invalid_kwarg_rule(p)) // invalid_kwarg
16111 )
16112 {
16113 D(fprintf(stderr, "%*c+ kwarg_or_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_kwarg"));
16114 _res = invalid_kwarg_var;
16115 goto done;
16116 }
16117 p->mark = _mark;
16118 D(fprintf(stderr, "%*c%s kwarg_or_starred[%d-%d]: %s failed!\n", p->level, ' ',
16119 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_kwarg"));
16120 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016121 { // NAME '=' expression
16122 if (p->error_indicator) {
16123 D(p->level--);
16124 return NULL;
16125 }
16126 D(fprintf(stderr, "%*c> kwarg_or_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME '=' expression"));
16127 Token * _literal;
16128 expr_ty a;
16129 expr_ty b;
16130 if (
16131 (a = _PyPegen_name_token(p)) // NAME
16132 &&
16133 (_literal = _PyPegen_expect_token(p, 22)) // token='='
16134 &&
16135 (b = expression_rule(p)) // expression
16136 )
16137 {
16138 D(fprintf(stderr, "%*c+ kwarg_or_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '=' expression"));
16139 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16140 if (_token == NULL) {
16141 D(p->level--);
16142 return NULL;
16143 }
16144 int _end_lineno = _token->end_lineno;
16145 UNUSED(_end_lineno); // Only used by EXTRA macro
16146 int _end_col_offset = _token->end_col_offset;
16147 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016148 _res = _PyPegen_keyword_or_starred ( p , CHECK ( keyword_ty , _PyAST_keyword ( a -> v . Name . id , b , EXTRA ) ) , 1 );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016149 if (_res == NULL && PyErr_Occurred()) {
16150 p->error_indicator = 1;
16151 D(p->level--);
16152 return NULL;
16153 }
16154 goto done;
16155 }
16156 p->mark = _mark;
16157 D(fprintf(stderr, "%*c%s kwarg_or_starred[%d-%d]: %s failed!\n", p->level, ' ',
16158 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' expression"));
16159 }
16160 { // starred_expression
16161 if (p->error_indicator) {
16162 D(p->level--);
16163 return NULL;
16164 }
16165 D(fprintf(stderr, "%*c> kwarg_or_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "starred_expression"));
16166 expr_ty a;
16167 if (
16168 (a = starred_expression_rule(p)) // starred_expression
16169 )
16170 {
16171 D(fprintf(stderr, "%*c+ kwarg_or_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "starred_expression"));
16172 _res = _PyPegen_keyword_or_starred ( p , a , 0 );
16173 if (_res == NULL && PyErr_Occurred()) {
16174 p->error_indicator = 1;
16175 D(p->level--);
16176 return NULL;
16177 }
16178 goto done;
16179 }
16180 p->mark = _mark;
16181 D(fprintf(stderr, "%*c%s kwarg_or_starred[%d-%d]: %s failed!\n", p->level, ' ',
16182 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "starred_expression"));
16183 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016184 _res = NULL;
16185 done:
16186 D(p->level--);
16187 return _res;
16188}
16189
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070016190// kwarg_or_double_starred: invalid_kwarg | NAME '=' expression | '**' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016191static KeywordOrStarred*
16192kwarg_or_double_starred_rule(Parser *p)
16193{
16194 D(p->level++);
16195 if (p->error_indicator) {
16196 D(p->level--);
16197 return NULL;
16198 }
16199 KeywordOrStarred* _res = NULL;
16200 int _mark = p->mark;
16201 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
16202 p->error_indicator = 1;
16203 D(p->level--);
16204 return NULL;
16205 }
16206 int _start_lineno = p->tokens[_mark]->lineno;
16207 UNUSED(_start_lineno); // Only used by EXTRA macro
16208 int _start_col_offset = p->tokens[_mark]->col_offset;
16209 UNUSED(_start_col_offset); // Only used by EXTRA macro
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070016210 if (p->call_invalid_rules) { // invalid_kwarg
16211 if (p->error_indicator) {
16212 D(p->level--);
16213 return NULL;
16214 }
16215 D(fprintf(stderr, "%*c> kwarg_or_double_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_kwarg"));
16216 void *invalid_kwarg_var;
16217 if (
16218 (invalid_kwarg_var = invalid_kwarg_rule(p)) // invalid_kwarg
16219 )
16220 {
16221 D(fprintf(stderr, "%*c+ kwarg_or_double_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_kwarg"));
16222 _res = invalid_kwarg_var;
16223 goto done;
16224 }
16225 p->mark = _mark;
16226 D(fprintf(stderr, "%*c%s kwarg_or_double_starred[%d-%d]: %s failed!\n", p->level, ' ',
16227 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_kwarg"));
16228 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016229 { // NAME '=' expression
16230 if (p->error_indicator) {
16231 D(p->level--);
16232 return NULL;
16233 }
16234 D(fprintf(stderr, "%*c> kwarg_or_double_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME '=' expression"));
16235 Token * _literal;
16236 expr_ty a;
16237 expr_ty b;
16238 if (
16239 (a = _PyPegen_name_token(p)) // NAME
16240 &&
16241 (_literal = _PyPegen_expect_token(p, 22)) // token='='
16242 &&
16243 (b = expression_rule(p)) // expression
16244 )
16245 {
16246 D(fprintf(stderr, "%*c+ kwarg_or_double_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '=' expression"));
16247 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16248 if (_token == NULL) {
16249 D(p->level--);
16250 return NULL;
16251 }
16252 int _end_lineno = _token->end_lineno;
16253 UNUSED(_end_lineno); // Only used by EXTRA macro
16254 int _end_col_offset = _token->end_col_offset;
16255 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016256 _res = _PyPegen_keyword_or_starred ( p , CHECK ( keyword_ty , _PyAST_keyword ( a -> v . Name . id , b , EXTRA ) ) , 1 );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016257 if (_res == NULL && PyErr_Occurred()) {
16258 p->error_indicator = 1;
16259 D(p->level--);
16260 return NULL;
16261 }
16262 goto done;
16263 }
16264 p->mark = _mark;
16265 D(fprintf(stderr, "%*c%s kwarg_or_double_starred[%d-%d]: %s failed!\n", p->level, ' ',
16266 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' expression"));
16267 }
16268 { // '**' expression
16269 if (p->error_indicator) {
16270 D(p->level--);
16271 return NULL;
16272 }
16273 D(fprintf(stderr, "%*c> kwarg_or_double_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' expression"));
16274 Token * _literal;
16275 expr_ty a;
16276 if (
16277 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
16278 &&
16279 (a = expression_rule(p)) // expression
16280 )
16281 {
16282 D(fprintf(stderr, "%*c+ kwarg_or_double_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' expression"));
16283 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16284 if (_token == NULL) {
16285 D(p->level--);
16286 return NULL;
16287 }
16288 int _end_lineno = _token->end_lineno;
16289 UNUSED(_end_lineno); // Only used by EXTRA macro
16290 int _end_col_offset = _token->end_col_offset;
16291 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016292 _res = _PyPegen_keyword_or_starred ( p , CHECK ( keyword_ty , _PyAST_keyword ( NULL , a , EXTRA ) ) , 1 );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016293 if (_res == NULL && PyErr_Occurred()) {
16294 p->error_indicator = 1;
16295 D(p->level--);
16296 return NULL;
16297 }
16298 goto done;
16299 }
16300 p->mark = _mark;
16301 D(fprintf(stderr, "%*c%s kwarg_or_double_starred[%d-%d]: %s failed!\n", p->level, ' ',
16302 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' expression"));
16303 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016304 _res = NULL;
16305 done:
16306 D(p->level--);
16307 return _res;
16308}
16309
16310// star_targets: star_target !',' | star_target ((',' star_target))* ','?
16311static expr_ty
16312star_targets_rule(Parser *p)
16313{
16314 D(p->level++);
16315 if (p->error_indicator) {
16316 D(p->level--);
16317 return NULL;
16318 }
16319 expr_ty _res = NULL;
16320 int _mark = p->mark;
16321 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
16322 p->error_indicator = 1;
16323 D(p->level--);
16324 return NULL;
16325 }
16326 int _start_lineno = p->tokens[_mark]->lineno;
16327 UNUSED(_start_lineno); // Only used by EXTRA macro
16328 int _start_col_offset = p->tokens[_mark]->col_offset;
16329 UNUSED(_start_col_offset); // Only used by EXTRA macro
16330 { // star_target !','
16331 if (p->error_indicator) {
16332 D(p->level--);
16333 return NULL;
16334 }
16335 D(fprintf(stderr, "%*c> star_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target !','"));
16336 expr_ty a;
16337 if (
16338 (a = star_target_rule(p)) // star_target
16339 &&
16340 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 12) // token=','
16341 )
16342 {
16343 D(fprintf(stderr, "%*c+ star_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target !','"));
16344 _res = a;
16345 if (_res == NULL && PyErr_Occurred()) {
16346 p->error_indicator = 1;
16347 D(p->level--);
16348 return NULL;
16349 }
16350 goto done;
16351 }
16352 p->mark = _mark;
16353 D(fprintf(stderr, "%*c%s star_targets[%d-%d]: %s failed!\n", p->level, ' ',
16354 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target !','"));
16355 }
16356 { // star_target ((',' star_target))* ','?
16357 if (p->error_indicator) {
16358 D(p->level--);
16359 return NULL;
16360 }
16361 D(fprintf(stderr, "%*c> star_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target ((',' star_target))* ','?"));
16362 void *_opt_var;
16363 UNUSED(_opt_var); // Silence compiler warnings
16364 expr_ty a;
16365 asdl_seq * b;
16366 if (
16367 (a = star_target_rule(p)) // star_target
16368 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070016369 (b = _loop0_134_rule(p)) // ((',' star_target))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016370 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +020016371 (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016372 )
16373 {
16374 D(fprintf(stderr, "%*c+ star_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target ((',' star_target))* ','?"));
16375 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16376 if (_token == NULL) {
16377 D(p->level--);
16378 return NULL;
16379 }
16380 int _end_lineno = _token->end_lineno;
16381 UNUSED(_end_lineno); // Only used by EXTRA macro
16382 int _end_col_offset = _token->end_col_offset;
16383 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016384 _res = _PyAST_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , a , b ) ) , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016385 if (_res == NULL && PyErr_Occurred()) {
16386 p->error_indicator = 1;
16387 D(p->level--);
16388 return NULL;
16389 }
16390 goto done;
16391 }
16392 p->mark = _mark;
16393 D(fprintf(stderr, "%*c%s star_targets[%d-%d]: %s failed!\n", p->level, ' ',
16394 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target ((',' star_target))* ','?"));
16395 }
16396 _res = NULL;
16397 done:
16398 D(p->level--);
16399 return _res;
16400}
16401
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016402// star_targets_list_seq: ','.star_target+ ','?
Pablo Galindoa5634c42020-09-16 19:42:00 +010016403static asdl_expr_seq*
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016404star_targets_list_seq_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016405{
16406 D(p->level++);
16407 if (p->error_indicator) {
16408 D(p->level--);
16409 return NULL;
16410 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010016411 asdl_expr_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016412 int _mark = p->mark;
16413 { // ','.star_target+ ','?
16414 if (p->error_indicator) {
16415 D(p->level--);
16416 return NULL;
16417 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016418 D(fprintf(stderr, "%*c> star_targets_list_seq[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.star_target+ ','?"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016419 void *_opt_var;
16420 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +010016421 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016422 if (
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070016423 (a = (asdl_expr_seq*)_gather_135_rule(p)) // ','.star_target+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016424 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +020016425 (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016426 )
16427 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016428 D(fprintf(stderr, "%*c+ star_targets_list_seq[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.star_target+ ','?"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016429 _res = a;
16430 if (_res == NULL && PyErr_Occurred()) {
16431 p->error_indicator = 1;
16432 D(p->level--);
16433 return NULL;
16434 }
16435 goto done;
16436 }
16437 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016438 D(fprintf(stderr, "%*c%s star_targets_list_seq[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016439 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.star_target+ ','?"));
16440 }
16441 _res = NULL;
16442 done:
16443 D(p->level--);
16444 return _res;
16445}
16446
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016447// star_targets_tuple_seq: star_target ((',' star_target))+ ','? | star_target ','
16448static asdl_expr_seq*
16449star_targets_tuple_seq_rule(Parser *p)
16450{
16451 D(p->level++);
16452 if (p->error_indicator) {
16453 D(p->level--);
16454 return NULL;
16455 }
16456 asdl_expr_seq* _res = NULL;
16457 int _mark = p->mark;
16458 { // star_target ((',' star_target))+ ','?
16459 if (p->error_indicator) {
16460 D(p->level--);
16461 return NULL;
16462 }
16463 D(fprintf(stderr, "%*c> star_targets_tuple_seq[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target ((',' star_target))+ ','?"));
16464 void *_opt_var;
16465 UNUSED(_opt_var); // Silence compiler warnings
16466 expr_ty a;
16467 asdl_seq * b;
16468 if (
16469 (a = star_target_rule(p)) // star_target
16470 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070016471 (b = _loop1_137_rule(p)) // ((',' star_target))+
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016472 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +020016473 (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','?
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016474 )
16475 {
16476 D(fprintf(stderr, "%*c+ star_targets_tuple_seq[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target ((',' star_target))+ ','?"));
16477 _res = ( asdl_expr_seq * ) _PyPegen_seq_insert_in_front ( p , a , b );
16478 if (_res == NULL && PyErr_Occurred()) {
16479 p->error_indicator = 1;
16480 D(p->level--);
16481 return NULL;
16482 }
16483 goto done;
16484 }
16485 p->mark = _mark;
16486 D(fprintf(stderr, "%*c%s star_targets_tuple_seq[%d-%d]: %s failed!\n", p->level, ' ',
16487 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target ((',' star_target))+ ','?"));
16488 }
16489 { // star_target ','
16490 if (p->error_indicator) {
16491 D(p->level--);
16492 return NULL;
16493 }
16494 D(fprintf(stderr, "%*c> star_targets_tuple_seq[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target ','"));
16495 Token * _literal;
16496 expr_ty a;
16497 if (
16498 (a = star_target_rule(p)) // star_target
16499 &&
16500 (_literal = _PyPegen_expect_token(p, 12)) // token=','
16501 )
16502 {
16503 D(fprintf(stderr, "%*c+ star_targets_tuple_seq[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target ','"));
16504 _res = ( asdl_expr_seq * ) _PyPegen_singleton_seq ( p , a );
16505 if (_res == NULL && PyErr_Occurred()) {
16506 p->error_indicator = 1;
16507 D(p->level--);
16508 return NULL;
16509 }
16510 goto done;
16511 }
16512 p->mark = _mark;
16513 D(fprintf(stderr, "%*c%s star_targets_tuple_seq[%d-%d]: %s failed!\n", p->level, ' ',
16514 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target ','"));
16515 }
16516 _res = NULL;
16517 done:
16518 D(p->level--);
16519 return _res;
16520}
16521
16522// star_target: '*' (!'*' star_target) | target_with_star_atom
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016523static expr_ty
16524star_target_rule(Parser *p)
16525{
16526 D(p->level++);
16527 if (p->error_indicator) {
16528 D(p->level--);
16529 return NULL;
16530 }
16531 expr_ty _res = NULL;
16532 if (_PyPegen_is_memoized(p, star_target_type, &_res)) {
16533 D(p->level--);
16534 return _res;
16535 }
16536 int _mark = p->mark;
16537 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
16538 p->error_indicator = 1;
16539 D(p->level--);
16540 return NULL;
16541 }
16542 int _start_lineno = p->tokens[_mark]->lineno;
16543 UNUSED(_start_lineno); // Only used by EXTRA macro
16544 int _start_col_offset = p->tokens[_mark]->col_offset;
16545 UNUSED(_start_col_offset); // Only used by EXTRA macro
16546 { // '*' (!'*' star_target)
16547 if (p->error_indicator) {
16548 D(p->level--);
16549 return NULL;
16550 }
16551 D(fprintf(stderr, "%*c> star_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (!'*' star_target)"));
16552 Token * _literal;
16553 void *a;
16554 if (
16555 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
16556 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070016557 (a = _tmp_138_rule(p)) // !'*' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016558 )
16559 {
16560 D(fprintf(stderr, "%*c+ star_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' (!'*' star_target)"));
16561 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16562 if (_token == NULL) {
16563 D(p->level--);
16564 return NULL;
16565 }
16566 int _end_lineno = _token->end_lineno;
16567 UNUSED(_end_lineno); // Only used by EXTRA macro
16568 int _end_col_offset = _token->end_col_offset;
16569 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016570 _res = _PyAST_Starred ( CHECK ( expr_ty , _PyPegen_set_expr_context ( p , a , Store ) ) , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016571 if (_res == NULL && PyErr_Occurred()) {
16572 p->error_indicator = 1;
16573 D(p->level--);
16574 return NULL;
16575 }
16576 goto done;
16577 }
16578 p->mark = _mark;
16579 D(fprintf(stderr, "%*c%s star_target[%d-%d]: %s failed!\n", p->level, ' ',
16580 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' (!'*' star_target)"));
16581 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016582 { // target_with_star_atom
16583 if (p->error_indicator) {
16584 D(p->level--);
16585 return NULL;
16586 }
16587 D(fprintf(stderr, "%*c> star_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "target_with_star_atom"));
16588 expr_ty target_with_star_atom_var;
16589 if (
16590 (target_with_star_atom_var = target_with_star_atom_rule(p)) // target_with_star_atom
16591 )
16592 {
16593 D(fprintf(stderr, "%*c+ star_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "target_with_star_atom"));
16594 _res = target_with_star_atom_var;
16595 goto done;
16596 }
16597 p->mark = _mark;
16598 D(fprintf(stderr, "%*c%s star_target[%d-%d]: %s failed!\n", p->level, ' ',
16599 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "target_with_star_atom"));
16600 }
16601 _res = NULL;
16602 done:
16603 _PyPegen_insert_memo(p, _mark, star_target_type, _res);
16604 D(p->level--);
16605 return _res;
16606}
16607
16608// target_with_star_atom:
16609// | t_primary '.' NAME !t_lookahead
16610// | t_primary '[' slices ']' !t_lookahead
16611// | star_atom
16612static expr_ty
16613target_with_star_atom_rule(Parser *p)
16614{
16615 D(p->level++);
16616 if (p->error_indicator) {
16617 D(p->level--);
16618 return NULL;
16619 }
16620 expr_ty _res = NULL;
16621 if (_PyPegen_is_memoized(p, target_with_star_atom_type, &_res)) {
16622 D(p->level--);
16623 return _res;
16624 }
16625 int _mark = p->mark;
16626 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
16627 p->error_indicator = 1;
16628 D(p->level--);
16629 return NULL;
16630 }
16631 int _start_lineno = p->tokens[_mark]->lineno;
16632 UNUSED(_start_lineno); // Only used by EXTRA macro
16633 int _start_col_offset = p->tokens[_mark]->col_offset;
16634 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016635 { // t_primary '.' NAME !t_lookahead
16636 if (p->error_indicator) {
16637 D(p->level--);
16638 return NULL;
16639 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016640 D(fprintf(stderr, "%*c> target_with_star_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016641 Token * _literal;
16642 expr_ty a;
16643 expr_ty b;
16644 if (
16645 (a = t_primary_rule(p)) // t_primary
16646 &&
16647 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
16648 &&
16649 (b = _PyPegen_name_token(p)) // NAME
16650 &&
16651 _PyPegen_lookahead(0, t_lookahead_rule, p)
16652 )
16653 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016654 D(fprintf(stderr, "%*c+ target_with_star_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016655 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16656 if (_token == NULL) {
16657 D(p->level--);
16658 return NULL;
16659 }
16660 int _end_lineno = _token->end_lineno;
16661 UNUSED(_end_lineno); // Only used by EXTRA macro
16662 int _end_col_offset = _token->end_col_offset;
16663 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016664 _res = _PyAST_Attribute ( a , b -> v . Name . id , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016665 if (_res == NULL && PyErr_Occurred()) {
16666 p->error_indicator = 1;
16667 D(p->level--);
16668 return NULL;
16669 }
16670 goto done;
16671 }
16672 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016673 D(fprintf(stderr, "%*c%s target_with_star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016674 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
16675 }
16676 { // t_primary '[' slices ']' !t_lookahead
16677 if (p->error_indicator) {
16678 D(p->level--);
16679 return NULL;
16680 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016681 D(fprintf(stderr, "%*c> target_with_star_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016682 Token * _literal;
16683 Token * _literal_1;
16684 expr_ty a;
16685 expr_ty b;
16686 if (
16687 (a = t_primary_rule(p)) // t_primary
16688 &&
16689 (_literal = _PyPegen_expect_token(p, 9)) // token='['
16690 &&
16691 (b = slices_rule(p)) // slices
16692 &&
16693 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
16694 &&
16695 _PyPegen_lookahead(0, t_lookahead_rule, p)
16696 )
16697 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016698 D(fprintf(stderr, "%*c+ target_with_star_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016699 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16700 if (_token == NULL) {
16701 D(p->level--);
16702 return NULL;
16703 }
16704 int _end_lineno = _token->end_lineno;
16705 UNUSED(_end_lineno); // Only used by EXTRA macro
16706 int _end_col_offset = _token->end_col_offset;
16707 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016708 _res = _PyAST_Subscript ( a , b , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016709 if (_res == NULL && PyErr_Occurred()) {
16710 p->error_indicator = 1;
16711 D(p->level--);
16712 return NULL;
16713 }
16714 goto done;
16715 }
16716 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016717 D(fprintf(stderr, "%*c%s target_with_star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016718 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
16719 }
16720 { // star_atom
16721 if (p->error_indicator) {
16722 D(p->level--);
16723 return NULL;
16724 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016725 D(fprintf(stderr, "%*c> target_with_star_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_atom"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016726 expr_ty star_atom_var;
16727 if (
16728 (star_atom_var = star_atom_rule(p)) // star_atom
16729 )
16730 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016731 D(fprintf(stderr, "%*c+ target_with_star_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_atom"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016732 _res = star_atom_var;
16733 goto done;
16734 }
16735 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016736 D(fprintf(stderr, "%*c%s target_with_star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016737 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_atom"));
16738 }
16739 _res = NULL;
16740 done:
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016741 _PyPegen_insert_memo(p, _mark, target_with_star_atom_type, _res);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016742 D(p->level--);
16743 return _res;
16744}
16745
16746// star_atom:
16747// | NAME
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016748// | '(' target_with_star_atom ')'
16749// | '(' star_targets_tuple_seq? ')'
16750// | '[' star_targets_list_seq? ']'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016751static expr_ty
16752star_atom_rule(Parser *p)
16753{
16754 D(p->level++);
16755 if (p->error_indicator) {
16756 D(p->level--);
16757 return NULL;
16758 }
16759 expr_ty _res = NULL;
16760 int _mark = p->mark;
16761 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
16762 p->error_indicator = 1;
16763 D(p->level--);
16764 return NULL;
16765 }
16766 int _start_lineno = p->tokens[_mark]->lineno;
16767 UNUSED(_start_lineno); // Only used by EXTRA macro
16768 int _start_col_offset = p->tokens[_mark]->col_offset;
16769 UNUSED(_start_col_offset); // Only used by EXTRA macro
16770 { // NAME
16771 if (p->error_indicator) {
16772 D(p->level--);
16773 return NULL;
16774 }
16775 D(fprintf(stderr, "%*c> star_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
16776 expr_ty a;
16777 if (
16778 (a = _PyPegen_name_token(p)) // NAME
16779 )
16780 {
16781 D(fprintf(stderr, "%*c+ star_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
16782 _res = _PyPegen_set_expr_context ( p , a , Store );
16783 if (_res == NULL && PyErr_Occurred()) {
16784 p->error_indicator = 1;
16785 D(p->level--);
16786 return NULL;
16787 }
16788 goto done;
16789 }
16790 p->mark = _mark;
16791 D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
16792 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
16793 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016794 { // '(' target_with_star_atom ')'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016795 if (p->error_indicator) {
16796 D(p->level--);
16797 return NULL;
16798 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016799 D(fprintf(stderr, "%*c> star_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' target_with_star_atom ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016800 Token * _literal;
16801 Token * _literal_1;
16802 expr_ty a;
16803 if (
16804 (_literal = _PyPegen_expect_token(p, 7)) // token='('
16805 &&
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016806 (a = target_with_star_atom_rule(p)) // target_with_star_atom
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016807 &&
16808 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
16809 )
16810 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016811 D(fprintf(stderr, "%*c+ star_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' target_with_star_atom ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016812 _res = _PyPegen_set_expr_context ( p , a , Store );
16813 if (_res == NULL && PyErr_Occurred()) {
16814 p->error_indicator = 1;
16815 D(p->level--);
16816 return NULL;
16817 }
16818 goto done;
16819 }
16820 p->mark = _mark;
16821 D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016822 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' target_with_star_atom ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016823 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016824 { // '(' star_targets_tuple_seq? ')'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016825 if (p->error_indicator) {
16826 D(p->level--);
16827 return NULL;
16828 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016829 D(fprintf(stderr, "%*c> star_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' star_targets_tuple_seq? ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016830 Token * _literal;
16831 Token * _literal_1;
16832 void *a;
16833 if (
16834 (_literal = _PyPegen_expect_token(p, 7)) // token='('
16835 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +020016836 (a = star_targets_tuple_seq_rule(p), !p->error_indicator) // star_targets_tuple_seq?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016837 &&
16838 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
16839 )
16840 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016841 D(fprintf(stderr, "%*c+ star_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' star_targets_tuple_seq? ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016842 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16843 if (_token == NULL) {
16844 D(p->level--);
16845 return NULL;
16846 }
16847 int _end_lineno = _token->end_lineno;
16848 UNUSED(_end_lineno); // Only used by EXTRA macro
16849 int _end_col_offset = _token->end_col_offset;
16850 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016851 _res = _PyAST_Tuple ( a , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016852 if (_res == NULL && PyErr_Occurred()) {
16853 p->error_indicator = 1;
16854 D(p->level--);
16855 return NULL;
16856 }
16857 goto done;
16858 }
16859 p->mark = _mark;
16860 D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016861 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' star_targets_tuple_seq? ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016862 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016863 { // '[' star_targets_list_seq? ']'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016864 if (p->error_indicator) {
16865 D(p->level--);
16866 return NULL;
16867 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016868 D(fprintf(stderr, "%*c> star_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' star_targets_list_seq? ']'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016869 Token * _literal;
16870 Token * _literal_1;
16871 void *a;
16872 if (
16873 (_literal = _PyPegen_expect_token(p, 9)) // token='['
16874 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +020016875 (a = star_targets_list_seq_rule(p), !p->error_indicator) // star_targets_list_seq?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016876 &&
16877 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
16878 )
16879 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016880 D(fprintf(stderr, "%*c+ star_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'[' star_targets_list_seq? ']'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016881 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16882 if (_token == NULL) {
16883 D(p->level--);
16884 return NULL;
16885 }
16886 int _end_lineno = _token->end_lineno;
16887 UNUSED(_end_lineno); // Only used by EXTRA macro
16888 int _end_col_offset = _token->end_col_offset;
16889 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016890 _res = _PyAST_List ( a , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016891 if (_res == NULL && PyErr_Occurred()) {
16892 p->error_indicator = 1;
16893 D(p->level--);
16894 return NULL;
16895 }
16896 goto done;
16897 }
16898 p->mark = _mark;
16899 D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016900 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' star_targets_list_seq? ']'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016901 }
16902 _res = NULL;
16903 done:
16904 D(p->level--);
16905 return _res;
16906}
16907
16908// single_target: single_subscript_attribute_target | NAME | '(' single_target ')'
16909static expr_ty
16910single_target_rule(Parser *p)
16911{
16912 D(p->level++);
16913 if (p->error_indicator) {
16914 D(p->level--);
16915 return NULL;
16916 }
16917 expr_ty _res = NULL;
16918 int _mark = p->mark;
16919 { // single_subscript_attribute_target
16920 if (p->error_indicator) {
16921 D(p->level--);
16922 return NULL;
16923 }
16924 D(fprintf(stderr, "%*c> single_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "single_subscript_attribute_target"));
16925 expr_ty single_subscript_attribute_target_var;
16926 if (
16927 (single_subscript_attribute_target_var = single_subscript_attribute_target_rule(p)) // single_subscript_attribute_target
16928 )
16929 {
16930 D(fprintf(stderr, "%*c+ single_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "single_subscript_attribute_target"));
16931 _res = single_subscript_attribute_target_var;
16932 goto done;
16933 }
16934 p->mark = _mark;
16935 D(fprintf(stderr, "%*c%s single_target[%d-%d]: %s failed!\n", p->level, ' ',
16936 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "single_subscript_attribute_target"));
16937 }
16938 { // NAME
16939 if (p->error_indicator) {
16940 D(p->level--);
16941 return NULL;
16942 }
16943 D(fprintf(stderr, "%*c> single_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
16944 expr_ty a;
16945 if (
16946 (a = _PyPegen_name_token(p)) // NAME
16947 )
16948 {
16949 D(fprintf(stderr, "%*c+ single_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
16950 _res = _PyPegen_set_expr_context ( p , a , Store );
16951 if (_res == NULL && PyErr_Occurred()) {
16952 p->error_indicator = 1;
16953 D(p->level--);
16954 return NULL;
16955 }
16956 goto done;
16957 }
16958 p->mark = _mark;
16959 D(fprintf(stderr, "%*c%s single_target[%d-%d]: %s failed!\n", p->level, ' ',
16960 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
16961 }
16962 { // '(' single_target ')'
16963 if (p->error_indicator) {
16964 D(p->level--);
16965 return NULL;
16966 }
16967 D(fprintf(stderr, "%*c> single_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'"));
16968 Token * _literal;
16969 Token * _literal_1;
16970 expr_ty a;
16971 if (
16972 (_literal = _PyPegen_expect_token(p, 7)) // token='('
16973 &&
16974 (a = single_target_rule(p)) // single_target
16975 &&
16976 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
16977 )
16978 {
16979 D(fprintf(stderr, "%*c+ single_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'"));
16980 _res = a;
16981 if (_res == NULL && PyErr_Occurred()) {
16982 p->error_indicator = 1;
16983 D(p->level--);
16984 return NULL;
16985 }
16986 goto done;
16987 }
16988 p->mark = _mark;
16989 D(fprintf(stderr, "%*c%s single_target[%d-%d]: %s failed!\n", p->level, ' ',
16990 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' single_target ')'"));
16991 }
16992 _res = NULL;
16993 done:
16994 D(p->level--);
16995 return _res;
16996}
16997
16998// single_subscript_attribute_target:
16999// | t_primary '.' NAME !t_lookahead
17000// | t_primary '[' slices ']' !t_lookahead
17001static expr_ty
17002single_subscript_attribute_target_rule(Parser *p)
17003{
17004 D(p->level++);
17005 if (p->error_indicator) {
17006 D(p->level--);
17007 return NULL;
17008 }
17009 expr_ty _res = NULL;
17010 int _mark = p->mark;
17011 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
17012 p->error_indicator = 1;
17013 D(p->level--);
17014 return NULL;
17015 }
17016 int _start_lineno = p->tokens[_mark]->lineno;
17017 UNUSED(_start_lineno); // Only used by EXTRA macro
17018 int _start_col_offset = p->tokens[_mark]->col_offset;
17019 UNUSED(_start_col_offset); // Only used by EXTRA macro
17020 { // t_primary '.' NAME !t_lookahead
17021 if (p->error_indicator) {
17022 D(p->level--);
17023 return NULL;
17024 }
17025 D(fprintf(stderr, "%*c> single_subscript_attribute_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
17026 Token * _literal;
17027 expr_ty a;
17028 expr_ty b;
17029 if (
17030 (a = t_primary_rule(p)) // t_primary
17031 &&
17032 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
17033 &&
17034 (b = _PyPegen_name_token(p)) // NAME
17035 &&
17036 _PyPegen_lookahead(0, t_lookahead_rule, p)
17037 )
17038 {
17039 D(fprintf(stderr, "%*c+ single_subscript_attribute_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
17040 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17041 if (_token == NULL) {
17042 D(p->level--);
17043 return NULL;
17044 }
17045 int _end_lineno = _token->end_lineno;
17046 UNUSED(_end_lineno); // Only used by EXTRA macro
17047 int _end_col_offset = _token->end_col_offset;
17048 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017049 _res = _PyAST_Attribute ( a , b -> v . Name . id , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017050 if (_res == NULL && PyErr_Occurred()) {
17051 p->error_indicator = 1;
17052 D(p->level--);
17053 return NULL;
17054 }
17055 goto done;
17056 }
17057 p->mark = _mark;
17058 D(fprintf(stderr, "%*c%s single_subscript_attribute_target[%d-%d]: %s failed!\n", p->level, ' ',
17059 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
17060 }
17061 { // t_primary '[' slices ']' !t_lookahead
17062 if (p->error_indicator) {
17063 D(p->level--);
17064 return NULL;
17065 }
17066 D(fprintf(stderr, "%*c> single_subscript_attribute_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
17067 Token * _literal;
17068 Token * _literal_1;
17069 expr_ty a;
17070 expr_ty b;
17071 if (
17072 (a = t_primary_rule(p)) // t_primary
17073 &&
17074 (_literal = _PyPegen_expect_token(p, 9)) // token='['
17075 &&
17076 (b = slices_rule(p)) // slices
17077 &&
17078 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
17079 &&
17080 _PyPegen_lookahead(0, t_lookahead_rule, p)
17081 )
17082 {
17083 D(fprintf(stderr, "%*c+ single_subscript_attribute_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
17084 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17085 if (_token == NULL) {
17086 D(p->level--);
17087 return NULL;
17088 }
17089 int _end_lineno = _token->end_lineno;
17090 UNUSED(_end_lineno); // Only used by EXTRA macro
17091 int _end_col_offset = _token->end_col_offset;
17092 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017093 _res = _PyAST_Subscript ( a , b , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017094 if (_res == NULL && PyErr_Occurred()) {
17095 p->error_indicator = 1;
17096 D(p->level--);
17097 return NULL;
17098 }
17099 goto done;
17100 }
17101 p->mark = _mark;
17102 D(fprintf(stderr, "%*c%s single_subscript_attribute_target[%d-%d]: %s failed!\n", p->level, ' ',
17103 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
17104 }
17105 _res = NULL;
17106 done:
17107 D(p->level--);
17108 return _res;
17109}
17110
17111// del_targets: ','.del_target+ ','?
Pablo Galindoa5634c42020-09-16 19:42:00 +010017112static asdl_expr_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017113del_targets_rule(Parser *p)
17114{
17115 D(p->level++);
17116 if (p->error_indicator) {
17117 D(p->level--);
17118 return NULL;
17119 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010017120 asdl_expr_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017121 int _mark = p->mark;
17122 { // ','.del_target+ ','?
17123 if (p->error_indicator) {
17124 D(p->level--);
17125 return NULL;
17126 }
17127 D(fprintf(stderr, "%*c> del_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.del_target+ ','?"));
17128 void *_opt_var;
17129 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +010017130 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017131 if (
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070017132 (a = (asdl_expr_seq*)_gather_139_rule(p)) // ','.del_target+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017133 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +020017134 (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017135 )
17136 {
17137 D(fprintf(stderr, "%*c+ del_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.del_target+ ','?"));
17138 _res = a;
17139 if (_res == NULL && PyErr_Occurred()) {
17140 p->error_indicator = 1;
17141 D(p->level--);
17142 return NULL;
17143 }
17144 goto done;
17145 }
17146 p->mark = _mark;
17147 D(fprintf(stderr, "%*c%s del_targets[%d-%d]: %s failed!\n", p->level, ' ',
17148 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.del_target+ ','?"));
17149 }
17150 _res = NULL;
17151 done:
17152 D(p->level--);
17153 return _res;
17154}
17155
17156// del_target:
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017157// | t_primary '.' NAME !t_lookahead
17158// | t_primary '[' slices ']' !t_lookahead
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017159// | del_t_atom
17160static expr_ty
17161del_target_rule(Parser *p)
17162{
17163 D(p->level++);
17164 if (p->error_indicator) {
17165 D(p->level--);
17166 return NULL;
17167 }
17168 expr_ty _res = NULL;
17169 if (_PyPegen_is_memoized(p, del_target_type, &_res)) {
17170 D(p->level--);
17171 return _res;
17172 }
17173 int _mark = p->mark;
17174 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
17175 p->error_indicator = 1;
17176 D(p->level--);
17177 return NULL;
17178 }
17179 int _start_lineno = p->tokens[_mark]->lineno;
17180 UNUSED(_start_lineno); // Only used by EXTRA macro
17181 int _start_col_offset = p->tokens[_mark]->col_offset;
17182 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017183 { // t_primary '.' NAME !t_lookahead
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017184 if (p->error_indicator) {
17185 D(p->level--);
17186 return NULL;
17187 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017188 D(fprintf(stderr, "%*c> del_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017189 Token * _literal;
17190 expr_ty a;
17191 expr_ty b;
17192 if (
17193 (a = t_primary_rule(p)) // t_primary
17194 &&
17195 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
17196 &&
17197 (b = _PyPegen_name_token(p)) // NAME
17198 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017199 _PyPegen_lookahead(0, t_lookahead_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017200 )
17201 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017202 D(fprintf(stderr, "%*c+ del_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017203 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17204 if (_token == NULL) {
17205 D(p->level--);
17206 return NULL;
17207 }
17208 int _end_lineno = _token->end_lineno;
17209 UNUSED(_end_lineno); // Only used by EXTRA macro
17210 int _end_col_offset = _token->end_col_offset;
17211 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017212 _res = _PyAST_Attribute ( a , b -> v . Name . id , Del , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017213 if (_res == NULL && PyErr_Occurred()) {
17214 p->error_indicator = 1;
17215 D(p->level--);
17216 return NULL;
17217 }
17218 goto done;
17219 }
17220 p->mark = _mark;
17221 D(fprintf(stderr, "%*c%s del_target[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017222 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017223 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017224 { // t_primary '[' slices ']' !t_lookahead
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017225 if (p->error_indicator) {
17226 D(p->level--);
17227 return NULL;
17228 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017229 D(fprintf(stderr, "%*c> del_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017230 Token * _literal;
17231 Token * _literal_1;
17232 expr_ty a;
17233 expr_ty b;
17234 if (
17235 (a = t_primary_rule(p)) // t_primary
17236 &&
17237 (_literal = _PyPegen_expect_token(p, 9)) // token='['
17238 &&
17239 (b = slices_rule(p)) // slices
17240 &&
17241 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
17242 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017243 _PyPegen_lookahead(0, t_lookahead_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017244 )
17245 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017246 D(fprintf(stderr, "%*c+ del_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017247 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17248 if (_token == NULL) {
17249 D(p->level--);
17250 return NULL;
17251 }
17252 int _end_lineno = _token->end_lineno;
17253 UNUSED(_end_lineno); // Only used by EXTRA macro
17254 int _end_col_offset = _token->end_col_offset;
17255 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017256 _res = _PyAST_Subscript ( a , b , Del , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017257 if (_res == NULL && PyErr_Occurred()) {
17258 p->error_indicator = 1;
17259 D(p->level--);
17260 return NULL;
17261 }
17262 goto done;
17263 }
17264 p->mark = _mark;
17265 D(fprintf(stderr, "%*c%s del_target[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017266 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017267 }
17268 { // del_t_atom
17269 if (p->error_indicator) {
17270 D(p->level--);
17271 return NULL;
17272 }
17273 D(fprintf(stderr, "%*c> del_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "del_t_atom"));
17274 expr_ty del_t_atom_var;
17275 if (
17276 (del_t_atom_var = del_t_atom_rule(p)) // del_t_atom
17277 )
17278 {
17279 D(fprintf(stderr, "%*c+ del_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "del_t_atom"));
17280 _res = del_t_atom_var;
17281 goto done;
17282 }
17283 p->mark = _mark;
17284 D(fprintf(stderr, "%*c%s del_target[%d-%d]: %s failed!\n", p->level, ' ',
17285 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "del_t_atom"));
17286 }
17287 _res = NULL;
17288 done:
17289 _PyPegen_insert_memo(p, _mark, del_target_type, _res);
17290 D(p->level--);
17291 return _res;
17292}
17293
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017294// del_t_atom: NAME | '(' del_target ')' | '(' del_targets? ')' | '[' del_targets? ']'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017295static expr_ty
17296del_t_atom_rule(Parser *p)
17297{
17298 D(p->level++);
17299 if (p->error_indicator) {
17300 D(p->level--);
17301 return NULL;
17302 }
17303 expr_ty _res = NULL;
17304 int _mark = p->mark;
17305 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
17306 p->error_indicator = 1;
17307 D(p->level--);
17308 return NULL;
17309 }
17310 int _start_lineno = p->tokens[_mark]->lineno;
17311 UNUSED(_start_lineno); // Only used by EXTRA macro
17312 int _start_col_offset = p->tokens[_mark]->col_offset;
17313 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017314 { // NAME
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017315 if (p->error_indicator) {
17316 D(p->level--);
17317 return NULL;
17318 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017319 D(fprintf(stderr, "%*c> del_t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017320 expr_ty a;
17321 if (
17322 (a = _PyPegen_name_token(p)) // NAME
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017323 )
17324 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017325 D(fprintf(stderr, "%*c+ del_t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017326 _res = _PyPegen_set_expr_context ( p , a , Del );
17327 if (_res == NULL && PyErr_Occurred()) {
17328 p->error_indicator = 1;
17329 D(p->level--);
17330 return NULL;
17331 }
17332 goto done;
17333 }
17334 p->mark = _mark;
17335 D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017336 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017337 }
17338 { // '(' del_target ')'
17339 if (p->error_indicator) {
17340 D(p->level--);
17341 return NULL;
17342 }
17343 D(fprintf(stderr, "%*c> del_t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' del_target ')'"));
17344 Token * _literal;
17345 Token * _literal_1;
17346 expr_ty a;
17347 if (
17348 (_literal = _PyPegen_expect_token(p, 7)) // token='('
17349 &&
17350 (a = del_target_rule(p)) // del_target
17351 &&
17352 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
17353 )
17354 {
17355 D(fprintf(stderr, "%*c+ del_t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' del_target ')'"));
17356 _res = _PyPegen_set_expr_context ( p , a , Del );
17357 if (_res == NULL && PyErr_Occurred()) {
17358 p->error_indicator = 1;
17359 D(p->level--);
17360 return NULL;
17361 }
17362 goto done;
17363 }
17364 p->mark = _mark;
17365 D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
17366 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' del_target ')'"));
17367 }
17368 { // '(' del_targets? ')'
17369 if (p->error_indicator) {
17370 D(p->level--);
17371 return NULL;
17372 }
17373 D(fprintf(stderr, "%*c> del_t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' del_targets? ')'"));
17374 Token * _literal;
17375 Token * _literal_1;
17376 void *a;
17377 if (
17378 (_literal = _PyPegen_expect_token(p, 7)) // token='('
17379 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +020017380 (a = del_targets_rule(p), !p->error_indicator) // del_targets?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017381 &&
17382 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
17383 )
17384 {
17385 D(fprintf(stderr, "%*c+ del_t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' del_targets? ')'"));
17386 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17387 if (_token == NULL) {
17388 D(p->level--);
17389 return NULL;
17390 }
17391 int _end_lineno = _token->end_lineno;
17392 UNUSED(_end_lineno); // Only used by EXTRA macro
17393 int _end_col_offset = _token->end_col_offset;
17394 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017395 _res = _PyAST_Tuple ( a , Del , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017396 if (_res == NULL && PyErr_Occurred()) {
17397 p->error_indicator = 1;
17398 D(p->level--);
17399 return NULL;
17400 }
17401 goto done;
17402 }
17403 p->mark = _mark;
17404 D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
17405 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' del_targets? ')'"));
17406 }
17407 { // '[' del_targets? ']'
17408 if (p->error_indicator) {
17409 D(p->level--);
17410 return NULL;
17411 }
17412 D(fprintf(stderr, "%*c> del_t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' del_targets? ']'"));
17413 Token * _literal;
17414 Token * _literal_1;
17415 void *a;
17416 if (
17417 (_literal = _PyPegen_expect_token(p, 9)) // token='['
17418 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +020017419 (a = del_targets_rule(p), !p->error_indicator) // del_targets?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017420 &&
17421 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
17422 )
17423 {
17424 D(fprintf(stderr, "%*c+ del_t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'[' del_targets? ']'"));
17425 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17426 if (_token == NULL) {
17427 D(p->level--);
17428 return NULL;
17429 }
17430 int _end_lineno = _token->end_lineno;
17431 UNUSED(_end_lineno); // Only used by EXTRA macro
17432 int _end_col_offset = _token->end_col_offset;
17433 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017434 _res = _PyAST_List ( a , Del , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017435 if (_res == NULL && PyErr_Occurred()) {
17436 p->error_indicator = 1;
17437 D(p->level--);
17438 return NULL;
17439 }
17440 goto done;
17441 }
17442 p->mark = _mark;
17443 D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
17444 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' del_targets? ']'"));
17445 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017446 _res = NULL;
17447 done:
17448 D(p->level--);
17449 return _res;
17450}
17451
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017452// Left-recursive
17453// t_primary:
17454// | t_primary '.' NAME &t_lookahead
17455// | t_primary '[' slices ']' &t_lookahead
17456// | t_primary genexp &t_lookahead
17457// | t_primary '(' arguments? ')' &t_lookahead
17458// | atom &t_lookahead
17459static expr_ty t_primary_raw(Parser *);
17460static expr_ty
17461t_primary_rule(Parser *p)
17462{
17463 D(p->level++);
17464 expr_ty _res = NULL;
17465 if (_PyPegen_is_memoized(p, t_primary_type, &_res)) {
17466 D(p->level--);
17467 return _res;
17468 }
17469 int _mark = p->mark;
17470 int _resmark = p->mark;
17471 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080017472 int tmpvar_9 = _PyPegen_update_memo(p, _mark, t_primary_type, _res);
17473 if (tmpvar_9) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017474 D(p->level--);
17475 return _res;
17476 }
17477 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070017478 p->in_raw_rule++;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017479 void *_raw = t_primary_raw(p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070017480 p->in_raw_rule--;
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020017481 if (p->error_indicator)
17482 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017483 if (_raw == NULL || p->mark <= _resmark)
17484 break;
17485 _resmark = p->mark;
17486 _res = _raw;
17487 }
17488 p->mark = _resmark;
17489 D(p->level--);
17490 return _res;
17491}
17492static expr_ty
17493t_primary_raw(Parser *p)
17494{
17495 D(p->level++);
17496 if (p->error_indicator) {
17497 D(p->level--);
17498 return NULL;
17499 }
17500 expr_ty _res = NULL;
17501 int _mark = p->mark;
17502 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
17503 p->error_indicator = 1;
17504 D(p->level--);
17505 return NULL;
17506 }
17507 int _start_lineno = p->tokens[_mark]->lineno;
17508 UNUSED(_start_lineno); // Only used by EXTRA macro
17509 int _start_col_offset = p->tokens[_mark]->col_offset;
17510 UNUSED(_start_col_offset); // Only used by EXTRA macro
17511 { // t_primary '.' NAME &t_lookahead
17512 if (p->error_indicator) {
17513 D(p->level--);
17514 return NULL;
17515 }
17516 D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME &t_lookahead"));
17517 Token * _literal;
17518 expr_ty a;
17519 expr_ty b;
17520 if (
17521 (a = t_primary_rule(p)) // t_primary
17522 &&
17523 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
17524 &&
17525 (b = _PyPegen_name_token(p)) // NAME
17526 &&
17527 _PyPegen_lookahead(1, t_lookahead_rule, p)
17528 )
17529 {
17530 D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME &t_lookahead"));
17531 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17532 if (_token == NULL) {
17533 D(p->level--);
17534 return NULL;
17535 }
17536 int _end_lineno = _token->end_lineno;
17537 UNUSED(_end_lineno); // Only used by EXTRA macro
17538 int _end_col_offset = _token->end_col_offset;
17539 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017540 _res = _PyAST_Attribute ( a , b -> v . Name . id , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017541 if (_res == NULL && PyErr_Occurred()) {
17542 p->error_indicator = 1;
17543 D(p->level--);
17544 return NULL;
17545 }
17546 goto done;
17547 }
17548 p->mark = _mark;
17549 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
17550 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME &t_lookahead"));
17551 }
17552 { // t_primary '[' slices ']' &t_lookahead
17553 if (p->error_indicator) {
17554 D(p->level--);
17555 return NULL;
17556 }
17557 D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' &t_lookahead"));
17558 Token * _literal;
17559 Token * _literal_1;
17560 expr_ty a;
17561 expr_ty b;
17562 if (
17563 (a = t_primary_rule(p)) // t_primary
17564 &&
17565 (_literal = _PyPegen_expect_token(p, 9)) // token='['
17566 &&
17567 (b = slices_rule(p)) // slices
17568 &&
17569 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
17570 &&
17571 _PyPegen_lookahead(1, t_lookahead_rule, p)
17572 )
17573 {
17574 D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' &t_lookahead"));
17575 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17576 if (_token == NULL) {
17577 D(p->level--);
17578 return NULL;
17579 }
17580 int _end_lineno = _token->end_lineno;
17581 UNUSED(_end_lineno); // Only used by EXTRA macro
17582 int _end_col_offset = _token->end_col_offset;
17583 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017584 _res = _PyAST_Subscript ( a , b , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017585 if (_res == NULL && PyErr_Occurred()) {
17586 p->error_indicator = 1;
17587 D(p->level--);
17588 return NULL;
17589 }
17590 goto done;
17591 }
17592 p->mark = _mark;
17593 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
17594 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' &t_lookahead"));
17595 }
17596 { // t_primary genexp &t_lookahead
17597 if (p->error_indicator) {
17598 D(p->level--);
17599 return NULL;
17600 }
17601 D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary genexp &t_lookahead"));
17602 expr_ty a;
17603 expr_ty b;
17604 if (
17605 (a = t_primary_rule(p)) // t_primary
17606 &&
17607 (b = genexp_rule(p)) // genexp
17608 &&
17609 _PyPegen_lookahead(1, t_lookahead_rule, p)
17610 )
17611 {
17612 D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary genexp &t_lookahead"));
17613 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17614 if (_token == NULL) {
17615 D(p->level--);
17616 return NULL;
17617 }
17618 int _end_lineno = _token->end_lineno;
17619 UNUSED(_end_lineno); // Only used by EXTRA macro
17620 int _end_col_offset = _token->end_col_offset;
17621 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017622 _res = _PyAST_Call ( a , CHECK ( asdl_expr_seq * , ( asdl_expr_seq * ) _PyPegen_singleton_seq ( p , b ) ) , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017623 if (_res == NULL && PyErr_Occurred()) {
17624 p->error_indicator = 1;
17625 D(p->level--);
17626 return NULL;
17627 }
17628 goto done;
17629 }
17630 p->mark = _mark;
17631 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
17632 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary genexp &t_lookahead"));
17633 }
17634 { // t_primary '(' arguments? ')' &t_lookahead
17635 if (p->error_indicator) {
17636 D(p->level--);
17637 return NULL;
17638 }
17639 D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '(' arguments? ')' &t_lookahead"));
17640 Token * _literal;
17641 Token * _literal_1;
17642 expr_ty a;
17643 void *b;
17644 if (
17645 (a = t_primary_rule(p)) // t_primary
17646 &&
17647 (_literal = _PyPegen_expect_token(p, 7)) // token='('
17648 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +020017649 (b = arguments_rule(p), !p->error_indicator) // arguments?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017650 &&
17651 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
17652 &&
17653 _PyPegen_lookahead(1, t_lookahead_rule, p)
17654 )
17655 {
17656 D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '(' arguments? ')' &t_lookahead"));
17657 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17658 if (_token == NULL) {
17659 D(p->level--);
17660 return NULL;
17661 }
17662 int _end_lineno = _token->end_lineno;
17663 UNUSED(_end_lineno); // Only used by EXTRA macro
17664 int _end_col_offset = _token->end_col_offset;
17665 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017666 _res = _PyAST_Call ( a , ( b ) ? ( ( expr_ty ) b ) -> v . Call . args : NULL , ( b ) ? ( ( expr_ty ) b ) -> v . Call . keywords : NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017667 if (_res == NULL && PyErr_Occurred()) {
17668 p->error_indicator = 1;
17669 D(p->level--);
17670 return NULL;
17671 }
17672 goto done;
17673 }
17674 p->mark = _mark;
17675 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
17676 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '(' arguments? ')' &t_lookahead"));
17677 }
17678 { // atom &t_lookahead
17679 if (p->error_indicator) {
17680 D(p->level--);
17681 return NULL;
17682 }
17683 D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "atom &t_lookahead"));
17684 expr_ty a;
17685 if (
17686 (a = atom_rule(p)) // atom
17687 &&
17688 _PyPegen_lookahead(1, t_lookahead_rule, p)
17689 )
17690 {
17691 D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "atom &t_lookahead"));
17692 _res = a;
17693 if (_res == NULL && PyErr_Occurred()) {
17694 p->error_indicator = 1;
17695 D(p->level--);
17696 return NULL;
17697 }
17698 goto done;
17699 }
17700 p->mark = _mark;
17701 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
17702 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "atom &t_lookahead"));
17703 }
17704 _res = NULL;
17705 done:
17706 D(p->level--);
17707 return _res;
17708}
17709
17710// t_lookahead: '(' | '[' | '.'
17711static void *
17712t_lookahead_rule(Parser *p)
17713{
17714 D(p->level++);
17715 if (p->error_indicator) {
17716 D(p->level--);
17717 return NULL;
17718 }
17719 void * _res = NULL;
17720 int _mark = p->mark;
17721 { // '('
17722 if (p->error_indicator) {
17723 D(p->level--);
17724 return NULL;
17725 }
17726 D(fprintf(stderr, "%*c> t_lookahead[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'('"));
17727 Token * _literal;
17728 if (
17729 (_literal = _PyPegen_expect_token(p, 7)) // token='('
17730 )
17731 {
17732 D(fprintf(stderr, "%*c+ t_lookahead[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'('"));
17733 _res = _literal;
17734 goto done;
17735 }
17736 p->mark = _mark;
17737 D(fprintf(stderr, "%*c%s t_lookahead[%d-%d]: %s failed!\n", p->level, ' ',
17738 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'('"));
17739 }
17740 { // '['
17741 if (p->error_indicator) {
17742 D(p->level--);
17743 return NULL;
17744 }
17745 D(fprintf(stderr, "%*c> t_lookahead[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['"));
17746 Token * _literal;
17747 if (
17748 (_literal = _PyPegen_expect_token(p, 9)) // token='['
17749 )
17750 {
17751 D(fprintf(stderr, "%*c+ t_lookahead[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['"));
17752 _res = _literal;
17753 goto done;
17754 }
17755 p->mark = _mark;
17756 D(fprintf(stderr, "%*c%s t_lookahead[%d-%d]: %s failed!\n", p->level, ' ',
17757 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'['"));
17758 }
17759 { // '.'
17760 if (p->error_indicator) {
17761 D(p->level--);
17762 return NULL;
17763 }
17764 D(fprintf(stderr, "%*c> t_lookahead[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
17765 Token * _literal;
17766 if (
17767 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
17768 )
17769 {
17770 D(fprintf(stderr, "%*c+ t_lookahead[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
17771 _res = _literal;
17772 goto done;
17773 }
17774 p->mark = _mark;
17775 D(fprintf(stderr, "%*c%s t_lookahead[%d-%d]: %s failed!\n", p->level, ' ',
17776 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
17777 }
17778 _res = NULL;
17779 done:
17780 D(p->level--);
17781 return _res;
17782}
17783
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017784// invalid_arguments:
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017785// | args ',' '*'
17786// | expression for_if_clauses ',' [args | expression for_if_clauses]
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070017787// | NAME '=' expression for_if_clauses
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017788// | args for_if_clauses
17789// | args ',' expression for_if_clauses
17790// | args ',' args
17791static void *
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017792invalid_arguments_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017793{
17794 D(p->level++);
17795 if (p->error_indicator) {
17796 D(p->level--);
17797 return NULL;
17798 }
17799 void * _res = NULL;
17800 int _mark = p->mark;
17801 { // args ',' '*'
17802 if (p->error_indicator) {
17803 D(p->level--);
17804 return NULL;
17805 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017806 D(fprintf(stderr, "%*c> invalid_arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args ',' '*'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017807 Token * _literal;
17808 Token * _literal_1;
Pablo Galindoa77aac42021-04-23 14:27:05 +010017809 expr_ty a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017810 if (
Pablo Galindoa77aac42021-04-23 14:27:05 +010017811 (a = args_rule(p)) // args
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017812 &&
17813 (_literal = _PyPegen_expect_token(p, 12)) // token=','
17814 &&
17815 (_literal_1 = _PyPegen_expect_token(p, 16)) // token='*'
17816 )
17817 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017818 D(fprintf(stderr, "%*c+ invalid_arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args ',' '*'"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010017819 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "iterable argument unpacking follows keyword argument unpacking" );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017820 if (_res == NULL && PyErr_Occurred()) {
17821 p->error_indicator = 1;
17822 D(p->level--);
17823 return NULL;
17824 }
17825 goto done;
17826 }
17827 p->mark = _mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017828 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017829 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ',' '*'"));
17830 }
17831 { // expression for_if_clauses ',' [args | expression for_if_clauses]
17832 if (p->error_indicator) {
17833 D(p->level--);
17834 return NULL;
17835 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017836 D(fprintf(stderr, "%*c> invalid_arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression for_if_clauses ',' [args | expression for_if_clauses]"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017837 Token * _literal;
17838 void *_opt_var;
17839 UNUSED(_opt_var); // Silence compiler warnings
17840 expr_ty a;
Pablo Galindoa77aac42021-04-23 14:27:05 +010017841 asdl_comprehension_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017842 if (
17843 (a = expression_rule(p)) // expression
17844 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010017845 (b = for_if_clauses_rule(p)) // for_if_clauses
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017846 &&
17847 (_literal = _PyPegen_expect_token(p, 12)) // token=','
17848 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +020017849 (_opt_var = _tmp_141_rule(p), !p->error_indicator) // [args | expression for_if_clauses]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017850 )
17851 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017852 D(fprintf(stderr, "%*c+ invalid_arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression for_if_clauses ',' [args | expression for_if_clauses]"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010017853 _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , PyPegen_last_item ( b , comprehension_ty ) -> target , "Generator expression must be parenthesized" );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017854 if (_res == NULL && PyErr_Occurred()) {
17855 p->error_indicator = 1;
17856 D(p->level--);
17857 return NULL;
17858 }
17859 goto done;
17860 }
17861 p->mark = _mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017862 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017863 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression for_if_clauses ',' [args | expression for_if_clauses]"));
17864 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070017865 { // NAME '=' expression for_if_clauses
17866 if (p->error_indicator) {
17867 D(p->level--);
17868 return NULL;
17869 }
17870 D(fprintf(stderr, "%*c> invalid_arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME '=' expression for_if_clauses"));
17871 expr_ty a;
17872 Token * b;
17873 expr_ty expression_var;
17874 asdl_comprehension_seq* for_if_clauses_var;
17875 if (
17876 (a = _PyPegen_name_token(p)) // NAME
17877 &&
17878 (b = _PyPegen_expect_token(p, 22)) // token='='
17879 &&
17880 (expression_var = expression_rule(p)) // expression
17881 &&
17882 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
17883 )
17884 {
17885 D(fprintf(stderr, "%*c+ invalid_arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '=' expression for_if_clauses"));
17886 _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , b , "invalid syntax. Maybe you meant '==' or ':=' instead of '='?" );
17887 if (_res == NULL && PyErr_Occurred()) {
17888 p->error_indicator = 1;
17889 D(p->level--);
17890 return NULL;
17891 }
17892 goto done;
17893 }
17894 p->mark = _mark;
17895 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
17896 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' expression for_if_clauses"));
17897 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017898 { // args for_if_clauses
17899 if (p->error_indicator) {
17900 D(p->level--);
17901 return NULL;
17902 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017903 D(fprintf(stderr, "%*c> invalid_arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args for_if_clauses"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017904 expr_ty a;
Miss Islington (bot)9e209d42021-09-27 07:05:20 -070017905 asdl_comprehension_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017906 if (
17907 (a = args_rule(p)) // args
17908 &&
Miss Islington (bot)9e209d42021-09-27 07:05:20 -070017909 (b = for_if_clauses_rule(p)) // for_if_clauses
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017910 )
17911 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017912 D(fprintf(stderr, "%*c+ invalid_arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args for_if_clauses"));
Miss Islington (bot)9e209d42021-09-27 07:05:20 -070017913 _res = _PyPegen_nonparen_genexp_in_call ( p , a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017914 if (_res == NULL && PyErr_Occurred()) {
17915 p->error_indicator = 1;
17916 D(p->level--);
17917 return NULL;
17918 }
17919 goto done;
17920 }
17921 p->mark = _mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017922 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017923 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args for_if_clauses"));
17924 }
17925 { // args ',' expression for_if_clauses
17926 if (p->error_indicator) {
17927 D(p->level--);
17928 return NULL;
17929 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017930 D(fprintf(stderr, "%*c> invalid_arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args ',' expression for_if_clauses"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017931 Token * _literal;
17932 expr_ty a;
17933 expr_ty args_var;
Pablo Galindoa77aac42021-04-23 14:27:05 +010017934 asdl_comprehension_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017935 if (
17936 (args_var = args_rule(p)) // args
17937 &&
17938 (_literal = _PyPegen_expect_token(p, 12)) // token=','
17939 &&
17940 (a = expression_rule(p)) // expression
17941 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010017942 (b = for_if_clauses_rule(p)) // for_if_clauses
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017943 )
17944 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017945 D(fprintf(stderr, "%*c+ invalid_arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args ',' expression for_if_clauses"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010017946 _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , asdl_seq_GET ( b , b -> size - 1 ) -> target , "Generator expression must be parenthesized" );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017947 if (_res == NULL && PyErr_Occurred()) {
17948 p->error_indicator = 1;
17949 D(p->level--);
17950 return NULL;
17951 }
17952 goto done;
17953 }
17954 p->mark = _mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017955 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017956 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ',' expression for_if_clauses"));
17957 }
17958 { // args ',' args
17959 if (p->error_indicator) {
17960 D(p->level--);
17961 return NULL;
17962 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017963 D(fprintf(stderr, "%*c> invalid_arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args ',' args"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017964 Token * _literal;
17965 expr_ty a;
17966 expr_ty args_var;
17967 if (
17968 (a = args_rule(p)) // args
17969 &&
17970 (_literal = _PyPegen_expect_token(p, 12)) // token=','
17971 &&
17972 (args_var = args_rule(p)) // args
17973 )
17974 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017975 D(fprintf(stderr, "%*c+ invalid_arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args ',' args"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017976 _res = _PyPegen_arguments_parsing_error ( p , a );
17977 if (_res == NULL && PyErr_Occurred()) {
17978 p->error_indicator = 1;
17979 D(p->level--);
17980 return NULL;
17981 }
17982 goto done;
17983 }
17984 p->mark = _mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017985 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017986 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ',' args"));
17987 }
17988 _res = NULL;
17989 done:
17990 D(p->level--);
17991 return _res;
17992}
17993
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000017994// invalid_kwarg:
17995// | ('True' | 'False' | 'None') '='
17996// | NAME '=' expression for_if_clauses
17997// | !(NAME '=') expression '='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017998static void *
17999invalid_kwarg_rule(Parser *p)
18000{
18001 D(p->level++);
18002 if (p->error_indicator) {
18003 D(p->level--);
18004 return NULL;
18005 }
18006 void * _res = NULL;
18007 int _mark = p->mark;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000018008 { // ('True' | 'False' | 'None') '='
18009 if (p->error_indicator) {
18010 D(p->level--);
18011 return NULL;
18012 }
18013 D(fprintf(stderr, "%*c> invalid_kwarg[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('True' | 'False' | 'None') '='"));
18014 Token* a;
18015 Token * b;
18016 if (
18017 (a = (Token*)_tmp_142_rule(p)) // 'True' | 'False' | 'None'
18018 &&
18019 (b = _PyPegen_expect_token(p, 22)) // token='='
18020 )
18021 {
18022 D(fprintf(stderr, "%*c+ invalid_kwarg[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "('True' | 'False' | 'None') '='"));
18023 _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , b , "cannot assign to %s" , PyBytes_AS_STRING ( a -> bytes ) );
18024 if (_res == NULL && PyErr_Occurred()) {
18025 p->error_indicator = 1;
18026 D(p->level--);
18027 return NULL;
18028 }
18029 goto done;
18030 }
18031 p->mark = _mark;
18032 D(fprintf(stderr, "%*c%s invalid_kwarg[%d-%d]: %s failed!\n", p->level, ' ',
18033 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('True' | 'False' | 'None') '='"));
18034 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018035 { // NAME '=' expression for_if_clauses
18036 if (p->error_indicator) {
18037 D(p->level--);
18038 return NULL;
18039 }
18040 D(fprintf(stderr, "%*c> invalid_kwarg[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME '=' expression for_if_clauses"));
18041 expr_ty a;
18042 Token * b;
18043 expr_ty expression_var;
18044 asdl_comprehension_seq* for_if_clauses_var;
18045 if (
18046 (a = _PyPegen_name_token(p)) // NAME
18047 &&
18048 (b = _PyPegen_expect_token(p, 22)) // token='='
18049 &&
18050 (expression_var = expression_rule(p)) // expression
18051 &&
18052 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
18053 )
18054 {
18055 D(fprintf(stderr, "%*c+ invalid_kwarg[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '=' expression for_if_clauses"));
18056 _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , b , "invalid syntax. Maybe you meant '==' or ':=' instead of '='?" );
18057 if (_res == NULL && PyErr_Occurred()) {
18058 p->error_indicator = 1;
18059 D(p->level--);
18060 return NULL;
18061 }
18062 goto done;
18063 }
18064 p->mark = _mark;
18065 D(fprintf(stderr, "%*c%s invalid_kwarg[%d-%d]: %s failed!\n", p->level, ' ',
18066 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' expression for_if_clauses"));
18067 }
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070018068 { // !(NAME '=') expression '='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018069 if (p->error_indicator) {
18070 D(p->level--);
18071 return NULL;
18072 }
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070018073 D(fprintf(stderr, "%*c> invalid_kwarg[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "!(NAME '=') expression '='"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010018074 expr_ty a;
18075 Token * b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018076 if (
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000018077 _PyPegen_lookahead(0, _tmp_143_rule, p)
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070018078 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010018079 (a = expression_rule(p)) // expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018080 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010018081 (b = _PyPegen_expect_token(p, 22)) // token='='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018082 )
18083 {
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070018084 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 +010018085 _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , b , "expression cannot contain assignment, perhaps you meant \"==\"?" );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018086 if (_res == NULL && PyErr_Occurred()) {
18087 p->error_indicator = 1;
18088 D(p->level--);
18089 return NULL;
18090 }
18091 goto done;
18092 }
18093 p->mark = _mark;
18094 D(fprintf(stderr, "%*c%s invalid_kwarg[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070018095 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "!(NAME '=') expression '='"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018096 }
18097 _res = NULL;
18098 done:
18099 D(p->level--);
18100 return _res;
18101}
18102
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018103// expression_without_invalid:
18104// | disjunction 'if' disjunction 'else' expression
18105// | disjunction
18106// | lambdef
18107static expr_ty
18108expression_without_invalid_rule(Parser *p)
18109{
18110 D(p->level++);
18111 if (p->error_indicator) {
18112 D(p->level--);
18113 return NULL;
18114 }
18115 expr_ty _res = NULL;
18116 int _mark = p->mark;
18117 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
18118 p->error_indicator = 1;
18119 D(p->level--);
18120 return NULL;
18121 }
18122 int _start_lineno = p->tokens[_mark]->lineno;
18123 UNUSED(_start_lineno); // Only used by EXTRA macro
18124 int _start_col_offset = p->tokens[_mark]->col_offset;
18125 UNUSED(_start_col_offset); // Only used by EXTRA macro
18126 { // disjunction 'if' disjunction 'else' expression
18127 if (p->error_indicator) {
18128 D(p->level--);
18129 return NULL;
18130 }
18131 D(fprintf(stderr, "%*c> expression_without_invalid[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "disjunction 'if' disjunction 'else' expression"));
18132 Token * _keyword;
18133 Token * _keyword_1;
18134 expr_ty a;
18135 expr_ty b;
18136 expr_ty c;
18137 if (
18138 (a = disjunction_rule(p)) // disjunction
18139 &&
18140 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
18141 &&
18142 (b = disjunction_rule(p)) // disjunction
18143 &&
18144 (_keyword_1 = _PyPegen_expect_token(p, 516)) // token='else'
18145 &&
18146 (c = expression_rule(p)) // expression
18147 )
18148 {
18149 D(fprintf(stderr, "%*c+ expression_without_invalid[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "disjunction 'if' disjunction 'else' expression"));
18150 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
18151 if (_token == NULL) {
18152 D(p->level--);
18153 return NULL;
18154 }
18155 int _end_lineno = _token->end_lineno;
18156 UNUSED(_end_lineno); // Only used by EXTRA macro
18157 int _end_col_offset = _token->end_col_offset;
18158 UNUSED(_end_col_offset); // Only used by EXTRA macro
18159 _res = _PyAST_IfExp ( b , a , c , EXTRA );
18160 if (_res == NULL && PyErr_Occurred()) {
18161 p->error_indicator = 1;
18162 D(p->level--);
18163 return NULL;
18164 }
18165 goto done;
18166 }
18167 p->mark = _mark;
18168 D(fprintf(stderr, "%*c%s expression_without_invalid[%d-%d]: %s failed!\n", p->level, ' ',
18169 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "disjunction 'if' disjunction 'else' expression"));
18170 }
18171 { // disjunction
18172 if (p->error_indicator) {
18173 D(p->level--);
18174 return NULL;
18175 }
18176 D(fprintf(stderr, "%*c> expression_without_invalid[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "disjunction"));
18177 expr_ty disjunction_var;
18178 if (
18179 (disjunction_var = disjunction_rule(p)) // disjunction
18180 )
18181 {
18182 D(fprintf(stderr, "%*c+ expression_without_invalid[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "disjunction"));
18183 _res = disjunction_var;
18184 goto done;
18185 }
18186 p->mark = _mark;
18187 D(fprintf(stderr, "%*c%s expression_without_invalid[%d-%d]: %s failed!\n", p->level, ' ',
18188 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "disjunction"));
18189 }
18190 { // lambdef
18191 if (p->error_indicator) {
18192 D(p->level--);
18193 return NULL;
18194 }
18195 D(fprintf(stderr, "%*c> expression_without_invalid[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambdef"));
18196 expr_ty lambdef_var;
18197 if (
18198 (lambdef_var = lambdef_rule(p)) // lambdef
18199 )
18200 {
18201 D(fprintf(stderr, "%*c+ expression_without_invalid[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambdef"));
18202 _res = lambdef_var;
18203 goto done;
18204 }
18205 p->mark = _mark;
18206 D(fprintf(stderr, "%*c%s expression_without_invalid[%d-%d]: %s failed!\n", p->level, ' ',
18207 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambdef"));
18208 }
18209 _res = NULL;
18210 done:
18211 D(p->level--);
18212 return _res;
18213}
18214
Miss Islington (bot)35035bc2021-07-31 18:31:44 -070018215// invalid_legacy_expression: NAME !'(' star_expressions
Pablo Galindo Salgadob977f852021-07-27 18:52:32 +010018216static void *
18217invalid_legacy_expression_rule(Parser *p)
18218{
18219 D(p->level++);
18220 if (p->error_indicator) {
18221 D(p->level--);
18222 return NULL;
18223 }
18224 void * _res = NULL;
18225 int _mark = p->mark;
Miss Islington (bot)35035bc2021-07-31 18:31:44 -070018226 { // NAME !'(' star_expressions
Pablo Galindo Salgadob977f852021-07-27 18:52:32 +010018227 if (p->error_indicator) {
18228 D(p->level--);
18229 return NULL;
18230 }
Miss Islington (bot)35035bc2021-07-31 18:31:44 -070018231 D(fprintf(stderr, "%*c> invalid_legacy_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME !'(' star_expressions"));
Pablo Galindo Salgadob977f852021-07-27 18:52:32 +010018232 expr_ty a;
18233 expr_ty b;
18234 if (
18235 (a = _PyPegen_name_token(p)) // NAME
18236 &&
Miss Islington (bot)35035bc2021-07-31 18:31:44 -070018237 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 7) // token='('
18238 &&
Miss Islington (bot)68e3dca2021-07-27 14:19:18 -070018239 (b = star_expressions_rule(p)) // star_expressions
Pablo Galindo Salgadob977f852021-07-27 18:52:32 +010018240 )
18241 {
Miss Islington (bot)35035bc2021-07-31 18:31:44 -070018242 D(fprintf(stderr, "%*c+ invalid_legacy_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME !'(' star_expressions"));
Miss Islington (bot)68e3dca2021-07-27 14:19:18 -070018243 _res = _PyPegen_check_legacy_stmt ( p , a ) ? RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , b , "Missing parentheses in call to '%U'. Did you mean %U(...)?" , a -> v . Name . id , a -> v . Name . id ) : NULL;
Pablo Galindo Salgadob977f852021-07-27 18:52:32 +010018244 if (_res == NULL && PyErr_Occurred()) {
18245 p->error_indicator = 1;
18246 D(p->level--);
18247 return NULL;
18248 }
18249 goto done;
18250 }
18251 p->mark = _mark;
18252 D(fprintf(stderr, "%*c%s invalid_legacy_expression[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)35035bc2021-07-31 18:31:44 -070018253 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME !'(' star_expressions"));
Pablo Galindo Salgadob977f852021-07-27 18:52:32 +010018254 }
18255 _res = NULL;
18256 done:
18257 D(p->level--);
18258 return _res;
18259}
18260
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018261// invalid_expression:
18262// | !(NAME STRING | SOFT_KEYWORD) disjunction expression_without_invalid
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010018263// | disjunction 'if' disjunction !('else' | ':')
Pablo Galindob2802482021-04-15 21:38:45 +010018264static void *
18265invalid_expression_rule(Parser *p)
18266{
18267 D(p->level++);
18268 if (p->error_indicator) {
18269 D(p->level--);
18270 return NULL;
18271 }
18272 void * _res = NULL;
18273 int _mark = p->mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018274 { // !(NAME STRING | SOFT_KEYWORD) disjunction expression_without_invalid
Pablo Galindob2802482021-04-15 21:38:45 +010018275 if (p->error_indicator) {
18276 D(p->level--);
18277 return NULL;
18278 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018279 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 +010018280 expr_ty a;
Pablo Galindoa77aac42021-04-23 14:27:05 +010018281 expr_ty b;
Pablo Galindob2802482021-04-15 21:38:45 +010018282 if (
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000018283 _PyPegen_lookahead(0, _tmp_144_rule, p)
Pablo Galindob2802482021-04-15 21:38:45 +010018284 &&
18285 (a = disjunction_rule(p)) // disjunction
18286 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018287 (b = expression_without_invalid_rule(p)) // expression_without_invalid
Pablo Galindob2802482021-04-15 21:38:45 +010018288 )
18289 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018290 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 Galindo Salgadoc72311d2021-11-25 01:01:40 +000018291 _res = _PyPegen_check_legacy_stmt ( p , a ) ? NULL : p -> tokens [ p -> mark - 1 ] -> level == 0 ? NULL : RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , b , "invalid syntax. Perhaps you forgot a comma?" );
Pablo Galindob2802482021-04-15 21:38:45 +010018292 if (_res == NULL && PyErr_Occurred()) {
18293 p->error_indicator = 1;
18294 D(p->level--);
18295 return NULL;
18296 }
18297 goto done;
18298 }
18299 p->mark = _mark;
18300 D(fprintf(stderr, "%*c%s invalid_expression[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018301 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "!(NAME STRING | SOFT_KEYWORD) disjunction expression_without_invalid"));
Pablo Galindob2802482021-04-15 21:38:45 +010018302 }
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010018303 { // disjunction 'if' disjunction !('else' | ':')
Miss Islington (bot)56717622021-08-02 12:05:33 -070018304 if (p->error_indicator) {
18305 D(p->level--);
18306 return NULL;
18307 }
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010018308 D(fprintf(stderr, "%*c> invalid_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "disjunction 'if' disjunction !('else' | ':')"));
Miss Islington (bot)56717622021-08-02 12:05:33 -070018309 Token * _keyword;
18310 expr_ty a;
18311 expr_ty b;
18312 if (
18313 (a = disjunction_rule(p)) // disjunction
18314 &&
18315 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
18316 &&
18317 (b = disjunction_rule(p)) // disjunction
18318 &&
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000018319 _PyPegen_lookahead(0, _tmp_145_rule, p)
Miss Islington (bot)56717622021-08-02 12:05:33 -070018320 )
18321 {
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010018322 D(fprintf(stderr, "%*c+ invalid_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "disjunction 'if' disjunction !('else' | ':')"));
Miss Islington (bot)56717622021-08-02 12:05:33 -070018323 _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , b , "expected 'else' after 'if' expression" );
18324 if (_res == NULL && PyErr_Occurred()) {
18325 p->error_indicator = 1;
18326 D(p->level--);
18327 return NULL;
18328 }
18329 goto done;
18330 }
18331 p->mark = _mark;
18332 D(fprintf(stderr, "%*c%s invalid_expression[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010018333 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "disjunction 'if' disjunction !('else' | ':')"));
Miss Islington (bot)56717622021-08-02 12:05:33 -070018334 }
Pablo Galindob2802482021-04-15 21:38:45 +010018335 _res = NULL;
18336 done:
18337 D(p->level--);
18338 return _res;
18339}
18340
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018341// invalid_named_expression:
18342// | expression ':=' expression
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018343// | NAME '=' bitwise_or !('=' | ':=')
18344// | !(list | tuple | genexp | 'True' | 'None' | 'False') bitwise_or '=' bitwise_or !('=' | ':=')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018345static void *
18346invalid_named_expression_rule(Parser *p)
18347{
18348 D(p->level++);
18349 if (p->error_indicator) {
18350 D(p->level--);
18351 return NULL;
18352 }
18353 void * _res = NULL;
18354 int _mark = p->mark;
18355 { // expression ':=' expression
18356 if (p->error_indicator) {
18357 D(p->level--);
18358 return NULL;
18359 }
18360 D(fprintf(stderr, "%*c> invalid_named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':=' expression"));
18361 Token * _literal;
18362 expr_ty a;
18363 expr_ty expression_var;
18364 if (
18365 (a = expression_rule(p)) // expression
18366 &&
18367 (_literal = _PyPegen_expect_token(p, 53)) // token=':='
18368 &&
18369 (expression_var = expression_rule(p)) // expression
18370 )
18371 {
18372 D(fprintf(stderr, "%*c+ invalid_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':=' expression"));
18373 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "cannot use assignment expressions with %s" , _PyPegen_get_expr_name ( a ) );
18374 if (_res == NULL && PyErr_Occurred()) {
18375 p->error_indicator = 1;
18376 D(p->level--);
18377 return NULL;
18378 }
18379 goto done;
18380 }
18381 p->mark = _mark;
18382 D(fprintf(stderr, "%*c%s invalid_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
18383 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':=' expression"));
18384 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018385 { // NAME '=' bitwise_or !('=' | ':=')
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018386 if (p->error_indicator) {
18387 D(p->level--);
18388 return NULL;
18389 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018390 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 +010018391 Token * _literal;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018392 expr_ty a;
Pablo Galindoa77aac42021-04-23 14:27:05 +010018393 expr_ty b;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018394 if (
18395 (a = _PyPegen_name_token(p)) // NAME
18396 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010018397 (_literal = _PyPegen_expect_token(p, 22)) // token='='
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018398 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010018399 (b = bitwise_or_rule(p)) // bitwise_or
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018400 &&
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000018401 _PyPegen_lookahead(0, _tmp_146_rule, p)
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018402 )
18403 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018404 D(fprintf(stderr, "%*c+ invalid_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '=' bitwise_or !('=' | ':=')"));
18405 _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 +010018406 if (_res == NULL && PyErr_Occurred()) {
18407 p->error_indicator = 1;
18408 D(p->level--);
18409 return NULL;
18410 }
18411 goto done;
18412 }
18413 p->mark = _mark;
18414 D(fprintf(stderr, "%*c%s invalid_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018415 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' bitwise_or !('=' | ':=')"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018416 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018417 { // !(list | tuple | genexp | 'True' | 'None' | 'False') bitwise_or '=' bitwise_or !('=' | ':=')
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018418 if (p->error_indicator) {
18419 D(p->level--);
18420 return NULL;
18421 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018422 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 +010018423 expr_ty a;
18424 Token * b;
18425 expr_ty bitwise_or_var;
18426 if (
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000018427 _PyPegen_lookahead(0, _tmp_147_rule, p)
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018428 &&
18429 (a = bitwise_or_rule(p)) // bitwise_or
18430 &&
18431 (b = _PyPegen_expect_token(p, 22)) // token='='
18432 &&
18433 (bitwise_or_var = bitwise_or_rule(p)) // bitwise_or
18434 &&
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000018435 _PyPegen_lookahead(0, _tmp_148_rule, p)
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018436 )
18437 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018438 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 !('=' | ':=')"));
18439 _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 +010018440 if (_res == NULL && PyErr_Occurred()) {
18441 p->error_indicator = 1;
18442 D(p->level--);
18443 return NULL;
18444 }
18445 goto done;
18446 }
18447 p->mark = _mark;
18448 D(fprintf(stderr, "%*c%s invalid_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018449 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "!(list | tuple | genexp | 'True' | 'None' | 'False') bitwise_or '=' bitwise_or !('=' | ':=')"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018450 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018451 _res = NULL;
18452 done:
18453 D(p->level--);
18454 return _res;
18455}
18456
18457// invalid_assignment:
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030018458// | invalid_ann_assign_target ':' expression
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018459// | star_named_expression ',' star_named_expressions* ':' expression
18460// | expression ':' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018461// | ((star_targets '='))* star_expressions '='
18462// | ((star_targets '='))* yield_expr '='
18463// | star_expressions augassign (yield_expr | star_expressions)
18464static void *
18465invalid_assignment_rule(Parser *p)
18466{
18467 D(p->level++);
18468 if (p->error_indicator) {
18469 D(p->level--);
18470 return NULL;
18471 }
18472 void * _res = NULL;
18473 int _mark = p->mark;
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030018474 { // invalid_ann_assign_target ':' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018475 if (p->error_indicator) {
18476 D(p->level--);
18477 return NULL;
18478 }
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030018479 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 +010018480 Token * _literal;
18481 expr_ty a;
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018482 expr_ty expression_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018483 if (
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030018484 (a = invalid_ann_assign_target_rule(p)) // invalid_ann_assign_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018485 &&
18486 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018487 &&
18488 (expression_var = expression_rule(p)) // expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018489 )
18490 {
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030018491 D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_ann_assign_target ':' expression"));
18492 _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 +010018493 if (_res == NULL && PyErr_Occurred()) {
18494 p->error_indicator = 1;
18495 D(p->level--);
18496 return NULL;
18497 }
18498 goto done;
18499 }
18500 p->mark = _mark;
18501 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030018502 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_ann_assign_target ':' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018503 }
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018504 { // star_named_expression ',' star_named_expressions* ':' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018505 if (p->error_indicator) {
18506 D(p->level--);
18507 return NULL;
18508 }
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018509 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 +010018510 Token * _literal;
18511 Token * _literal_1;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000018512 asdl_seq * _loop0_149_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018513 expr_ty a;
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018514 expr_ty expression_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018515 if (
18516 (a = star_named_expression_rule(p)) // star_named_expression
18517 &&
18518 (_literal = _PyPegen_expect_token(p, 12)) // token=','
18519 &&
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000018520 (_loop0_149_var = _loop0_149_rule(p)) // star_named_expressions*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018521 &&
18522 (_literal_1 = _PyPegen_expect_token(p, 11)) // token=':'
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018523 &&
18524 (expression_var = expression_rule(p)) // expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018525 )
18526 {
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018527 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 +010018528 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "only single target (not tuple) can be annotated" );
18529 if (_res == NULL && PyErr_Occurred()) {
18530 p->error_indicator = 1;
18531 D(p->level--);
18532 return NULL;
18533 }
18534 goto done;
18535 }
18536 p->mark = _mark;
18537 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018538 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression ',' star_named_expressions* ':' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018539 }
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018540 { // expression ':' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018541 if (p->error_indicator) {
18542 D(p->level--);
18543 return NULL;
18544 }
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018545 D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018546 Token * _literal;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018547 expr_ty a;
18548 expr_ty expression_var;
18549 if (
18550 (a = expression_rule(p)) // expression
18551 &&
18552 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
18553 &&
18554 (expression_var = expression_rule(p)) // expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018555 )
18556 {
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018557 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 +010018558 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "illegal target for annotation" );
18559 if (_res == NULL && PyErr_Occurred()) {
18560 p->error_indicator = 1;
18561 D(p->level--);
18562 return NULL;
18563 }
18564 goto done;
18565 }
18566 p->mark = _mark;
18567 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018568 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018569 }
18570 { // ((star_targets '='))* star_expressions '='
18571 if (p->error_indicator) {
18572 D(p->level--);
18573 return NULL;
18574 }
18575 D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "((star_targets '='))* star_expressions '='"));
18576 Token * _literal;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000018577 asdl_seq * _loop0_150_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018578 expr_ty a;
18579 if (
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000018580 (_loop0_150_var = _loop0_150_rule(p)) // ((star_targets '='))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018581 &&
18582 (a = star_expressions_rule(p)) // star_expressions
18583 &&
18584 (_literal = _PyPegen_expect_token(p, 22)) // token='='
18585 )
18586 {
18587 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 +030018588 _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( STAR_TARGETS , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018589 if (_res == NULL && PyErr_Occurred()) {
18590 p->error_indicator = 1;
18591 D(p->level--);
18592 return NULL;
18593 }
18594 goto done;
18595 }
18596 p->mark = _mark;
18597 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
18598 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "((star_targets '='))* star_expressions '='"));
18599 }
18600 { // ((star_targets '='))* yield_expr '='
18601 if (p->error_indicator) {
18602 D(p->level--);
18603 return NULL;
18604 }
18605 D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "((star_targets '='))* yield_expr '='"));
18606 Token * _literal;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000018607 asdl_seq * _loop0_151_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018608 expr_ty a;
18609 if (
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000018610 (_loop0_151_var = _loop0_151_rule(p)) // ((star_targets '='))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018611 &&
18612 (a = yield_expr_rule(p)) // yield_expr
18613 &&
18614 (_literal = _PyPegen_expect_token(p, 22)) // token='='
18615 )
18616 {
18617 D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "((star_targets '='))* yield_expr '='"));
18618 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "assignment to yield expression not possible" );
18619 if (_res == NULL && PyErr_Occurred()) {
18620 p->error_indicator = 1;
18621 D(p->level--);
18622 return NULL;
18623 }
18624 goto done;
18625 }
18626 p->mark = _mark;
18627 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
18628 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "((star_targets '='))* yield_expr '='"));
18629 }
18630 { // star_expressions augassign (yield_expr | star_expressions)
18631 if (p->error_indicator) {
18632 D(p->level--);
18633 return NULL;
18634 }
18635 D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions augassign (yield_expr | star_expressions)"));
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000018636 void *_tmp_152_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018637 expr_ty a;
18638 AugOperator* augassign_var;
18639 if (
18640 (a = star_expressions_rule(p)) // star_expressions
18641 &&
18642 (augassign_var = augassign_rule(p)) // augassign
18643 &&
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000018644 (_tmp_152_var = _tmp_152_rule(p)) // yield_expr | star_expressions
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018645 )
18646 {
18647 D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions augassign (yield_expr | star_expressions)"));
18648 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "'%s' is an illegal expression for augmented assignment" , _PyPegen_get_expr_name ( a ) );
18649 if (_res == NULL && PyErr_Occurred()) {
18650 p->error_indicator = 1;
18651 D(p->level--);
18652 return NULL;
18653 }
18654 goto done;
18655 }
18656 p->mark = _mark;
18657 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
18658 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions augassign (yield_expr | star_expressions)"));
18659 }
18660 _res = NULL;
18661 done:
18662 D(p->level--);
18663 return _res;
18664}
18665
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030018666// invalid_ann_assign_target: list | tuple | '(' invalid_ann_assign_target ')'
18667static expr_ty
18668invalid_ann_assign_target_rule(Parser *p)
18669{
18670 D(p->level++);
18671 if (p->error_indicator) {
18672 D(p->level--);
18673 return NULL;
18674 }
18675 expr_ty _res = NULL;
18676 int _mark = p->mark;
18677 { // list
18678 if (p->error_indicator) {
18679 D(p->level--);
18680 return NULL;
18681 }
18682 D(fprintf(stderr, "%*c> invalid_ann_assign_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "list"));
18683 expr_ty list_var;
18684 if (
18685 (list_var = list_rule(p)) // list
18686 )
18687 {
18688 D(fprintf(stderr, "%*c+ invalid_ann_assign_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "list"));
18689 _res = list_var;
18690 goto done;
18691 }
18692 p->mark = _mark;
18693 D(fprintf(stderr, "%*c%s invalid_ann_assign_target[%d-%d]: %s failed!\n", p->level, ' ',
18694 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "list"));
18695 }
18696 { // tuple
18697 if (p->error_indicator) {
18698 D(p->level--);
18699 return NULL;
18700 }
18701 D(fprintf(stderr, "%*c> invalid_ann_assign_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "tuple"));
18702 expr_ty tuple_var;
18703 if (
18704 (tuple_var = tuple_rule(p)) // tuple
18705 )
18706 {
18707 D(fprintf(stderr, "%*c+ invalid_ann_assign_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "tuple"));
18708 _res = tuple_var;
18709 goto done;
18710 }
18711 p->mark = _mark;
18712 D(fprintf(stderr, "%*c%s invalid_ann_assign_target[%d-%d]: %s failed!\n", p->level, ' ',
18713 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "tuple"));
18714 }
18715 { // '(' invalid_ann_assign_target ')'
18716 if (p->error_indicator) {
18717 D(p->level--);
18718 return NULL;
18719 }
18720 D(fprintf(stderr, "%*c> invalid_ann_assign_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' invalid_ann_assign_target ')'"));
18721 Token * _literal;
18722 Token * _literal_1;
18723 expr_ty a;
18724 if (
18725 (_literal = _PyPegen_expect_token(p, 7)) // token='('
18726 &&
18727 (a = invalid_ann_assign_target_rule(p)) // invalid_ann_assign_target
18728 &&
18729 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
18730 )
18731 {
18732 D(fprintf(stderr, "%*c+ invalid_ann_assign_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' invalid_ann_assign_target ')'"));
18733 _res = a;
18734 if (_res == NULL && PyErr_Occurred()) {
18735 p->error_indicator = 1;
18736 D(p->level--);
18737 return NULL;
18738 }
18739 goto done;
18740 }
18741 p->mark = _mark;
18742 D(fprintf(stderr, "%*c%s invalid_ann_assign_target[%d-%d]: %s failed!\n", p->level, ' ',
18743 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' invalid_ann_assign_target ')'"));
18744 }
18745 _res = NULL;
18746 done:
18747 D(p->level--);
18748 return _res;
18749}
18750
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018751// invalid_del_stmt: 'del' star_expressions
18752static void *
18753invalid_del_stmt_rule(Parser *p)
18754{
18755 D(p->level++);
18756 if (p->error_indicator) {
18757 D(p->level--);
18758 return NULL;
18759 }
18760 void * _res = NULL;
18761 int _mark = p->mark;
18762 { // 'del' star_expressions
18763 if (p->error_indicator) {
18764 D(p->level--);
18765 return NULL;
18766 }
18767 D(fprintf(stderr, "%*c> invalid_del_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'del' star_expressions"));
18768 Token * _keyword;
18769 expr_ty a;
18770 if (
18771 (_keyword = _PyPegen_expect_token(p, 503)) // token='del'
18772 &&
18773 (a = star_expressions_rule(p)) // star_expressions
18774 )
18775 {
18776 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 +030018777 _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( DEL_TARGETS , a );
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018778 if (_res == NULL && PyErr_Occurred()) {
18779 p->error_indicator = 1;
18780 D(p->level--);
18781 return NULL;
18782 }
18783 goto done;
18784 }
18785 p->mark = _mark;
18786 D(fprintf(stderr, "%*c%s invalid_del_stmt[%d-%d]: %s failed!\n", p->level, ' ',
18787 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'del' star_expressions"));
18788 }
18789 _res = NULL;
18790 done:
18791 D(p->level--);
18792 return _res;
18793}
18794
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018795// invalid_block: NEWLINE !INDENT
18796static void *
18797invalid_block_rule(Parser *p)
18798{
18799 D(p->level++);
18800 if (p->error_indicator) {
18801 D(p->level--);
18802 return NULL;
18803 }
18804 void * _res = NULL;
18805 int _mark = p->mark;
18806 { // NEWLINE !INDENT
18807 if (p->error_indicator) {
18808 D(p->level--);
18809 return NULL;
18810 }
18811 D(fprintf(stderr, "%*c> invalid_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE !INDENT"));
18812 Token * newline_var;
18813 if (
18814 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
18815 &&
18816 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
18817 )
18818 {
18819 D(fprintf(stderr, "%*c+ invalid_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE !INDENT"));
18820 _res = RAISE_INDENTATION_ERROR ( "expected an indented block" );
18821 if (_res == NULL && PyErr_Occurred()) {
18822 p->error_indicator = 1;
18823 D(p->level--);
18824 return NULL;
18825 }
18826 goto done;
18827 }
18828 p->mark = _mark;
18829 D(fprintf(stderr, "%*c%s invalid_block[%d-%d]: %s failed!\n", p->level, ' ',
18830 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE !INDENT"));
18831 }
18832 _res = NULL;
18833 done:
18834 D(p->level--);
18835 return _res;
18836}
18837
Pablo Galindo835f14f2021-01-31 22:52:56 +000018838// invalid_comprehension:
18839// | ('[' | '(' | '{') starred_expression for_if_clauses
Pablo Galindoa77aac42021-04-23 14:27:05 +010018840// | ('[' | '{') star_named_expression ',' star_named_expressions for_if_clauses
18841// | ('[' | '{') star_named_expression ',' for_if_clauses
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018842static void *
18843invalid_comprehension_rule(Parser *p)
18844{
18845 D(p->level++);
18846 if (p->error_indicator) {
18847 D(p->level--);
18848 return NULL;
18849 }
18850 void * _res = NULL;
18851 int _mark = p->mark;
18852 { // ('[' | '(' | '{') starred_expression for_if_clauses
18853 if (p->error_indicator) {
18854 D(p->level--);
18855 return NULL;
18856 }
18857 D(fprintf(stderr, "%*c> invalid_comprehension[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('[' | '(' | '{') starred_expression for_if_clauses"));
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000018858 void *_tmp_153_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018859 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010018860 asdl_comprehension_seq* for_if_clauses_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018861 if (
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000018862 (_tmp_153_var = _tmp_153_rule(p)) // '[' | '(' | '{'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018863 &&
18864 (a = starred_expression_rule(p)) // starred_expression
18865 &&
18866 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
18867 )
18868 {
18869 D(fprintf(stderr, "%*c+ invalid_comprehension[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "('[' | '(' | '{') starred_expression for_if_clauses"));
18870 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "iterable unpacking cannot be used in comprehension" );
18871 if (_res == NULL && PyErr_Occurred()) {
18872 p->error_indicator = 1;
18873 D(p->level--);
18874 return NULL;
18875 }
18876 goto done;
18877 }
18878 p->mark = _mark;
18879 D(fprintf(stderr, "%*c%s invalid_comprehension[%d-%d]: %s failed!\n", p->level, ' ',
18880 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('[' | '(' | '{') starred_expression for_if_clauses"));
18881 }
Pablo Galindoa77aac42021-04-23 14:27:05 +010018882 { // ('[' | '{') star_named_expression ',' star_named_expressions for_if_clauses
Pablo Galindo835f14f2021-01-31 22:52:56 +000018883 if (p->error_indicator) {
18884 D(p->level--);
18885 return NULL;
18886 }
Pablo Galindoa77aac42021-04-23 14:27:05 +010018887 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 +000018888 Token * _literal;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000018889 void *_tmp_154_var;
Pablo Galindo835f14f2021-01-31 22:52:56 +000018890 expr_ty a;
Pablo Galindoa77aac42021-04-23 14:27:05 +010018891 asdl_expr_seq* b;
Pablo Galindod4e6ed72021-02-03 23:29:26 +000018892 asdl_comprehension_seq* for_if_clauses_var;
Pablo Galindo835f14f2021-01-31 22:52:56 +000018893 if (
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000018894 (_tmp_154_var = _tmp_154_rule(p)) // '[' | '{'
Pablo Galindo835f14f2021-01-31 22:52:56 +000018895 &&
18896 (a = star_named_expression_rule(p)) // star_named_expression
18897 &&
18898 (_literal = _PyPegen_expect_token(p, 12)) // token=','
18899 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010018900 (b = star_named_expressions_rule(p)) // star_named_expressions
Pablo Galindod4e6ed72021-02-03 23:29:26 +000018901 &&
18902 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
Pablo Galindo835f14f2021-01-31 22:52:56 +000018903 )
18904 {
Pablo Galindoa77aac42021-04-23 14:27:05 +010018905 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"));
18906 _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 +000018907 if (_res == NULL && PyErr_Occurred()) {
18908 p->error_indicator = 1;
18909 D(p->level--);
18910 return NULL;
18911 }
18912 goto done;
18913 }
18914 p->mark = _mark;
18915 D(fprintf(stderr, "%*c%s invalid_comprehension[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindoa77aac42021-04-23 14:27:05 +010018916 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('[' | '{') star_named_expression ',' star_named_expressions for_if_clauses"));
18917 }
18918 { // ('[' | '{') star_named_expression ',' for_if_clauses
18919 if (p->error_indicator) {
18920 D(p->level--);
18921 return NULL;
18922 }
18923 D(fprintf(stderr, "%*c> invalid_comprehension[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('[' | '{') star_named_expression ',' for_if_clauses"));
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000018924 void *_tmp_155_var;
Pablo Galindoa77aac42021-04-23 14:27:05 +010018925 expr_ty a;
18926 Token * b;
18927 asdl_comprehension_seq* for_if_clauses_var;
18928 if (
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000018929 (_tmp_155_var = _tmp_155_rule(p)) // '[' | '{'
Pablo Galindoa77aac42021-04-23 14:27:05 +010018930 &&
18931 (a = star_named_expression_rule(p)) // star_named_expression
18932 &&
18933 (b = _PyPegen_expect_token(p, 12)) // token=','
18934 &&
18935 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
18936 )
18937 {
18938 D(fprintf(stderr, "%*c+ invalid_comprehension[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "('[' | '{') star_named_expression ',' for_if_clauses"));
18939 _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , b , "did you forget parentheses around the comprehension target?" );
18940 if (_res == NULL && PyErr_Occurred()) {
18941 p->error_indicator = 1;
18942 D(p->level--);
18943 return NULL;
18944 }
18945 goto done;
18946 }
18947 p->mark = _mark;
18948 D(fprintf(stderr, "%*c%s invalid_comprehension[%d-%d]: %s failed!\n", p->level, ' ',
18949 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('[' | '{') star_named_expression ',' for_if_clauses"));
Pablo Galindo835f14f2021-01-31 22:52:56 +000018950 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018951 _res = NULL;
18952 done:
18953 D(p->level--);
18954 return _res;
18955}
18956
18957// invalid_dict_comprehension: '{' '**' bitwise_or for_if_clauses '}'
18958static void *
18959invalid_dict_comprehension_rule(Parser *p)
18960{
18961 D(p->level++);
18962 if (p->error_indicator) {
18963 D(p->level--);
18964 return NULL;
18965 }
18966 void * _res = NULL;
18967 int _mark = p->mark;
18968 { // '{' '**' bitwise_or for_if_clauses '}'
18969 if (p->error_indicator) {
18970 D(p->level--);
18971 return NULL;
18972 }
18973 D(fprintf(stderr, "%*c> invalid_dict_comprehension[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' '**' bitwise_or for_if_clauses '}'"));
18974 Token * _literal;
18975 Token * _literal_1;
18976 Token * a;
18977 expr_ty bitwise_or_var;
Pablo Galindoa5634c42020-09-16 19:42:00 +010018978 asdl_comprehension_seq* for_if_clauses_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018979 if (
18980 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
18981 &&
18982 (a = _PyPegen_expect_token(p, 35)) // token='**'
18983 &&
18984 (bitwise_or_var = bitwise_or_rule(p)) // bitwise_or
18985 &&
18986 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
18987 &&
18988 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
18989 )
18990 {
18991 D(fprintf(stderr, "%*c+ invalid_dict_comprehension[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' '**' bitwise_or for_if_clauses '}'"));
18992 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "dict unpacking cannot be used in dict comprehension" );
18993 if (_res == NULL && PyErr_Occurred()) {
18994 p->error_indicator = 1;
18995 D(p->level--);
18996 return NULL;
18997 }
18998 goto done;
18999 }
19000 p->mark = _mark;
19001 D(fprintf(stderr, "%*c%s invalid_dict_comprehension[%d-%d]: %s failed!\n", p->level, ' ',
19002 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' '**' bitwise_or for_if_clauses '}'"));
19003 }
19004 _res = NULL;
19005 done:
19006 D(p->level--);
19007 return _res;
19008}
19009
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019010// invalid_parameters: param_no_default* invalid_parameters_helper param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019011static void *
19012invalid_parameters_rule(Parser *p)
19013{
19014 D(p->level++);
19015 if (p->error_indicator) {
19016 D(p->level--);
19017 return NULL;
19018 }
19019 void * _res = NULL;
19020 int _mark = p->mark;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019021 { // param_no_default* invalid_parameters_helper param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019022 if (p->error_indicator) {
19023 D(p->level--);
19024 return NULL;
19025 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019026 D(fprintf(stderr, "%*c> invalid_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default* invalid_parameters_helper param_no_default"));
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000019027 asdl_seq * _loop0_156_var;
Pablo Galindoa77aac42021-04-23 14:27:05 +010019028 arg_ty a;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019029 void *invalid_parameters_helper_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019030 if (
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000019031 (_loop0_156_var = _loop0_156_rule(p)) // param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019032 &&
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019033 (invalid_parameters_helper_var = invalid_parameters_helper_rule(p)) // invalid_parameters_helper
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019034 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010019035 (a = param_no_default_rule(p)) // param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019036 )
19037 {
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019038 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 +010019039 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "non-default argument follows default argument" );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019040 if (_res == NULL && PyErr_Occurred()) {
19041 p->error_indicator = 1;
19042 D(p->level--);
19043 return NULL;
19044 }
19045 goto done;
19046 }
19047 p->mark = _mark;
19048 D(fprintf(stderr, "%*c%s invalid_parameters[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019049 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default* invalid_parameters_helper param_no_default"));
19050 }
19051 _res = NULL;
19052 done:
19053 D(p->level--);
19054 return _res;
19055}
19056
19057// invalid_parameters_helper: slash_with_default | param_with_default+
19058static void *
19059invalid_parameters_helper_rule(Parser *p)
19060{
19061 D(p->level++);
19062 if (p->error_indicator) {
19063 D(p->level--);
19064 return NULL;
19065 }
19066 void * _res = NULL;
19067 int _mark = p->mark;
19068 { // slash_with_default
19069 if (p->error_indicator) {
19070 D(p->level--);
19071 return NULL;
19072 }
19073 D(fprintf(stderr, "%*c> invalid_parameters_helper[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slash_with_default"));
19074 SlashWithDefault* a;
19075 if (
19076 (a = slash_with_default_rule(p)) // slash_with_default
19077 )
19078 {
19079 D(fprintf(stderr, "%*c+ invalid_parameters_helper[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slash_with_default"));
19080 _res = _PyPegen_singleton_seq ( p , a );
19081 if (_res == NULL && PyErr_Occurred()) {
19082 p->error_indicator = 1;
19083 D(p->level--);
19084 return NULL;
19085 }
19086 goto done;
19087 }
19088 p->mark = _mark;
19089 D(fprintf(stderr, "%*c%s invalid_parameters_helper[%d-%d]: %s failed!\n", p->level, ' ',
19090 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slash_with_default"));
19091 }
19092 { // param_with_default+
19093 if (p->error_indicator) {
19094 D(p->level--);
19095 return NULL;
19096 }
19097 D(fprintf(stderr, "%*c> invalid_parameters_helper[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default+"));
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000019098 asdl_seq * _loop1_157_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019099 if (
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000019100 (_loop1_157_var = _loop1_157_rule(p)) // param_with_default+
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019101 )
19102 {
19103 D(fprintf(stderr, "%*c+ invalid_parameters_helper[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_with_default+"));
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000019104 _res = _loop1_157_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019105 goto done;
19106 }
19107 p->mark = _mark;
19108 D(fprintf(stderr, "%*c%s invalid_parameters_helper[%d-%d]: %s failed!\n", p->level, ' ',
19109 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default+"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019110 }
19111 _res = NULL;
19112 done:
19113 D(p->level--);
19114 return _res;
19115}
19116
19117// invalid_lambda_parameters:
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019118// | lambda_param_no_default* invalid_lambda_parameters_helper lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019119static void *
19120invalid_lambda_parameters_rule(Parser *p)
19121{
19122 D(p->level++);
19123 if (p->error_indicator) {
19124 D(p->level--);
19125 return NULL;
19126 }
19127 void * _res = NULL;
19128 int _mark = p->mark;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019129 { // lambda_param_no_default* invalid_lambda_parameters_helper lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019130 if (p->error_indicator) {
19131 D(p->level--);
19132 return NULL;
19133 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019134 D(fprintf(stderr, "%*c> invalid_lambda_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default* invalid_lambda_parameters_helper lambda_param_no_default"));
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000019135 asdl_seq * _loop0_158_var;
Pablo Galindoa77aac42021-04-23 14:27:05 +010019136 arg_ty a;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019137 void *invalid_lambda_parameters_helper_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019138 if (
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000019139 (_loop0_158_var = _loop0_158_rule(p)) // lambda_param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019140 &&
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019141 (invalid_lambda_parameters_helper_var = invalid_lambda_parameters_helper_rule(p)) // invalid_lambda_parameters_helper
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019142 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010019143 (a = lambda_param_no_default_rule(p)) // lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019144 )
19145 {
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019146 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 +010019147 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "non-default argument follows default argument" );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019148 if (_res == NULL && PyErr_Occurred()) {
19149 p->error_indicator = 1;
19150 D(p->level--);
19151 return NULL;
19152 }
19153 goto done;
19154 }
19155 p->mark = _mark;
19156 D(fprintf(stderr, "%*c%s invalid_lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019157 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default* invalid_lambda_parameters_helper lambda_param_no_default"));
19158 }
19159 _res = NULL;
19160 done:
19161 D(p->level--);
19162 return _res;
19163}
19164
19165// invalid_lambda_parameters_helper:
19166// | lambda_slash_with_default
19167// | lambda_param_with_default+
19168static void *
19169invalid_lambda_parameters_helper_rule(Parser *p)
19170{
19171 D(p->level++);
19172 if (p->error_indicator) {
19173 D(p->level--);
19174 return NULL;
19175 }
19176 void * _res = NULL;
19177 int _mark = p->mark;
19178 { // lambda_slash_with_default
19179 if (p->error_indicator) {
19180 D(p->level--);
19181 return NULL;
19182 }
19183 D(fprintf(stderr, "%*c> invalid_lambda_parameters_helper[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_slash_with_default"));
19184 SlashWithDefault* a;
19185 if (
19186 (a = lambda_slash_with_default_rule(p)) // lambda_slash_with_default
19187 )
19188 {
19189 D(fprintf(stderr, "%*c+ invalid_lambda_parameters_helper[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_slash_with_default"));
19190 _res = _PyPegen_singleton_seq ( p , a );
19191 if (_res == NULL && PyErr_Occurred()) {
19192 p->error_indicator = 1;
19193 D(p->level--);
19194 return NULL;
19195 }
19196 goto done;
19197 }
19198 p->mark = _mark;
19199 D(fprintf(stderr, "%*c%s invalid_lambda_parameters_helper[%d-%d]: %s failed!\n", p->level, ' ',
19200 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_slash_with_default"));
19201 }
19202 { // lambda_param_with_default+
19203 if (p->error_indicator) {
19204 D(p->level--);
19205 return NULL;
19206 }
19207 D(fprintf(stderr, "%*c> invalid_lambda_parameters_helper[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default+"));
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000019208 asdl_seq * _loop1_159_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019209 if (
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000019210 (_loop1_159_var = _loop1_159_rule(p)) // lambda_param_with_default+
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019211 )
19212 {
19213 D(fprintf(stderr, "%*c+ invalid_lambda_parameters_helper[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default+"));
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000019214 _res = _loop1_159_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019215 goto done;
19216 }
19217 p->mark = _mark;
19218 D(fprintf(stderr, "%*c%s invalid_lambda_parameters_helper[%d-%d]: %s failed!\n", p->level, ' ',
19219 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default+"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019220 }
19221 _res = NULL;
19222 done:
19223 D(p->level--);
19224 return _res;
19225}
19226
19227// invalid_star_etc: '*' (')' | ',' (')' | '**')) | '*' ',' TYPE_COMMENT
19228static void *
19229invalid_star_etc_rule(Parser *p)
19230{
19231 D(p->level++);
19232 if (p->error_indicator) {
19233 D(p->level--);
19234 return NULL;
19235 }
19236 void * _res = NULL;
19237 int _mark = p->mark;
19238 { // '*' (')' | ',' (')' | '**'))
19239 if (p->error_indicator) {
19240 D(p->level--);
19241 return NULL;
19242 }
19243 D(fprintf(stderr, "%*c> invalid_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (')' | ',' (')' | '**'))"));
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000019244 void *_tmp_160_var;
Pablo Galindoa77aac42021-04-23 14:27:05 +010019245 Token * a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019246 if (
Pablo Galindoa77aac42021-04-23 14:27:05 +010019247 (a = _PyPegen_expect_token(p, 16)) // token='*'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019248 &&
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000019249 (_tmp_160_var = _tmp_160_rule(p)) // ')' | ',' (')' | '**')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019250 )
19251 {
19252 D(fprintf(stderr, "%*c+ invalid_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' (')' | ',' (')' | '**'))"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010019253 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "named arguments must follow bare *" );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019254 if (_res == NULL && PyErr_Occurred()) {
19255 p->error_indicator = 1;
19256 D(p->level--);
19257 return NULL;
19258 }
19259 goto done;
19260 }
19261 p->mark = _mark;
19262 D(fprintf(stderr, "%*c%s invalid_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
19263 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' (')' | ',' (')' | '**'))"));
19264 }
19265 { // '*' ',' TYPE_COMMENT
19266 if (p->error_indicator) {
19267 D(p->level--);
19268 return NULL;
19269 }
19270 D(fprintf(stderr, "%*c> invalid_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' ',' TYPE_COMMENT"));
19271 Token * _literal;
19272 Token * _literal_1;
19273 Token * type_comment_var;
19274 if (
19275 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
19276 &&
19277 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
19278 &&
19279 (type_comment_var = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
19280 )
19281 {
19282 D(fprintf(stderr, "%*c+ invalid_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' ',' TYPE_COMMENT"));
19283 _res = RAISE_SYNTAX_ERROR ( "bare * has associated type comment" );
19284 if (_res == NULL && PyErr_Occurred()) {
19285 p->error_indicator = 1;
19286 D(p->level--);
19287 return NULL;
19288 }
19289 goto done;
19290 }
19291 p->mark = _mark;
19292 D(fprintf(stderr, "%*c%s invalid_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
19293 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' ',' TYPE_COMMENT"));
19294 }
19295 _res = NULL;
19296 done:
19297 D(p->level--);
19298 return _res;
19299}
19300
19301// invalid_lambda_star_etc: '*' (':' | ',' (':' | '**'))
19302static void *
19303invalid_lambda_star_etc_rule(Parser *p)
19304{
19305 D(p->level++);
19306 if (p->error_indicator) {
19307 D(p->level--);
19308 return NULL;
19309 }
19310 void * _res = NULL;
19311 int _mark = p->mark;
19312 { // '*' (':' | ',' (':' | '**'))
19313 if (p->error_indicator) {
19314 D(p->level--);
19315 return NULL;
19316 }
19317 D(fprintf(stderr, "%*c> invalid_lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (':' | ',' (':' | '**'))"));
19318 Token * _literal;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000019319 void *_tmp_161_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019320 if (
19321 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
19322 &&
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000019323 (_tmp_161_var = _tmp_161_rule(p)) // ':' | ',' (':' | '**')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019324 )
19325 {
19326 D(fprintf(stderr, "%*c+ invalid_lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' (':' | ',' (':' | '**'))"));
19327 _res = RAISE_SYNTAX_ERROR ( "named arguments must follow bare *" );
19328 if (_res == NULL && PyErr_Occurred()) {
19329 p->error_indicator = 1;
19330 D(p->level--);
19331 return NULL;
19332 }
19333 goto done;
19334 }
19335 p->mark = _mark;
19336 D(fprintf(stderr, "%*c%s invalid_lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
19337 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' (':' | ',' (':' | '**'))"));
19338 }
19339 _res = NULL;
19340 done:
19341 D(p->level--);
19342 return _res;
19343}
19344
19345// invalid_double_type_comments: TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT
19346static void *
19347invalid_double_type_comments_rule(Parser *p)
19348{
19349 D(p->level++);
19350 if (p->error_indicator) {
19351 D(p->level--);
19352 return NULL;
19353 }
19354 void * _res = NULL;
19355 int _mark = p->mark;
19356 { // TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT
19357 if (p->error_indicator) {
19358 D(p->level--);
19359 return NULL;
19360 }
19361 D(fprintf(stderr, "%*c> invalid_double_type_comments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT"));
19362 Token * indent_var;
19363 Token * newline_var;
19364 Token * newline_var_1;
19365 Token * type_comment_var;
19366 Token * type_comment_var_1;
19367 if (
19368 (type_comment_var = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
19369 &&
19370 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
19371 &&
19372 (type_comment_var_1 = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
19373 &&
19374 (newline_var_1 = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
19375 &&
19376 (indent_var = _PyPegen_expect_token(p, INDENT)) // token='INDENT'
19377 )
19378 {
19379 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"));
19380 _res = RAISE_SYNTAX_ERROR ( "Cannot have two type comments on def" );
19381 if (_res == NULL && PyErr_Occurred()) {
19382 p->error_indicator = 1;
19383 D(p->level--);
19384 return NULL;
19385 }
19386 goto done;
19387 }
19388 p->mark = _mark;
19389 D(fprintf(stderr, "%*c%s invalid_double_type_comments[%d-%d]: %s failed!\n", p->level, ' ',
19390 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT"));
19391 }
19392 _res = NULL;
19393 done:
19394 D(p->level--);
19395 return _res;
19396}
19397
Pablo Galindo58fb1562021-02-02 19:54:22 +000019398// invalid_with_item: expression 'as' expression &(',' | ')' | ':')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019399static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019400invalid_with_item_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019401{
19402 D(p->level++);
19403 if (p->error_indicator) {
19404 D(p->level--);
19405 return NULL;
19406 }
19407 void * _res = NULL;
19408 int _mark = p->mark;
Pablo Galindo58fb1562021-02-02 19:54:22 +000019409 { // expression 'as' expression &(',' | ')' | ':')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019410 if (p->error_indicator) {
19411 D(p->level--);
19412 return NULL;
19413 }
Pablo Galindo58fb1562021-02-02 19:54:22 +000019414 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 +030019415 Token * _keyword;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019416 expr_ty a;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019417 expr_ty expression_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019418 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019419 (expression_var = expression_rule(p)) // expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019420 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019421 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
19422 &&
19423 (a = expression_rule(p)) // expression
Pablo Galindo58fb1562021-02-02 19:54:22 +000019424 &&
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000019425 _PyPegen_lookahead(1, _tmp_162_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019426 )
19427 {
Pablo Galindo58fb1562021-02-02 19:54:22 +000019428 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 +030019429 _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( STAR_TARGETS , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019430 if (_res == NULL && PyErr_Occurred()) {
19431 p->error_indicator = 1;
19432 D(p->level--);
19433 return NULL;
19434 }
19435 goto done;
19436 }
19437 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019438 D(fprintf(stderr, "%*c%s invalid_with_item[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +000019439 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression 'as' expression &(',' | ')' | ':')"));
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019440 }
19441 _res = NULL;
19442 done:
19443 D(p->level--);
19444 return _res;
19445}
19446
19447// invalid_for_target: ASYNC? 'for' star_expressions
19448static void *
19449invalid_for_target_rule(Parser *p)
19450{
19451 D(p->level++);
19452 if (p->error_indicator) {
19453 D(p->level--);
19454 return NULL;
19455 }
19456 void * _res = NULL;
19457 int _mark = p->mark;
19458 { // ASYNC? 'for' star_expressions
19459 if (p->error_indicator) {
19460 D(p->level--);
19461 return NULL;
19462 }
19463 D(fprintf(stderr, "%*c> invalid_for_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC? 'for' star_expressions"));
19464 Token * _keyword;
19465 void *_opt_var;
19466 UNUSED(_opt_var); // Silence compiler warnings
19467 expr_ty a;
19468 if (
Łukasz Langa5c9cab52021-10-19 22:31:18 +020019469 (_opt_var = _PyPegen_expect_token(p, ASYNC), !p->error_indicator) // ASYNC?
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019470 &&
19471 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
19472 &&
19473 (a = star_expressions_rule(p)) // star_expressions
19474 )
19475 {
19476 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 +030019477 _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( FOR_TARGETS , a );
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019478 if (_res == NULL && PyErr_Occurred()) {
19479 p->error_indicator = 1;
19480 D(p->level--);
19481 return NULL;
19482 }
19483 goto done;
19484 }
19485 p->mark = _mark;
19486 D(fprintf(stderr, "%*c%s invalid_for_target[%d-%d]: %s failed!\n", p->level, ' ',
19487 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'for' star_expressions"));
19488 }
19489 _res = NULL;
19490 done:
19491 D(p->level--);
19492 return _res;
19493}
19494
Pablo Galindo8efad612021-03-24 19:34:17 +000019495// invalid_group: '(' starred_expression ')' | '(' '**' expression ')'
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019496static void *
19497invalid_group_rule(Parser *p)
19498{
19499 D(p->level++);
19500 if (p->error_indicator) {
19501 D(p->level--);
19502 return NULL;
19503 }
19504 void * _res = NULL;
19505 int _mark = p->mark;
19506 { // '(' starred_expression ')'
19507 if (p->error_indicator) {
19508 D(p->level--);
19509 return NULL;
19510 }
19511 D(fprintf(stderr, "%*c> invalid_group[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' starred_expression ')'"));
19512 Token * _literal;
19513 Token * _literal_1;
19514 expr_ty a;
19515 if (
19516 (_literal = _PyPegen_expect_token(p, 7)) // token='('
19517 &&
19518 (a = starred_expression_rule(p)) // starred_expression
19519 &&
19520 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
19521 )
19522 {
19523 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 +010019524 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "cannot use starred expression here" );
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019525 if (_res == NULL && PyErr_Occurred()) {
19526 p->error_indicator = 1;
19527 D(p->level--);
19528 return NULL;
19529 }
19530 goto done;
19531 }
19532 p->mark = _mark;
19533 D(fprintf(stderr, "%*c%s invalid_group[%d-%d]: %s failed!\n", p->level, ' ',
19534 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' starred_expression ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019535 }
Pablo Galindo8efad612021-03-24 19:34:17 +000019536 { // '(' '**' expression ')'
19537 if (p->error_indicator) {
19538 D(p->level--);
19539 return NULL;
19540 }
19541 D(fprintf(stderr, "%*c> invalid_group[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' '**' expression ')'"));
19542 Token * _literal;
19543 Token * _literal_1;
19544 Token * a;
19545 expr_ty expression_var;
19546 if (
19547 (_literal = _PyPegen_expect_token(p, 7)) // token='('
19548 &&
19549 (a = _PyPegen_expect_token(p, 35)) // token='**'
19550 &&
19551 (expression_var = expression_rule(p)) // expression
19552 &&
19553 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
19554 )
19555 {
19556 D(fprintf(stderr, "%*c+ invalid_group[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' '**' expression ')'"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010019557 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "cannot use double starred expression here" );
Pablo Galindo8efad612021-03-24 19:34:17 +000019558 if (_res == NULL && PyErr_Occurred()) {
19559 p->error_indicator = 1;
19560 D(p->level--);
19561 return NULL;
19562 }
19563 goto done;
19564 }
19565 p->mark = _mark;
19566 D(fprintf(stderr, "%*c%s invalid_group[%d-%d]: %s failed!\n", p->level, ' ',
19567 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' '**' expression ')'"));
19568 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019569 _res = NULL;
19570 done:
19571 D(p->level--);
19572 return _res;
19573}
19574
Miss Islington (bot)846a10f2021-08-18 13:32:01 -070019575// invalid_import_from_targets: import_from_as_names ',' NEWLINE
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019576static void *
19577invalid_import_from_targets_rule(Parser *p)
19578{
19579 D(p->level++);
19580 if (p->error_indicator) {
19581 D(p->level--);
19582 return NULL;
19583 }
19584 void * _res = NULL;
19585 int _mark = p->mark;
Miss Islington (bot)846a10f2021-08-18 13:32:01 -070019586 { // import_from_as_names ',' NEWLINE
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019587 if (p->error_indicator) {
19588 D(p->level--);
19589 return NULL;
19590 }
Miss Islington (bot)846a10f2021-08-18 13:32:01 -070019591 D(fprintf(stderr, "%*c> invalid_import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "import_from_as_names ',' NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019592 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +010019593 asdl_alias_seq* import_from_as_names_var;
Miss Islington (bot)846a10f2021-08-18 13:32:01 -070019594 Token * newline_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019595 if (
19596 (import_from_as_names_var = import_from_as_names_rule(p)) // import_from_as_names
19597 &&
19598 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Miss Islington (bot)846a10f2021-08-18 13:32:01 -070019599 &&
19600 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019601 )
19602 {
Miss Islington (bot)846a10f2021-08-18 13:32:01 -070019603 D(fprintf(stderr, "%*c+ invalid_import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "import_from_as_names ',' NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019604 _res = RAISE_SYNTAX_ERROR ( "trailing comma not allowed without surrounding parentheses" );
19605 if (_res == NULL && PyErr_Occurred()) {
19606 p->error_indicator = 1;
19607 D(p->level--);
19608 return NULL;
19609 }
19610 goto done;
19611 }
19612 p->mark = _mark;
19613 D(fprintf(stderr, "%*c%s invalid_import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)846a10f2021-08-18 13:32:01 -070019614 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from_as_names ',' NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019615 }
19616 _res = NULL;
19617 done:
19618 D(p->level--);
19619 return _res;
19620}
19621
Pablo Galindo58fb1562021-02-02 19:54:22 +000019622// invalid_with_stmt:
19623// | ASYNC? 'with' ','.(expression ['as' star_target])+ &&':'
19624// | ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' &&':'
19625static void *
19626invalid_with_stmt_rule(Parser *p)
19627{
19628 D(p->level++);
19629 if (p->error_indicator) {
19630 D(p->level--);
19631 return NULL;
19632 }
19633 void * _res = NULL;
19634 int _mark = p->mark;
19635 { // ASYNC? 'with' ','.(expression ['as' star_target])+ &&':'
19636 if (p->error_indicator) {
19637 D(p->level--);
19638 return NULL;
19639 }
19640 D(fprintf(stderr, "%*c> invalid_with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' ','.(expression ['as' star_target])+ &&':'"));
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000019641 asdl_seq * _gather_163_var;
Pablo Galindo58fb1562021-02-02 19:54:22 +000019642 Token * _keyword;
19643 Token * _literal;
19644 void *_opt_var;
19645 UNUSED(_opt_var); // Silence compiler warnings
19646 if (
Łukasz Langa5c9cab52021-10-19 22:31:18 +020019647 (_opt_var = _PyPegen_expect_token(p, ASYNC), !p->error_indicator) // ASYNC?
Pablo Galindo58fb1562021-02-02 19:54:22 +000019648 &&
19649 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
19650 &&
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000019651 (_gather_163_var = _gather_163_rule(p)) // ','.(expression ['as' star_target])+
Pablo Galindo58fb1562021-02-02 19:54:22 +000019652 &&
19653 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
19654 )
19655 {
19656 D(fprintf(stderr, "%*c+ invalid_with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' ','.(expression ['as' star_target])+ &&':'"));
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000019657 _res = _PyPegen_dummy_name(p, _opt_var, _keyword, _gather_163_var, _literal);
Pablo Galindo58fb1562021-02-02 19:54:22 +000019658 goto done;
19659 }
19660 p->mark = _mark;
19661 D(fprintf(stderr, "%*c%s invalid_with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
19662 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'with' ','.(expression ['as' star_target])+ &&':'"));
19663 }
19664 { // ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' &&':'
19665 if (p->error_indicator) {
19666 D(p->level--);
19667 return NULL;
19668 }
19669 D(fprintf(stderr, "%*c> invalid_with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' &&':'"));
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000019670 asdl_seq * _gather_165_var;
Pablo Galindo58fb1562021-02-02 19:54:22 +000019671 Token * _keyword;
19672 Token * _literal;
19673 Token * _literal_1;
19674 Token * _literal_2;
19675 void *_opt_var;
19676 UNUSED(_opt_var); // Silence compiler warnings
19677 void *_opt_var_1;
19678 UNUSED(_opt_var_1); // Silence compiler warnings
19679 if (
Łukasz Langa5c9cab52021-10-19 22:31:18 +020019680 (_opt_var = _PyPegen_expect_token(p, ASYNC), !p->error_indicator) // ASYNC?
Pablo Galindo58fb1562021-02-02 19:54:22 +000019681 &&
19682 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
19683 &&
19684 (_literal = _PyPegen_expect_token(p, 7)) // token='('
19685 &&
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000019686 (_gather_165_var = _gather_165_rule(p)) // ','.(expressions ['as' star_target])+
Pablo Galindo58fb1562021-02-02 19:54:22 +000019687 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +020019688 (_opt_var_1 = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','?
Pablo Galindo58fb1562021-02-02 19:54:22 +000019689 &&
19690 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
19691 &&
19692 (_literal_2 = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
19693 )
19694 {
19695 D(fprintf(stderr, "%*c+ invalid_with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' &&':'"));
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000019696 _res = _PyPegen_dummy_name(p, _opt_var, _keyword, _literal, _gather_165_var, _opt_var_1, _literal_1, _literal_2);
Pablo Galindo58fb1562021-02-02 19:54:22 +000019697 goto done;
19698 }
19699 p->mark = _mark;
19700 D(fprintf(stderr, "%*c%s invalid_with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
19701 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' &&':'"));
19702 }
19703 _res = NULL;
19704 done:
19705 D(p->level--);
19706 return _res;
19707}
19708
Pablo Galindo56c95df2021-04-21 15:28:21 +010019709// invalid_with_stmt_indent:
19710// | ASYNC? 'with' ','.(expression ['as' star_target])+ ':' NEWLINE !INDENT
19711// | ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' ':' NEWLINE !INDENT
Pablo Galindo206cbda2021-02-07 18:42:21 +000019712static void *
Pablo Galindo56c95df2021-04-21 15:28:21 +010019713invalid_with_stmt_indent_rule(Parser *p)
19714{
19715 D(p->level++);
19716 if (p->error_indicator) {
19717 D(p->level--);
19718 return NULL;
19719 }
19720 void * _res = NULL;
19721 int _mark = p->mark;
19722 { // ASYNC? 'with' ','.(expression ['as' star_target])+ ':' NEWLINE !INDENT
19723 if (p->error_indicator) {
19724 D(p->level--);
19725 return NULL;
19726 }
19727 D(fprintf(stderr, "%*c> invalid_with_stmt_indent[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' ','.(expression ['as' star_target])+ ':' NEWLINE !INDENT"));
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000019728 asdl_seq * _gather_167_var;
Pablo Galindo56c95df2021-04-21 15:28:21 +010019729 Token * _literal;
19730 void *_opt_var;
19731 UNUSED(_opt_var); // Silence compiler warnings
19732 Token * a;
19733 Token * newline_var;
19734 if (
Łukasz Langa5c9cab52021-10-19 22:31:18 +020019735 (_opt_var = _PyPegen_expect_token(p, ASYNC), !p->error_indicator) // ASYNC?
Pablo Galindo56c95df2021-04-21 15:28:21 +010019736 &&
19737 (a = _PyPegen_expect_token(p, 519)) // token='with'
19738 &&
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000019739 (_gather_167_var = _gather_167_rule(p)) // ','.(expression ['as' star_target])+
Pablo Galindo56c95df2021-04-21 15:28:21 +010019740 &&
19741 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
19742 &&
19743 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
19744 &&
19745 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
19746 )
19747 {
19748 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"));
19749 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'with' statement on line %d" , a -> lineno );
19750 if (_res == NULL && PyErr_Occurred()) {
19751 p->error_indicator = 1;
19752 D(p->level--);
19753 return NULL;
19754 }
19755 goto done;
19756 }
19757 p->mark = _mark;
19758 D(fprintf(stderr, "%*c%s invalid_with_stmt_indent[%d-%d]: %s failed!\n", p->level, ' ',
19759 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'with' ','.(expression ['as' star_target])+ ':' NEWLINE !INDENT"));
19760 }
19761 { // ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' ':' NEWLINE !INDENT
19762 if (p->error_indicator) {
19763 D(p->level--);
19764 return NULL;
19765 }
19766 D(fprintf(stderr, "%*c> invalid_with_stmt_indent[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' ':' NEWLINE !INDENT"));
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000019767 asdl_seq * _gather_169_var;
Pablo Galindo56c95df2021-04-21 15:28:21 +010019768 Token * _literal;
19769 Token * _literal_1;
19770 Token * _literal_2;
19771 void *_opt_var;
19772 UNUSED(_opt_var); // Silence compiler warnings
19773 void *_opt_var_1;
19774 UNUSED(_opt_var_1); // Silence compiler warnings
19775 Token * a;
19776 Token * newline_var;
19777 if (
Łukasz Langa5c9cab52021-10-19 22:31:18 +020019778 (_opt_var = _PyPegen_expect_token(p, ASYNC), !p->error_indicator) // ASYNC?
Pablo Galindo56c95df2021-04-21 15:28:21 +010019779 &&
19780 (a = _PyPegen_expect_token(p, 519)) // token='with'
19781 &&
19782 (_literal = _PyPegen_expect_token(p, 7)) // token='('
19783 &&
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000019784 (_gather_169_var = _gather_169_rule(p)) // ','.(expressions ['as' star_target])+
Pablo Galindo56c95df2021-04-21 15:28:21 +010019785 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +020019786 (_opt_var_1 = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','?
Pablo Galindo56c95df2021-04-21 15:28:21 +010019787 &&
19788 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
19789 &&
19790 (_literal_2 = _PyPegen_expect_token(p, 11)) // token=':'
19791 &&
19792 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
19793 &&
19794 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
19795 )
19796 {
19797 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"));
19798 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'with' statement on line %d" , a -> lineno );
19799 if (_res == NULL && PyErr_Occurred()) {
19800 p->error_indicator = 1;
19801 D(p->level--);
19802 return NULL;
19803 }
19804 goto done;
19805 }
19806 p->mark = _mark;
19807 D(fprintf(stderr, "%*c%s invalid_with_stmt_indent[%d-%d]: %s failed!\n", p->level, ' ',
19808 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' ':' NEWLINE !INDENT"));
19809 }
19810 _res = NULL;
19811 done:
19812 D(p->level--);
19813 return _res;
19814}
19815
Pablo Galindoe53f72a2021-06-04 00:11:43 +010019816// invalid_try_stmt: 'try' ':' NEWLINE !INDENT | 'try' ':' block !('except' | 'finally')
Pablo Galindo56c95df2021-04-21 15:28:21 +010019817static void *
19818invalid_try_stmt_rule(Parser *p)
19819{
19820 D(p->level++);
19821 if (p->error_indicator) {
19822 D(p->level--);
19823 return NULL;
19824 }
19825 void * _res = NULL;
19826 int _mark = p->mark;
19827 { // 'try' ':' NEWLINE !INDENT
19828 if (p->error_indicator) {
19829 D(p->level--);
19830 return NULL;
19831 }
19832 D(fprintf(stderr, "%*c> invalid_try_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'try' ':' NEWLINE !INDENT"));
19833 Token * _literal;
19834 Token * a;
19835 Token * newline_var;
19836 if (
19837 (a = _PyPegen_expect_token(p, 511)) // token='try'
19838 &&
19839 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
19840 &&
19841 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
19842 &&
19843 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
19844 )
19845 {
19846 D(fprintf(stderr, "%*c+ invalid_try_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'try' ':' NEWLINE !INDENT"));
19847 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'try' statement on line %d" , a -> lineno );
19848 if (_res == NULL && PyErr_Occurred()) {
19849 p->error_indicator = 1;
19850 D(p->level--);
19851 return NULL;
19852 }
19853 goto done;
19854 }
19855 p->mark = _mark;
19856 D(fprintf(stderr, "%*c%s invalid_try_stmt[%d-%d]: %s failed!\n", p->level, ' ',
19857 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'try' ':' NEWLINE !INDENT"));
19858 }
Pablo Galindoe53f72a2021-06-04 00:11:43 +010019859 { // 'try' ':' block !('except' | 'finally')
19860 if (p->error_indicator) {
19861 D(p->level--);
19862 return NULL;
19863 }
19864 D(fprintf(stderr, "%*c> invalid_try_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'try' ':' block !('except' | 'finally')"));
19865 Token * _keyword;
19866 Token * _literal;
19867 asdl_stmt_seq* block_var;
19868 if (
19869 (_keyword = _PyPegen_expect_token(p, 511)) // token='try'
19870 &&
19871 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
19872 &&
19873 (block_var = block_rule(p)) // block
19874 &&
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000019875 _PyPegen_lookahead(0, _tmp_171_rule, p)
Pablo Galindoe53f72a2021-06-04 00:11:43 +010019876 )
19877 {
19878 D(fprintf(stderr, "%*c+ invalid_try_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'try' ':' block !('except' | 'finally')"));
19879 _res = RAISE_SYNTAX_ERROR ( "expected 'except' or 'finally' block" );
19880 if (_res == NULL && PyErr_Occurred()) {
19881 p->error_indicator = 1;
19882 D(p->level--);
19883 return NULL;
19884 }
19885 goto done;
19886 }
19887 p->mark = _mark;
19888 D(fprintf(stderr, "%*c%s invalid_try_stmt[%d-%d]: %s failed!\n", p->level, ' ',
19889 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'try' ':' block !('except' | 'finally')"));
19890 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010019891 _res = NULL;
19892 done:
19893 D(p->level--);
19894 return _res;
19895}
19896
19897// invalid_except_stmt:
19898// | 'except' expression ',' expressions ['as' NAME] ':'
19899// | 'except' expression ['as' NAME] NEWLINE
19900// | 'except' NEWLINE
19901static void *
19902invalid_except_stmt_rule(Parser *p)
Pablo Galindo206cbda2021-02-07 18:42:21 +000019903{
19904 D(p->level++);
19905 if (p->error_indicator) {
19906 D(p->level--);
19907 return NULL;
19908 }
19909 void * _res = NULL;
19910 int _mark = p->mark;
19911 { // 'except' expression ',' expressions ['as' NAME] ':'
19912 if (p->error_indicator) {
19913 D(p->level--);
19914 return NULL;
19915 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010019916 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 +000019917 Token * _keyword;
19918 Token * _literal;
19919 Token * _literal_1;
19920 void *_opt_var;
19921 UNUSED(_opt_var); // Silence compiler warnings
19922 expr_ty a;
19923 expr_ty expressions_var;
19924 if (
19925 (_keyword = _PyPegen_expect_token(p, 521)) // token='except'
19926 &&
19927 (a = expression_rule(p)) // expression
19928 &&
19929 (_literal = _PyPegen_expect_token(p, 12)) // token=','
19930 &&
19931 (expressions_var = expressions_rule(p)) // expressions
19932 &&
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000019933 (_opt_var = _tmp_172_rule(p), !p->error_indicator) // ['as' NAME]
Pablo Galindo206cbda2021-02-07 18:42:21 +000019934 &&
19935 (_literal_1 = _PyPegen_expect_token(p, 11)) // token=':'
19936 )
19937 {
Pablo Galindo56c95df2021-04-21 15:28:21 +010019938 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 -070019939 _res = RAISE_SYNTAX_ERROR_STARTING_FROM ( a , "multiple exception types must be parenthesized" );
Pablo Galindo206cbda2021-02-07 18:42:21 +000019940 if (_res == NULL && PyErr_Occurred()) {
19941 p->error_indicator = 1;
19942 D(p->level--);
19943 return NULL;
19944 }
19945 goto done;
19946 }
19947 p->mark = _mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +010019948 D(fprintf(stderr, "%*c%s invalid_except_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo206cbda2021-02-07 18:42:21 +000019949 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' expression ',' expressions ['as' NAME] ':'"));
19950 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010019951 { // 'except' expression ['as' NAME] NEWLINE
Pablo Galindo206cbda2021-02-07 18:42:21 +000019952 if (p->error_indicator) {
19953 D(p->level--);
19954 return NULL;
19955 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010019956 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 +000019957 void *_opt_var;
19958 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindo56c95df2021-04-21 15:28:21 +010019959 Token * a;
Pablo Galindo206cbda2021-02-07 18:42:21 +000019960 expr_ty expression_var;
Pablo Galindo56c95df2021-04-21 15:28:21 +010019961 Token * newline_var;
Pablo Galindo206cbda2021-02-07 18:42:21 +000019962 if (
Pablo Galindo56c95df2021-04-21 15:28:21 +010019963 (a = _PyPegen_expect_token(p, 521)) // token='except'
Pablo Galindo206cbda2021-02-07 18:42:21 +000019964 &&
19965 (expression_var = expression_rule(p)) // expression
19966 &&
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000019967 (_opt_var = _tmp_173_rule(p), !p->error_indicator) // ['as' NAME]
Pablo Galindo206cbda2021-02-07 18:42:21 +000019968 &&
Pablo Galindo56c95df2021-04-21 15:28:21 +010019969 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
Pablo Galindo206cbda2021-02-07 18:42:21 +000019970 )
19971 {
Pablo Galindo56c95df2021-04-21 15:28:21 +010019972 D(fprintf(stderr, "%*c+ invalid_except_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' expression ['as' NAME] NEWLINE"));
19973 _res = RAISE_SYNTAX_ERROR ( "expected ':'" );
19974 if (_res == NULL && PyErr_Occurred()) {
19975 p->error_indicator = 1;
19976 D(p->level--);
19977 return NULL;
19978 }
Pablo Galindo206cbda2021-02-07 18:42:21 +000019979 goto done;
19980 }
19981 p->mark = _mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +010019982 D(fprintf(stderr, "%*c%s invalid_except_stmt[%d-%d]: %s failed!\n", p->level, ' ',
19983 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' expression ['as' NAME] NEWLINE"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000019984 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010019985 { // 'except' NEWLINE
Pablo Galindo206cbda2021-02-07 18:42:21 +000019986 if (p->error_indicator) {
19987 D(p->level--);
19988 return NULL;
19989 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010019990 D(fprintf(stderr, "%*c> invalid_except_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' NEWLINE"));
19991 Token * a;
19992 Token * newline_var;
Pablo Galindo206cbda2021-02-07 18:42:21 +000019993 if (
Pablo Galindo56c95df2021-04-21 15:28:21 +010019994 (a = _PyPegen_expect_token(p, 521)) // token='except'
Pablo Galindo206cbda2021-02-07 18:42:21 +000019995 &&
Pablo Galindo56c95df2021-04-21 15:28:21 +010019996 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
Pablo Galindo206cbda2021-02-07 18:42:21 +000019997 )
19998 {
Pablo Galindo56c95df2021-04-21 15:28:21 +010019999 D(fprintf(stderr, "%*c+ invalid_except_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' NEWLINE"));
20000 _res = RAISE_SYNTAX_ERROR ( "expected ':'" );
20001 if (_res == NULL && PyErr_Occurred()) {
20002 p->error_indicator = 1;
20003 D(p->level--);
20004 return NULL;
20005 }
Pablo Galindo206cbda2021-02-07 18:42:21 +000020006 goto done;
20007 }
20008 p->mark = _mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +010020009 D(fprintf(stderr, "%*c%s invalid_except_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20010 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' NEWLINE"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000020011 }
20012 _res = NULL;
20013 done:
20014 D(p->level--);
20015 return _res;
20016}
20017
Pablo Galindo56c95df2021-04-21 15:28:21 +010020018// invalid_finally_stmt: 'finally' ':' NEWLINE !INDENT
20019static void *
20020invalid_finally_stmt_rule(Parser *p)
20021{
20022 D(p->level++);
20023 if (p->error_indicator) {
20024 D(p->level--);
20025 return NULL;
20026 }
20027 void * _res = NULL;
20028 int _mark = p->mark;
20029 { // 'finally' ':' NEWLINE !INDENT
20030 if (p->error_indicator) {
20031 D(p->level--);
20032 return NULL;
20033 }
20034 D(fprintf(stderr, "%*c> invalid_finally_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'finally' ':' NEWLINE !INDENT"));
20035 Token * _literal;
20036 Token * a;
20037 Token * newline_var;
20038 if (
20039 (a = _PyPegen_expect_token(p, 522)) // token='finally'
20040 &&
20041 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
20042 &&
20043 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20044 &&
20045 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20046 )
20047 {
20048 D(fprintf(stderr, "%*c+ invalid_finally_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'finally' ':' NEWLINE !INDENT"));
20049 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'finally' statement on line %d" , a -> lineno );
20050 if (_res == NULL && PyErr_Occurred()) {
20051 p->error_indicator = 1;
20052 D(p->level--);
20053 return NULL;
20054 }
20055 goto done;
20056 }
20057 p->mark = _mark;
20058 D(fprintf(stderr, "%*c%s invalid_finally_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20059 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'finally' ':' NEWLINE !INDENT"));
20060 }
20061 _res = NULL;
20062 done:
20063 D(p->level--);
20064 return _res;
20065}
20066
20067// invalid_except_stmt_indent:
20068// | 'except' expression ['as' NAME] ':' NEWLINE !INDENT
20069// | 'except' ':' NEWLINE !INDENT
20070static void *
20071invalid_except_stmt_indent_rule(Parser *p)
20072{
20073 D(p->level++);
20074 if (p->error_indicator) {
20075 D(p->level--);
20076 return NULL;
20077 }
20078 void * _res = NULL;
20079 int _mark = p->mark;
20080 { // 'except' expression ['as' NAME] ':' NEWLINE !INDENT
20081 if (p->error_indicator) {
20082 D(p->level--);
20083 return NULL;
20084 }
20085 D(fprintf(stderr, "%*c> invalid_except_stmt_indent[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' expression ['as' NAME] ':' NEWLINE !INDENT"));
20086 Token * _literal;
20087 void *_opt_var;
20088 UNUSED(_opt_var); // Silence compiler warnings
20089 Token * a;
20090 expr_ty expression_var;
20091 Token * newline_var;
20092 if (
20093 (a = _PyPegen_expect_token(p, 521)) // token='except'
20094 &&
20095 (expression_var = expression_rule(p)) // expression
20096 &&
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000020097 (_opt_var = _tmp_174_rule(p), !p->error_indicator) // ['as' NAME]
Pablo Galindo56c95df2021-04-21 15:28:21 +010020098 &&
20099 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
20100 &&
20101 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20102 &&
20103 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20104 )
20105 {
20106 D(fprintf(stderr, "%*c+ invalid_except_stmt_indent[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' expression ['as' NAME] ':' NEWLINE !INDENT"));
20107 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'except' statement on line %d" , a -> lineno );
20108 if (_res == NULL && PyErr_Occurred()) {
20109 p->error_indicator = 1;
20110 D(p->level--);
20111 return NULL;
20112 }
20113 goto done;
20114 }
20115 p->mark = _mark;
20116 D(fprintf(stderr, "%*c%s invalid_except_stmt_indent[%d-%d]: %s failed!\n", p->level, ' ',
20117 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' expression ['as' NAME] ':' NEWLINE !INDENT"));
20118 }
20119 { // 'except' ':' NEWLINE !INDENT
20120 if (p->error_indicator) {
20121 D(p->level--);
20122 return NULL;
20123 }
20124 D(fprintf(stderr, "%*c> invalid_except_stmt_indent[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' ':' NEWLINE !INDENT"));
20125 Token * _literal;
20126 Token * a;
20127 Token * newline_var;
20128 if (
20129 (a = _PyPegen_expect_token(p, 521)) // token='except'
20130 &&
20131 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
20132 &&
20133 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20134 &&
20135 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20136 )
20137 {
20138 D(fprintf(stderr, "%*c+ invalid_except_stmt_indent[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' ':' NEWLINE !INDENT"));
20139 _res = RAISE_SYNTAX_ERROR ( "expected an indented block after except statement on line %d" , a -> lineno );
20140 if (_res == NULL && PyErr_Occurred()) {
20141 p->error_indicator = 1;
20142 D(p->level--);
20143 return NULL;
20144 }
20145 goto done;
20146 }
20147 p->mark = _mark;
20148 D(fprintf(stderr, "%*c%s invalid_except_stmt_indent[%d-%d]: %s failed!\n", p->level, ' ',
20149 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' ':' NEWLINE !INDENT"));
20150 }
20151 _res = NULL;
20152 done:
20153 D(p->level--);
20154 return _res;
20155}
20156
20157// invalid_match_stmt:
20158// | "match" subject_expr !':'
20159// | "match" subject_expr ':' NEWLINE !INDENT
Pablo Galindo08fb8ac2021-03-18 01:03:11 +000020160static void *
20161invalid_match_stmt_rule(Parser *p)
20162{
20163 D(p->level++);
20164 if (p->error_indicator) {
20165 D(p->level--);
20166 return NULL;
20167 }
20168 void * _res = NULL;
20169 int _mark = p->mark;
20170 { // "match" subject_expr !':'
20171 if (p->error_indicator) {
20172 D(p->level--);
20173 return NULL;
20174 }
20175 D(fprintf(stderr, "%*c> invalid_match_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"match\" subject_expr !':'"));
20176 expr_ty _keyword;
20177 expr_ty subject_expr_var;
20178 if (
20179 (_keyword = _PyPegen_expect_soft_keyword(p, "match")) // soft_keyword='"match"'
20180 &&
20181 (subject_expr_var = subject_expr_rule(p)) // subject_expr
20182 &&
20183 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 11) // token=':'
20184 )
20185 {
20186 D(fprintf(stderr, "%*c+ invalid_match_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"match\" subject_expr !':'"));
20187 _res = CHECK_VERSION ( void * , 10 , "Pattern matching is" , RAISE_SYNTAX_ERROR ( "expected ':'" ) );
20188 if (_res == NULL && PyErr_Occurred()) {
20189 p->error_indicator = 1;
20190 D(p->level--);
20191 return NULL;
20192 }
20193 goto done;
20194 }
20195 p->mark = _mark;
20196 D(fprintf(stderr, "%*c%s invalid_match_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20197 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"match\" subject_expr !':'"));
20198 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010020199 { // "match" subject_expr ':' NEWLINE !INDENT
20200 if (p->error_indicator) {
20201 D(p->level--);
20202 return NULL;
20203 }
20204 D(fprintf(stderr, "%*c> invalid_match_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"match\" subject_expr ':' NEWLINE !INDENT"));
20205 Token * _literal;
20206 expr_ty a;
20207 Token * newline_var;
20208 expr_ty subject;
20209 if (
20210 (a = _PyPegen_expect_soft_keyword(p, "match")) // soft_keyword='"match"'
20211 &&
20212 (subject = subject_expr_rule(p)) // subject_expr
20213 &&
20214 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
20215 &&
20216 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20217 &&
20218 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20219 )
20220 {
20221 D(fprintf(stderr, "%*c+ invalid_match_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"match\" subject_expr ':' NEWLINE !INDENT"));
20222 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'match' statement on line %d" , a -> lineno );
20223 if (_res == NULL && PyErr_Occurred()) {
20224 p->error_indicator = 1;
20225 D(p->level--);
20226 return NULL;
20227 }
20228 goto done;
20229 }
20230 p->mark = _mark;
20231 D(fprintf(stderr, "%*c%s invalid_match_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20232 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"match\" subject_expr ':' NEWLINE !INDENT"));
20233 }
Pablo Galindo08fb8ac2021-03-18 01:03:11 +000020234 _res = NULL;
20235 done:
20236 D(p->level--);
20237 return _res;
20238}
20239
Pablo Galindo56c95df2021-04-21 15:28:21 +010020240// invalid_case_block:
20241// | "case" patterns guard? !':'
20242// | "case" patterns guard? ':' NEWLINE !INDENT
Pablo Galindo08fb8ac2021-03-18 01:03:11 +000020243static void *
20244invalid_case_block_rule(Parser *p)
20245{
20246 D(p->level++);
20247 if (p->error_indicator) {
20248 D(p->level--);
20249 return NULL;
20250 }
20251 void * _res = NULL;
20252 int _mark = p->mark;
20253 { // "case" patterns guard? !':'
20254 if (p->error_indicator) {
20255 D(p->level--);
20256 return NULL;
20257 }
20258 D(fprintf(stderr, "%*c> invalid_case_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"case\" patterns guard? !':'"));
20259 expr_ty _keyword;
20260 void *_opt_var;
20261 UNUSED(_opt_var); // Silence compiler warnings
Nick Coghlan1e7b8582021-04-29 15:58:44 +100020262 pattern_ty patterns_var;
Pablo Galindo08fb8ac2021-03-18 01:03:11 +000020263 if (
20264 (_keyword = _PyPegen_expect_soft_keyword(p, "case")) // soft_keyword='"case"'
20265 &&
20266 (patterns_var = patterns_rule(p)) // patterns
20267 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +020020268 (_opt_var = guard_rule(p), !p->error_indicator) // guard?
Pablo Galindo08fb8ac2021-03-18 01:03:11 +000020269 &&
20270 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 11) // token=':'
20271 )
20272 {
20273 D(fprintf(stderr, "%*c+ invalid_case_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"case\" patterns guard? !':'"));
20274 _res = RAISE_SYNTAX_ERROR ( "expected ':'" );
20275 if (_res == NULL && PyErr_Occurred()) {
20276 p->error_indicator = 1;
20277 D(p->level--);
20278 return NULL;
20279 }
20280 goto done;
20281 }
20282 p->mark = _mark;
20283 D(fprintf(stderr, "%*c%s invalid_case_block[%d-%d]: %s failed!\n", p->level, ' ',
20284 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"case\" patterns guard? !':'"));
20285 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010020286 { // "case" patterns guard? ':' NEWLINE !INDENT
20287 if (p->error_indicator) {
20288 D(p->level--);
20289 return NULL;
20290 }
20291 D(fprintf(stderr, "%*c> invalid_case_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"case\" patterns guard? ':' NEWLINE !INDENT"));
20292 Token * _literal;
20293 void *_opt_var;
20294 UNUSED(_opt_var); // Silence compiler warnings
20295 expr_ty a;
20296 Token * newline_var;
Nick Coghlan1e7b8582021-04-29 15:58:44 +100020297 pattern_ty patterns_var;
Pablo Galindo56c95df2021-04-21 15:28:21 +010020298 if (
20299 (a = _PyPegen_expect_soft_keyword(p, "case")) // soft_keyword='"case"'
20300 &&
20301 (patterns_var = patterns_rule(p)) // patterns
20302 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +020020303 (_opt_var = guard_rule(p), !p->error_indicator) // guard?
Pablo Galindo56c95df2021-04-21 15:28:21 +010020304 &&
20305 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
20306 &&
20307 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20308 &&
20309 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20310 )
20311 {
20312 D(fprintf(stderr, "%*c+ invalid_case_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"case\" patterns guard? ':' NEWLINE !INDENT"));
20313 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'case' statement on line %d" , a -> lineno );
20314 if (_res == NULL && PyErr_Occurred()) {
20315 p->error_indicator = 1;
20316 D(p->level--);
20317 return NULL;
20318 }
20319 goto done;
20320 }
20321 p->mark = _mark;
20322 D(fprintf(stderr, "%*c%s invalid_case_block[%d-%d]: %s failed!\n", p->level, ' ',
20323 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"case\" patterns guard? ':' NEWLINE !INDENT"));
20324 }
Pablo Galindo08fb8ac2021-03-18 01:03:11 +000020325 _res = NULL;
20326 done:
20327 D(p->level--);
20328 return _res;
20329}
20330
Pablo Galindoa8c418d2021-06-18 22:15:57 +010020331// invalid_as_pattern: or_pattern 'as' "_" | or_pattern 'as' !NAME expression
20332static void *
20333invalid_as_pattern_rule(Parser *p)
20334{
20335 D(p->level++);
20336 if (p->error_indicator) {
20337 D(p->level--);
20338 return NULL;
20339 }
20340 void * _res = NULL;
20341 int _mark = p->mark;
20342 { // or_pattern 'as' "_"
20343 if (p->error_indicator) {
20344 D(p->level--);
20345 return NULL;
20346 }
20347 D(fprintf(stderr, "%*c> invalid_as_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "or_pattern 'as' \"_\""));
20348 Token * _keyword;
20349 expr_ty a;
20350 pattern_ty or_pattern_var;
20351 if (
20352 (or_pattern_var = or_pattern_rule(p)) // or_pattern
20353 &&
20354 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
20355 &&
20356 (a = _PyPegen_expect_soft_keyword(p, "_")) // soft_keyword='"_"'
20357 )
20358 {
20359 D(fprintf(stderr, "%*c+ invalid_as_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "or_pattern 'as' \"_\""));
20360 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "cannot use '_' as a target" );
20361 if (_res == NULL && PyErr_Occurred()) {
20362 p->error_indicator = 1;
20363 D(p->level--);
20364 return NULL;
20365 }
20366 goto done;
20367 }
20368 p->mark = _mark;
20369 D(fprintf(stderr, "%*c%s invalid_as_pattern[%d-%d]: %s failed!\n", p->level, ' ',
20370 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "or_pattern 'as' \"_\""));
20371 }
20372 { // or_pattern 'as' !NAME expression
20373 if (p->error_indicator) {
20374 D(p->level--);
20375 return NULL;
20376 }
20377 D(fprintf(stderr, "%*c> invalid_as_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "or_pattern 'as' !NAME expression"));
20378 Token * _keyword;
20379 expr_ty a;
20380 pattern_ty or_pattern_var;
20381 if (
20382 (or_pattern_var = or_pattern_rule(p)) // or_pattern
20383 &&
20384 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
20385 &&
20386 _PyPegen_lookahead_with_name(0, _PyPegen_name_token, p)
20387 &&
20388 (a = expression_rule(p)) // expression
20389 )
20390 {
20391 D(fprintf(stderr, "%*c+ invalid_as_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "or_pattern 'as' !NAME expression"));
20392 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "invalid pattern target" );
20393 if (_res == NULL && PyErr_Occurred()) {
20394 p->error_indicator = 1;
20395 D(p->level--);
20396 return NULL;
20397 }
20398 goto done;
20399 }
20400 p->mark = _mark;
20401 D(fprintf(stderr, "%*c%s invalid_as_pattern[%d-%d]: %s failed!\n", p->level, ' ',
20402 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "or_pattern 'as' !NAME expression"));
20403 }
20404 _res = NULL;
20405 done:
20406 D(p->level--);
20407 return _res;
20408}
20409
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070020410// invalid_class_pattern: name_or_attr '(' invalid_class_argument_pattern
20411static void *
20412invalid_class_pattern_rule(Parser *p)
20413{
20414 D(p->level++);
20415 if (p->error_indicator) {
20416 D(p->level--);
20417 return NULL;
20418 }
20419 void * _res = NULL;
20420 int _mark = p->mark;
20421 { // name_or_attr '(' invalid_class_argument_pattern
20422 if (p->error_indicator) {
20423 D(p->level--);
20424 return NULL;
20425 }
20426 D(fprintf(stderr, "%*c> invalid_class_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' invalid_class_argument_pattern"));
20427 Token * _literal;
20428 asdl_pattern_seq* a;
20429 expr_ty name_or_attr_var;
20430 if (
20431 (name_or_attr_var = name_or_attr_rule(p)) // name_or_attr
20432 &&
20433 (_literal = _PyPegen_expect_token(p, 7)) // token='('
20434 &&
20435 (a = invalid_class_argument_pattern_rule(p)) // invalid_class_argument_pattern
20436 )
20437 {
20438 D(fprintf(stderr, "%*c+ invalid_class_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' invalid_class_argument_pattern"));
20439 _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( PyPegen_first_item ( a , pattern_ty ) , PyPegen_last_item ( a , pattern_ty ) , "positional patterns follow keyword patterns" );
20440 if (_res == NULL && PyErr_Occurred()) {
20441 p->error_indicator = 1;
20442 D(p->level--);
20443 return NULL;
20444 }
20445 goto done;
20446 }
20447 p->mark = _mark;
20448 D(fprintf(stderr, "%*c%s invalid_class_pattern[%d-%d]: %s failed!\n", p->level, ' ',
20449 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "name_or_attr '(' invalid_class_argument_pattern"));
20450 }
20451 _res = NULL;
20452 done:
20453 D(p->level--);
20454 return _res;
20455}
20456
20457// invalid_class_argument_pattern:
20458// | [positional_patterns ','] keyword_patterns ',' positional_patterns
20459static asdl_pattern_seq*
20460invalid_class_argument_pattern_rule(Parser *p)
20461{
20462 D(p->level++);
20463 if (p->error_indicator) {
20464 D(p->level--);
20465 return NULL;
20466 }
20467 asdl_pattern_seq* _res = NULL;
20468 int _mark = p->mark;
20469 { // [positional_patterns ','] keyword_patterns ',' positional_patterns
20470 if (p->error_indicator) {
20471 D(p->level--);
20472 return NULL;
20473 }
20474 D(fprintf(stderr, "%*c> invalid_class_argument_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "[positional_patterns ','] keyword_patterns ',' positional_patterns"));
20475 Token * _literal;
20476 void *_opt_var;
20477 UNUSED(_opt_var); // Silence compiler warnings
20478 asdl_pattern_seq* a;
20479 asdl_seq* keyword_patterns_var;
20480 if (
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000020481 (_opt_var = _tmp_175_rule(p), !p->error_indicator) // [positional_patterns ',']
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070020482 &&
20483 (keyword_patterns_var = keyword_patterns_rule(p)) // keyword_patterns
20484 &&
20485 (_literal = _PyPegen_expect_token(p, 12)) // token=','
20486 &&
20487 (a = positional_patterns_rule(p)) // positional_patterns
20488 )
20489 {
20490 D(fprintf(stderr, "%*c+ invalid_class_argument_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "[positional_patterns ','] keyword_patterns ',' positional_patterns"));
20491 _res = a;
20492 if (_res == NULL && PyErr_Occurred()) {
20493 p->error_indicator = 1;
20494 D(p->level--);
20495 return NULL;
20496 }
20497 goto done;
20498 }
20499 p->mark = _mark;
20500 D(fprintf(stderr, "%*c%s invalid_class_argument_pattern[%d-%d]: %s failed!\n", p->level, ' ',
20501 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "[positional_patterns ','] keyword_patterns ',' positional_patterns"));
20502 }
20503 _res = NULL;
20504 done:
20505 D(p->level--);
20506 return _res;
20507}
20508
Pablo Galindo56c95df2021-04-21 15:28:21 +010020509// invalid_if_stmt:
20510// | 'if' named_expression NEWLINE
20511// | 'if' named_expression ':' NEWLINE !INDENT
Pablo Galindob86ed8e2021-04-12 16:59:30 +010020512static void *
20513invalid_if_stmt_rule(Parser *p)
20514{
20515 D(p->level++);
20516 if (p->error_indicator) {
20517 D(p->level--);
20518 return NULL;
20519 }
20520 void * _res = NULL;
20521 int _mark = p->mark;
20522 { // 'if' named_expression NEWLINE
20523 if (p->error_indicator) {
20524 D(p->level--);
20525 return NULL;
20526 }
20527 D(fprintf(stderr, "%*c> invalid_if_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' named_expression NEWLINE"));
20528 Token * _keyword;
20529 expr_ty named_expression_var;
20530 Token * newline_var;
20531 if (
20532 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
20533 &&
20534 (named_expression_var = named_expression_rule(p)) // named_expression
20535 &&
20536 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20537 )
20538 {
20539 D(fprintf(stderr, "%*c+ invalid_if_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' named_expression NEWLINE"));
20540 _res = RAISE_SYNTAX_ERROR ( "expected ':'" );
20541 if (_res == NULL && PyErr_Occurred()) {
20542 p->error_indicator = 1;
20543 D(p->level--);
20544 return NULL;
20545 }
20546 goto done;
20547 }
20548 p->mark = _mark;
20549 D(fprintf(stderr, "%*c%s invalid_if_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20550 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' named_expression NEWLINE"));
20551 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010020552 { // 'if' named_expression ':' NEWLINE !INDENT
20553 if (p->error_indicator) {
20554 D(p->level--);
20555 return NULL;
20556 }
20557 D(fprintf(stderr, "%*c> invalid_if_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' named_expression ':' NEWLINE !INDENT"));
20558 Token * _literal;
20559 Token * a;
20560 expr_ty a_1;
20561 Token * newline_var;
20562 if (
20563 (a = _PyPegen_expect_token(p, 510)) // token='if'
20564 &&
20565 (a_1 = named_expression_rule(p)) // named_expression
20566 &&
20567 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
20568 &&
20569 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20570 &&
20571 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20572 )
20573 {
20574 D(fprintf(stderr, "%*c+ invalid_if_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' named_expression ':' NEWLINE !INDENT"));
20575 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'if' statement on line %d" , a -> lineno );
20576 if (_res == NULL && PyErr_Occurred()) {
20577 p->error_indicator = 1;
20578 D(p->level--);
20579 return NULL;
20580 }
20581 goto done;
20582 }
20583 p->mark = _mark;
20584 D(fprintf(stderr, "%*c%s invalid_if_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20585 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' named_expression ':' NEWLINE !INDENT"));
20586 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010020587 _res = NULL;
20588 done:
20589 D(p->level--);
20590 return _res;
20591}
20592
Pablo Galindo56c95df2021-04-21 15:28:21 +010020593// invalid_elif_stmt:
20594// | 'elif' named_expression NEWLINE
20595// | 'elif' named_expression ':' NEWLINE !INDENT
Pablo Galindob86ed8e2021-04-12 16:59:30 +010020596static void *
20597invalid_elif_stmt_rule(Parser *p)
20598{
20599 D(p->level++);
20600 if (p->error_indicator) {
20601 D(p->level--);
20602 return NULL;
20603 }
20604 void * _res = NULL;
20605 int _mark = p->mark;
20606 { // 'elif' named_expression NEWLINE
20607 if (p->error_indicator) {
20608 D(p->level--);
20609 return NULL;
20610 }
20611 D(fprintf(stderr, "%*c> invalid_elif_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'elif' named_expression NEWLINE"));
20612 Token * _keyword;
20613 expr_ty named_expression_var;
20614 Token * newline_var;
20615 if (
20616 (_keyword = _PyPegen_expect_token(p, 515)) // token='elif'
20617 &&
20618 (named_expression_var = named_expression_rule(p)) // named_expression
20619 &&
20620 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20621 )
20622 {
20623 D(fprintf(stderr, "%*c+ invalid_elif_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'elif' named_expression NEWLINE"));
20624 _res = RAISE_SYNTAX_ERROR ( "expected ':'" );
20625 if (_res == NULL && PyErr_Occurred()) {
20626 p->error_indicator = 1;
20627 D(p->level--);
20628 return NULL;
20629 }
20630 goto done;
20631 }
20632 p->mark = _mark;
20633 D(fprintf(stderr, "%*c%s invalid_elif_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20634 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'elif' named_expression NEWLINE"));
20635 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010020636 { // 'elif' named_expression ':' NEWLINE !INDENT
20637 if (p->error_indicator) {
20638 D(p->level--);
20639 return NULL;
20640 }
20641 D(fprintf(stderr, "%*c> invalid_elif_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'elif' named_expression ':' NEWLINE !INDENT"));
20642 Token * _literal;
20643 Token * a;
20644 expr_ty named_expression_var;
20645 Token * newline_var;
20646 if (
20647 (a = _PyPegen_expect_token(p, 515)) // token='elif'
20648 &&
20649 (named_expression_var = named_expression_rule(p)) // named_expression
20650 &&
20651 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
20652 &&
20653 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20654 &&
20655 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20656 )
20657 {
20658 D(fprintf(stderr, "%*c+ invalid_elif_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'elif' named_expression ':' NEWLINE !INDENT"));
20659 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'elif' statement on line %d" , a -> lineno );
20660 if (_res == NULL && PyErr_Occurred()) {
20661 p->error_indicator = 1;
20662 D(p->level--);
20663 return NULL;
20664 }
20665 goto done;
20666 }
20667 p->mark = _mark;
20668 D(fprintf(stderr, "%*c%s invalid_elif_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20669 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'elif' named_expression ':' NEWLINE !INDENT"));
20670 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010020671 _res = NULL;
20672 done:
20673 D(p->level--);
20674 return _res;
20675}
20676
Pablo Galindo56c95df2021-04-21 15:28:21 +010020677// invalid_else_stmt: 'else' ':' NEWLINE !INDENT
20678static void *
20679invalid_else_stmt_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 { // 'else' ':' NEWLINE !INDENT
20689 if (p->error_indicator) {
20690 D(p->level--);
20691 return NULL;
20692 }
20693 D(fprintf(stderr, "%*c> invalid_else_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'else' ':' NEWLINE !INDENT"));
20694 Token * _literal;
20695 Token * a;
20696 Token * newline_var;
20697 if (
20698 (a = _PyPegen_expect_token(p, 516)) // token='else'
20699 &&
20700 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
20701 &&
20702 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20703 &&
20704 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20705 )
20706 {
20707 D(fprintf(stderr, "%*c+ invalid_else_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'else' ':' NEWLINE !INDENT"));
20708 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'else' statement on line %d" , a -> lineno );
20709 if (_res == NULL && PyErr_Occurred()) {
20710 p->error_indicator = 1;
20711 D(p->level--);
20712 return NULL;
20713 }
20714 goto done;
20715 }
20716 p->mark = _mark;
20717 D(fprintf(stderr, "%*c%s invalid_else_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20718 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'else' ':' NEWLINE !INDENT"));
20719 }
20720 _res = NULL;
20721 done:
20722 D(p->level--);
20723 return _res;
20724}
20725
20726// invalid_while_stmt:
20727// | 'while' named_expression NEWLINE
20728// | 'while' named_expression ':' NEWLINE !INDENT
Pablo Galindob86ed8e2021-04-12 16:59:30 +010020729static void *
20730invalid_while_stmt_rule(Parser *p)
20731{
20732 D(p->level++);
20733 if (p->error_indicator) {
20734 D(p->level--);
20735 return NULL;
20736 }
20737 void * _res = NULL;
20738 int _mark = p->mark;
20739 { // 'while' named_expression NEWLINE
20740 if (p->error_indicator) {
20741 D(p->level--);
20742 return NULL;
20743 }
20744 D(fprintf(stderr, "%*c> invalid_while_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'while' named_expression NEWLINE"));
20745 Token * _keyword;
20746 expr_ty named_expression_var;
20747 Token * newline_var;
20748 if (
20749 (_keyword = _PyPegen_expect_token(p, 512)) // token='while'
20750 &&
20751 (named_expression_var = named_expression_rule(p)) // named_expression
20752 &&
20753 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20754 )
20755 {
20756 D(fprintf(stderr, "%*c+ invalid_while_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'while' named_expression NEWLINE"));
20757 _res = RAISE_SYNTAX_ERROR ( "expected ':'" );
20758 if (_res == NULL && PyErr_Occurred()) {
20759 p->error_indicator = 1;
20760 D(p->level--);
20761 return NULL;
20762 }
20763 goto done;
20764 }
20765 p->mark = _mark;
20766 D(fprintf(stderr, "%*c%s invalid_while_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20767 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'while' named_expression NEWLINE"));
20768 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010020769 { // 'while' named_expression ':' NEWLINE !INDENT
20770 if (p->error_indicator) {
20771 D(p->level--);
20772 return NULL;
20773 }
20774 D(fprintf(stderr, "%*c> invalid_while_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'while' named_expression ':' NEWLINE !INDENT"));
20775 Token * _literal;
20776 Token * a;
20777 expr_ty named_expression_var;
20778 Token * newline_var;
20779 if (
20780 (a = _PyPegen_expect_token(p, 512)) // token='while'
20781 &&
20782 (named_expression_var = named_expression_rule(p)) // named_expression
20783 &&
20784 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
20785 &&
20786 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20787 &&
20788 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20789 )
20790 {
20791 D(fprintf(stderr, "%*c+ invalid_while_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'while' named_expression ':' NEWLINE !INDENT"));
20792 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'while' statement on line %d" , a -> lineno );
20793 if (_res == NULL && PyErr_Occurred()) {
20794 p->error_indicator = 1;
20795 D(p->level--);
20796 return NULL;
20797 }
20798 goto done;
20799 }
20800 p->mark = _mark;
20801 D(fprintf(stderr, "%*c%s invalid_while_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20802 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'while' named_expression ':' NEWLINE !INDENT"));
20803 }
20804 _res = NULL;
20805 done:
20806 D(p->level--);
20807 return _res;
20808}
20809
20810// invalid_for_stmt: ASYNC? 'for' star_targets 'in' star_expressions ':' NEWLINE !INDENT
20811static void *
20812invalid_for_stmt_rule(Parser *p)
20813{
20814 D(p->level++);
20815 if (p->error_indicator) {
20816 D(p->level--);
20817 return NULL;
20818 }
20819 void * _res = NULL;
20820 int _mark = p->mark;
20821 { // ASYNC? 'for' star_targets 'in' star_expressions ':' NEWLINE !INDENT
20822 if (p->error_indicator) {
20823 D(p->level--);
20824 return NULL;
20825 }
20826 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"));
20827 Token * _keyword;
20828 Token * _literal;
20829 void *_opt_var;
20830 UNUSED(_opt_var); // Silence compiler warnings
20831 Token * a;
20832 Token * newline_var;
20833 expr_ty star_expressions_var;
20834 expr_ty star_targets_var;
20835 if (
Łukasz Langa5c9cab52021-10-19 22:31:18 +020020836 (_opt_var = _PyPegen_expect_token(p, ASYNC), !p->error_indicator) // ASYNC?
Pablo Galindo56c95df2021-04-21 15:28:21 +010020837 &&
20838 (a = _PyPegen_expect_token(p, 517)) // token='for'
20839 &&
20840 (star_targets_var = star_targets_rule(p)) // star_targets
20841 &&
20842 (_keyword = _PyPegen_expect_token(p, 518)) // token='in'
20843 &&
20844 (star_expressions_var = star_expressions_rule(p)) // star_expressions
20845 &&
20846 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
20847 &&
20848 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20849 &&
20850 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20851 )
20852 {
20853 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"));
20854 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'for' statement on line %d" , a -> lineno );
20855 if (_res == NULL && PyErr_Occurred()) {
20856 p->error_indicator = 1;
20857 D(p->level--);
20858 return NULL;
20859 }
20860 goto done;
20861 }
20862 p->mark = _mark;
20863 D(fprintf(stderr, "%*c%s invalid_for_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20864 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'for' star_targets 'in' star_expressions ':' NEWLINE !INDENT"));
20865 }
20866 _res = NULL;
20867 done:
20868 D(p->level--);
20869 return _res;
20870}
20871
20872// invalid_def_raw:
20873// | ASYNC? 'def' NAME '(' params? ')' ['->' expression] ':' NEWLINE !INDENT
20874static void *
20875invalid_def_raw_rule(Parser *p)
20876{
20877 D(p->level++);
20878 if (p->error_indicator) {
20879 D(p->level--);
20880 return NULL;
20881 }
20882 void * _res = NULL;
20883 int _mark = p->mark;
20884 { // ASYNC? 'def' NAME '(' params? ')' ['->' expression] ':' NEWLINE !INDENT
20885 if (p->error_indicator) {
20886 D(p->level--);
20887 return NULL;
20888 }
20889 D(fprintf(stderr, "%*c> invalid_def_raw[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC? 'def' NAME '(' params? ')' ['->' expression] ':' NEWLINE !INDENT"));
20890 Token * _literal;
20891 Token * _literal_1;
20892 Token * _literal_2;
20893 void *_opt_var;
20894 UNUSED(_opt_var); // Silence compiler warnings
20895 void *_opt_var_1;
20896 UNUSED(_opt_var_1); // Silence compiler warnings
20897 void *_opt_var_2;
20898 UNUSED(_opt_var_2); // Silence compiler warnings
20899 Token * a;
20900 expr_ty name_var;
20901 Token * newline_var;
20902 if (
Łukasz Langa5c9cab52021-10-19 22:31:18 +020020903 (_opt_var = _PyPegen_expect_token(p, ASYNC), !p->error_indicator) // ASYNC?
Pablo Galindo56c95df2021-04-21 15:28:21 +010020904 &&
20905 (a = _PyPegen_expect_token(p, 526)) // token='def'
20906 &&
20907 (name_var = _PyPegen_name_token(p)) // NAME
20908 &&
20909 (_literal = _PyPegen_expect_token(p, 7)) // token='('
20910 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +020020911 (_opt_var_1 = params_rule(p), !p->error_indicator) // params?
Pablo Galindo56c95df2021-04-21 15:28:21 +010020912 &&
20913 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
20914 &&
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000020915 (_opt_var_2 = _tmp_176_rule(p), !p->error_indicator) // ['->' expression]
Pablo Galindo56c95df2021-04-21 15:28:21 +010020916 &&
20917 (_literal_2 = _PyPegen_expect_token(p, 11)) // token=':'
20918 &&
20919 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20920 &&
20921 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20922 )
20923 {
20924 D(fprintf(stderr, "%*c+ invalid_def_raw[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC? 'def' NAME '(' params? ')' ['->' expression] ':' NEWLINE !INDENT"));
20925 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after function definition on line %d" , a -> lineno );
20926 if (_res == NULL && PyErr_Occurred()) {
20927 p->error_indicator = 1;
20928 D(p->level--);
20929 return NULL;
20930 }
20931 goto done;
20932 }
20933 p->mark = _mark;
20934 D(fprintf(stderr, "%*c%s invalid_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
20935 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'def' NAME '(' params? ')' ['->' expression] ':' NEWLINE !INDENT"));
20936 }
20937 _res = NULL;
20938 done:
20939 D(p->level--);
20940 return _res;
20941}
20942
20943// invalid_class_def_raw: 'class' NAME ['(' arguments? ')'] ':' NEWLINE !INDENT
20944static void *
20945invalid_class_def_raw_rule(Parser *p)
20946{
20947 D(p->level++);
20948 if (p->error_indicator) {
20949 D(p->level--);
20950 return NULL;
20951 }
20952 void * _res = NULL;
20953 int _mark = p->mark;
20954 { // 'class' NAME ['(' arguments? ')'] ':' NEWLINE !INDENT
20955 if (p->error_indicator) {
20956 D(p->level--);
20957 return NULL;
20958 }
20959 D(fprintf(stderr, "%*c> invalid_class_def_raw[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'class' NAME ['(' arguments? ')'] ':' NEWLINE !INDENT"));
20960 Token * _literal;
20961 void *_opt_var;
20962 UNUSED(_opt_var); // Silence compiler warnings
20963 Token * a;
20964 expr_ty name_var;
20965 Token * newline_var;
20966 if (
20967 (a = _PyPegen_expect_token(p, 527)) // token='class'
20968 &&
20969 (name_var = _PyPegen_name_token(p)) // NAME
20970 &&
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000020971 (_opt_var = _tmp_177_rule(p), !p->error_indicator) // ['(' arguments? ')']
Pablo Galindo56c95df2021-04-21 15:28:21 +010020972 &&
20973 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
20974 &&
20975 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20976 &&
20977 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20978 )
20979 {
20980 D(fprintf(stderr, "%*c+ invalid_class_def_raw[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'class' NAME ['(' arguments? ')'] ':' NEWLINE !INDENT"));
20981 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after class definition on line %d" , a -> lineno );
20982 if (_res == NULL && PyErr_Occurred()) {
20983 p->error_indicator = 1;
20984 D(p->level--);
20985 return NULL;
20986 }
20987 goto done;
20988 }
20989 p->mark = _mark;
20990 D(fprintf(stderr, "%*c%s invalid_class_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
20991 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'class' NAME ['(' arguments? ')'] ':' NEWLINE !INDENT"));
20992 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010020993 _res = NULL;
20994 done:
20995 D(p->level--);
20996 return _res;
20997}
20998
Pablo Galindoda743502021-04-15 14:06:39 +010020999// invalid_double_starred_kvpairs:
21000// | ','.double_starred_kvpair+ ',' invalid_kvpair
21001// | expression ':' '*' bitwise_or
21002// | expression ':' &('}' | ',')
21003static void *
21004invalid_double_starred_kvpairs_rule(Parser *p)
21005{
21006 D(p->level++);
21007 if (p->error_indicator) {
21008 D(p->level--);
21009 return NULL;
21010 }
21011 void * _res = NULL;
21012 int _mark = p->mark;
21013 { // ','.double_starred_kvpair+ ',' invalid_kvpair
21014 if (p->error_indicator) {
21015 D(p->level--);
21016 return NULL;
21017 }
21018 D(fprintf(stderr, "%*c> invalid_double_starred_kvpairs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.double_starred_kvpair+ ',' invalid_kvpair"));
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000021019 asdl_seq * _gather_178_var;
Pablo Galindoda743502021-04-15 14:06:39 +010021020 Token * _literal;
21021 void *invalid_kvpair_var;
21022 if (
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000021023 (_gather_178_var = _gather_178_rule(p)) // ','.double_starred_kvpair+
Pablo Galindoda743502021-04-15 14:06:39 +010021024 &&
21025 (_literal = _PyPegen_expect_token(p, 12)) // token=','
21026 &&
21027 (invalid_kvpair_var = invalid_kvpair_rule(p)) // invalid_kvpair
21028 )
21029 {
21030 D(fprintf(stderr, "%*c+ invalid_double_starred_kvpairs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.double_starred_kvpair+ ',' invalid_kvpair"));
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000021031 _res = _PyPegen_dummy_name(p, _gather_178_var, _literal, invalid_kvpair_var);
Pablo Galindoda743502021-04-15 14:06:39 +010021032 goto done;
21033 }
21034 p->mark = _mark;
21035 D(fprintf(stderr, "%*c%s invalid_double_starred_kvpairs[%d-%d]: %s failed!\n", p->level, ' ',
21036 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.double_starred_kvpair+ ',' invalid_kvpair"));
21037 }
21038 { // expression ':' '*' bitwise_or
21039 if (p->error_indicator) {
21040 D(p->level--);
21041 return NULL;
21042 }
21043 D(fprintf(stderr, "%*c> invalid_double_starred_kvpairs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':' '*' bitwise_or"));
21044 Token * _literal;
21045 Token * a;
21046 expr_ty bitwise_or_var;
21047 expr_ty expression_var;
21048 if (
21049 (expression_var = expression_rule(p)) // expression
21050 &&
21051 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
21052 &&
21053 (a = _PyPegen_expect_token(p, 16)) // token='*'
21054 &&
21055 (bitwise_or_var = bitwise_or_rule(p)) // bitwise_or
21056 )
21057 {
21058 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 +010021059 _res = RAISE_SYNTAX_ERROR_STARTING_FROM ( a , "cannot use a starred expression in a dictionary value" );
Pablo Galindoda743502021-04-15 14:06:39 +010021060 if (_res == NULL && PyErr_Occurred()) {
21061 p->error_indicator = 1;
21062 D(p->level--);
21063 return NULL;
21064 }
21065 goto done;
21066 }
21067 p->mark = _mark;
21068 D(fprintf(stderr, "%*c%s invalid_double_starred_kvpairs[%d-%d]: %s failed!\n", p->level, ' ',
21069 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' '*' bitwise_or"));
21070 }
21071 { // expression ':' &('}' | ',')
21072 if (p->error_indicator) {
21073 D(p->level--);
21074 return NULL;
21075 }
21076 D(fprintf(stderr, "%*c> invalid_double_starred_kvpairs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':' &('}' | ',')"));
21077 Token * a;
21078 expr_ty expression_var;
21079 if (
21080 (expression_var = expression_rule(p)) // expression
21081 &&
21082 (a = _PyPegen_expect_token(p, 11)) // token=':'
21083 &&
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000021084 _PyPegen_lookahead(1, _tmp_180_rule, p)
Pablo Galindoda743502021-04-15 14:06:39 +010021085 )
21086 {
21087 D(fprintf(stderr, "%*c+ invalid_double_starred_kvpairs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':' &('}' | ',')"));
21088 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "expression expected after dictionary key and ':'" );
21089 if (_res == NULL && PyErr_Occurred()) {
21090 p->error_indicator = 1;
21091 D(p->level--);
21092 return NULL;
21093 }
21094 goto done;
21095 }
21096 p->mark = _mark;
21097 D(fprintf(stderr, "%*c%s invalid_double_starred_kvpairs[%d-%d]: %s failed!\n", p->level, ' ',
21098 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' &('}' | ',')"));
21099 }
21100 _res = NULL;
21101 done:
21102 D(p->level--);
21103 return _res;
21104}
21105
21106// invalid_kvpair: expression !(':') | expression ':' '*' bitwise_or | expression ':'
21107static void *
21108invalid_kvpair_rule(Parser *p)
21109{
21110 D(p->level++);
21111 if (p->error_indicator) {
21112 D(p->level--);
21113 return NULL;
21114 }
21115 void * _res = NULL;
21116 int _mark = p->mark;
21117 { // expression !(':')
21118 if (p->error_indicator) {
21119 D(p->level--);
21120 return NULL;
21121 }
21122 D(fprintf(stderr, "%*c> invalid_kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression !(':')"));
21123 expr_ty a;
21124 if (
21125 (a = expression_rule(p)) // expression
21126 &&
21127 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 11) // token=(':')
21128 )
21129 {
21130 D(fprintf(stderr, "%*c+ invalid_kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression !(':')"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010021131 _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 +010021132 if (_res == NULL && PyErr_Occurred()) {
21133 p->error_indicator = 1;
21134 D(p->level--);
21135 return NULL;
21136 }
21137 goto done;
21138 }
21139 p->mark = _mark;
21140 D(fprintf(stderr, "%*c%s invalid_kvpair[%d-%d]: %s failed!\n", p->level, ' ',
21141 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression !(':')"));
21142 }
21143 { // expression ':' '*' bitwise_or
21144 if (p->error_indicator) {
21145 D(p->level--);
21146 return NULL;
21147 }
21148 D(fprintf(stderr, "%*c> invalid_kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':' '*' bitwise_or"));
21149 Token * _literal;
21150 Token * a;
21151 expr_ty bitwise_or_var;
21152 expr_ty expression_var;
21153 if (
21154 (expression_var = expression_rule(p)) // expression
21155 &&
21156 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
21157 &&
21158 (a = _PyPegen_expect_token(p, 16)) // token='*'
21159 &&
21160 (bitwise_or_var = bitwise_or_rule(p)) // bitwise_or
21161 )
21162 {
21163 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 +010021164 _res = RAISE_SYNTAX_ERROR_STARTING_FROM ( a , "cannot use a starred expression in a dictionary value" );
Pablo Galindoda743502021-04-15 14:06:39 +010021165 if (_res == NULL && PyErr_Occurred()) {
21166 p->error_indicator = 1;
21167 D(p->level--);
21168 return NULL;
21169 }
21170 goto done;
21171 }
21172 p->mark = _mark;
21173 D(fprintf(stderr, "%*c%s invalid_kvpair[%d-%d]: %s failed!\n", p->level, ' ',
21174 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' '*' bitwise_or"));
21175 }
21176 { // expression ':'
21177 if (p->error_indicator) {
21178 D(p->level--);
21179 return NULL;
21180 }
21181 D(fprintf(stderr, "%*c> invalid_kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':'"));
21182 Token * a;
21183 expr_ty expression_var;
21184 if (
21185 (expression_var = expression_rule(p)) // expression
21186 &&
21187 (a = _PyPegen_expect_token(p, 11)) // token=':'
21188 )
21189 {
21190 D(fprintf(stderr, "%*c+ invalid_kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':'"));
21191 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "expression expected after dictionary key and ':'" );
21192 if (_res == NULL && PyErr_Occurred()) {
21193 p->error_indicator = 1;
21194 D(p->level--);
21195 return NULL;
21196 }
21197 goto done;
21198 }
21199 p->mark = _mark;
21200 D(fprintf(stderr, "%*c%s invalid_kvpair[%d-%d]: %s failed!\n", p->level, ' ',
21201 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':'"));
21202 }
21203 _res = NULL;
21204 done:
21205 D(p->level--);
21206 return _res;
21207}
21208
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021209// _loop0_1: NEWLINE
21210static asdl_seq *
21211_loop0_1_rule(Parser *p)
21212{
21213 D(p->level++);
21214 if (p->error_indicator) {
21215 D(p->level--);
21216 return NULL;
21217 }
21218 void *_res = NULL;
21219 int _mark = p->mark;
21220 int _start_mark = p->mark;
21221 void **_children = PyMem_Malloc(sizeof(void *));
21222 if (!_children) {
21223 p->error_indicator = 1;
21224 PyErr_NoMemory();
21225 D(p->level--);
21226 return NULL;
21227 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010021228 Py_ssize_t _children_capacity = 1;
21229 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021230 { // NEWLINE
21231 if (p->error_indicator) {
21232 D(p->level--);
21233 return NULL;
21234 }
21235 D(fprintf(stderr, "%*c> _loop0_1[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
21236 Token * newline_var;
21237 while (
21238 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
21239 )
21240 {
21241 _res = newline_var;
21242 if (_n == _children_capacity) {
21243 _children_capacity *= 2;
21244 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21245 if (!_new_children) {
21246 p->error_indicator = 1;
21247 PyErr_NoMemory();
21248 D(p->level--);
21249 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000021250 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021251 _children = _new_children;
21252 }
21253 _children[_n++] = _res;
21254 _mark = p->mark;
21255 }
21256 p->mark = _mark;
21257 D(fprintf(stderr, "%*c%s _loop0_1[%d-%d]: %s failed!\n", p->level, ' ',
21258 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
21259 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021260 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021261 if (!_seq) {
21262 PyMem_Free(_children);
21263 p->error_indicator = 1;
21264 PyErr_NoMemory();
21265 D(p->level--);
21266 return NULL;
21267 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021268 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021269 PyMem_Free(_children);
21270 _PyPegen_insert_memo(p, _start_mark, _loop0_1_type, _seq);
21271 D(p->level--);
21272 return _seq;
21273}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000021274
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021275// _loop0_2: NEWLINE
21276static asdl_seq *
21277_loop0_2_rule(Parser *p)
21278{
21279 D(p->level++);
21280 if (p->error_indicator) {
21281 D(p->level--);
21282 return NULL;
21283 }
21284 void *_res = NULL;
21285 int _mark = p->mark;
21286 int _start_mark = p->mark;
21287 void **_children = PyMem_Malloc(sizeof(void *));
21288 if (!_children) {
21289 p->error_indicator = 1;
21290 PyErr_NoMemory();
21291 D(p->level--);
21292 return NULL;
21293 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010021294 Py_ssize_t _children_capacity = 1;
21295 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021296 { // NEWLINE
21297 if (p->error_indicator) {
21298 D(p->level--);
21299 return NULL;
21300 }
21301 D(fprintf(stderr, "%*c> _loop0_2[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
21302 Token * newline_var;
21303 while (
21304 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
21305 )
21306 {
21307 _res = newline_var;
21308 if (_n == _children_capacity) {
21309 _children_capacity *= 2;
21310 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21311 if (!_new_children) {
21312 p->error_indicator = 1;
21313 PyErr_NoMemory();
21314 D(p->level--);
21315 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000021316 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021317 _children = _new_children;
21318 }
21319 _children[_n++] = _res;
21320 _mark = p->mark;
21321 }
21322 p->mark = _mark;
21323 D(fprintf(stderr, "%*c%s _loop0_2[%d-%d]: %s failed!\n", p->level, ' ',
21324 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
21325 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021326 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021327 if (!_seq) {
21328 PyMem_Free(_children);
21329 p->error_indicator = 1;
21330 PyErr_NoMemory();
21331 D(p->level--);
21332 return NULL;
21333 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021334 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021335 PyMem_Free(_children);
21336 _PyPegen_insert_memo(p, _start_mark, _loop0_2_type, _seq);
21337 D(p->level--);
21338 return _seq;
21339}
21340
21341// _loop0_4: ',' expression
21342static asdl_seq *
21343_loop0_4_rule(Parser *p)
21344{
21345 D(p->level++);
21346 if (p->error_indicator) {
21347 D(p->level--);
21348 return NULL;
21349 }
21350 void *_res = NULL;
21351 int _mark = p->mark;
21352 int _start_mark = p->mark;
21353 void **_children = PyMem_Malloc(sizeof(void *));
21354 if (!_children) {
21355 p->error_indicator = 1;
21356 PyErr_NoMemory();
21357 D(p->level--);
21358 return NULL;
21359 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010021360 Py_ssize_t _children_capacity = 1;
21361 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021362 { // ',' expression
21363 if (p->error_indicator) {
21364 D(p->level--);
21365 return NULL;
21366 }
21367 D(fprintf(stderr, "%*c> _loop0_4[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
21368 Token * _literal;
21369 expr_ty elem;
21370 while (
21371 (_literal = _PyPegen_expect_token(p, 12)) // token=','
21372 &&
21373 (elem = expression_rule(p)) // expression
21374 )
21375 {
21376 _res = elem;
21377 if (_res == NULL && PyErr_Occurred()) {
21378 p->error_indicator = 1;
21379 PyMem_Free(_children);
21380 D(p->level--);
21381 return NULL;
21382 }
21383 if (_n == _children_capacity) {
21384 _children_capacity *= 2;
21385 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21386 if (!_new_children) {
21387 p->error_indicator = 1;
21388 PyErr_NoMemory();
21389 D(p->level--);
21390 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000021391 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021392 _children = _new_children;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000021393 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021394 _children[_n++] = _res;
21395 _mark = p->mark;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000021396 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021397 p->mark = _mark;
21398 D(fprintf(stderr, "%*c%s _loop0_4[%d-%d]: %s failed!\n", p->level, ' ',
21399 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000021400 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021401 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021402 if (!_seq) {
21403 PyMem_Free(_children);
21404 p->error_indicator = 1;
21405 PyErr_NoMemory();
21406 D(p->level--);
21407 return NULL;
21408 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021409 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021410 PyMem_Free(_children);
21411 _PyPegen_insert_memo(p, _start_mark, _loop0_4_type, _seq);
21412 D(p->level--);
21413 return _seq;
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021414}
21415
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021416// _gather_3: expression _loop0_4
21417static asdl_seq *
21418_gather_3_rule(Parser *p)
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021419{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021420 D(p->level++);
21421 if (p->error_indicator) {
21422 D(p->level--);
21423 return NULL;
21424 }
21425 asdl_seq * _res = NULL;
21426 int _mark = p->mark;
21427 { // expression _loop0_4
21428 if (p->error_indicator) {
21429 D(p->level--);
21430 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000021431 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021432 D(fprintf(stderr, "%*c> _gather_3[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression _loop0_4"));
21433 expr_ty elem;
21434 asdl_seq * seq;
21435 if (
21436 (elem = expression_rule(p)) // expression
21437 &&
21438 (seq = _loop0_4_rule(p)) // _loop0_4
21439 )
21440 {
21441 D(fprintf(stderr, "%*c+ _gather_3[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression _loop0_4"));
21442 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
21443 goto done;
21444 }
21445 p->mark = _mark;
21446 D(fprintf(stderr, "%*c%s _gather_3[%d-%d]: %s failed!\n", p->level, ' ',
21447 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_4"));
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000021448 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021449 _res = NULL;
21450 done:
21451 D(p->level--);
21452 return _res;
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021453}
21454
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021455// _loop0_6: ',' expression
21456static asdl_seq *
21457_loop0_6_rule(Parser *p)
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021458{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021459 D(p->level++);
21460 if (p->error_indicator) {
21461 D(p->level--);
21462 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000021463 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021464 void *_res = NULL;
21465 int _mark = p->mark;
21466 int _start_mark = p->mark;
21467 void **_children = PyMem_Malloc(sizeof(void *));
21468 if (!_children) {
21469 p->error_indicator = 1;
21470 PyErr_NoMemory();
21471 D(p->level--);
21472 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000021473 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010021474 Py_ssize_t _children_capacity = 1;
21475 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021476 { // ',' expression
21477 if (p->error_indicator) {
21478 D(p->level--);
21479 return NULL;
21480 }
21481 D(fprintf(stderr, "%*c> _loop0_6[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
21482 Token * _literal;
21483 expr_ty elem;
21484 while (
21485 (_literal = _PyPegen_expect_token(p, 12)) // token=','
21486 &&
21487 (elem = expression_rule(p)) // expression
21488 )
21489 {
21490 _res = elem;
21491 if (_res == NULL && PyErr_Occurred()) {
21492 p->error_indicator = 1;
21493 PyMem_Free(_children);
21494 D(p->level--);
21495 return NULL;
21496 }
21497 if (_n == _children_capacity) {
21498 _children_capacity *= 2;
21499 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21500 if (!_new_children) {
21501 p->error_indicator = 1;
21502 PyErr_NoMemory();
21503 D(p->level--);
21504 return NULL;
21505 }
21506 _children = _new_children;
21507 }
21508 _children[_n++] = _res;
21509 _mark = p->mark;
21510 }
21511 p->mark = _mark;
21512 D(fprintf(stderr, "%*c%s _loop0_6[%d-%d]: %s failed!\n", p->level, ' ',
21513 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
21514 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021515 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021516 if (!_seq) {
21517 PyMem_Free(_children);
21518 p->error_indicator = 1;
21519 PyErr_NoMemory();
21520 D(p->level--);
21521 return NULL;
21522 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021523 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021524 PyMem_Free(_children);
21525 _PyPegen_insert_memo(p, _start_mark, _loop0_6_type, _seq);
21526 D(p->level--);
21527 return _seq;
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021528}
21529
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021530// _gather_5: expression _loop0_6
21531static asdl_seq *
21532_gather_5_rule(Parser *p)
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021533{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021534 D(p->level++);
21535 if (p->error_indicator) {
21536 D(p->level--);
21537 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000021538 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021539 asdl_seq * _res = NULL;
21540 int _mark = p->mark;
21541 { // expression _loop0_6
21542 if (p->error_indicator) {
21543 D(p->level--);
21544 return NULL;
21545 }
21546 D(fprintf(stderr, "%*c> _gather_5[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression _loop0_6"));
21547 expr_ty elem;
21548 asdl_seq * seq;
21549 if (
21550 (elem = expression_rule(p)) // expression
21551 &&
21552 (seq = _loop0_6_rule(p)) // _loop0_6
21553 )
21554 {
21555 D(fprintf(stderr, "%*c+ _gather_5[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression _loop0_6"));
21556 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
21557 goto done;
21558 }
21559 p->mark = _mark;
21560 D(fprintf(stderr, "%*c%s _gather_5[%d-%d]: %s failed!\n", p->level, ' ',
21561 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_6"));
21562 }
21563 _res = NULL;
21564 done:
21565 D(p->level--);
21566 return _res;
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021567}
21568
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021569// _loop0_8: ',' expression
21570static asdl_seq *
21571_loop0_8_rule(Parser *p)
21572{
21573 D(p->level++);
21574 if (p->error_indicator) {
21575 D(p->level--);
21576 return NULL;
21577 }
21578 void *_res = NULL;
21579 int _mark = p->mark;
21580 int _start_mark = p->mark;
21581 void **_children = PyMem_Malloc(sizeof(void *));
21582 if (!_children) {
21583 p->error_indicator = 1;
21584 PyErr_NoMemory();
21585 D(p->level--);
21586 return NULL;
21587 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010021588 Py_ssize_t _children_capacity = 1;
21589 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021590 { // ',' expression
21591 if (p->error_indicator) {
21592 D(p->level--);
21593 return NULL;
21594 }
21595 D(fprintf(stderr, "%*c> _loop0_8[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
21596 Token * _literal;
21597 expr_ty elem;
21598 while (
21599 (_literal = _PyPegen_expect_token(p, 12)) // token=','
21600 &&
21601 (elem = expression_rule(p)) // expression
21602 )
21603 {
21604 _res = elem;
21605 if (_res == NULL && PyErr_Occurred()) {
21606 p->error_indicator = 1;
21607 PyMem_Free(_children);
21608 D(p->level--);
21609 return NULL;
21610 }
21611 if (_n == _children_capacity) {
21612 _children_capacity *= 2;
21613 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21614 if (!_new_children) {
21615 p->error_indicator = 1;
21616 PyErr_NoMemory();
21617 D(p->level--);
21618 return NULL;
21619 }
21620 _children = _new_children;
21621 }
21622 _children[_n++] = _res;
21623 _mark = p->mark;
21624 }
21625 p->mark = _mark;
21626 D(fprintf(stderr, "%*c%s _loop0_8[%d-%d]: %s failed!\n", p->level, ' ',
21627 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
21628 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021629 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021630 if (!_seq) {
21631 PyMem_Free(_children);
21632 p->error_indicator = 1;
21633 PyErr_NoMemory();
21634 D(p->level--);
21635 return NULL;
21636 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021637 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021638 PyMem_Free(_children);
21639 _PyPegen_insert_memo(p, _start_mark, _loop0_8_type, _seq);
21640 D(p->level--);
21641 return _seq;
21642}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021643
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021644// _gather_7: expression _loop0_8
21645static asdl_seq *
21646_gather_7_rule(Parser *p)
21647{
21648 D(p->level++);
21649 if (p->error_indicator) {
21650 D(p->level--);
21651 return NULL;
21652 }
21653 asdl_seq * _res = NULL;
21654 int _mark = p->mark;
21655 { // expression _loop0_8
21656 if (p->error_indicator) {
21657 D(p->level--);
21658 return NULL;
21659 }
21660 D(fprintf(stderr, "%*c> _gather_7[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression _loop0_8"));
21661 expr_ty elem;
21662 asdl_seq * seq;
21663 if (
21664 (elem = expression_rule(p)) // expression
21665 &&
21666 (seq = _loop0_8_rule(p)) // _loop0_8
21667 )
21668 {
21669 D(fprintf(stderr, "%*c+ _gather_7[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression _loop0_8"));
21670 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
21671 goto done;
21672 }
21673 p->mark = _mark;
21674 D(fprintf(stderr, "%*c%s _gather_7[%d-%d]: %s failed!\n", p->level, ' ',
21675 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_8"));
21676 }
21677 _res = NULL;
21678 done:
21679 D(p->level--);
21680 return _res;
21681}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021682
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021683// _loop0_10: ',' expression
21684static asdl_seq *
21685_loop0_10_rule(Parser *p)
21686{
21687 D(p->level++);
21688 if (p->error_indicator) {
21689 D(p->level--);
21690 return NULL;
21691 }
21692 void *_res = NULL;
21693 int _mark = p->mark;
21694 int _start_mark = p->mark;
21695 void **_children = PyMem_Malloc(sizeof(void *));
21696 if (!_children) {
21697 p->error_indicator = 1;
21698 PyErr_NoMemory();
21699 D(p->level--);
21700 return NULL;
21701 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010021702 Py_ssize_t _children_capacity = 1;
21703 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021704 { // ',' expression
21705 if (p->error_indicator) {
21706 D(p->level--);
21707 return NULL;
21708 }
21709 D(fprintf(stderr, "%*c> _loop0_10[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
21710 Token * _literal;
21711 expr_ty elem;
21712 while (
21713 (_literal = _PyPegen_expect_token(p, 12)) // token=','
21714 &&
21715 (elem = expression_rule(p)) // expression
21716 )
21717 {
21718 _res = elem;
21719 if (_res == NULL && PyErr_Occurred()) {
21720 p->error_indicator = 1;
21721 PyMem_Free(_children);
21722 D(p->level--);
21723 return NULL;
21724 }
21725 if (_n == _children_capacity) {
21726 _children_capacity *= 2;
21727 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21728 if (!_new_children) {
21729 p->error_indicator = 1;
21730 PyErr_NoMemory();
21731 D(p->level--);
21732 return NULL;
21733 }
21734 _children = _new_children;
21735 }
21736 _children[_n++] = _res;
21737 _mark = p->mark;
21738 }
21739 p->mark = _mark;
21740 D(fprintf(stderr, "%*c%s _loop0_10[%d-%d]: %s failed!\n", p->level, ' ',
21741 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
21742 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021743 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021744 if (!_seq) {
21745 PyMem_Free(_children);
21746 p->error_indicator = 1;
21747 PyErr_NoMemory();
21748 D(p->level--);
21749 return NULL;
21750 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021751 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021752 PyMem_Free(_children);
21753 _PyPegen_insert_memo(p, _start_mark, _loop0_10_type, _seq);
21754 D(p->level--);
21755 return _seq;
21756}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021757
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021758// _gather_9: expression _loop0_10
21759static asdl_seq *
21760_gather_9_rule(Parser *p)
21761{
21762 D(p->level++);
21763 if (p->error_indicator) {
21764 D(p->level--);
21765 return NULL;
21766 }
21767 asdl_seq * _res = NULL;
21768 int _mark = p->mark;
21769 { // expression _loop0_10
21770 if (p->error_indicator) {
21771 D(p->level--);
21772 return NULL;
21773 }
21774 D(fprintf(stderr, "%*c> _gather_9[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression _loop0_10"));
21775 expr_ty elem;
21776 asdl_seq * seq;
21777 if (
21778 (elem = expression_rule(p)) // expression
21779 &&
21780 (seq = _loop0_10_rule(p)) // _loop0_10
21781 )
21782 {
21783 D(fprintf(stderr, "%*c+ _gather_9[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression _loop0_10"));
21784 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
21785 goto done;
21786 }
21787 p->mark = _mark;
21788 D(fprintf(stderr, "%*c%s _gather_9[%d-%d]: %s failed!\n", p->level, ' ',
21789 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_10"));
21790 }
21791 _res = NULL;
21792 done:
21793 D(p->level--);
21794 return _res;
21795}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021796
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021797// _loop1_11: statement
21798static asdl_seq *
21799_loop1_11_rule(Parser *p)
21800{
21801 D(p->level++);
21802 if (p->error_indicator) {
21803 D(p->level--);
21804 return NULL;
21805 }
21806 void *_res = NULL;
21807 int _mark = p->mark;
21808 int _start_mark = p->mark;
21809 void **_children = PyMem_Malloc(sizeof(void *));
21810 if (!_children) {
21811 p->error_indicator = 1;
21812 PyErr_NoMemory();
21813 D(p->level--);
21814 return NULL;
21815 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010021816 Py_ssize_t _children_capacity = 1;
21817 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021818 { // statement
21819 if (p->error_indicator) {
21820 D(p->level--);
21821 return NULL;
21822 }
21823 D(fprintf(stderr, "%*c> _loop1_11[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statement"));
Pablo Galindoa5634c42020-09-16 19:42:00 +010021824 asdl_stmt_seq* statement_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021825 while (
21826 (statement_var = statement_rule(p)) // statement
21827 )
21828 {
21829 _res = statement_var;
21830 if (_n == _children_capacity) {
21831 _children_capacity *= 2;
21832 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21833 if (!_new_children) {
21834 p->error_indicator = 1;
21835 PyErr_NoMemory();
21836 D(p->level--);
21837 return NULL;
21838 }
21839 _children = _new_children;
21840 }
21841 _children[_n++] = _res;
21842 _mark = p->mark;
21843 }
21844 p->mark = _mark;
21845 D(fprintf(stderr, "%*c%s _loop1_11[%d-%d]: %s failed!\n", p->level, ' ',
21846 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statement"));
21847 }
21848 if (_n == 0 || p->error_indicator) {
21849 PyMem_Free(_children);
21850 D(p->level--);
21851 return NULL;
21852 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021853 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021854 if (!_seq) {
21855 PyMem_Free(_children);
21856 p->error_indicator = 1;
21857 PyErr_NoMemory();
21858 D(p->level--);
21859 return NULL;
21860 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021861 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021862 PyMem_Free(_children);
21863 _PyPegen_insert_memo(p, _start_mark, _loop1_11_type, _seq);
21864 D(p->level--);
21865 return _seq;
21866}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021867
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000021868// _loop0_13: ';' simple_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021869static asdl_seq *
21870_loop0_13_rule(Parser *p)
21871{
21872 D(p->level++);
21873 if (p->error_indicator) {
21874 D(p->level--);
21875 return NULL;
21876 }
21877 void *_res = NULL;
21878 int _mark = p->mark;
21879 int _start_mark = p->mark;
21880 void **_children = PyMem_Malloc(sizeof(void *));
21881 if (!_children) {
21882 p->error_indicator = 1;
21883 PyErr_NoMemory();
21884 D(p->level--);
21885 return NULL;
21886 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010021887 Py_ssize_t _children_capacity = 1;
21888 Py_ssize_t _n = 0;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000021889 { // ';' simple_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021890 if (p->error_indicator) {
21891 D(p->level--);
21892 return NULL;
21893 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000021894 D(fprintf(stderr, "%*c> _loop0_13[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "';' simple_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021895 Token * _literal;
21896 stmt_ty elem;
21897 while (
21898 (_literal = _PyPegen_expect_token(p, 13)) // token=';'
21899 &&
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000021900 (elem = simple_stmt_rule(p)) // simple_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021901 )
21902 {
21903 _res = elem;
21904 if (_res == NULL && PyErr_Occurred()) {
21905 p->error_indicator = 1;
21906 PyMem_Free(_children);
21907 D(p->level--);
21908 return NULL;
21909 }
21910 if (_n == _children_capacity) {
21911 _children_capacity *= 2;
21912 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21913 if (!_new_children) {
21914 p->error_indicator = 1;
21915 PyErr_NoMemory();
21916 D(p->level--);
21917 return NULL;
21918 }
21919 _children = _new_children;
21920 }
21921 _children[_n++] = _res;
21922 _mark = p->mark;
21923 }
21924 p->mark = _mark;
21925 D(fprintf(stderr, "%*c%s _loop0_13[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000021926 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "';' simple_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021927 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021928 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021929 if (!_seq) {
21930 PyMem_Free(_children);
21931 p->error_indicator = 1;
21932 PyErr_NoMemory();
21933 D(p->level--);
21934 return NULL;
21935 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021936 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021937 PyMem_Free(_children);
21938 _PyPegen_insert_memo(p, _start_mark, _loop0_13_type, _seq);
21939 D(p->level--);
21940 return _seq;
21941}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021942
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000021943// _gather_12: simple_stmt _loop0_13
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021944static asdl_seq *
21945_gather_12_rule(Parser *p)
21946{
21947 D(p->level++);
21948 if (p->error_indicator) {
21949 D(p->level--);
21950 return NULL;
21951 }
21952 asdl_seq * _res = NULL;
21953 int _mark = p->mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000021954 { // simple_stmt _loop0_13
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021955 if (p->error_indicator) {
21956 D(p->level--);
21957 return NULL;
21958 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000021959 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 +010021960 stmt_ty elem;
21961 asdl_seq * seq;
21962 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000021963 (elem = simple_stmt_rule(p)) // simple_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021964 &&
21965 (seq = _loop0_13_rule(p)) // _loop0_13
21966 )
21967 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000021968 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 +010021969 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
21970 goto done;
21971 }
21972 p->mark = _mark;
21973 D(fprintf(stderr, "%*c%s _gather_12[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000021974 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmt _loop0_13"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021975 }
21976 _res = NULL;
21977 done:
21978 D(p->level--);
21979 return _res;
21980}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021981
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021982// _tmp_14: 'import' | 'from'
21983static void *
21984_tmp_14_rule(Parser *p)
21985{
21986 D(p->level++);
21987 if (p->error_indicator) {
21988 D(p->level--);
21989 return NULL;
21990 }
21991 void * _res = NULL;
21992 int _mark = p->mark;
21993 { // 'import'
21994 if (p->error_indicator) {
21995 D(p->level--);
21996 return NULL;
21997 }
21998 D(fprintf(stderr, "%*c> _tmp_14[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'import'"));
21999 Token * _keyword;
22000 if (
22001 (_keyword = _PyPegen_expect_token(p, 513)) // token='import'
22002 )
22003 {
22004 D(fprintf(stderr, "%*c+ _tmp_14[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'import'"));
22005 _res = _keyword;
22006 goto done;
22007 }
22008 p->mark = _mark;
22009 D(fprintf(stderr, "%*c%s _tmp_14[%d-%d]: %s failed!\n", p->level, ' ',
22010 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'import'"));
22011 }
22012 { // 'from'
22013 if (p->error_indicator) {
22014 D(p->level--);
22015 return NULL;
22016 }
22017 D(fprintf(stderr, "%*c> _tmp_14[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from'"));
22018 Token * _keyword;
22019 if (
22020 (_keyword = _PyPegen_expect_token(p, 514)) // token='from'
22021 )
22022 {
22023 D(fprintf(stderr, "%*c+ _tmp_14[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'from'"));
22024 _res = _keyword;
22025 goto done;
22026 }
22027 p->mark = _mark;
22028 D(fprintf(stderr, "%*c%s _tmp_14[%d-%d]: %s failed!\n", p->level, ' ',
22029 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from'"));
22030 }
22031 _res = NULL;
22032 done:
22033 D(p->level--);
22034 return _res;
22035}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000022036
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022037// _tmp_15: 'def' | '@' | ASYNC
22038static void *
22039_tmp_15_rule(Parser *p)
22040{
22041 D(p->level++);
22042 if (p->error_indicator) {
22043 D(p->level--);
22044 return NULL;
22045 }
22046 void * _res = NULL;
22047 int _mark = p->mark;
22048 { // 'def'
22049 if (p->error_indicator) {
22050 D(p->level--);
22051 return NULL;
22052 }
22053 D(fprintf(stderr, "%*c> _tmp_15[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'def'"));
22054 Token * _keyword;
22055 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080022056 (_keyword = _PyPegen_expect_token(p, 526)) // token='def'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022057 )
22058 {
22059 D(fprintf(stderr, "%*c+ _tmp_15[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'def'"));
22060 _res = _keyword;
22061 goto done;
22062 }
22063 p->mark = _mark;
22064 D(fprintf(stderr, "%*c%s _tmp_15[%d-%d]: %s failed!\n", p->level, ' ',
22065 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'def'"));
22066 }
22067 { // '@'
22068 if (p->error_indicator) {
22069 D(p->level--);
22070 return NULL;
22071 }
22072 D(fprintf(stderr, "%*c> _tmp_15[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@'"));
22073 Token * _literal;
22074 if (
22075 (_literal = _PyPegen_expect_token(p, 49)) // token='@'
22076 )
22077 {
22078 D(fprintf(stderr, "%*c+ _tmp_15[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@'"));
22079 _res = _literal;
22080 goto done;
22081 }
22082 p->mark = _mark;
22083 D(fprintf(stderr, "%*c%s _tmp_15[%d-%d]: %s failed!\n", p->level, ' ',
22084 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@'"));
22085 }
22086 { // ASYNC
22087 if (p->error_indicator) {
22088 D(p->level--);
22089 return NULL;
22090 }
22091 D(fprintf(stderr, "%*c> _tmp_15[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC"));
22092 Token * async_var;
22093 if (
22094 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
22095 )
22096 {
22097 D(fprintf(stderr, "%*c+ _tmp_15[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC"));
22098 _res = async_var;
22099 goto done;
22100 }
22101 p->mark = _mark;
22102 D(fprintf(stderr, "%*c%s _tmp_15[%d-%d]: %s failed!\n", p->level, ' ',
22103 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC"));
22104 }
22105 _res = NULL;
22106 done:
22107 D(p->level--);
22108 return _res;
22109}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000022110
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022111// _tmp_16: 'class' | '@'
22112static void *
22113_tmp_16_rule(Parser *p)
22114{
22115 D(p->level++);
22116 if (p->error_indicator) {
22117 D(p->level--);
22118 return NULL;
22119 }
22120 void * _res = NULL;
22121 int _mark = p->mark;
22122 { // 'class'
22123 if (p->error_indicator) {
22124 D(p->level--);
22125 return NULL;
22126 }
22127 D(fprintf(stderr, "%*c> _tmp_16[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'class'"));
22128 Token * _keyword;
22129 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080022130 (_keyword = _PyPegen_expect_token(p, 527)) // token='class'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022131 )
22132 {
22133 D(fprintf(stderr, "%*c+ _tmp_16[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'class'"));
22134 _res = _keyword;
22135 goto done;
22136 }
22137 p->mark = _mark;
22138 D(fprintf(stderr, "%*c%s _tmp_16[%d-%d]: %s failed!\n", p->level, ' ',
22139 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'class'"));
22140 }
22141 { // '@'
22142 if (p->error_indicator) {
22143 D(p->level--);
22144 return NULL;
22145 }
22146 D(fprintf(stderr, "%*c> _tmp_16[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@'"));
22147 Token * _literal;
22148 if (
22149 (_literal = _PyPegen_expect_token(p, 49)) // token='@'
22150 )
22151 {
22152 D(fprintf(stderr, "%*c+ _tmp_16[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@'"));
22153 _res = _literal;
22154 goto done;
22155 }
22156 p->mark = _mark;
22157 D(fprintf(stderr, "%*c%s _tmp_16[%d-%d]: %s failed!\n", p->level, ' ',
22158 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@'"));
22159 }
22160 _res = NULL;
22161 done:
22162 D(p->level--);
22163 return _res;
22164}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000022165
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022166// _tmp_17: 'with' | ASYNC
22167static void *
22168_tmp_17_rule(Parser *p)
22169{
22170 D(p->level++);
22171 if (p->error_indicator) {
22172 D(p->level--);
22173 return NULL;
22174 }
22175 void * _res = NULL;
22176 int _mark = p->mark;
22177 { // 'with'
22178 if (p->error_indicator) {
22179 D(p->level--);
22180 return NULL;
22181 }
22182 D(fprintf(stderr, "%*c> _tmp_17[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'with'"));
22183 Token * _keyword;
22184 if (
22185 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
22186 )
22187 {
22188 D(fprintf(stderr, "%*c+ _tmp_17[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'with'"));
22189 _res = _keyword;
22190 goto done;
22191 }
22192 p->mark = _mark;
22193 D(fprintf(stderr, "%*c%s _tmp_17[%d-%d]: %s failed!\n", p->level, ' ',
22194 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'with'"));
22195 }
22196 { // ASYNC
22197 if (p->error_indicator) {
22198 D(p->level--);
22199 return NULL;
22200 }
22201 D(fprintf(stderr, "%*c> _tmp_17[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC"));
22202 Token * async_var;
22203 if (
22204 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
22205 )
22206 {
22207 D(fprintf(stderr, "%*c+ _tmp_17[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC"));
22208 _res = async_var;
22209 goto done;
22210 }
22211 p->mark = _mark;
22212 D(fprintf(stderr, "%*c%s _tmp_17[%d-%d]: %s failed!\n", p->level, ' ',
22213 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC"));
22214 }
22215 _res = NULL;
22216 done:
22217 D(p->level--);
22218 return _res;
22219}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000022220
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022221// _tmp_18: 'for' | ASYNC
22222static void *
22223_tmp_18_rule(Parser *p)
22224{
22225 D(p->level++);
22226 if (p->error_indicator) {
22227 D(p->level--);
22228 return NULL;
22229 }
22230 void * _res = NULL;
22231 int _mark = p->mark;
22232 { // 'for'
22233 if (p->error_indicator) {
22234 D(p->level--);
22235 return NULL;
22236 }
22237 D(fprintf(stderr, "%*c> _tmp_18[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'for'"));
22238 Token * _keyword;
22239 if (
22240 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
22241 )
22242 {
22243 D(fprintf(stderr, "%*c+ _tmp_18[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'for'"));
22244 _res = _keyword;
22245 goto done;
22246 }
22247 p->mark = _mark;
22248 D(fprintf(stderr, "%*c%s _tmp_18[%d-%d]: %s failed!\n", p->level, ' ',
22249 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'for'"));
22250 }
22251 { // ASYNC
22252 if (p->error_indicator) {
22253 D(p->level--);
22254 return NULL;
22255 }
22256 D(fprintf(stderr, "%*c> _tmp_18[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC"));
22257 Token * async_var;
22258 if (
22259 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
22260 )
22261 {
22262 D(fprintf(stderr, "%*c+ _tmp_18[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC"));
22263 _res = async_var;
22264 goto done;
22265 }
22266 p->mark = _mark;
22267 D(fprintf(stderr, "%*c%s _tmp_18[%d-%d]: %s failed!\n", p->level, ' ',
22268 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC"));
22269 }
22270 _res = NULL;
22271 done:
22272 D(p->level--);
22273 return _res;
22274}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000022275
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022276// _tmp_19: '=' annotated_rhs
22277static void *
22278_tmp_19_rule(Parser *p)
22279{
22280 D(p->level++);
22281 if (p->error_indicator) {
22282 D(p->level--);
22283 return NULL;
22284 }
22285 void * _res = NULL;
22286 int _mark = p->mark;
22287 { // '=' annotated_rhs
22288 if (p->error_indicator) {
22289 D(p->level--);
22290 return NULL;
22291 }
22292 D(fprintf(stderr, "%*c> _tmp_19[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
22293 Token * _literal;
22294 expr_ty d;
22295 if (
22296 (_literal = _PyPegen_expect_token(p, 22)) // token='='
22297 &&
22298 (d = annotated_rhs_rule(p)) // annotated_rhs
22299 )
22300 {
22301 D(fprintf(stderr, "%*c+ _tmp_19[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
22302 _res = d;
22303 if (_res == NULL && PyErr_Occurred()) {
22304 p->error_indicator = 1;
22305 D(p->level--);
22306 return NULL;
22307 }
22308 goto done;
22309 }
22310 p->mark = _mark;
22311 D(fprintf(stderr, "%*c%s _tmp_19[%d-%d]: %s failed!\n", p->level, ' ',
22312 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'=' annotated_rhs"));
22313 }
22314 _res = NULL;
22315 done:
22316 D(p->level--);
22317 return _res;
22318}
22319
22320// _tmp_20: '(' single_target ')' | single_subscript_attribute_target
22321static void *
22322_tmp_20_rule(Parser *p)
22323{
22324 D(p->level++);
22325 if (p->error_indicator) {
22326 D(p->level--);
22327 return NULL;
22328 }
22329 void * _res = NULL;
22330 int _mark = p->mark;
22331 { // '(' single_target ')'
22332 if (p->error_indicator) {
22333 D(p->level--);
22334 return NULL;
22335 }
22336 D(fprintf(stderr, "%*c> _tmp_20[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'"));
22337 Token * _literal;
22338 Token * _literal_1;
22339 expr_ty b;
22340 if (
22341 (_literal = _PyPegen_expect_token(p, 7)) // token='('
22342 &&
22343 (b = single_target_rule(p)) // single_target
22344 &&
22345 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
22346 )
22347 {
22348 D(fprintf(stderr, "%*c+ _tmp_20[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'"));
22349 _res = b;
22350 if (_res == NULL && PyErr_Occurred()) {
22351 p->error_indicator = 1;
22352 D(p->level--);
22353 return NULL;
22354 }
22355 goto done;
22356 }
22357 p->mark = _mark;
22358 D(fprintf(stderr, "%*c%s _tmp_20[%d-%d]: %s failed!\n", p->level, ' ',
22359 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' single_target ')'"));
22360 }
22361 { // single_subscript_attribute_target
22362 if (p->error_indicator) {
22363 D(p->level--);
22364 return NULL;
22365 }
22366 D(fprintf(stderr, "%*c> _tmp_20[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "single_subscript_attribute_target"));
22367 expr_ty single_subscript_attribute_target_var;
22368 if (
22369 (single_subscript_attribute_target_var = single_subscript_attribute_target_rule(p)) // single_subscript_attribute_target
22370 )
22371 {
22372 D(fprintf(stderr, "%*c+ _tmp_20[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "single_subscript_attribute_target"));
22373 _res = single_subscript_attribute_target_var;
22374 goto done;
22375 }
22376 p->mark = _mark;
22377 D(fprintf(stderr, "%*c%s _tmp_20[%d-%d]: %s failed!\n", p->level, ' ',
22378 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "single_subscript_attribute_target"));
22379 }
22380 _res = NULL;
22381 done:
22382 D(p->level--);
22383 return _res;
22384}
22385
22386// _tmp_21: '=' annotated_rhs
22387static void *
22388_tmp_21_rule(Parser *p)
22389{
22390 D(p->level++);
22391 if (p->error_indicator) {
22392 D(p->level--);
22393 return NULL;
22394 }
22395 void * _res = NULL;
22396 int _mark = p->mark;
22397 { // '=' annotated_rhs
22398 if (p->error_indicator) {
22399 D(p->level--);
22400 return NULL;
22401 }
22402 D(fprintf(stderr, "%*c> _tmp_21[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
22403 Token * _literal;
22404 expr_ty d;
22405 if (
22406 (_literal = _PyPegen_expect_token(p, 22)) // token='='
22407 &&
22408 (d = annotated_rhs_rule(p)) // annotated_rhs
22409 )
22410 {
22411 D(fprintf(stderr, "%*c+ _tmp_21[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
22412 _res = d;
22413 if (_res == NULL && PyErr_Occurred()) {
22414 p->error_indicator = 1;
22415 D(p->level--);
22416 return NULL;
22417 }
22418 goto done;
22419 }
22420 p->mark = _mark;
22421 D(fprintf(stderr, "%*c%s _tmp_21[%d-%d]: %s failed!\n", p->level, ' ',
22422 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'=' annotated_rhs"));
22423 }
22424 _res = NULL;
22425 done:
22426 D(p->level--);
22427 return _res;
22428}
22429
22430// _loop1_22: (star_targets '=')
22431static asdl_seq *
22432_loop1_22_rule(Parser *p)
22433{
22434 D(p->level++);
22435 if (p->error_indicator) {
22436 D(p->level--);
22437 return NULL;
22438 }
22439 void *_res = NULL;
22440 int _mark = p->mark;
22441 int _start_mark = p->mark;
22442 void **_children = PyMem_Malloc(sizeof(void *));
22443 if (!_children) {
22444 p->error_indicator = 1;
22445 PyErr_NoMemory();
22446 D(p->level--);
22447 return NULL;
22448 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010022449 Py_ssize_t _children_capacity = 1;
22450 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022451 { // (star_targets '=')
22452 if (p->error_indicator) {
22453 D(p->level--);
22454 return NULL;
22455 }
22456 D(fprintf(stderr, "%*c> _loop1_22[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')"));
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000022457 void *_tmp_181_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022458 while (
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000022459 (_tmp_181_var = _tmp_181_rule(p)) // star_targets '='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022460 )
22461 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000022462 _res = _tmp_181_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022463 if (_n == _children_capacity) {
22464 _children_capacity *= 2;
22465 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22466 if (!_new_children) {
22467 p->error_indicator = 1;
22468 PyErr_NoMemory();
22469 D(p->level--);
22470 return NULL;
22471 }
22472 _children = _new_children;
22473 }
22474 _children[_n++] = _res;
22475 _mark = p->mark;
22476 }
22477 p->mark = _mark;
22478 D(fprintf(stderr, "%*c%s _loop1_22[%d-%d]: %s failed!\n", p->level, ' ',
22479 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(star_targets '=')"));
22480 }
22481 if (_n == 0 || p->error_indicator) {
22482 PyMem_Free(_children);
22483 D(p->level--);
22484 return NULL;
22485 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022486 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022487 if (!_seq) {
22488 PyMem_Free(_children);
22489 p->error_indicator = 1;
22490 PyErr_NoMemory();
22491 D(p->level--);
22492 return NULL;
22493 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022494 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022495 PyMem_Free(_children);
22496 _PyPegen_insert_memo(p, _start_mark, _loop1_22_type, _seq);
22497 D(p->level--);
22498 return _seq;
22499}
22500
22501// _tmp_23: yield_expr | star_expressions
22502static void *
22503_tmp_23_rule(Parser *p)
22504{
22505 D(p->level++);
22506 if (p->error_indicator) {
22507 D(p->level--);
22508 return NULL;
22509 }
22510 void * _res = NULL;
22511 int _mark = p->mark;
22512 { // yield_expr
22513 if (p->error_indicator) {
22514 D(p->level--);
22515 return NULL;
22516 }
22517 D(fprintf(stderr, "%*c> _tmp_23[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
22518 expr_ty yield_expr_var;
22519 if (
22520 (yield_expr_var = yield_expr_rule(p)) // yield_expr
22521 )
22522 {
22523 D(fprintf(stderr, "%*c+ _tmp_23[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
22524 _res = yield_expr_var;
22525 goto done;
22526 }
22527 p->mark = _mark;
22528 D(fprintf(stderr, "%*c%s _tmp_23[%d-%d]: %s failed!\n", p->level, ' ',
22529 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
22530 }
22531 { // star_expressions
22532 if (p->error_indicator) {
22533 D(p->level--);
22534 return NULL;
22535 }
22536 D(fprintf(stderr, "%*c> _tmp_23[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
22537 expr_ty star_expressions_var;
22538 if (
22539 (star_expressions_var = star_expressions_rule(p)) // star_expressions
22540 )
22541 {
22542 D(fprintf(stderr, "%*c+ _tmp_23[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
22543 _res = star_expressions_var;
22544 goto done;
22545 }
22546 p->mark = _mark;
22547 D(fprintf(stderr, "%*c%s _tmp_23[%d-%d]: %s failed!\n", p->level, ' ',
22548 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
22549 }
22550 _res = NULL;
22551 done:
22552 D(p->level--);
22553 return _res;
22554}
22555
22556// _tmp_24: yield_expr | star_expressions
22557static void *
22558_tmp_24_rule(Parser *p)
22559{
22560 D(p->level++);
22561 if (p->error_indicator) {
22562 D(p->level--);
22563 return NULL;
22564 }
22565 void * _res = NULL;
22566 int _mark = p->mark;
22567 { // yield_expr
22568 if (p->error_indicator) {
22569 D(p->level--);
22570 return NULL;
22571 }
22572 D(fprintf(stderr, "%*c> _tmp_24[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
22573 expr_ty yield_expr_var;
22574 if (
22575 (yield_expr_var = yield_expr_rule(p)) // yield_expr
22576 )
22577 {
22578 D(fprintf(stderr, "%*c+ _tmp_24[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
22579 _res = yield_expr_var;
22580 goto done;
22581 }
22582 p->mark = _mark;
22583 D(fprintf(stderr, "%*c%s _tmp_24[%d-%d]: %s failed!\n", p->level, ' ',
22584 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
22585 }
22586 { // star_expressions
22587 if (p->error_indicator) {
22588 D(p->level--);
22589 return NULL;
22590 }
22591 D(fprintf(stderr, "%*c> _tmp_24[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
22592 expr_ty star_expressions_var;
22593 if (
22594 (star_expressions_var = star_expressions_rule(p)) // star_expressions
22595 )
22596 {
22597 D(fprintf(stderr, "%*c+ _tmp_24[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
22598 _res = star_expressions_var;
22599 goto done;
22600 }
22601 p->mark = _mark;
22602 D(fprintf(stderr, "%*c%s _tmp_24[%d-%d]: %s failed!\n", p->level, ' ',
22603 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
22604 }
22605 _res = NULL;
22606 done:
22607 D(p->level--);
22608 return _res;
22609}
22610
22611// _loop0_26: ',' NAME
22612static asdl_seq *
22613_loop0_26_rule(Parser *p)
22614{
22615 D(p->level++);
22616 if (p->error_indicator) {
22617 D(p->level--);
22618 return NULL;
22619 }
22620 void *_res = NULL;
22621 int _mark = p->mark;
22622 int _start_mark = p->mark;
22623 void **_children = PyMem_Malloc(sizeof(void *));
22624 if (!_children) {
22625 p->error_indicator = 1;
22626 PyErr_NoMemory();
22627 D(p->level--);
22628 return NULL;
22629 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010022630 Py_ssize_t _children_capacity = 1;
22631 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022632 { // ',' NAME
22633 if (p->error_indicator) {
22634 D(p->level--);
22635 return NULL;
22636 }
22637 D(fprintf(stderr, "%*c> _loop0_26[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' NAME"));
22638 Token * _literal;
22639 expr_ty elem;
22640 while (
22641 (_literal = _PyPegen_expect_token(p, 12)) // token=','
22642 &&
22643 (elem = _PyPegen_name_token(p)) // NAME
22644 )
22645 {
22646 _res = elem;
22647 if (_res == NULL && PyErr_Occurred()) {
22648 p->error_indicator = 1;
22649 PyMem_Free(_children);
22650 D(p->level--);
22651 return NULL;
22652 }
22653 if (_n == _children_capacity) {
22654 _children_capacity *= 2;
22655 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22656 if (!_new_children) {
22657 p->error_indicator = 1;
22658 PyErr_NoMemory();
22659 D(p->level--);
22660 return NULL;
22661 }
22662 _children = _new_children;
22663 }
22664 _children[_n++] = _res;
22665 _mark = p->mark;
22666 }
22667 p->mark = _mark;
22668 D(fprintf(stderr, "%*c%s _loop0_26[%d-%d]: %s failed!\n", p->level, ' ',
22669 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' NAME"));
22670 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022671 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022672 if (!_seq) {
22673 PyMem_Free(_children);
22674 p->error_indicator = 1;
22675 PyErr_NoMemory();
22676 D(p->level--);
22677 return NULL;
22678 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022679 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022680 PyMem_Free(_children);
22681 _PyPegen_insert_memo(p, _start_mark, _loop0_26_type, _seq);
22682 D(p->level--);
22683 return _seq;
22684}
22685
22686// _gather_25: NAME _loop0_26
22687static asdl_seq *
22688_gather_25_rule(Parser *p)
22689{
22690 D(p->level++);
22691 if (p->error_indicator) {
22692 D(p->level--);
22693 return NULL;
22694 }
22695 asdl_seq * _res = NULL;
22696 int _mark = p->mark;
22697 { // NAME _loop0_26
22698 if (p->error_indicator) {
22699 D(p->level--);
22700 return NULL;
22701 }
22702 D(fprintf(stderr, "%*c> _gather_25[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME _loop0_26"));
22703 expr_ty elem;
22704 asdl_seq * seq;
22705 if (
22706 (elem = _PyPegen_name_token(p)) // NAME
22707 &&
22708 (seq = _loop0_26_rule(p)) // _loop0_26
22709 )
22710 {
22711 D(fprintf(stderr, "%*c+ _gather_25[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME _loop0_26"));
22712 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
22713 goto done;
22714 }
22715 p->mark = _mark;
22716 D(fprintf(stderr, "%*c%s _gather_25[%d-%d]: %s failed!\n", p->level, ' ',
22717 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME _loop0_26"));
22718 }
22719 _res = NULL;
22720 done:
22721 D(p->level--);
22722 return _res;
22723}
22724
22725// _loop0_28: ',' NAME
22726static asdl_seq *
22727_loop0_28_rule(Parser *p)
22728{
22729 D(p->level++);
22730 if (p->error_indicator) {
22731 D(p->level--);
22732 return NULL;
22733 }
22734 void *_res = NULL;
22735 int _mark = p->mark;
22736 int _start_mark = p->mark;
22737 void **_children = PyMem_Malloc(sizeof(void *));
22738 if (!_children) {
22739 p->error_indicator = 1;
22740 PyErr_NoMemory();
22741 D(p->level--);
22742 return NULL;
22743 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010022744 Py_ssize_t _children_capacity = 1;
22745 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022746 { // ',' NAME
22747 if (p->error_indicator) {
22748 D(p->level--);
22749 return NULL;
22750 }
22751 D(fprintf(stderr, "%*c> _loop0_28[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' NAME"));
22752 Token * _literal;
22753 expr_ty elem;
22754 while (
22755 (_literal = _PyPegen_expect_token(p, 12)) // token=','
22756 &&
22757 (elem = _PyPegen_name_token(p)) // NAME
22758 )
22759 {
22760 _res = elem;
22761 if (_res == NULL && PyErr_Occurred()) {
22762 p->error_indicator = 1;
22763 PyMem_Free(_children);
22764 D(p->level--);
22765 return NULL;
22766 }
22767 if (_n == _children_capacity) {
22768 _children_capacity *= 2;
22769 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22770 if (!_new_children) {
22771 p->error_indicator = 1;
22772 PyErr_NoMemory();
22773 D(p->level--);
22774 return NULL;
22775 }
22776 _children = _new_children;
22777 }
22778 _children[_n++] = _res;
22779 _mark = p->mark;
22780 }
22781 p->mark = _mark;
22782 D(fprintf(stderr, "%*c%s _loop0_28[%d-%d]: %s failed!\n", p->level, ' ',
22783 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' NAME"));
22784 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022785 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022786 if (!_seq) {
22787 PyMem_Free(_children);
22788 p->error_indicator = 1;
22789 PyErr_NoMemory();
22790 D(p->level--);
22791 return NULL;
22792 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022793 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022794 PyMem_Free(_children);
22795 _PyPegen_insert_memo(p, _start_mark, _loop0_28_type, _seq);
22796 D(p->level--);
22797 return _seq;
22798}
22799
22800// _gather_27: NAME _loop0_28
22801static asdl_seq *
22802_gather_27_rule(Parser *p)
22803{
22804 D(p->level++);
22805 if (p->error_indicator) {
22806 D(p->level--);
22807 return NULL;
22808 }
22809 asdl_seq * _res = NULL;
22810 int _mark = p->mark;
22811 { // NAME _loop0_28
22812 if (p->error_indicator) {
22813 D(p->level--);
22814 return NULL;
22815 }
22816 D(fprintf(stderr, "%*c> _gather_27[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME _loop0_28"));
22817 expr_ty elem;
22818 asdl_seq * seq;
22819 if (
22820 (elem = _PyPegen_name_token(p)) // NAME
22821 &&
22822 (seq = _loop0_28_rule(p)) // _loop0_28
22823 )
22824 {
22825 D(fprintf(stderr, "%*c+ _gather_27[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME _loop0_28"));
22826 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
22827 goto done;
22828 }
22829 p->mark = _mark;
22830 D(fprintf(stderr, "%*c%s _gather_27[%d-%d]: %s failed!\n", p->level, ' ',
22831 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME _loop0_28"));
22832 }
22833 _res = NULL;
22834 done:
22835 D(p->level--);
22836 return _res;
22837}
22838
22839// _tmp_29: ',' expression
22840static void *
22841_tmp_29_rule(Parser *p)
22842{
22843 D(p->level++);
22844 if (p->error_indicator) {
22845 D(p->level--);
22846 return NULL;
22847 }
22848 void * _res = NULL;
22849 int _mark = p->mark;
22850 { // ',' expression
22851 if (p->error_indicator) {
22852 D(p->level--);
22853 return NULL;
22854 }
22855 D(fprintf(stderr, "%*c> _tmp_29[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
22856 Token * _literal;
22857 expr_ty z;
22858 if (
22859 (_literal = _PyPegen_expect_token(p, 12)) // token=','
22860 &&
22861 (z = expression_rule(p)) // expression
22862 )
22863 {
22864 D(fprintf(stderr, "%*c+ _tmp_29[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' expression"));
22865 _res = z;
22866 if (_res == NULL && PyErr_Occurred()) {
22867 p->error_indicator = 1;
22868 D(p->level--);
22869 return NULL;
22870 }
22871 goto done;
22872 }
22873 p->mark = _mark;
22874 D(fprintf(stderr, "%*c%s _tmp_29[%d-%d]: %s failed!\n", p->level, ' ',
22875 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
22876 }
22877 _res = NULL;
22878 done:
22879 D(p->level--);
22880 return _res;
22881}
22882
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022883// _tmp_30: ';' | NEWLINE
22884static void *
22885_tmp_30_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022886{
22887 D(p->level++);
22888 if (p->error_indicator) {
22889 D(p->level--);
22890 return NULL;
22891 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022892 void * _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022893 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022894 { // ';'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022895 if (p->error_indicator) {
22896 D(p->level--);
22897 return NULL;
22898 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022899 D(fprintf(stderr, "%*c> _tmp_30[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "';'"));
22900 Token * _literal;
22901 if (
22902 (_literal = _PyPegen_expect_token(p, 13)) // token=';'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022903 )
22904 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022905 D(fprintf(stderr, "%*c+ _tmp_30[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "';'"));
22906 _res = _literal;
22907 goto done;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022908 }
22909 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022910 D(fprintf(stderr, "%*c%s _tmp_30[%d-%d]: %s failed!\n", p->level, ' ',
22911 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "';'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022912 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022913 { // NEWLINE
22914 if (p->error_indicator) {
22915 D(p->level--);
22916 return NULL;
22917 }
22918 D(fprintf(stderr, "%*c> _tmp_30[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
22919 Token * newline_var;
22920 if (
22921 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
22922 )
22923 {
22924 D(fprintf(stderr, "%*c+ _tmp_30[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
22925 _res = newline_var;
22926 goto done;
22927 }
22928 p->mark = _mark;
22929 D(fprintf(stderr, "%*c%s _tmp_30[%d-%d]: %s failed!\n", p->level, ' ',
22930 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022931 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022932 _res = NULL;
22933 done:
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022934 D(p->level--);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022935 return _res;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022936}
22937
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022938// _loop0_31: ('.' | '...')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022939static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022940_loop0_31_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022941{
22942 D(p->level++);
22943 if (p->error_indicator) {
22944 D(p->level--);
22945 return NULL;
22946 }
22947 void *_res = NULL;
22948 int _mark = p->mark;
22949 int _start_mark = p->mark;
22950 void **_children = PyMem_Malloc(sizeof(void *));
22951 if (!_children) {
22952 p->error_indicator = 1;
22953 PyErr_NoMemory();
22954 D(p->level--);
22955 return NULL;
22956 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010022957 Py_ssize_t _children_capacity = 1;
22958 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022959 { // ('.' | '...')
22960 if (p->error_indicator) {
22961 D(p->level--);
22962 return NULL;
22963 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022964 D(fprintf(stderr, "%*c> _loop0_31[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('.' | '...')"));
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000022965 void *_tmp_182_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022966 while (
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000022967 (_tmp_182_var = _tmp_182_rule(p)) // '.' | '...'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022968 )
22969 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000022970 _res = _tmp_182_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022971 if (_n == _children_capacity) {
22972 _children_capacity *= 2;
22973 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22974 if (!_new_children) {
22975 p->error_indicator = 1;
22976 PyErr_NoMemory();
22977 D(p->level--);
22978 return NULL;
22979 }
22980 _children = _new_children;
22981 }
22982 _children[_n++] = _res;
22983 _mark = p->mark;
22984 }
22985 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022986 D(fprintf(stderr, "%*c%s _loop0_31[%d-%d]: %s failed!\n", p->level, ' ',
22987 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('.' | '...')"));
22988 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022989 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022990 if (!_seq) {
22991 PyMem_Free(_children);
22992 p->error_indicator = 1;
22993 PyErr_NoMemory();
22994 D(p->level--);
22995 return NULL;
22996 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022997 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022998 PyMem_Free(_children);
22999 _PyPegen_insert_memo(p, _start_mark, _loop0_31_type, _seq);
23000 D(p->level--);
23001 return _seq;
23002}
23003
23004// _loop1_32: ('.' | '...')
23005static asdl_seq *
23006_loop1_32_rule(Parser *p)
23007{
23008 D(p->level++);
23009 if (p->error_indicator) {
23010 D(p->level--);
23011 return NULL;
23012 }
23013 void *_res = NULL;
23014 int _mark = p->mark;
23015 int _start_mark = p->mark;
23016 void **_children = PyMem_Malloc(sizeof(void *));
23017 if (!_children) {
23018 p->error_indicator = 1;
23019 PyErr_NoMemory();
23020 D(p->level--);
23021 return NULL;
23022 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023023 Py_ssize_t _children_capacity = 1;
23024 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023025 { // ('.' | '...')
23026 if (p->error_indicator) {
23027 D(p->level--);
23028 return NULL;
23029 }
23030 D(fprintf(stderr, "%*c> _loop1_32[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('.' | '...')"));
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000023031 void *_tmp_183_var;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023032 while (
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000023033 (_tmp_183_var = _tmp_183_rule(p)) // '.' | '...'
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023034 )
23035 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000023036 _res = _tmp_183_var;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023037 if (_n == _children_capacity) {
23038 _children_capacity *= 2;
23039 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23040 if (!_new_children) {
23041 p->error_indicator = 1;
23042 PyErr_NoMemory();
23043 D(p->level--);
23044 return NULL;
23045 }
23046 _children = _new_children;
23047 }
23048 _children[_n++] = _res;
23049 _mark = p->mark;
23050 }
23051 p->mark = _mark;
23052 D(fprintf(stderr, "%*c%s _loop1_32[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023053 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('.' | '...')"));
23054 }
23055 if (_n == 0 || p->error_indicator) {
23056 PyMem_Free(_children);
23057 D(p->level--);
23058 return NULL;
23059 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023060 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023061 if (!_seq) {
23062 PyMem_Free(_children);
23063 p->error_indicator = 1;
23064 PyErr_NoMemory();
23065 D(p->level--);
23066 return NULL;
23067 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023068 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023069 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023070 _PyPegen_insert_memo(p, _start_mark, _loop1_32_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023071 D(p->level--);
23072 return _seq;
23073}
23074
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023075// _loop0_34: ',' import_from_as_name
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023076static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023077_loop0_34_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023078{
23079 D(p->level++);
23080 if (p->error_indicator) {
23081 D(p->level--);
23082 return NULL;
23083 }
23084 void *_res = NULL;
23085 int _mark = p->mark;
23086 int _start_mark = p->mark;
23087 void **_children = PyMem_Malloc(sizeof(void *));
23088 if (!_children) {
23089 p->error_indicator = 1;
23090 PyErr_NoMemory();
23091 D(p->level--);
23092 return NULL;
23093 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023094 Py_ssize_t _children_capacity = 1;
23095 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023096 { // ',' import_from_as_name
23097 if (p->error_indicator) {
23098 D(p->level--);
23099 return NULL;
23100 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023101 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 +010023102 Token * _literal;
23103 alias_ty elem;
23104 while (
23105 (_literal = _PyPegen_expect_token(p, 12)) // token=','
23106 &&
23107 (elem = import_from_as_name_rule(p)) // import_from_as_name
23108 )
23109 {
23110 _res = elem;
23111 if (_res == NULL && PyErr_Occurred()) {
23112 p->error_indicator = 1;
23113 PyMem_Free(_children);
23114 D(p->level--);
23115 return NULL;
23116 }
23117 if (_n == _children_capacity) {
23118 _children_capacity *= 2;
23119 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23120 if (!_new_children) {
23121 p->error_indicator = 1;
23122 PyErr_NoMemory();
23123 D(p->level--);
23124 return NULL;
23125 }
23126 _children = _new_children;
23127 }
23128 _children[_n++] = _res;
23129 _mark = p->mark;
23130 }
23131 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023132 D(fprintf(stderr, "%*c%s _loop0_34[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023133 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' import_from_as_name"));
23134 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023135 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023136 if (!_seq) {
23137 PyMem_Free(_children);
23138 p->error_indicator = 1;
23139 PyErr_NoMemory();
23140 D(p->level--);
23141 return NULL;
23142 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023143 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023144 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023145 _PyPegen_insert_memo(p, _start_mark, _loop0_34_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023146 D(p->level--);
23147 return _seq;
23148}
23149
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023150// _gather_33: import_from_as_name _loop0_34
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023151static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023152_gather_33_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023153{
23154 D(p->level++);
23155 if (p->error_indicator) {
23156 D(p->level--);
23157 return NULL;
23158 }
23159 asdl_seq * _res = NULL;
23160 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023161 { // import_from_as_name _loop0_34
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023162 if (p->error_indicator) {
23163 D(p->level--);
23164 return NULL;
23165 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023166 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 +010023167 alias_ty elem;
23168 asdl_seq * seq;
23169 if (
23170 (elem = import_from_as_name_rule(p)) // import_from_as_name
23171 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023172 (seq = _loop0_34_rule(p)) // _loop0_34
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023173 )
23174 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023175 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 +010023176 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
23177 goto done;
23178 }
23179 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023180 D(fprintf(stderr, "%*c%s _gather_33[%d-%d]: %s failed!\n", p->level, ' ',
23181 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from_as_name _loop0_34"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023182 }
23183 _res = NULL;
23184 done:
23185 D(p->level--);
23186 return _res;
23187}
23188
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023189// _tmp_35: 'as' NAME
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023190static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023191_tmp_35_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023192{
23193 D(p->level++);
23194 if (p->error_indicator) {
23195 D(p->level--);
23196 return NULL;
23197 }
23198 void * _res = NULL;
23199 int _mark = p->mark;
23200 { // 'as' NAME
23201 if (p->error_indicator) {
23202 D(p->level--);
23203 return NULL;
23204 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023205 D(fprintf(stderr, "%*c> _tmp_35[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023206 Token * _keyword;
23207 expr_ty z;
23208 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023209 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023210 &&
23211 (z = _PyPegen_name_token(p)) // NAME
23212 )
23213 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023214 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 +010023215 _res = z;
23216 if (_res == NULL && PyErr_Occurred()) {
23217 p->error_indicator = 1;
23218 D(p->level--);
23219 return NULL;
23220 }
23221 goto done;
23222 }
23223 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023224 D(fprintf(stderr, "%*c%s _tmp_35[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023225 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
23226 }
23227 _res = NULL;
23228 done:
23229 D(p->level--);
23230 return _res;
23231}
23232
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023233// _loop0_37: ',' dotted_as_name
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023234static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023235_loop0_37_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023236{
23237 D(p->level++);
23238 if (p->error_indicator) {
23239 D(p->level--);
23240 return NULL;
23241 }
23242 void *_res = NULL;
23243 int _mark = p->mark;
23244 int _start_mark = p->mark;
23245 void **_children = PyMem_Malloc(sizeof(void *));
23246 if (!_children) {
23247 p->error_indicator = 1;
23248 PyErr_NoMemory();
23249 D(p->level--);
23250 return NULL;
23251 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023252 Py_ssize_t _children_capacity = 1;
23253 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023254 { // ',' dotted_as_name
23255 if (p->error_indicator) {
23256 D(p->level--);
23257 return NULL;
23258 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023259 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 +010023260 Token * _literal;
23261 alias_ty elem;
23262 while (
23263 (_literal = _PyPegen_expect_token(p, 12)) // token=','
23264 &&
23265 (elem = dotted_as_name_rule(p)) // dotted_as_name
23266 )
23267 {
23268 _res = elem;
23269 if (_res == NULL && PyErr_Occurred()) {
23270 p->error_indicator = 1;
23271 PyMem_Free(_children);
23272 D(p->level--);
23273 return NULL;
23274 }
23275 if (_n == _children_capacity) {
23276 _children_capacity *= 2;
23277 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23278 if (!_new_children) {
23279 p->error_indicator = 1;
23280 PyErr_NoMemory();
23281 D(p->level--);
23282 return NULL;
23283 }
23284 _children = _new_children;
23285 }
23286 _children[_n++] = _res;
23287 _mark = p->mark;
23288 }
23289 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023290 D(fprintf(stderr, "%*c%s _loop0_37[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023291 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' dotted_as_name"));
23292 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023293 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023294 if (!_seq) {
23295 PyMem_Free(_children);
23296 p->error_indicator = 1;
23297 PyErr_NoMemory();
23298 D(p->level--);
23299 return NULL;
23300 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023301 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023302 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023303 _PyPegen_insert_memo(p, _start_mark, _loop0_37_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023304 D(p->level--);
23305 return _seq;
23306}
23307
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023308// _gather_36: dotted_as_name _loop0_37
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023309static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023310_gather_36_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023311{
23312 D(p->level++);
23313 if (p->error_indicator) {
23314 D(p->level--);
23315 return NULL;
23316 }
23317 asdl_seq * _res = NULL;
23318 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023319 { // dotted_as_name _loop0_37
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023320 if (p->error_indicator) {
23321 D(p->level--);
23322 return NULL;
23323 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023324 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 +010023325 alias_ty elem;
23326 asdl_seq * seq;
23327 if (
23328 (elem = dotted_as_name_rule(p)) // dotted_as_name
23329 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023330 (seq = _loop0_37_rule(p)) // _loop0_37
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023331 )
23332 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023333 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 +010023334 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
23335 goto done;
23336 }
23337 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023338 D(fprintf(stderr, "%*c%s _gather_36[%d-%d]: %s failed!\n", p->level, ' ',
23339 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dotted_as_name _loop0_37"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023340 }
23341 _res = NULL;
23342 done:
23343 D(p->level--);
23344 return _res;
23345}
23346
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023347// _tmp_38: 'as' NAME
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023348static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023349_tmp_38_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023350{
23351 D(p->level++);
23352 if (p->error_indicator) {
23353 D(p->level--);
23354 return NULL;
23355 }
23356 void * _res = NULL;
23357 int _mark = p->mark;
23358 { // 'as' NAME
23359 if (p->error_indicator) {
23360 D(p->level--);
23361 return NULL;
23362 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023363 D(fprintf(stderr, "%*c> _tmp_38[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023364 Token * _keyword;
23365 expr_ty z;
23366 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023367 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023368 &&
23369 (z = _PyPegen_name_token(p)) // NAME
23370 )
23371 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023372 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 +010023373 _res = z;
23374 if (_res == NULL && PyErr_Occurred()) {
23375 p->error_indicator = 1;
23376 D(p->level--);
23377 return NULL;
23378 }
23379 goto done;
23380 }
23381 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023382 D(fprintf(stderr, "%*c%s _tmp_38[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023383 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
23384 }
23385 _res = NULL;
23386 done:
23387 D(p->level--);
23388 return _res;
23389}
23390
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023391// _loop0_40: ',' with_item
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023392static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023393_loop0_40_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023394{
23395 D(p->level++);
23396 if (p->error_indicator) {
23397 D(p->level--);
23398 return NULL;
23399 }
23400 void *_res = NULL;
23401 int _mark = p->mark;
23402 int _start_mark = p->mark;
23403 void **_children = PyMem_Malloc(sizeof(void *));
23404 if (!_children) {
23405 p->error_indicator = 1;
23406 PyErr_NoMemory();
23407 D(p->level--);
23408 return NULL;
23409 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023410 Py_ssize_t _children_capacity = 1;
23411 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023412 { // ',' with_item
23413 if (p->error_indicator) {
23414 D(p->level--);
23415 return NULL;
23416 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023417 D(fprintf(stderr, "%*c> _loop0_40[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023418 Token * _literal;
23419 withitem_ty elem;
23420 while (
23421 (_literal = _PyPegen_expect_token(p, 12)) // token=','
23422 &&
23423 (elem = with_item_rule(p)) // with_item
23424 )
23425 {
23426 _res = elem;
23427 if (_res == NULL && PyErr_Occurred()) {
23428 p->error_indicator = 1;
23429 PyMem_Free(_children);
23430 D(p->level--);
23431 return NULL;
23432 }
23433 if (_n == _children_capacity) {
23434 _children_capacity *= 2;
23435 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23436 if (!_new_children) {
23437 p->error_indicator = 1;
23438 PyErr_NoMemory();
23439 D(p->level--);
23440 return NULL;
23441 }
23442 _children = _new_children;
23443 }
23444 _children[_n++] = _res;
23445 _mark = p->mark;
23446 }
23447 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023448 D(fprintf(stderr, "%*c%s _loop0_40[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023449 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
23450 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023451 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023452 if (!_seq) {
23453 PyMem_Free(_children);
23454 p->error_indicator = 1;
23455 PyErr_NoMemory();
23456 D(p->level--);
23457 return NULL;
23458 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023459 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023460 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023461 _PyPegen_insert_memo(p, _start_mark, _loop0_40_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023462 D(p->level--);
23463 return _seq;
23464}
23465
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023466// _gather_39: with_item _loop0_40
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023467static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023468_gather_39_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023469{
23470 D(p->level++);
23471 if (p->error_indicator) {
23472 D(p->level--);
23473 return NULL;
23474 }
23475 asdl_seq * _res = NULL;
23476 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023477 { // with_item _loop0_40
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023478 if (p->error_indicator) {
23479 D(p->level--);
23480 return NULL;
23481 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023482 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 +010023483 withitem_ty elem;
23484 asdl_seq * seq;
23485 if (
23486 (elem = with_item_rule(p)) // with_item
23487 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023488 (seq = _loop0_40_rule(p)) // _loop0_40
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023489 )
23490 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023491 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 +010023492 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
23493 goto done;
23494 }
23495 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023496 D(fprintf(stderr, "%*c%s _gather_39[%d-%d]: %s failed!\n", p->level, ' ',
23497 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_40"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023498 }
23499 _res = NULL;
23500 done:
23501 D(p->level--);
23502 return _res;
23503}
23504
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023505// _loop0_42: ',' with_item
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023506static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023507_loop0_42_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023508{
23509 D(p->level++);
23510 if (p->error_indicator) {
23511 D(p->level--);
23512 return NULL;
23513 }
23514 void *_res = NULL;
23515 int _mark = p->mark;
23516 int _start_mark = p->mark;
23517 void **_children = PyMem_Malloc(sizeof(void *));
23518 if (!_children) {
23519 p->error_indicator = 1;
23520 PyErr_NoMemory();
23521 D(p->level--);
23522 return NULL;
23523 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023524 Py_ssize_t _children_capacity = 1;
23525 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023526 { // ',' with_item
23527 if (p->error_indicator) {
23528 D(p->level--);
23529 return NULL;
23530 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023531 D(fprintf(stderr, "%*c> _loop0_42[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023532 Token * _literal;
23533 withitem_ty elem;
23534 while (
23535 (_literal = _PyPegen_expect_token(p, 12)) // token=','
23536 &&
23537 (elem = with_item_rule(p)) // with_item
23538 )
23539 {
23540 _res = elem;
23541 if (_res == NULL && PyErr_Occurred()) {
23542 p->error_indicator = 1;
23543 PyMem_Free(_children);
23544 D(p->level--);
23545 return NULL;
23546 }
23547 if (_n == _children_capacity) {
23548 _children_capacity *= 2;
23549 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23550 if (!_new_children) {
23551 p->error_indicator = 1;
23552 PyErr_NoMemory();
23553 D(p->level--);
23554 return NULL;
23555 }
23556 _children = _new_children;
23557 }
23558 _children[_n++] = _res;
23559 _mark = p->mark;
23560 }
23561 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023562 D(fprintf(stderr, "%*c%s _loop0_42[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023563 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
23564 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023565 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023566 if (!_seq) {
23567 PyMem_Free(_children);
23568 p->error_indicator = 1;
23569 PyErr_NoMemory();
23570 D(p->level--);
23571 return NULL;
23572 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023573 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023574 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023575 _PyPegen_insert_memo(p, _start_mark, _loop0_42_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023576 D(p->level--);
23577 return _seq;
23578}
23579
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023580// _gather_41: with_item _loop0_42
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023581static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023582_gather_41_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023583{
23584 D(p->level++);
23585 if (p->error_indicator) {
23586 D(p->level--);
23587 return NULL;
23588 }
23589 asdl_seq * _res = NULL;
23590 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023591 { // with_item _loop0_42
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023592 if (p->error_indicator) {
23593 D(p->level--);
23594 return NULL;
23595 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023596 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 +010023597 withitem_ty elem;
23598 asdl_seq * seq;
23599 if (
23600 (elem = with_item_rule(p)) // with_item
23601 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023602 (seq = _loop0_42_rule(p)) // _loop0_42
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023603 )
23604 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023605 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 +010023606 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
23607 goto done;
23608 }
23609 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023610 D(fprintf(stderr, "%*c%s _gather_41[%d-%d]: %s failed!\n", p->level, ' ',
23611 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_42"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023612 }
23613 _res = NULL;
23614 done:
23615 D(p->level--);
23616 return _res;
23617}
23618
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023619// _loop0_44: ',' with_item
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023620static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023621_loop0_44_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023622{
23623 D(p->level++);
23624 if (p->error_indicator) {
23625 D(p->level--);
23626 return NULL;
23627 }
23628 void *_res = NULL;
23629 int _mark = p->mark;
23630 int _start_mark = p->mark;
23631 void **_children = PyMem_Malloc(sizeof(void *));
23632 if (!_children) {
23633 p->error_indicator = 1;
23634 PyErr_NoMemory();
23635 D(p->level--);
23636 return NULL;
23637 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023638 Py_ssize_t _children_capacity = 1;
23639 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023640 { // ',' with_item
23641 if (p->error_indicator) {
23642 D(p->level--);
23643 return NULL;
23644 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023645 D(fprintf(stderr, "%*c> _loop0_44[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023646 Token * _literal;
23647 withitem_ty elem;
23648 while (
23649 (_literal = _PyPegen_expect_token(p, 12)) // token=','
23650 &&
23651 (elem = with_item_rule(p)) // with_item
23652 )
23653 {
23654 _res = elem;
23655 if (_res == NULL && PyErr_Occurred()) {
23656 p->error_indicator = 1;
23657 PyMem_Free(_children);
23658 D(p->level--);
23659 return NULL;
23660 }
23661 if (_n == _children_capacity) {
23662 _children_capacity *= 2;
23663 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23664 if (!_new_children) {
23665 p->error_indicator = 1;
23666 PyErr_NoMemory();
23667 D(p->level--);
23668 return NULL;
23669 }
23670 _children = _new_children;
23671 }
23672 _children[_n++] = _res;
23673 _mark = p->mark;
23674 }
23675 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023676 D(fprintf(stderr, "%*c%s _loop0_44[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023677 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
23678 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023679 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023680 if (!_seq) {
23681 PyMem_Free(_children);
23682 p->error_indicator = 1;
23683 PyErr_NoMemory();
23684 D(p->level--);
23685 return NULL;
23686 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023687 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023688 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023689 _PyPegen_insert_memo(p, _start_mark, _loop0_44_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023690 D(p->level--);
23691 return _seq;
23692}
23693
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023694// _gather_43: with_item _loop0_44
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023695static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023696_gather_43_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023697{
23698 D(p->level++);
23699 if (p->error_indicator) {
23700 D(p->level--);
23701 return NULL;
23702 }
23703 asdl_seq * _res = NULL;
23704 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023705 { // with_item _loop0_44
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023706 if (p->error_indicator) {
23707 D(p->level--);
23708 return NULL;
23709 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023710 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 +010023711 withitem_ty elem;
23712 asdl_seq * seq;
23713 if (
23714 (elem = with_item_rule(p)) // with_item
23715 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023716 (seq = _loop0_44_rule(p)) // _loop0_44
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023717 )
23718 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023719 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 +010023720 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
23721 goto done;
23722 }
23723 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023724 D(fprintf(stderr, "%*c%s _gather_43[%d-%d]: %s failed!\n", p->level, ' ',
23725 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_44"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023726 }
23727 _res = NULL;
23728 done:
23729 D(p->level--);
23730 return _res;
23731}
23732
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023733// _loop0_46: ',' with_item
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023734static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023735_loop0_46_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023736{
23737 D(p->level++);
23738 if (p->error_indicator) {
23739 D(p->level--);
23740 return NULL;
23741 }
23742 void *_res = NULL;
23743 int _mark = p->mark;
23744 int _start_mark = p->mark;
23745 void **_children = PyMem_Malloc(sizeof(void *));
23746 if (!_children) {
23747 p->error_indicator = 1;
23748 PyErr_NoMemory();
23749 D(p->level--);
23750 return NULL;
23751 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023752 Py_ssize_t _children_capacity = 1;
23753 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023754 { // ',' with_item
23755 if (p->error_indicator) {
23756 D(p->level--);
23757 return NULL;
23758 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023759 D(fprintf(stderr, "%*c> _loop0_46[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023760 Token * _literal;
23761 withitem_ty elem;
23762 while (
23763 (_literal = _PyPegen_expect_token(p, 12)) // token=','
23764 &&
23765 (elem = with_item_rule(p)) // with_item
23766 )
23767 {
23768 _res = elem;
23769 if (_res == NULL && PyErr_Occurred()) {
23770 p->error_indicator = 1;
23771 PyMem_Free(_children);
23772 D(p->level--);
23773 return NULL;
23774 }
23775 if (_n == _children_capacity) {
23776 _children_capacity *= 2;
23777 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23778 if (!_new_children) {
23779 p->error_indicator = 1;
23780 PyErr_NoMemory();
23781 D(p->level--);
23782 return NULL;
23783 }
23784 _children = _new_children;
23785 }
23786 _children[_n++] = _res;
23787 _mark = p->mark;
23788 }
23789 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023790 D(fprintf(stderr, "%*c%s _loop0_46[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023791 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
23792 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023793 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023794 if (!_seq) {
23795 PyMem_Free(_children);
23796 p->error_indicator = 1;
23797 PyErr_NoMemory();
23798 D(p->level--);
23799 return NULL;
23800 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023801 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023802 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023803 _PyPegen_insert_memo(p, _start_mark, _loop0_46_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023804 D(p->level--);
23805 return _seq;
23806}
23807
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023808// _gather_45: with_item _loop0_46
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023809static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023810_gather_45_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023811{
23812 D(p->level++);
23813 if (p->error_indicator) {
23814 D(p->level--);
23815 return NULL;
23816 }
23817 asdl_seq * _res = NULL;
23818 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023819 { // with_item _loop0_46
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023820 if (p->error_indicator) {
23821 D(p->level--);
23822 return NULL;
23823 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023824 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 +010023825 withitem_ty elem;
23826 asdl_seq * seq;
23827 if (
23828 (elem = with_item_rule(p)) // with_item
23829 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023830 (seq = _loop0_46_rule(p)) // _loop0_46
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023831 )
23832 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023833 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 +010023834 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
23835 goto done;
23836 }
23837 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023838 D(fprintf(stderr, "%*c%s _gather_45[%d-%d]: %s failed!\n", p->level, ' ',
23839 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_46"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023840 }
23841 _res = NULL;
23842 done:
23843 D(p->level--);
23844 return _res;
23845}
23846
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023847// _tmp_47: ',' | ')' | ':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023848static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023849_tmp_47_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023850{
23851 D(p->level++);
23852 if (p->error_indicator) {
23853 D(p->level--);
23854 return NULL;
23855 }
23856 void * _res = NULL;
23857 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023858 { // ','
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023859 if (p->error_indicator) {
23860 D(p->level--);
23861 return NULL;
23862 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023863 D(fprintf(stderr, "%*c> _tmp_47[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','"));
23864 Token * _literal;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023865 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023866 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023867 )
23868 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023869 D(fprintf(stderr, "%*c+ _tmp_47[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','"));
23870 _res = _literal;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023871 goto done;
23872 }
23873 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023874 D(fprintf(stderr, "%*c%s _tmp_47[%d-%d]: %s failed!\n", p->level, ' ',
23875 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','"));
23876 }
23877 { // ')'
23878 if (p->error_indicator) {
23879 D(p->level--);
23880 return NULL;
23881 }
23882 D(fprintf(stderr, "%*c> _tmp_47[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
23883 Token * _literal;
23884 if (
23885 (_literal = _PyPegen_expect_token(p, 8)) // token=')'
23886 )
23887 {
23888 D(fprintf(stderr, "%*c+ _tmp_47[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
23889 _res = _literal;
23890 goto done;
23891 }
23892 p->mark = _mark;
23893 D(fprintf(stderr, "%*c%s _tmp_47[%d-%d]: %s failed!\n", p->level, ' ',
23894 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
23895 }
23896 { // ':'
23897 if (p->error_indicator) {
23898 D(p->level--);
23899 return NULL;
23900 }
23901 D(fprintf(stderr, "%*c> _tmp_47[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
23902 Token * _literal;
23903 if (
23904 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
23905 )
23906 {
23907 D(fprintf(stderr, "%*c+ _tmp_47[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
23908 _res = _literal;
23909 goto done;
23910 }
23911 p->mark = _mark;
23912 D(fprintf(stderr, "%*c%s _tmp_47[%d-%d]: %s failed!\n", p->level, ' ',
23913 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023914 }
23915 _res = NULL;
23916 done:
23917 D(p->level--);
23918 return _res;
23919}
23920
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023921// _loop1_48: except_block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023922static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023923_loop1_48_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023924{
23925 D(p->level++);
23926 if (p->error_indicator) {
23927 D(p->level--);
23928 return NULL;
23929 }
23930 void *_res = NULL;
23931 int _mark = p->mark;
23932 int _start_mark = p->mark;
23933 void **_children = PyMem_Malloc(sizeof(void *));
23934 if (!_children) {
23935 p->error_indicator = 1;
23936 PyErr_NoMemory();
23937 D(p->level--);
23938 return NULL;
23939 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023940 Py_ssize_t _children_capacity = 1;
23941 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023942 { // except_block
23943 if (p->error_indicator) {
23944 D(p->level--);
23945 return NULL;
23946 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023947 D(fprintf(stderr, "%*c> _loop1_48[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "except_block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023948 excepthandler_ty except_block_var;
23949 while (
23950 (except_block_var = except_block_rule(p)) // except_block
23951 )
23952 {
23953 _res = except_block_var;
23954 if (_n == _children_capacity) {
23955 _children_capacity *= 2;
23956 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23957 if (!_new_children) {
23958 p->error_indicator = 1;
23959 PyErr_NoMemory();
23960 D(p->level--);
23961 return NULL;
23962 }
23963 _children = _new_children;
23964 }
23965 _children[_n++] = _res;
23966 _mark = p->mark;
23967 }
23968 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023969 D(fprintf(stderr, "%*c%s _loop1_48[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023970 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "except_block"));
23971 }
23972 if (_n == 0 || p->error_indicator) {
23973 PyMem_Free(_children);
23974 D(p->level--);
23975 return NULL;
23976 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023977 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023978 if (!_seq) {
23979 PyMem_Free(_children);
23980 p->error_indicator = 1;
23981 PyErr_NoMemory();
23982 D(p->level--);
23983 return NULL;
23984 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023985 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023986 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023987 _PyPegen_insert_memo(p, _start_mark, _loop1_48_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023988 D(p->level--);
23989 return _seq;
23990}
23991
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023992// _tmp_49: 'as' NAME
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023993static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023994_tmp_49_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023995{
23996 D(p->level++);
23997 if (p->error_indicator) {
23998 D(p->level--);
23999 return NULL;
24000 }
24001 void * _res = NULL;
24002 int _mark = p->mark;
24003 { // 'as' NAME
24004 if (p->error_indicator) {
24005 D(p->level--);
24006 return NULL;
24007 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024008 D(fprintf(stderr, "%*c> _tmp_49[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024009 Token * _keyword;
24010 expr_ty z;
24011 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024012 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024013 &&
24014 (z = _PyPegen_name_token(p)) // NAME
24015 )
24016 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024017 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 +010024018 _res = z;
24019 if (_res == NULL && PyErr_Occurred()) {
24020 p->error_indicator = 1;
24021 D(p->level--);
24022 return NULL;
24023 }
24024 goto done;
24025 }
24026 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024027 D(fprintf(stderr, "%*c%s _tmp_49[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024028 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
24029 }
24030 _res = NULL;
24031 done:
24032 D(p->level--);
24033 return _res;
24034}
24035
Brandt Bucher145bf262021-02-26 14:51:55 -080024036// _loop1_50: case_block
24037static asdl_seq *
24038_loop1_50_rule(Parser *p)
24039{
24040 D(p->level++);
24041 if (p->error_indicator) {
24042 D(p->level--);
24043 return NULL;
24044 }
24045 void *_res = NULL;
24046 int _mark = p->mark;
24047 int _start_mark = p->mark;
24048 void **_children = PyMem_Malloc(sizeof(void *));
24049 if (!_children) {
24050 p->error_indicator = 1;
24051 PyErr_NoMemory();
24052 D(p->level--);
24053 return NULL;
24054 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024055 Py_ssize_t _children_capacity = 1;
24056 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080024057 { // case_block
24058 if (p->error_indicator) {
24059 D(p->level--);
24060 return NULL;
24061 }
24062 D(fprintf(stderr, "%*c> _loop1_50[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "case_block"));
24063 match_case_ty case_block_var;
24064 while (
24065 (case_block_var = case_block_rule(p)) // case_block
24066 )
24067 {
24068 _res = case_block_var;
24069 if (_n == _children_capacity) {
24070 _children_capacity *= 2;
24071 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24072 if (!_new_children) {
24073 p->error_indicator = 1;
24074 PyErr_NoMemory();
24075 D(p->level--);
24076 return NULL;
24077 }
24078 _children = _new_children;
24079 }
24080 _children[_n++] = _res;
24081 _mark = p->mark;
24082 }
24083 p->mark = _mark;
24084 D(fprintf(stderr, "%*c%s _loop1_50[%d-%d]: %s failed!\n", p->level, ' ',
24085 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "case_block"));
24086 }
24087 if (_n == 0 || p->error_indicator) {
24088 PyMem_Free(_children);
24089 D(p->level--);
24090 return NULL;
24091 }
24092 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
24093 if (!_seq) {
24094 PyMem_Free(_children);
24095 p->error_indicator = 1;
24096 PyErr_NoMemory();
24097 D(p->level--);
24098 return NULL;
24099 }
24100 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
24101 PyMem_Free(_children);
24102 _PyPegen_insert_memo(p, _start_mark, _loop1_50_type, _seq);
24103 D(p->level--);
24104 return _seq;
24105}
24106
24107// _loop0_52: '|' closed_pattern
24108static asdl_seq *
24109_loop0_52_rule(Parser *p)
24110{
24111 D(p->level++);
24112 if (p->error_indicator) {
24113 D(p->level--);
24114 return NULL;
24115 }
24116 void *_res = NULL;
24117 int _mark = p->mark;
24118 int _start_mark = p->mark;
24119 void **_children = PyMem_Malloc(sizeof(void *));
24120 if (!_children) {
24121 p->error_indicator = 1;
24122 PyErr_NoMemory();
24123 D(p->level--);
24124 return NULL;
24125 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024126 Py_ssize_t _children_capacity = 1;
24127 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080024128 { // '|' closed_pattern
24129 if (p->error_indicator) {
24130 D(p->level--);
24131 return NULL;
24132 }
24133 D(fprintf(stderr, "%*c> _loop0_52[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'|' closed_pattern"));
24134 Token * _literal;
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024135 pattern_ty elem;
Brandt Bucher145bf262021-02-26 14:51:55 -080024136 while (
24137 (_literal = _PyPegen_expect_token(p, 18)) // token='|'
24138 &&
24139 (elem = closed_pattern_rule(p)) // closed_pattern
24140 )
24141 {
24142 _res = elem;
24143 if (_res == NULL && PyErr_Occurred()) {
24144 p->error_indicator = 1;
24145 PyMem_Free(_children);
24146 D(p->level--);
24147 return NULL;
24148 }
24149 if (_n == _children_capacity) {
24150 _children_capacity *= 2;
24151 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24152 if (!_new_children) {
24153 p->error_indicator = 1;
24154 PyErr_NoMemory();
24155 D(p->level--);
24156 return NULL;
24157 }
24158 _children = _new_children;
24159 }
24160 _children[_n++] = _res;
24161 _mark = p->mark;
24162 }
24163 p->mark = _mark;
24164 D(fprintf(stderr, "%*c%s _loop0_52[%d-%d]: %s failed!\n", p->level, ' ',
24165 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'|' closed_pattern"));
24166 }
24167 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
24168 if (!_seq) {
24169 PyMem_Free(_children);
24170 p->error_indicator = 1;
24171 PyErr_NoMemory();
24172 D(p->level--);
24173 return NULL;
24174 }
24175 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
24176 PyMem_Free(_children);
24177 _PyPegen_insert_memo(p, _start_mark, _loop0_52_type, _seq);
24178 D(p->level--);
24179 return _seq;
24180}
24181
24182// _gather_51: closed_pattern _loop0_52
24183static asdl_seq *
24184_gather_51_rule(Parser *p)
24185{
24186 D(p->level++);
24187 if (p->error_indicator) {
24188 D(p->level--);
24189 return NULL;
24190 }
24191 asdl_seq * _res = NULL;
24192 int _mark = p->mark;
24193 { // closed_pattern _loop0_52
24194 if (p->error_indicator) {
24195 D(p->level--);
24196 return NULL;
24197 }
24198 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 +100024199 pattern_ty elem;
Brandt Bucher145bf262021-02-26 14:51:55 -080024200 asdl_seq * seq;
24201 if (
24202 (elem = closed_pattern_rule(p)) // closed_pattern
24203 &&
24204 (seq = _loop0_52_rule(p)) // _loop0_52
24205 )
24206 {
24207 D(fprintf(stderr, "%*c+ _gather_51[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "closed_pattern _loop0_52"));
24208 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
24209 goto done;
24210 }
24211 p->mark = _mark;
24212 D(fprintf(stderr, "%*c%s _gather_51[%d-%d]: %s failed!\n", p->level, ' ',
24213 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "closed_pattern _loop0_52"));
24214 }
24215 _res = NULL;
24216 done:
24217 D(p->level--);
24218 return _res;
24219}
24220
24221// _tmp_53: '+' | '-'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024222static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080024223_tmp_53_rule(Parser *p)
24224{
24225 D(p->level++);
24226 if (p->error_indicator) {
24227 D(p->level--);
24228 return NULL;
24229 }
24230 void * _res = NULL;
24231 int _mark = p->mark;
24232 { // '+'
24233 if (p->error_indicator) {
24234 D(p->level--);
24235 return NULL;
24236 }
24237 D(fprintf(stderr, "%*c> _tmp_53[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'+'"));
24238 Token * _literal;
24239 if (
24240 (_literal = _PyPegen_expect_token(p, 14)) // token='+'
24241 )
24242 {
24243 D(fprintf(stderr, "%*c+ _tmp_53[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'+'"));
24244 _res = _literal;
24245 goto done;
24246 }
24247 p->mark = _mark;
24248 D(fprintf(stderr, "%*c%s _tmp_53[%d-%d]: %s failed!\n", p->level, ' ',
24249 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'+'"));
24250 }
24251 { // '-'
24252 if (p->error_indicator) {
24253 D(p->level--);
24254 return NULL;
24255 }
24256 D(fprintf(stderr, "%*c> _tmp_53[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-'"));
24257 Token * _literal;
24258 if (
24259 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
24260 )
24261 {
24262 D(fprintf(stderr, "%*c+ _tmp_53[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-'"));
24263 _res = _literal;
24264 goto done;
24265 }
24266 p->mark = _mark;
24267 D(fprintf(stderr, "%*c%s _tmp_53[%d-%d]: %s failed!\n", p->level, ' ',
24268 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-'"));
24269 }
24270 _res = NULL;
24271 done:
24272 D(p->level--);
24273 return _res;
24274}
24275
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024276// _tmp_54: '+' | '-'
Brandt Bucher145bf262021-02-26 14:51:55 -080024277static void *
24278_tmp_54_rule(Parser *p)
24279{
24280 D(p->level++);
24281 if (p->error_indicator) {
24282 D(p->level--);
24283 return NULL;
24284 }
24285 void * _res = NULL;
24286 int _mark = p->mark;
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024287 { // '+'
Brandt Bucher145bf262021-02-26 14:51:55 -080024288 if (p->error_indicator) {
24289 D(p->level--);
24290 return NULL;
24291 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024292 D(fprintf(stderr, "%*c> _tmp_54[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'+'"));
Brandt Bucher145bf262021-02-26 14:51:55 -080024293 Token * _literal;
24294 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024295 (_literal = _PyPegen_expect_token(p, 14)) // token='+'
Brandt Bucher145bf262021-02-26 14:51:55 -080024296 )
24297 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024298 D(fprintf(stderr, "%*c+ _tmp_54[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'+'"));
Brandt Bucher145bf262021-02-26 14:51:55 -080024299 _res = _literal;
24300 goto done;
24301 }
24302 p->mark = _mark;
24303 D(fprintf(stderr, "%*c%s _tmp_54[%d-%d]: %s failed!\n", p->level, ' ',
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024304 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'+'"));
Brandt Bucher145bf262021-02-26 14:51:55 -080024305 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024306 { // '-'
Brandt Bucher145bf262021-02-26 14:51:55 -080024307 if (p->error_indicator) {
24308 D(p->level--);
24309 return NULL;
24310 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024311 D(fprintf(stderr, "%*c> _tmp_54[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-'"));
Brandt Bucher145bf262021-02-26 14:51:55 -080024312 Token * _literal;
24313 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024314 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
Brandt Bucher145bf262021-02-26 14:51:55 -080024315 )
24316 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024317 D(fprintf(stderr, "%*c+ _tmp_54[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-'"));
Brandt Bucher145bf262021-02-26 14:51:55 -080024318 _res = _literal;
24319 goto done;
24320 }
24321 p->mark = _mark;
24322 D(fprintf(stderr, "%*c%s _tmp_54[%d-%d]: %s failed!\n", p->level, ' ',
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024323 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-'"));
Brandt Bucher145bf262021-02-26 14:51:55 -080024324 }
24325 _res = NULL;
24326 done:
24327 D(p->level--);
24328 return _res;
24329}
24330
24331// _tmp_55: '.' | '(' | '='
24332static void *
24333_tmp_55_rule(Parser *p)
24334{
24335 D(p->level++);
24336 if (p->error_indicator) {
24337 D(p->level--);
24338 return NULL;
24339 }
24340 void * _res = NULL;
24341 int _mark = p->mark;
24342 { // '.'
24343 if (p->error_indicator) {
24344 D(p->level--);
24345 return NULL;
24346 }
24347 D(fprintf(stderr, "%*c> _tmp_55[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
24348 Token * _literal;
24349 if (
24350 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
24351 )
24352 {
24353 D(fprintf(stderr, "%*c+ _tmp_55[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
24354 _res = _literal;
24355 goto done;
24356 }
24357 p->mark = _mark;
24358 D(fprintf(stderr, "%*c%s _tmp_55[%d-%d]: %s failed!\n", p->level, ' ',
24359 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
24360 }
24361 { // '('
24362 if (p->error_indicator) {
24363 D(p->level--);
24364 return NULL;
24365 }
24366 D(fprintf(stderr, "%*c> _tmp_55[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'('"));
24367 Token * _literal;
24368 if (
24369 (_literal = _PyPegen_expect_token(p, 7)) // token='('
24370 )
24371 {
24372 D(fprintf(stderr, "%*c+ _tmp_55[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'('"));
24373 _res = _literal;
24374 goto done;
24375 }
24376 p->mark = _mark;
24377 D(fprintf(stderr, "%*c%s _tmp_55[%d-%d]: %s failed!\n", p->level, ' ',
24378 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'('"));
24379 }
24380 { // '='
24381 if (p->error_indicator) {
24382 D(p->level--);
24383 return NULL;
24384 }
24385 D(fprintf(stderr, "%*c> _tmp_55[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'='"));
24386 Token * _literal;
24387 if (
24388 (_literal = _PyPegen_expect_token(p, 22)) // token='='
24389 )
24390 {
24391 D(fprintf(stderr, "%*c+ _tmp_55[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'='"));
24392 _res = _literal;
24393 goto done;
24394 }
24395 p->mark = _mark;
24396 D(fprintf(stderr, "%*c%s _tmp_55[%d-%d]: %s failed!\n", p->level, ' ',
24397 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'='"));
24398 }
24399 _res = NULL;
24400 done:
24401 D(p->level--);
24402 return _res;
24403}
24404
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024405// _tmp_56: '.' | '(' | '='
24406static void *
24407_tmp_56_rule(Parser *p)
24408{
24409 D(p->level++);
24410 if (p->error_indicator) {
24411 D(p->level--);
24412 return NULL;
24413 }
24414 void * _res = NULL;
24415 int _mark = p->mark;
24416 { // '.'
24417 if (p->error_indicator) {
24418 D(p->level--);
24419 return NULL;
24420 }
24421 D(fprintf(stderr, "%*c> _tmp_56[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
24422 Token * _literal;
24423 if (
24424 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
24425 )
24426 {
24427 D(fprintf(stderr, "%*c+ _tmp_56[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
24428 _res = _literal;
24429 goto done;
24430 }
24431 p->mark = _mark;
24432 D(fprintf(stderr, "%*c%s _tmp_56[%d-%d]: %s failed!\n", p->level, ' ',
24433 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
24434 }
24435 { // '('
24436 if (p->error_indicator) {
24437 D(p->level--);
24438 return NULL;
24439 }
24440 D(fprintf(stderr, "%*c> _tmp_56[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'('"));
24441 Token * _literal;
24442 if (
24443 (_literal = _PyPegen_expect_token(p, 7)) // token='('
24444 )
24445 {
24446 D(fprintf(stderr, "%*c+ _tmp_56[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'('"));
24447 _res = _literal;
24448 goto done;
24449 }
24450 p->mark = _mark;
24451 D(fprintf(stderr, "%*c%s _tmp_56[%d-%d]: %s failed!\n", p->level, ' ',
24452 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'('"));
24453 }
24454 { // '='
24455 if (p->error_indicator) {
24456 D(p->level--);
24457 return NULL;
24458 }
24459 D(fprintf(stderr, "%*c> _tmp_56[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'='"));
24460 Token * _literal;
24461 if (
24462 (_literal = _PyPegen_expect_token(p, 22)) // token='='
24463 )
24464 {
24465 D(fprintf(stderr, "%*c+ _tmp_56[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'='"));
24466 _res = _literal;
24467 goto done;
24468 }
24469 p->mark = _mark;
24470 D(fprintf(stderr, "%*c%s _tmp_56[%d-%d]: %s failed!\n", p->level, ' ',
24471 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'='"));
24472 }
24473 _res = NULL;
24474 done:
24475 D(p->level--);
24476 return _res;
24477}
24478
24479// _loop0_58: ',' maybe_star_pattern
Brandt Bucher145bf262021-02-26 14:51:55 -080024480static asdl_seq *
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024481_loop0_58_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080024482{
24483 D(p->level++);
24484 if (p->error_indicator) {
24485 D(p->level--);
24486 return NULL;
24487 }
24488 void *_res = NULL;
24489 int _mark = p->mark;
24490 int _start_mark = p->mark;
24491 void **_children = PyMem_Malloc(sizeof(void *));
24492 if (!_children) {
24493 p->error_indicator = 1;
24494 PyErr_NoMemory();
24495 D(p->level--);
24496 return NULL;
24497 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024498 Py_ssize_t _children_capacity = 1;
24499 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080024500 { // ',' maybe_star_pattern
24501 if (p->error_indicator) {
24502 D(p->level--);
24503 return NULL;
24504 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024505 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 -080024506 Token * _literal;
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024507 pattern_ty elem;
Brandt Bucher145bf262021-02-26 14:51:55 -080024508 while (
24509 (_literal = _PyPegen_expect_token(p, 12)) // token=','
24510 &&
24511 (elem = maybe_star_pattern_rule(p)) // maybe_star_pattern
24512 )
24513 {
24514 _res = elem;
24515 if (_res == NULL && PyErr_Occurred()) {
24516 p->error_indicator = 1;
24517 PyMem_Free(_children);
24518 D(p->level--);
24519 return NULL;
24520 }
24521 if (_n == _children_capacity) {
24522 _children_capacity *= 2;
24523 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24524 if (!_new_children) {
24525 p->error_indicator = 1;
24526 PyErr_NoMemory();
24527 D(p->level--);
24528 return NULL;
24529 }
24530 _children = _new_children;
24531 }
24532 _children[_n++] = _res;
24533 _mark = p->mark;
24534 }
24535 p->mark = _mark;
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024536 D(fprintf(stderr, "%*c%s _loop0_58[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080024537 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' maybe_star_pattern"));
24538 }
24539 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
24540 if (!_seq) {
24541 PyMem_Free(_children);
24542 p->error_indicator = 1;
24543 PyErr_NoMemory();
24544 D(p->level--);
24545 return NULL;
24546 }
24547 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
24548 PyMem_Free(_children);
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024549 _PyPegen_insert_memo(p, _start_mark, _loop0_58_type, _seq);
Brandt Bucher145bf262021-02-26 14:51:55 -080024550 D(p->level--);
24551 return _seq;
24552}
24553
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024554// _gather_57: maybe_star_pattern _loop0_58
Brandt Bucher145bf262021-02-26 14:51:55 -080024555static asdl_seq *
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024556_gather_57_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080024557{
24558 D(p->level++);
24559 if (p->error_indicator) {
24560 D(p->level--);
24561 return NULL;
24562 }
24563 asdl_seq * _res = NULL;
24564 int _mark = p->mark;
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024565 { // maybe_star_pattern _loop0_58
Brandt Bucher145bf262021-02-26 14:51:55 -080024566 if (p->error_indicator) {
24567 D(p->level--);
24568 return NULL;
24569 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024570 D(fprintf(stderr, "%*c> _gather_57[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "maybe_star_pattern _loop0_58"));
24571 pattern_ty elem;
Brandt Bucher145bf262021-02-26 14:51:55 -080024572 asdl_seq * seq;
24573 if (
24574 (elem = maybe_star_pattern_rule(p)) // maybe_star_pattern
24575 &&
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024576 (seq = _loop0_58_rule(p)) // _loop0_58
Brandt Bucher145bf262021-02-26 14:51:55 -080024577 )
24578 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024579 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 -080024580 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
24581 goto done;
24582 }
24583 p->mark = _mark;
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024584 D(fprintf(stderr, "%*c%s _gather_57[%d-%d]: %s failed!\n", p->level, ' ',
24585 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "maybe_star_pattern _loop0_58"));
Brandt Bucher145bf262021-02-26 14:51:55 -080024586 }
24587 _res = NULL;
24588 done:
24589 D(p->level--);
24590 return _res;
24591}
24592
24593// _loop0_60: ',' key_value_pattern
24594static asdl_seq *
24595_loop0_60_rule(Parser *p)
24596{
24597 D(p->level++);
24598 if (p->error_indicator) {
24599 D(p->level--);
24600 return NULL;
24601 }
24602 void *_res = NULL;
24603 int _mark = p->mark;
24604 int _start_mark = p->mark;
24605 void **_children = PyMem_Malloc(sizeof(void *));
24606 if (!_children) {
24607 p->error_indicator = 1;
24608 PyErr_NoMemory();
24609 D(p->level--);
24610 return NULL;
24611 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024612 Py_ssize_t _children_capacity = 1;
24613 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080024614 { // ',' key_value_pattern
24615 if (p->error_indicator) {
24616 D(p->level--);
24617 return NULL;
24618 }
24619 D(fprintf(stderr, "%*c> _loop0_60[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' key_value_pattern"));
24620 Token * _literal;
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024621 KeyPatternPair* elem;
Brandt Bucher145bf262021-02-26 14:51:55 -080024622 while (
24623 (_literal = _PyPegen_expect_token(p, 12)) // token=','
24624 &&
24625 (elem = key_value_pattern_rule(p)) // key_value_pattern
24626 )
24627 {
24628 _res = elem;
24629 if (_res == NULL && PyErr_Occurred()) {
24630 p->error_indicator = 1;
24631 PyMem_Free(_children);
24632 D(p->level--);
24633 return NULL;
24634 }
24635 if (_n == _children_capacity) {
24636 _children_capacity *= 2;
24637 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24638 if (!_new_children) {
24639 p->error_indicator = 1;
24640 PyErr_NoMemory();
24641 D(p->level--);
24642 return NULL;
24643 }
24644 _children = _new_children;
24645 }
24646 _children[_n++] = _res;
24647 _mark = p->mark;
24648 }
24649 p->mark = _mark;
24650 D(fprintf(stderr, "%*c%s _loop0_60[%d-%d]: %s failed!\n", p->level, ' ',
24651 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' key_value_pattern"));
24652 }
24653 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
24654 if (!_seq) {
24655 PyMem_Free(_children);
24656 p->error_indicator = 1;
24657 PyErr_NoMemory();
24658 D(p->level--);
24659 return NULL;
24660 }
24661 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
24662 PyMem_Free(_children);
24663 _PyPegen_insert_memo(p, _start_mark, _loop0_60_type, _seq);
24664 D(p->level--);
24665 return _seq;
24666}
24667
24668// _gather_59: key_value_pattern _loop0_60
24669static asdl_seq *
24670_gather_59_rule(Parser *p)
24671{
24672 D(p->level++);
24673 if (p->error_indicator) {
24674 D(p->level--);
24675 return NULL;
24676 }
24677 asdl_seq * _res = NULL;
24678 int _mark = p->mark;
24679 { // key_value_pattern _loop0_60
24680 if (p->error_indicator) {
24681 D(p->level--);
24682 return NULL;
24683 }
24684 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 +100024685 KeyPatternPair* elem;
Brandt Bucher145bf262021-02-26 14:51:55 -080024686 asdl_seq * seq;
24687 if (
24688 (elem = key_value_pattern_rule(p)) // key_value_pattern
24689 &&
24690 (seq = _loop0_60_rule(p)) // _loop0_60
24691 )
24692 {
24693 D(fprintf(stderr, "%*c+ _gather_59[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "key_value_pattern _loop0_60"));
24694 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
24695 goto done;
24696 }
24697 p->mark = _mark;
24698 D(fprintf(stderr, "%*c%s _gather_59[%d-%d]: %s failed!\n", p->level, ' ',
24699 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "key_value_pattern _loop0_60"));
24700 }
24701 _res = NULL;
24702 done:
24703 D(p->level--);
24704 return _res;
24705}
24706
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024707// _tmp_61: literal_expr | attr
Brandt Bucher145bf262021-02-26 14:51:55 -080024708static void *
24709_tmp_61_rule(Parser *p)
24710{
24711 D(p->level++);
24712 if (p->error_indicator) {
24713 D(p->level--);
24714 return NULL;
24715 }
24716 void * _res = NULL;
24717 int _mark = p->mark;
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024718 { // literal_expr
Brandt Bucher145bf262021-02-26 14:51:55 -080024719 if (p->error_indicator) {
24720 D(p->level--);
24721 return NULL;
24722 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024723 D(fprintf(stderr, "%*c> _tmp_61[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "literal_expr"));
24724 expr_ty literal_expr_var;
Brandt Bucher145bf262021-02-26 14:51:55 -080024725 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024726 (literal_expr_var = literal_expr_rule(p)) // literal_expr
Brandt Bucher145bf262021-02-26 14:51:55 -080024727 )
24728 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024729 D(fprintf(stderr, "%*c+ _tmp_61[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "literal_expr"));
24730 _res = literal_expr_var;
Brandt Bucher145bf262021-02-26 14:51:55 -080024731 goto done;
24732 }
24733 p->mark = _mark;
24734 D(fprintf(stderr, "%*c%s _tmp_61[%d-%d]: %s failed!\n", p->level, ' ',
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024735 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "literal_expr"));
Brandt Bucher145bf262021-02-26 14:51:55 -080024736 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024737 { // attr
Brandt Bucher145bf262021-02-26 14:51:55 -080024738 if (p->error_indicator) {
24739 D(p->level--);
24740 return NULL;
24741 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024742 D(fprintf(stderr, "%*c> _tmp_61[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "attr"));
24743 expr_ty attr_var;
Brandt Bucher145bf262021-02-26 14:51:55 -080024744 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024745 (attr_var = attr_rule(p)) // attr
Brandt Bucher145bf262021-02-26 14:51:55 -080024746 )
24747 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024748 D(fprintf(stderr, "%*c+ _tmp_61[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "attr"));
24749 _res = attr_var;
Brandt Bucher145bf262021-02-26 14:51:55 -080024750 goto done;
24751 }
24752 p->mark = _mark;
24753 D(fprintf(stderr, "%*c%s _tmp_61[%d-%d]: %s failed!\n", p->level, ' ',
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024754 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "attr"));
Brandt Bucher145bf262021-02-26 14:51:55 -080024755 }
24756 _res = NULL;
24757 done:
24758 D(p->level--);
24759 return _res;
24760}
24761
24762// _loop0_63: ',' pattern
24763static asdl_seq *
24764_loop0_63_rule(Parser *p)
24765{
24766 D(p->level++);
24767 if (p->error_indicator) {
24768 D(p->level--);
24769 return NULL;
24770 }
24771 void *_res = NULL;
24772 int _mark = p->mark;
24773 int _start_mark = p->mark;
24774 void **_children = PyMem_Malloc(sizeof(void *));
24775 if (!_children) {
24776 p->error_indicator = 1;
24777 PyErr_NoMemory();
24778 D(p->level--);
24779 return NULL;
24780 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024781 Py_ssize_t _children_capacity = 1;
24782 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080024783 { // ',' pattern
24784 if (p->error_indicator) {
24785 D(p->level--);
24786 return NULL;
24787 }
24788 D(fprintf(stderr, "%*c> _loop0_63[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' pattern"));
24789 Token * _literal;
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024790 pattern_ty elem;
Brandt Bucher145bf262021-02-26 14:51:55 -080024791 while (
24792 (_literal = _PyPegen_expect_token(p, 12)) // token=','
24793 &&
24794 (elem = pattern_rule(p)) // pattern
24795 )
24796 {
24797 _res = elem;
24798 if (_res == NULL && PyErr_Occurred()) {
24799 p->error_indicator = 1;
24800 PyMem_Free(_children);
24801 D(p->level--);
24802 return NULL;
24803 }
24804 if (_n == _children_capacity) {
24805 _children_capacity *= 2;
24806 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24807 if (!_new_children) {
24808 p->error_indicator = 1;
24809 PyErr_NoMemory();
24810 D(p->level--);
24811 return NULL;
24812 }
24813 _children = _new_children;
24814 }
24815 _children[_n++] = _res;
24816 _mark = p->mark;
24817 }
24818 p->mark = _mark;
24819 D(fprintf(stderr, "%*c%s _loop0_63[%d-%d]: %s failed!\n", p->level, ' ',
24820 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' pattern"));
24821 }
24822 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
24823 if (!_seq) {
24824 PyMem_Free(_children);
24825 p->error_indicator = 1;
24826 PyErr_NoMemory();
24827 D(p->level--);
24828 return NULL;
24829 }
24830 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
24831 PyMem_Free(_children);
24832 _PyPegen_insert_memo(p, _start_mark, _loop0_63_type, _seq);
24833 D(p->level--);
24834 return _seq;
24835}
24836
24837// _gather_62: pattern _loop0_63
24838static asdl_seq *
24839_gather_62_rule(Parser *p)
24840{
24841 D(p->level++);
24842 if (p->error_indicator) {
24843 D(p->level--);
24844 return NULL;
24845 }
24846 asdl_seq * _res = NULL;
24847 int _mark = p->mark;
24848 { // pattern _loop0_63
24849 if (p->error_indicator) {
24850 D(p->level--);
24851 return NULL;
24852 }
24853 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 +100024854 pattern_ty elem;
Brandt Bucher145bf262021-02-26 14:51:55 -080024855 asdl_seq * seq;
24856 if (
24857 (elem = pattern_rule(p)) // pattern
24858 &&
24859 (seq = _loop0_63_rule(p)) // _loop0_63
24860 )
24861 {
24862 D(fprintf(stderr, "%*c+ _gather_62[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "pattern _loop0_63"));
24863 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
24864 goto done;
24865 }
24866 p->mark = _mark;
24867 D(fprintf(stderr, "%*c%s _gather_62[%d-%d]: %s failed!\n", p->level, ' ',
24868 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "pattern _loop0_63"));
24869 }
24870 _res = NULL;
24871 done:
24872 D(p->level--);
24873 return _res;
24874}
24875
24876// _loop0_65: ',' keyword_pattern
24877static asdl_seq *
24878_loop0_65_rule(Parser *p)
24879{
24880 D(p->level++);
24881 if (p->error_indicator) {
24882 D(p->level--);
24883 return NULL;
24884 }
24885 void *_res = NULL;
24886 int _mark = p->mark;
24887 int _start_mark = p->mark;
24888 void **_children = PyMem_Malloc(sizeof(void *));
24889 if (!_children) {
24890 p->error_indicator = 1;
24891 PyErr_NoMemory();
24892 D(p->level--);
24893 return NULL;
24894 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024895 Py_ssize_t _children_capacity = 1;
24896 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080024897 { // ',' keyword_pattern
24898 if (p->error_indicator) {
24899 D(p->level--);
24900 return NULL;
24901 }
24902 D(fprintf(stderr, "%*c> _loop0_65[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' keyword_pattern"));
24903 Token * _literal;
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024904 KeyPatternPair* elem;
Brandt Bucher145bf262021-02-26 14:51:55 -080024905 while (
24906 (_literal = _PyPegen_expect_token(p, 12)) // token=','
24907 &&
24908 (elem = keyword_pattern_rule(p)) // keyword_pattern
24909 )
24910 {
24911 _res = elem;
24912 if (_res == NULL && PyErr_Occurred()) {
24913 p->error_indicator = 1;
24914 PyMem_Free(_children);
24915 D(p->level--);
24916 return NULL;
24917 }
24918 if (_n == _children_capacity) {
24919 _children_capacity *= 2;
24920 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24921 if (!_new_children) {
24922 p->error_indicator = 1;
24923 PyErr_NoMemory();
24924 D(p->level--);
24925 return NULL;
24926 }
24927 _children = _new_children;
24928 }
24929 _children[_n++] = _res;
24930 _mark = p->mark;
24931 }
24932 p->mark = _mark;
24933 D(fprintf(stderr, "%*c%s _loop0_65[%d-%d]: %s failed!\n", p->level, ' ',
24934 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' keyword_pattern"));
24935 }
24936 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
24937 if (!_seq) {
24938 PyMem_Free(_children);
24939 p->error_indicator = 1;
24940 PyErr_NoMemory();
24941 D(p->level--);
24942 return NULL;
24943 }
24944 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
24945 PyMem_Free(_children);
24946 _PyPegen_insert_memo(p, _start_mark, _loop0_65_type, _seq);
24947 D(p->level--);
24948 return _seq;
24949}
24950
24951// _gather_64: keyword_pattern _loop0_65
24952static asdl_seq *
24953_gather_64_rule(Parser *p)
24954{
24955 D(p->level++);
24956 if (p->error_indicator) {
24957 D(p->level--);
24958 return NULL;
24959 }
24960 asdl_seq * _res = NULL;
24961 int _mark = p->mark;
24962 { // keyword_pattern _loop0_65
24963 if (p->error_indicator) {
24964 D(p->level--);
24965 return NULL;
24966 }
24967 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 +100024968 KeyPatternPair* elem;
Brandt Bucher145bf262021-02-26 14:51:55 -080024969 asdl_seq * seq;
24970 if (
24971 (elem = keyword_pattern_rule(p)) // keyword_pattern
24972 &&
24973 (seq = _loop0_65_rule(p)) // _loop0_65
24974 )
24975 {
24976 D(fprintf(stderr, "%*c+ _gather_64[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "keyword_pattern _loop0_65"));
24977 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
24978 goto done;
24979 }
24980 p->mark = _mark;
24981 D(fprintf(stderr, "%*c%s _gather_64[%d-%d]: %s failed!\n", p->level, ' ',
24982 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "keyword_pattern _loop0_65"));
24983 }
24984 _res = NULL;
24985 done:
24986 D(p->level--);
24987 return _res;
24988}
24989
24990// _tmp_66: 'from' expression
24991static void *
24992_tmp_66_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024993{
24994 D(p->level++);
24995 if (p->error_indicator) {
24996 D(p->level--);
24997 return NULL;
24998 }
24999 void * _res = NULL;
25000 int _mark = p->mark;
25001 { // 'from' expression
25002 if (p->error_indicator) {
25003 D(p->level--);
25004 return NULL;
25005 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025006 D(fprintf(stderr, "%*c> _tmp_66[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025007 Token * _keyword;
25008 expr_ty z;
25009 if (
25010 (_keyword = _PyPegen_expect_token(p, 514)) // token='from'
25011 &&
25012 (z = expression_rule(p)) // expression
25013 )
25014 {
Brandt Bucher145bf262021-02-26 14:51:55 -080025015 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 +010025016 _res = z;
25017 if (_res == NULL && PyErr_Occurred()) {
25018 p->error_indicator = 1;
25019 D(p->level--);
25020 return NULL;
25021 }
25022 goto done;
25023 }
25024 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025025 D(fprintf(stderr, "%*c%s _tmp_66[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025026 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025027 }
25028 _res = NULL;
25029 done:
25030 D(p->level--);
25031 return _res;
25032}
25033
Brandt Bucher145bf262021-02-26 14:51:55 -080025034// _tmp_67: '->' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025035static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080025036_tmp_67_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025037{
25038 D(p->level++);
25039 if (p->error_indicator) {
25040 D(p->level--);
25041 return NULL;
25042 }
25043 void * _res = NULL;
25044 int _mark = p->mark;
25045 { // '->' expression
25046 if (p->error_indicator) {
25047 D(p->level--);
25048 return NULL;
25049 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025050 D(fprintf(stderr, "%*c> _tmp_67[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'->' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025051 Token * _literal;
25052 expr_ty z;
25053 if (
25054 (_literal = _PyPegen_expect_token(p, 51)) // token='->'
25055 &&
25056 (z = expression_rule(p)) // expression
25057 )
25058 {
Brandt Bucher145bf262021-02-26 14:51:55 -080025059 D(fprintf(stderr, "%*c+ _tmp_67[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'->' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025060 _res = z;
25061 if (_res == NULL && PyErr_Occurred()) {
25062 p->error_indicator = 1;
25063 D(p->level--);
25064 return NULL;
25065 }
25066 goto done;
25067 }
25068 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025069 D(fprintf(stderr, "%*c%s _tmp_67[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025070 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'->' expression"));
25071 }
25072 _res = NULL;
25073 done:
25074 D(p->level--);
25075 return _res;
25076}
25077
Brandt Bucher145bf262021-02-26 14:51:55 -080025078// _tmp_68: '->' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025079static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080025080_tmp_68_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025081{
25082 D(p->level++);
25083 if (p->error_indicator) {
25084 D(p->level--);
25085 return NULL;
25086 }
25087 void * _res = NULL;
25088 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025089 { // '->' expression
25090 if (p->error_indicator) {
25091 D(p->level--);
25092 return NULL;
25093 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025094 D(fprintf(stderr, "%*c> _tmp_68[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'->' expression"));
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025095 Token * _literal;
25096 expr_ty z;
25097 if (
25098 (_literal = _PyPegen_expect_token(p, 51)) // token='->'
25099 &&
25100 (z = expression_rule(p)) // expression
25101 )
25102 {
Brandt Bucher145bf262021-02-26 14:51:55 -080025103 D(fprintf(stderr, "%*c+ _tmp_68[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'->' expression"));
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025104 _res = z;
25105 if (_res == NULL && PyErr_Occurred()) {
25106 p->error_indicator = 1;
25107 D(p->level--);
25108 return NULL;
25109 }
25110 goto done;
25111 }
25112 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025113 D(fprintf(stderr, "%*c%s _tmp_68[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025114 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'->' expression"));
25115 }
25116 _res = NULL;
25117 done:
25118 D(p->level--);
25119 return _res;
25120}
25121
Brandt Bucher145bf262021-02-26 14:51:55 -080025122// _tmp_69: NEWLINE INDENT
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025123static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080025124_tmp_69_rule(Parser *p)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025125{
25126 D(p->level++);
25127 if (p->error_indicator) {
25128 D(p->level--);
25129 return NULL;
25130 }
25131 void * _res = NULL;
25132 int _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025133 { // NEWLINE INDENT
25134 if (p->error_indicator) {
25135 D(p->level--);
25136 return NULL;
25137 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025138 D(fprintf(stderr, "%*c> _tmp_69[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE INDENT"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025139 Token * indent_var;
25140 Token * newline_var;
25141 if (
25142 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
25143 &&
25144 (indent_var = _PyPegen_expect_token(p, INDENT)) // token='INDENT'
25145 )
25146 {
Brandt Bucher145bf262021-02-26 14:51:55 -080025147 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 +010025148 _res = _PyPegen_dummy_name(p, newline_var, indent_var);
25149 goto done;
25150 }
25151 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025152 D(fprintf(stderr, "%*c%s _tmp_69[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025153 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE INDENT"));
25154 }
25155 _res = NULL;
25156 done:
25157 D(p->level--);
25158 return _res;
25159}
25160
Brandt Bucher145bf262021-02-26 14:51:55 -080025161// _loop0_70: param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025162static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025163_loop0_70_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025164{
25165 D(p->level++);
25166 if (p->error_indicator) {
25167 D(p->level--);
25168 return NULL;
25169 }
25170 void *_res = NULL;
25171 int _mark = p->mark;
25172 int _start_mark = p->mark;
25173 void **_children = PyMem_Malloc(sizeof(void *));
25174 if (!_children) {
25175 p->error_indicator = 1;
25176 PyErr_NoMemory();
25177 D(p->level--);
25178 return NULL;
25179 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025180 Py_ssize_t _children_capacity = 1;
25181 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025182 { // param_no_default
25183 if (p->error_indicator) {
25184 D(p->level--);
25185 return NULL;
25186 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025187 D(fprintf(stderr, "%*c> _loop0_70[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025188 arg_ty param_no_default_var;
25189 while (
25190 (param_no_default_var = param_no_default_rule(p)) // param_no_default
25191 )
25192 {
25193 _res = param_no_default_var;
25194 if (_n == _children_capacity) {
25195 _children_capacity *= 2;
25196 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25197 if (!_new_children) {
25198 p->error_indicator = 1;
25199 PyErr_NoMemory();
25200 D(p->level--);
25201 return NULL;
25202 }
25203 _children = _new_children;
25204 }
25205 _children[_n++] = _res;
25206 _mark = p->mark;
25207 }
25208 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025209 D(fprintf(stderr, "%*c%s _loop0_70[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025210 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025211 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025212 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025213 if (!_seq) {
25214 PyMem_Free(_children);
25215 p->error_indicator = 1;
25216 PyErr_NoMemory();
25217 D(p->level--);
25218 return NULL;
25219 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025220 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025221 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025222 _PyPegen_insert_memo(p, _start_mark, _loop0_70_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025223 D(p->level--);
25224 return _seq;
25225}
25226
Brandt Bucher145bf262021-02-26 14:51:55 -080025227// _loop0_71: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025228static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025229_loop0_71_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025230{
25231 D(p->level++);
25232 if (p->error_indicator) {
25233 D(p->level--);
25234 return NULL;
25235 }
25236 void *_res = NULL;
25237 int _mark = p->mark;
25238 int _start_mark = p->mark;
25239 void **_children = PyMem_Malloc(sizeof(void *));
25240 if (!_children) {
25241 p->error_indicator = 1;
25242 PyErr_NoMemory();
25243 D(p->level--);
25244 return NULL;
25245 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025246 Py_ssize_t _children_capacity = 1;
25247 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025248 { // param_with_default
25249 if (p->error_indicator) {
25250 D(p->level--);
25251 return NULL;
25252 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025253 D(fprintf(stderr, "%*c> _loop0_71[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025254 NameDefaultPair* param_with_default_var;
25255 while (
25256 (param_with_default_var = param_with_default_rule(p)) // param_with_default
25257 )
25258 {
25259 _res = param_with_default_var;
25260 if (_n == _children_capacity) {
25261 _children_capacity *= 2;
25262 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25263 if (!_new_children) {
25264 p->error_indicator = 1;
25265 PyErr_NoMemory();
25266 D(p->level--);
25267 return NULL;
25268 }
25269 _children = _new_children;
25270 }
25271 _children[_n++] = _res;
25272 _mark = p->mark;
25273 }
25274 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025275 D(fprintf(stderr, "%*c%s _loop0_71[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025276 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
25277 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025278 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025279 if (!_seq) {
25280 PyMem_Free(_children);
25281 p->error_indicator = 1;
25282 PyErr_NoMemory();
25283 D(p->level--);
25284 return NULL;
25285 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025286 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025287 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025288 _PyPegen_insert_memo(p, _start_mark, _loop0_71_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025289 D(p->level--);
25290 return _seq;
25291}
25292
Brandt Bucher145bf262021-02-26 14:51:55 -080025293// _loop0_72: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025294static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025295_loop0_72_rule(Parser *p)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025296{
25297 D(p->level++);
25298 if (p->error_indicator) {
25299 D(p->level--);
25300 return NULL;
25301 }
25302 void *_res = NULL;
25303 int _mark = p->mark;
25304 int _start_mark = p->mark;
25305 void **_children = PyMem_Malloc(sizeof(void *));
25306 if (!_children) {
25307 p->error_indicator = 1;
25308 PyErr_NoMemory();
25309 D(p->level--);
25310 return NULL;
25311 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025312 Py_ssize_t _children_capacity = 1;
25313 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025314 { // param_with_default
25315 if (p->error_indicator) {
25316 D(p->level--);
25317 return NULL;
25318 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025319 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 +030025320 NameDefaultPair* param_with_default_var;
25321 while (
25322 (param_with_default_var = param_with_default_rule(p)) // param_with_default
25323 )
25324 {
25325 _res = param_with_default_var;
25326 if (_n == _children_capacity) {
25327 _children_capacity *= 2;
25328 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25329 if (!_new_children) {
25330 p->error_indicator = 1;
25331 PyErr_NoMemory();
25332 D(p->level--);
25333 return NULL;
25334 }
25335 _children = _new_children;
25336 }
25337 _children[_n++] = _res;
25338 _mark = p->mark;
25339 }
25340 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025341 D(fprintf(stderr, "%*c%s _loop0_72[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025342 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
25343 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025344 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025345 if (!_seq) {
25346 PyMem_Free(_children);
25347 p->error_indicator = 1;
25348 PyErr_NoMemory();
25349 D(p->level--);
25350 return NULL;
25351 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025352 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025353 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025354 _PyPegen_insert_memo(p, _start_mark, _loop0_72_type, _seq);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025355 D(p->level--);
25356 return _seq;
25357}
25358
Brandt Bucher145bf262021-02-26 14:51:55 -080025359// _loop1_73: param_no_default
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025360static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025361_loop1_73_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025362{
25363 D(p->level++);
25364 if (p->error_indicator) {
25365 D(p->level--);
25366 return NULL;
25367 }
25368 void *_res = NULL;
25369 int _mark = p->mark;
25370 int _start_mark = p->mark;
25371 void **_children = PyMem_Malloc(sizeof(void *));
25372 if (!_children) {
25373 p->error_indicator = 1;
25374 PyErr_NoMemory();
25375 D(p->level--);
25376 return NULL;
25377 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025378 Py_ssize_t _children_capacity = 1;
25379 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025380 { // param_no_default
25381 if (p->error_indicator) {
25382 D(p->level--);
25383 return NULL;
25384 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025385 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 +010025386 arg_ty param_no_default_var;
25387 while (
25388 (param_no_default_var = param_no_default_rule(p)) // param_no_default
25389 )
25390 {
25391 _res = param_no_default_var;
25392 if (_n == _children_capacity) {
25393 _children_capacity *= 2;
25394 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25395 if (!_new_children) {
25396 p->error_indicator = 1;
25397 PyErr_NoMemory();
25398 D(p->level--);
25399 return NULL;
25400 }
25401 _children = _new_children;
25402 }
25403 _children[_n++] = _res;
25404 _mark = p->mark;
25405 }
25406 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025407 D(fprintf(stderr, "%*c%s _loop1_73[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025408 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
25409 }
25410 if (_n == 0 || p->error_indicator) {
25411 PyMem_Free(_children);
25412 D(p->level--);
25413 return NULL;
25414 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025415 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025416 if (!_seq) {
25417 PyMem_Free(_children);
25418 p->error_indicator = 1;
25419 PyErr_NoMemory();
25420 D(p->level--);
25421 return NULL;
25422 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025423 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025424 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025425 _PyPegen_insert_memo(p, _start_mark, _loop1_73_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025426 D(p->level--);
25427 return _seq;
25428}
25429
Brandt Bucher145bf262021-02-26 14:51:55 -080025430// _loop0_74: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025431static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025432_loop0_74_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025433{
25434 D(p->level++);
25435 if (p->error_indicator) {
25436 D(p->level--);
25437 return NULL;
25438 }
25439 void *_res = NULL;
25440 int _mark = p->mark;
25441 int _start_mark = p->mark;
25442 void **_children = PyMem_Malloc(sizeof(void *));
25443 if (!_children) {
25444 p->error_indicator = 1;
25445 PyErr_NoMemory();
25446 D(p->level--);
25447 return NULL;
25448 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025449 Py_ssize_t _children_capacity = 1;
25450 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025451 { // param_with_default
25452 if (p->error_indicator) {
25453 D(p->level--);
25454 return NULL;
25455 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025456 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 +010025457 NameDefaultPair* param_with_default_var;
25458 while (
25459 (param_with_default_var = param_with_default_rule(p)) // param_with_default
25460 )
25461 {
25462 _res = param_with_default_var;
25463 if (_n == _children_capacity) {
25464 _children_capacity *= 2;
25465 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25466 if (!_new_children) {
25467 p->error_indicator = 1;
25468 PyErr_NoMemory();
25469 D(p->level--);
25470 return NULL;
25471 }
25472 _children = _new_children;
25473 }
25474 _children[_n++] = _res;
25475 _mark = p->mark;
25476 }
25477 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025478 D(fprintf(stderr, "%*c%s _loop0_74[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025479 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
25480 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025481 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025482 if (!_seq) {
25483 PyMem_Free(_children);
25484 p->error_indicator = 1;
25485 PyErr_NoMemory();
25486 D(p->level--);
25487 return NULL;
25488 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025489 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025490 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025491 _PyPegen_insert_memo(p, _start_mark, _loop0_74_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025492 D(p->level--);
25493 return _seq;
25494}
25495
Brandt Bucher145bf262021-02-26 14:51:55 -080025496// _loop1_75: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025497static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025498_loop1_75_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025499{
25500 D(p->level++);
25501 if (p->error_indicator) {
25502 D(p->level--);
25503 return NULL;
25504 }
25505 void *_res = NULL;
25506 int _mark = p->mark;
25507 int _start_mark = p->mark;
25508 void **_children = PyMem_Malloc(sizeof(void *));
25509 if (!_children) {
25510 p->error_indicator = 1;
25511 PyErr_NoMemory();
25512 D(p->level--);
25513 return NULL;
25514 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025515 Py_ssize_t _children_capacity = 1;
25516 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025517 { // param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025518 if (p->error_indicator) {
25519 D(p->level--);
25520 return NULL;
25521 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025522 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 +030025523 NameDefaultPair* param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025524 while (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025525 (param_with_default_var = param_with_default_rule(p)) // param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025526 )
25527 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025528 _res = param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025529 if (_n == _children_capacity) {
25530 _children_capacity *= 2;
25531 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25532 if (!_new_children) {
25533 p->error_indicator = 1;
25534 PyErr_NoMemory();
25535 D(p->level--);
25536 return NULL;
25537 }
25538 _children = _new_children;
25539 }
25540 _children[_n++] = _res;
25541 _mark = p->mark;
25542 }
25543 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025544 D(fprintf(stderr, "%*c%s _loop1_75[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025545 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025546 }
25547 if (_n == 0 || p->error_indicator) {
25548 PyMem_Free(_children);
25549 D(p->level--);
25550 return NULL;
25551 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025552 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025553 if (!_seq) {
25554 PyMem_Free(_children);
25555 p->error_indicator = 1;
25556 PyErr_NoMemory();
25557 D(p->level--);
25558 return NULL;
25559 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025560 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025561 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025562 _PyPegen_insert_memo(p, _start_mark, _loop1_75_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025563 D(p->level--);
25564 return _seq;
25565}
25566
Brandt Bucher145bf262021-02-26 14:51:55 -080025567// _loop1_76: param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025568static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025569_loop1_76_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025570{
25571 D(p->level++);
25572 if (p->error_indicator) {
25573 D(p->level--);
25574 return NULL;
25575 }
25576 void *_res = NULL;
25577 int _mark = p->mark;
25578 int _start_mark = p->mark;
25579 void **_children = PyMem_Malloc(sizeof(void *));
25580 if (!_children) {
25581 p->error_indicator = 1;
25582 PyErr_NoMemory();
25583 D(p->level--);
25584 return NULL;
25585 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025586 Py_ssize_t _children_capacity = 1;
25587 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025588 { // param_no_default
25589 if (p->error_indicator) {
25590 D(p->level--);
25591 return NULL;
25592 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025593 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 +010025594 arg_ty param_no_default_var;
25595 while (
25596 (param_no_default_var = param_no_default_rule(p)) // param_no_default
25597 )
25598 {
25599 _res = param_no_default_var;
25600 if (_n == _children_capacity) {
25601 _children_capacity *= 2;
25602 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25603 if (!_new_children) {
25604 p->error_indicator = 1;
25605 PyErr_NoMemory();
25606 D(p->level--);
25607 return NULL;
25608 }
25609 _children = _new_children;
25610 }
25611 _children[_n++] = _res;
25612 _mark = p->mark;
25613 }
25614 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025615 D(fprintf(stderr, "%*c%s _loop1_76[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025616 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
25617 }
25618 if (_n == 0 || p->error_indicator) {
25619 PyMem_Free(_children);
25620 D(p->level--);
25621 return NULL;
25622 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025623 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025624 if (!_seq) {
25625 PyMem_Free(_children);
25626 p->error_indicator = 1;
25627 PyErr_NoMemory();
25628 D(p->level--);
25629 return NULL;
25630 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025631 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025632 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025633 _PyPegen_insert_memo(p, _start_mark, _loop1_76_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025634 D(p->level--);
25635 return _seq;
25636}
25637
Brandt Bucher145bf262021-02-26 14:51:55 -080025638// _loop1_77: param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025639static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025640_loop1_77_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025641{
25642 D(p->level++);
25643 if (p->error_indicator) {
25644 D(p->level--);
25645 return NULL;
25646 }
25647 void *_res = NULL;
25648 int _mark = p->mark;
25649 int _start_mark = p->mark;
25650 void **_children = PyMem_Malloc(sizeof(void *));
25651 if (!_children) {
25652 p->error_indicator = 1;
25653 PyErr_NoMemory();
25654 D(p->level--);
25655 return NULL;
25656 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025657 Py_ssize_t _children_capacity = 1;
25658 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025659 { // param_no_default
25660 if (p->error_indicator) {
25661 D(p->level--);
25662 return NULL;
25663 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025664 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 +010025665 arg_ty param_no_default_var;
25666 while (
25667 (param_no_default_var = param_no_default_rule(p)) // param_no_default
25668 )
25669 {
25670 _res = param_no_default_var;
25671 if (_n == _children_capacity) {
25672 _children_capacity *= 2;
25673 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25674 if (!_new_children) {
25675 p->error_indicator = 1;
25676 PyErr_NoMemory();
25677 D(p->level--);
25678 return NULL;
25679 }
25680 _children = _new_children;
25681 }
25682 _children[_n++] = _res;
25683 _mark = p->mark;
25684 }
25685 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025686 D(fprintf(stderr, "%*c%s _loop1_77[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025687 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
25688 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025689 if (_n == 0 || p->error_indicator) {
25690 PyMem_Free(_children);
25691 D(p->level--);
25692 return NULL;
25693 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025694 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025695 if (!_seq) {
25696 PyMem_Free(_children);
25697 p->error_indicator = 1;
25698 PyErr_NoMemory();
25699 D(p->level--);
25700 return NULL;
25701 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025702 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025703 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025704 _PyPegen_insert_memo(p, _start_mark, _loop1_77_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025705 D(p->level--);
25706 return _seq;
25707}
25708
Brandt Bucher145bf262021-02-26 14:51:55 -080025709// _loop0_78: param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025710static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025711_loop0_78_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025712{
25713 D(p->level++);
25714 if (p->error_indicator) {
25715 D(p->level--);
25716 return NULL;
25717 }
25718 void *_res = NULL;
25719 int _mark = p->mark;
25720 int _start_mark = p->mark;
25721 void **_children = PyMem_Malloc(sizeof(void *));
25722 if (!_children) {
25723 p->error_indicator = 1;
25724 PyErr_NoMemory();
25725 D(p->level--);
25726 return NULL;
25727 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025728 Py_ssize_t _children_capacity = 1;
25729 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025730 { // param_no_default
25731 if (p->error_indicator) {
25732 D(p->level--);
25733 return NULL;
25734 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025735 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 +010025736 arg_ty param_no_default_var;
25737 while (
25738 (param_no_default_var = param_no_default_rule(p)) // param_no_default
25739 )
25740 {
25741 _res = param_no_default_var;
25742 if (_n == _children_capacity) {
25743 _children_capacity *= 2;
25744 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25745 if (!_new_children) {
25746 p->error_indicator = 1;
25747 PyErr_NoMemory();
25748 D(p->level--);
25749 return NULL;
25750 }
25751 _children = _new_children;
25752 }
25753 _children[_n++] = _res;
25754 _mark = p->mark;
25755 }
25756 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025757 D(fprintf(stderr, "%*c%s _loop0_78[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025758 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
25759 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025760 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025761 if (!_seq) {
25762 PyMem_Free(_children);
25763 p->error_indicator = 1;
25764 PyErr_NoMemory();
25765 D(p->level--);
25766 return NULL;
25767 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025768 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025769 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025770 _PyPegen_insert_memo(p, _start_mark, _loop0_78_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025771 D(p->level--);
25772 return _seq;
25773}
25774
Brandt Bucher145bf262021-02-26 14:51:55 -080025775// _loop1_79: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025776static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025777_loop1_79_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025778{
25779 D(p->level++);
25780 if (p->error_indicator) {
25781 D(p->level--);
25782 return NULL;
25783 }
25784 void *_res = NULL;
25785 int _mark = p->mark;
25786 int _start_mark = p->mark;
25787 void **_children = PyMem_Malloc(sizeof(void *));
25788 if (!_children) {
25789 p->error_indicator = 1;
25790 PyErr_NoMemory();
25791 D(p->level--);
25792 return NULL;
25793 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025794 Py_ssize_t _children_capacity = 1;
25795 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025796 { // param_with_default
25797 if (p->error_indicator) {
25798 D(p->level--);
25799 return NULL;
25800 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025801 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 +010025802 NameDefaultPair* param_with_default_var;
25803 while (
25804 (param_with_default_var = param_with_default_rule(p)) // param_with_default
25805 )
25806 {
25807 _res = param_with_default_var;
25808 if (_n == _children_capacity) {
25809 _children_capacity *= 2;
25810 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25811 if (!_new_children) {
25812 p->error_indicator = 1;
25813 PyErr_NoMemory();
25814 D(p->level--);
25815 return NULL;
25816 }
25817 _children = _new_children;
25818 }
25819 _children[_n++] = _res;
25820 _mark = p->mark;
25821 }
25822 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025823 D(fprintf(stderr, "%*c%s _loop1_79[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025824 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
25825 }
25826 if (_n == 0 || p->error_indicator) {
25827 PyMem_Free(_children);
25828 D(p->level--);
25829 return NULL;
25830 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025831 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025832 if (!_seq) {
25833 PyMem_Free(_children);
25834 p->error_indicator = 1;
25835 PyErr_NoMemory();
25836 D(p->level--);
25837 return NULL;
25838 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025839 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025840 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025841 _PyPegen_insert_memo(p, _start_mark, _loop1_79_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025842 D(p->level--);
25843 return _seq;
25844}
25845
Brandt Bucher145bf262021-02-26 14:51:55 -080025846// _loop0_80: param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025847static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025848_loop0_80_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025849{
25850 D(p->level++);
25851 if (p->error_indicator) {
25852 D(p->level--);
25853 return NULL;
25854 }
25855 void *_res = NULL;
25856 int _mark = p->mark;
25857 int _start_mark = p->mark;
25858 void **_children = PyMem_Malloc(sizeof(void *));
25859 if (!_children) {
25860 p->error_indicator = 1;
25861 PyErr_NoMemory();
25862 D(p->level--);
25863 return NULL;
25864 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025865 Py_ssize_t _children_capacity = 1;
25866 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025867 { // param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025868 if (p->error_indicator) {
25869 D(p->level--);
25870 return NULL;
25871 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025872 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 +030025873 arg_ty param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025874 while (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025875 (param_no_default_var = param_no_default_rule(p)) // param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025876 )
25877 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025878 _res = param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025879 if (_n == _children_capacity) {
25880 _children_capacity *= 2;
25881 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25882 if (!_new_children) {
25883 p->error_indicator = 1;
25884 PyErr_NoMemory();
25885 D(p->level--);
25886 return NULL;
25887 }
25888 _children = _new_children;
25889 }
25890 _children[_n++] = _res;
25891 _mark = p->mark;
25892 }
25893 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025894 D(fprintf(stderr, "%*c%s _loop0_80[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025895 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025896 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025897 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025898 if (!_seq) {
25899 PyMem_Free(_children);
25900 p->error_indicator = 1;
25901 PyErr_NoMemory();
25902 D(p->level--);
25903 return NULL;
25904 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025905 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025906 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025907 _PyPegen_insert_memo(p, _start_mark, _loop0_80_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025908 D(p->level--);
25909 return _seq;
25910}
25911
Brandt Bucher145bf262021-02-26 14:51:55 -080025912// _loop1_81: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025913static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025914_loop1_81_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025915{
25916 D(p->level++);
25917 if (p->error_indicator) {
25918 D(p->level--);
25919 return NULL;
25920 }
25921 void *_res = NULL;
25922 int _mark = p->mark;
25923 int _start_mark = p->mark;
25924 void **_children = PyMem_Malloc(sizeof(void *));
25925 if (!_children) {
25926 p->error_indicator = 1;
25927 PyErr_NoMemory();
25928 D(p->level--);
25929 return NULL;
25930 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025931 Py_ssize_t _children_capacity = 1;
25932 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025933 { // param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025934 if (p->error_indicator) {
25935 D(p->level--);
25936 return NULL;
25937 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025938 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 +030025939 NameDefaultPair* param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025940 while (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025941 (param_with_default_var = param_with_default_rule(p)) // param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025942 )
25943 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025944 _res = param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025945 if (_n == _children_capacity) {
25946 _children_capacity *= 2;
25947 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25948 if (!_new_children) {
25949 p->error_indicator = 1;
25950 PyErr_NoMemory();
25951 D(p->level--);
25952 return NULL;
25953 }
25954 _children = _new_children;
25955 }
25956 _children[_n++] = _res;
25957 _mark = p->mark;
25958 }
25959 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025960 D(fprintf(stderr, "%*c%s _loop1_81[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025961 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025962 }
25963 if (_n == 0 || p->error_indicator) {
25964 PyMem_Free(_children);
25965 D(p->level--);
25966 return NULL;
25967 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025968 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025969 if (!_seq) {
25970 PyMem_Free(_children);
25971 p->error_indicator = 1;
25972 PyErr_NoMemory();
25973 D(p->level--);
25974 return NULL;
25975 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025976 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025977 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025978 _PyPegen_insert_memo(p, _start_mark, _loop1_81_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025979 D(p->level--);
25980 return _seq;
25981}
25982
Brandt Bucher145bf262021-02-26 14:51:55 -080025983// _loop0_82: param_maybe_default
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025984static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025985_loop0_82_rule(Parser *p)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025986{
25987 D(p->level++);
25988 if (p->error_indicator) {
25989 D(p->level--);
25990 return NULL;
25991 }
25992 void *_res = NULL;
25993 int _mark = p->mark;
25994 int _start_mark = p->mark;
25995 void **_children = PyMem_Malloc(sizeof(void *));
25996 if (!_children) {
25997 p->error_indicator = 1;
25998 PyErr_NoMemory();
25999 D(p->level--);
26000 return NULL;
26001 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026002 Py_ssize_t _children_capacity = 1;
26003 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026004 { // param_maybe_default
26005 if (p->error_indicator) {
26006 D(p->level--);
26007 return NULL;
26008 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026009 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 +030026010 NameDefaultPair* param_maybe_default_var;
26011 while (
26012 (param_maybe_default_var = param_maybe_default_rule(p)) // param_maybe_default
26013 )
26014 {
26015 _res = param_maybe_default_var;
26016 if (_n == _children_capacity) {
26017 _children_capacity *= 2;
26018 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26019 if (!_new_children) {
26020 p->error_indicator = 1;
26021 PyErr_NoMemory();
26022 D(p->level--);
26023 return NULL;
26024 }
26025 _children = _new_children;
26026 }
26027 _children[_n++] = _res;
26028 _mark = p->mark;
26029 }
26030 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026031 D(fprintf(stderr, "%*c%s _loop0_82[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026032 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_maybe_default"));
26033 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026034 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026035 if (!_seq) {
26036 PyMem_Free(_children);
26037 p->error_indicator = 1;
26038 PyErr_NoMemory();
26039 D(p->level--);
26040 return NULL;
26041 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026042 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026043 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026044 _PyPegen_insert_memo(p, _start_mark, _loop0_82_type, _seq);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026045 D(p->level--);
26046 return _seq;
26047}
26048
Brandt Bucher145bf262021-02-26 14:51:55 -080026049// _loop1_83: param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026050static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026051_loop1_83_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026052{
26053 D(p->level++);
26054 if (p->error_indicator) {
26055 D(p->level--);
26056 return NULL;
26057 }
26058 void *_res = NULL;
26059 int _mark = p->mark;
26060 int _start_mark = p->mark;
26061 void **_children = PyMem_Malloc(sizeof(void *));
26062 if (!_children) {
26063 p->error_indicator = 1;
26064 PyErr_NoMemory();
26065 D(p->level--);
26066 return NULL;
26067 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026068 Py_ssize_t _children_capacity = 1;
26069 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026070 { // param_maybe_default
26071 if (p->error_indicator) {
26072 D(p->level--);
26073 return NULL;
26074 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026075 D(fprintf(stderr, "%*c> _loop1_83[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_maybe_default"));
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026076 NameDefaultPair* param_maybe_default_var;
26077 while (
26078 (param_maybe_default_var = param_maybe_default_rule(p)) // param_maybe_default
26079 )
26080 {
26081 _res = param_maybe_default_var;
26082 if (_n == _children_capacity) {
26083 _children_capacity *= 2;
26084 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26085 if (!_new_children) {
26086 p->error_indicator = 1;
26087 PyErr_NoMemory();
26088 D(p->level--);
26089 return NULL;
26090 }
26091 _children = _new_children;
26092 }
26093 _children[_n++] = _res;
26094 _mark = p->mark;
26095 }
26096 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026097 D(fprintf(stderr, "%*c%s _loop1_83[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026098 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_maybe_default"));
26099 }
26100 if (_n == 0 || p->error_indicator) {
26101 PyMem_Free(_children);
26102 D(p->level--);
26103 return NULL;
26104 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026105 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026106 if (!_seq) {
26107 PyMem_Free(_children);
26108 p->error_indicator = 1;
26109 PyErr_NoMemory();
26110 D(p->level--);
26111 return NULL;
26112 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026113 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026114 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026115 _PyPegen_insert_memo(p, _start_mark, _loop1_83_type, _seq);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026116 D(p->level--);
26117 return _seq;
26118}
26119
Brandt Bucher145bf262021-02-26 14:51:55 -080026120// _loop1_84: ('@' named_expression NEWLINE)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026121static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026122_loop1_84_rule(Parser *p)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026123{
26124 D(p->level++);
26125 if (p->error_indicator) {
26126 D(p->level--);
26127 return NULL;
26128 }
26129 void *_res = NULL;
26130 int _mark = p->mark;
26131 int _start_mark = p->mark;
26132 void **_children = PyMem_Malloc(sizeof(void *));
26133 if (!_children) {
26134 p->error_indicator = 1;
26135 PyErr_NoMemory();
26136 D(p->level--);
26137 return NULL;
26138 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026139 Py_ssize_t _children_capacity = 1;
26140 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026141 { // ('@' named_expression NEWLINE)
26142 if (p->error_indicator) {
26143 D(p->level--);
26144 return NULL;
26145 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026146 D(fprintf(stderr, "%*c> _loop1_84[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('@' named_expression NEWLINE)"));
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000026147 void *_tmp_184_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026148 while (
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000026149 (_tmp_184_var = _tmp_184_rule(p)) // '@' named_expression NEWLINE
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026150 )
26151 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000026152 _res = _tmp_184_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026153 if (_n == _children_capacity) {
26154 _children_capacity *= 2;
26155 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26156 if (!_new_children) {
26157 p->error_indicator = 1;
26158 PyErr_NoMemory();
26159 D(p->level--);
26160 return NULL;
26161 }
26162 _children = _new_children;
26163 }
26164 _children[_n++] = _res;
26165 _mark = p->mark;
26166 }
26167 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026168 D(fprintf(stderr, "%*c%s _loop1_84[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026169 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('@' named_expression NEWLINE)"));
26170 }
26171 if (_n == 0 || p->error_indicator) {
26172 PyMem_Free(_children);
26173 D(p->level--);
26174 return NULL;
26175 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026176 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026177 if (!_seq) {
26178 PyMem_Free(_children);
26179 p->error_indicator = 1;
26180 PyErr_NoMemory();
26181 D(p->level--);
26182 return NULL;
26183 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026184 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026185 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026186 _PyPegen_insert_memo(p, _start_mark, _loop1_84_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026187 D(p->level--);
26188 return _seq;
26189}
26190
Brandt Bucher145bf262021-02-26 14:51:55 -080026191// _tmp_85: '(' arguments? ')'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026192static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080026193_tmp_85_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026194{
26195 D(p->level++);
26196 if (p->error_indicator) {
26197 D(p->level--);
26198 return NULL;
26199 }
26200 void * _res = NULL;
26201 int _mark = p->mark;
26202 { // '(' arguments? ')'
26203 if (p->error_indicator) {
26204 D(p->level--);
26205 return NULL;
26206 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026207 D(fprintf(stderr, "%*c> _tmp_85[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026208 Token * _literal;
26209 Token * _literal_1;
26210 void *z;
26211 if (
26212 (_literal = _PyPegen_expect_token(p, 7)) // token='('
26213 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +020026214 (z = arguments_rule(p), !p->error_indicator) // arguments?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026215 &&
26216 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
26217 )
26218 {
Brandt Bucher145bf262021-02-26 14:51:55 -080026219 D(fprintf(stderr, "%*c+ _tmp_85[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026220 _res = z;
26221 if (_res == NULL && PyErr_Occurred()) {
26222 p->error_indicator = 1;
26223 D(p->level--);
26224 return NULL;
26225 }
26226 goto done;
26227 }
26228 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026229 D(fprintf(stderr, "%*c%s _tmp_85[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026230 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' arguments? ')'"));
26231 }
26232 _res = NULL;
26233 done:
26234 D(p->level--);
26235 return _res;
26236}
26237
Brandt Bucher145bf262021-02-26 14:51:55 -080026238// _loop1_86: (',' star_expression)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026239static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026240_loop1_86_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026241{
26242 D(p->level++);
26243 if (p->error_indicator) {
26244 D(p->level--);
26245 return NULL;
26246 }
26247 void *_res = NULL;
26248 int _mark = p->mark;
26249 int _start_mark = p->mark;
26250 void **_children = PyMem_Malloc(sizeof(void *));
26251 if (!_children) {
26252 p->error_indicator = 1;
26253 PyErr_NoMemory();
26254 D(p->level--);
26255 return NULL;
26256 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026257 Py_ssize_t _children_capacity = 1;
26258 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026259 { // (',' star_expression)
26260 if (p->error_indicator) {
26261 D(p->level--);
26262 return NULL;
26263 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026264 D(fprintf(stderr, "%*c> _loop1_86[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' star_expression)"));
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000026265 void *_tmp_185_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026266 while (
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000026267 (_tmp_185_var = _tmp_185_rule(p)) // ',' star_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026268 )
26269 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000026270 _res = _tmp_185_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026271 if (_n == _children_capacity) {
26272 _children_capacity *= 2;
26273 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26274 if (!_new_children) {
26275 p->error_indicator = 1;
26276 PyErr_NoMemory();
26277 D(p->level--);
26278 return NULL;
26279 }
26280 _children = _new_children;
26281 }
26282 _children[_n++] = _res;
26283 _mark = p->mark;
26284 }
26285 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026286 D(fprintf(stderr, "%*c%s _loop1_86[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026287 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' star_expression)"));
26288 }
26289 if (_n == 0 || p->error_indicator) {
26290 PyMem_Free(_children);
26291 D(p->level--);
26292 return NULL;
26293 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026294 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026295 if (!_seq) {
26296 PyMem_Free(_children);
26297 p->error_indicator = 1;
26298 PyErr_NoMemory();
26299 D(p->level--);
26300 return NULL;
26301 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026302 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026303 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026304 _PyPegen_insert_memo(p, _start_mark, _loop1_86_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026305 D(p->level--);
26306 return _seq;
26307}
26308
Brandt Bucher145bf262021-02-26 14:51:55 -080026309// _loop0_88: ',' star_named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026310static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026311_loop0_88_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026312{
26313 D(p->level++);
26314 if (p->error_indicator) {
26315 D(p->level--);
26316 return NULL;
26317 }
26318 void *_res = NULL;
26319 int _mark = p->mark;
26320 int _start_mark = p->mark;
26321 void **_children = PyMem_Malloc(sizeof(void *));
26322 if (!_children) {
26323 p->error_indicator = 1;
26324 PyErr_NoMemory();
26325 D(p->level--);
26326 return NULL;
26327 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026328 Py_ssize_t _children_capacity = 1;
26329 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026330 { // ',' star_named_expression
26331 if (p->error_indicator) {
26332 D(p->level--);
26333 return NULL;
26334 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026335 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 +010026336 Token * _literal;
26337 expr_ty elem;
26338 while (
26339 (_literal = _PyPegen_expect_token(p, 12)) // token=','
26340 &&
26341 (elem = star_named_expression_rule(p)) // star_named_expression
26342 )
26343 {
26344 _res = elem;
26345 if (_res == NULL && PyErr_Occurred()) {
26346 p->error_indicator = 1;
26347 PyMem_Free(_children);
26348 D(p->level--);
26349 return NULL;
26350 }
26351 if (_n == _children_capacity) {
26352 _children_capacity *= 2;
26353 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26354 if (!_new_children) {
26355 p->error_indicator = 1;
26356 PyErr_NoMemory();
26357 D(p->level--);
26358 return NULL;
26359 }
26360 _children = _new_children;
26361 }
26362 _children[_n++] = _res;
26363 _mark = p->mark;
26364 }
26365 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026366 D(fprintf(stderr, "%*c%s _loop0_88[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026367 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_named_expression"));
26368 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026369 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026370 if (!_seq) {
26371 PyMem_Free(_children);
26372 p->error_indicator = 1;
26373 PyErr_NoMemory();
26374 D(p->level--);
26375 return NULL;
26376 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026377 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026378 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026379 _PyPegen_insert_memo(p, _start_mark, _loop0_88_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026380 D(p->level--);
26381 return _seq;
26382}
26383
Brandt Bucher145bf262021-02-26 14:51:55 -080026384// _gather_87: star_named_expression _loop0_88
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026385static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026386_gather_87_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026387{
26388 D(p->level++);
26389 if (p->error_indicator) {
26390 D(p->level--);
26391 return NULL;
26392 }
26393 asdl_seq * _res = NULL;
26394 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026395 { // star_named_expression _loop0_88
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026396 if (p->error_indicator) {
26397 D(p->level--);
26398 return NULL;
26399 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026400 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 +010026401 expr_ty elem;
26402 asdl_seq * seq;
26403 if (
26404 (elem = star_named_expression_rule(p)) // star_named_expression
26405 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080026406 (seq = _loop0_88_rule(p)) // _loop0_88
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026407 )
26408 {
Brandt Bucher145bf262021-02-26 14:51:55 -080026409 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 +010026410 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
26411 goto done;
26412 }
26413 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026414 D(fprintf(stderr, "%*c%s _gather_87[%d-%d]: %s failed!\n", p->level, ' ',
26415 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression _loop0_88"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026416 }
26417 _res = NULL;
26418 done:
26419 D(p->level--);
26420 return _res;
26421}
26422
Brandt Bucher145bf262021-02-26 14:51:55 -080026423// _loop1_89: (',' expression)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026424static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026425_loop1_89_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026426{
26427 D(p->level++);
26428 if (p->error_indicator) {
26429 D(p->level--);
26430 return NULL;
26431 }
26432 void *_res = NULL;
26433 int _mark = p->mark;
26434 int _start_mark = p->mark;
26435 void **_children = PyMem_Malloc(sizeof(void *));
26436 if (!_children) {
26437 p->error_indicator = 1;
26438 PyErr_NoMemory();
26439 D(p->level--);
26440 return NULL;
26441 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026442 Py_ssize_t _children_capacity = 1;
26443 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026444 { // (',' expression)
26445 if (p->error_indicator) {
26446 D(p->level--);
26447 return NULL;
26448 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026449 D(fprintf(stderr, "%*c> _loop1_89[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' expression)"));
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000026450 void *_tmp_186_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026451 while (
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000026452 (_tmp_186_var = _tmp_186_rule(p)) // ',' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026453 )
26454 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000026455 _res = _tmp_186_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026456 if (_n == _children_capacity) {
26457 _children_capacity *= 2;
26458 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26459 if (!_new_children) {
26460 p->error_indicator = 1;
26461 PyErr_NoMemory();
26462 D(p->level--);
26463 return NULL;
26464 }
26465 _children = _new_children;
26466 }
26467 _children[_n++] = _res;
26468 _mark = p->mark;
26469 }
26470 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026471 D(fprintf(stderr, "%*c%s _loop1_89[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026472 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' expression)"));
26473 }
26474 if (_n == 0 || p->error_indicator) {
26475 PyMem_Free(_children);
26476 D(p->level--);
26477 return NULL;
26478 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026479 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026480 if (!_seq) {
26481 PyMem_Free(_children);
26482 p->error_indicator = 1;
26483 PyErr_NoMemory();
26484 D(p->level--);
26485 return NULL;
26486 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026487 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026488 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026489 _PyPegen_insert_memo(p, _start_mark, _loop1_89_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026490 D(p->level--);
26491 return _seq;
26492}
26493
Brandt Bucher145bf262021-02-26 14:51:55 -080026494// _loop0_90: lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026495static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026496_loop0_90_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026497{
26498 D(p->level++);
26499 if (p->error_indicator) {
26500 D(p->level--);
26501 return NULL;
26502 }
26503 void *_res = NULL;
26504 int _mark = p->mark;
26505 int _start_mark = p->mark;
26506 void **_children = PyMem_Malloc(sizeof(void *));
26507 if (!_children) {
26508 p->error_indicator = 1;
26509 PyErr_NoMemory();
26510 D(p->level--);
26511 return NULL;
26512 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026513 Py_ssize_t _children_capacity = 1;
26514 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026515 { // lambda_param_no_default
26516 if (p->error_indicator) {
26517 D(p->level--);
26518 return NULL;
26519 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026520 D(fprintf(stderr, "%*c> _loop0_90[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026521 arg_ty lambda_param_no_default_var;
26522 while (
26523 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
26524 )
26525 {
26526 _res = lambda_param_no_default_var;
26527 if (_n == _children_capacity) {
26528 _children_capacity *= 2;
26529 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26530 if (!_new_children) {
26531 p->error_indicator = 1;
26532 PyErr_NoMemory();
26533 D(p->level--);
26534 return NULL;
26535 }
26536 _children = _new_children;
26537 }
26538 _children[_n++] = _res;
26539 _mark = p->mark;
26540 }
26541 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026542 D(fprintf(stderr, "%*c%s _loop0_90[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026543 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026544 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026545 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026546 if (!_seq) {
26547 PyMem_Free(_children);
26548 p->error_indicator = 1;
26549 PyErr_NoMemory();
26550 D(p->level--);
26551 return NULL;
26552 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026553 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026554 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026555 _PyPegen_insert_memo(p, _start_mark, _loop0_90_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026556 D(p->level--);
26557 return _seq;
26558}
26559
Brandt Bucher145bf262021-02-26 14:51:55 -080026560// _loop0_91: lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026561static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026562_loop0_91_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026563{
26564 D(p->level++);
26565 if (p->error_indicator) {
26566 D(p->level--);
26567 return NULL;
26568 }
26569 void *_res = NULL;
26570 int _mark = p->mark;
26571 int _start_mark = p->mark;
26572 void **_children = PyMem_Malloc(sizeof(void *));
26573 if (!_children) {
26574 p->error_indicator = 1;
26575 PyErr_NoMemory();
26576 D(p->level--);
26577 return NULL;
26578 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026579 Py_ssize_t _children_capacity = 1;
26580 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026581 { // lambda_param_with_default
26582 if (p->error_indicator) {
26583 D(p->level--);
26584 return NULL;
26585 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026586 D(fprintf(stderr, "%*c> _loop0_91[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026587 NameDefaultPair* lambda_param_with_default_var;
26588 while (
26589 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
26590 )
26591 {
26592 _res = lambda_param_with_default_var;
26593 if (_n == _children_capacity) {
26594 _children_capacity *= 2;
26595 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26596 if (!_new_children) {
26597 p->error_indicator = 1;
26598 PyErr_NoMemory();
26599 D(p->level--);
26600 return NULL;
26601 }
26602 _children = _new_children;
26603 }
26604 _children[_n++] = _res;
26605 _mark = p->mark;
26606 }
26607 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026608 D(fprintf(stderr, "%*c%s _loop0_91[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026609 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
26610 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026611 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026612 if (!_seq) {
26613 PyMem_Free(_children);
26614 p->error_indicator = 1;
26615 PyErr_NoMemory();
26616 D(p->level--);
26617 return NULL;
26618 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026619 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026620 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026621 _PyPegen_insert_memo(p, _start_mark, _loop0_91_type, _seq);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026622 D(p->level--);
26623 return _seq;
26624}
26625
Brandt Bucher145bf262021-02-26 14:51:55 -080026626// _loop0_92: lambda_param_with_default
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026627static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026628_loop0_92_rule(Parser *p)
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026629{
26630 D(p->level++);
26631 if (p->error_indicator) {
26632 D(p->level--);
26633 return NULL;
26634 }
26635 void *_res = NULL;
26636 int _mark = p->mark;
26637 int _start_mark = p->mark;
26638 void **_children = PyMem_Malloc(sizeof(void *));
26639 if (!_children) {
26640 p->error_indicator = 1;
26641 PyErr_NoMemory();
26642 D(p->level--);
26643 return NULL;
26644 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026645 Py_ssize_t _children_capacity = 1;
26646 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026647 { // lambda_param_with_default
26648 if (p->error_indicator) {
26649 D(p->level--);
26650 return NULL;
26651 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026652 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 +000026653 NameDefaultPair* lambda_param_with_default_var;
26654 while (
26655 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
26656 )
26657 {
26658 _res = lambda_param_with_default_var;
26659 if (_n == _children_capacity) {
26660 _children_capacity *= 2;
26661 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26662 if (!_new_children) {
26663 p->error_indicator = 1;
26664 PyErr_NoMemory();
26665 D(p->level--);
26666 return NULL;
26667 }
26668 _children = _new_children;
26669 }
26670 _children[_n++] = _res;
26671 _mark = p->mark;
26672 }
26673 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026674 D(fprintf(stderr, "%*c%s _loop0_92[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026675 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
26676 }
26677 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
26678 if (!_seq) {
26679 PyMem_Free(_children);
26680 p->error_indicator = 1;
26681 PyErr_NoMemory();
26682 D(p->level--);
26683 return NULL;
26684 }
26685 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
26686 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026687 _PyPegen_insert_memo(p, _start_mark, _loop0_92_type, _seq);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026688 D(p->level--);
26689 return _seq;
26690}
26691
Brandt Bucher145bf262021-02-26 14:51:55 -080026692// _loop1_93: lambda_param_no_default
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026693static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026694_loop1_93_rule(Parser *p)
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026695{
26696 D(p->level++);
26697 if (p->error_indicator) {
26698 D(p->level--);
26699 return NULL;
26700 }
26701 void *_res = NULL;
26702 int _mark = p->mark;
26703 int _start_mark = p->mark;
26704 void **_children = PyMem_Malloc(sizeof(void *));
26705 if (!_children) {
26706 p->error_indicator = 1;
26707 PyErr_NoMemory();
26708 D(p->level--);
26709 return NULL;
26710 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026711 Py_ssize_t _children_capacity = 1;
26712 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026713 { // lambda_param_no_default
26714 if (p->error_indicator) {
26715 D(p->level--);
26716 return NULL;
26717 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026718 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 +000026719 arg_ty lambda_param_no_default_var;
26720 while (
26721 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
26722 )
26723 {
26724 _res = lambda_param_no_default_var;
26725 if (_n == _children_capacity) {
26726 _children_capacity *= 2;
26727 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26728 if (!_new_children) {
26729 p->error_indicator = 1;
26730 PyErr_NoMemory();
26731 D(p->level--);
26732 return NULL;
26733 }
26734 _children = _new_children;
26735 }
26736 _children[_n++] = _res;
26737 _mark = p->mark;
26738 }
26739 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026740 D(fprintf(stderr, "%*c%s _loop1_93[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026741 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
26742 }
26743 if (_n == 0 || p->error_indicator) {
26744 PyMem_Free(_children);
26745 D(p->level--);
26746 return NULL;
26747 }
26748 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
26749 if (!_seq) {
26750 PyMem_Free(_children);
26751 p->error_indicator = 1;
26752 PyErr_NoMemory();
26753 D(p->level--);
26754 return NULL;
26755 }
26756 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
26757 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026758 _PyPegen_insert_memo(p, _start_mark, _loop1_93_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026759 D(p->level--);
26760 return _seq;
26761}
26762
Brandt Bucher145bf262021-02-26 14:51:55 -080026763// _loop0_94: lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026764static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026765_loop0_94_rule(Parser *p)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026766{
26767 D(p->level++);
26768 if (p->error_indicator) {
26769 D(p->level--);
26770 return NULL;
26771 }
26772 void *_res = NULL;
26773 int _mark = p->mark;
26774 int _start_mark = p->mark;
26775 void **_children = PyMem_Malloc(sizeof(void *));
26776 if (!_children) {
26777 p->error_indicator = 1;
26778 PyErr_NoMemory();
26779 D(p->level--);
26780 return NULL;
26781 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026782 Py_ssize_t _children_capacity = 1;
26783 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026784 { // lambda_param_with_default
26785 if (p->error_indicator) {
26786 D(p->level--);
26787 return NULL;
26788 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026789 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 +030026790 NameDefaultPair* lambda_param_with_default_var;
26791 while (
26792 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
26793 )
26794 {
26795 _res = lambda_param_with_default_var;
26796 if (_n == _children_capacity) {
26797 _children_capacity *= 2;
26798 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26799 if (!_new_children) {
26800 p->error_indicator = 1;
26801 PyErr_NoMemory();
26802 D(p->level--);
26803 return NULL;
26804 }
26805 _children = _new_children;
26806 }
26807 _children[_n++] = _res;
26808 _mark = p->mark;
26809 }
26810 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026811 D(fprintf(stderr, "%*c%s _loop0_94[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026812 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
26813 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026814 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026815 if (!_seq) {
26816 PyMem_Free(_children);
26817 p->error_indicator = 1;
26818 PyErr_NoMemory();
26819 D(p->level--);
26820 return NULL;
26821 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026822 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026823 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026824 _PyPegen_insert_memo(p, _start_mark, _loop0_94_type, _seq);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026825 D(p->level--);
26826 return _seq;
26827}
26828
Brandt Bucher145bf262021-02-26 14:51:55 -080026829// _loop1_95: lambda_param_with_default
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026830static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026831_loop1_95_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026832{
26833 D(p->level++);
26834 if (p->error_indicator) {
26835 D(p->level--);
26836 return NULL;
26837 }
26838 void *_res = NULL;
26839 int _mark = p->mark;
26840 int _start_mark = p->mark;
26841 void **_children = PyMem_Malloc(sizeof(void *));
26842 if (!_children) {
26843 p->error_indicator = 1;
26844 PyErr_NoMemory();
26845 D(p->level--);
26846 return NULL;
26847 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026848 Py_ssize_t _children_capacity = 1;
26849 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026850 { // lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026851 if (p->error_indicator) {
26852 D(p->level--);
26853 return NULL;
26854 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026855 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 +000026856 NameDefaultPair* lambda_param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026857 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026858 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026859 )
26860 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026861 _res = lambda_param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026862 if (_n == _children_capacity) {
26863 _children_capacity *= 2;
26864 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26865 if (!_new_children) {
26866 p->error_indicator = 1;
26867 PyErr_NoMemory();
26868 D(p->level--);
26869 return NULL;
26870 }
26871 _children = _new_children;
26872 }
26873 _children[_n++] = _res;
26874 _mark = p->mark;
26875 }
26876 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026877 D(fprintf(stderr, "%*c%s _loop1_95[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026878 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026879 }
26880 if (_n == 0 || p->error_indicator) {
26881 PyMem_Free(_children);
26882 D(p->level--);
26883 return NULL;
26884 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026885 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026886 if (!_seq) {
26887 PyMem_Free(_children);
26888 p->error_indicator = 1;
26889 PyErr_NoMemory();
26890 D(p->level--);
26891 return NULL;
26892 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026893 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026894 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026895 _PyPegen_insert_memo(p, _start_mark, _loop1_95_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026896 D(p->level--);
26897 return _seq;
26898}
26899
Brandt Bucher145bf262021-02-26 14:51:55 -080026900// _loop1_96: lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026901static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026902_loop1_96_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026903{
26904 D(p->level++);
26905 if (p->error_indicator) {
26906 D(p->level--);
26907 return NULL;
26908 }
26909 void *_res = NULL;
26910 int _mark = p->mark;
26911 int _start_mark = p->mark;
26912 void **_children = PyMem_Malloc(sizeof(void *));
26913 if (!_children) {
26914 p->error_indicator = 1;
26915 PyErr_NoMemory();
26916 D(p->level--);
26917 return NULL;
26918 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026919 Py_ssize_t _children_capacity = 1;
26920 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026921 { // lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026922 if (p->error_indicator) {
26923 D(p->level--);
26924 return NULL;
26925 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026926 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 +000026927 arg_ty lambda_param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026928 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026929 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026930 )
26931 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026932 _res = lambda_param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026933 if (_n == _children_capacity) {
26934 _children_capacity *= 2;
26935 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26936 if (!_new_children) {
26937 p->error_indicator = 1;
26938 PyErr_NoMemory();
26939 D(p->level--);
26940 return NULL;
26941 }
26942 _children = _new_children;
26943 }
26944 _children[_n++] = _res;
26945 _mark = p->mark;
26946 }
26947 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026948 D(fprintf(stderr, "%*c%s _loop1_96[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026949 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
26950 }
26951 if (_n == 0 || p->error_indicator) {
26952 PyMem_Free(_children);
26953 D(p->level--);
26954 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026955 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026956 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026957 if (!_seq) {
26958 PyMem_Free(_children);
26959 p->error_indicator = 1;
26960 PyErr_NoMemory();
26961 D(p->level--);
26962 return NULL;
26963 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026964 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026965 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026966 _PyPegen_insert_memo(p, _start_mark, _loop1_96_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026967 D(p->level--);
26968 return _seq;
26969}
26970
Brandt Bucher145bf262021-02-26 14:51:55 -080026971// _loop1_97: lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026972static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026973_loop1_97_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026974{
26975 D(p->level++);
26976 if (p->error_indicator) {
26977 D(p->level--);
26978 return NULL;
26979 }
26980 void *_res = NULL;
26981 int _mark = p->mark;
26982 int _start_mark = p->mark;
26983 void **_children = PyMem_Malloc(sizeof(void *));
26984 if (!_children) {
26985 p->error_indicator = 1;
26986 PyErr_NoMemory();
26987 D(p->level--);
26988 return NULL;
26989 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026990 Py_ssize_t _children_capacity = 1;
26991 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026992 { // lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026993 if (p->error_indicator) {
26994 D(p->level--);
26995 return NULL;
26996 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026997 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 +000026998 arg_ty lambda_param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026999 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027000 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027001 )
27002 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027003 _res = lambda_param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027004 if (_n == _children_capacity) {
27005 _children_capacity *= 2;
27006 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27007 if (!_new_children) {
27008 p->error_indicator = 1;
27009 PyErr_NoMemory();
27010 D(p->level--);
27011 return NULL;
27012 }
27013 _children = _new_children;
27014 }
27015 _children[_n++] = _res;
27016 _mark = p->mark;
27017 }
27018 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027019 D(fprintf(stderr, "%*c%s _loop1_97[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027020 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027021 }
27022 if (_n == 0 || p->error_indicator) {
27023 PyMem_Free(_children);
27024 D(p->level--);
27025 return NULL;
27026 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027027 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027028 if (!_seq) {
27029 PyMem_Free(_children);
27030 p->error_indicator = 1;
27031 PyErr_NoMemory();
27032 D(p->level--);
27033 return NULL;
27034 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027035 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027036 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080027037 _PyPegen_insert_memo(p, _start_mark, _loop1_97_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027038 D(p->level--);
27039 return _seq;
27040}
27041
Brandt Bucher145bf262021-02-26 14:51:55 -080027042// _loop0_98: lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027043static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027044_loop0_98_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027045{
27046 D(p->level++);
27047 if (p->error_indicator) {
27048 D(p->level--);
27049 return NULL;
27050 }
27051 void *_res = NULL;
27052 int _mark = p->mark;
27053 int _start_mark = p->mark;
27054 void **_children = PyMem_Malloc(sizeof(void *));
27055 if (!_children) {
27056 p->error_indicator = 1;
27057 PyErr_NoMemory();
27058 D(p->level--);
27059 return NULL;
27060 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027061 Py_ssize_t _children_capacity = 1;
27062 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027063 { // lambda_param_no_default
27064 if (p->error_indicator) {
27065 D(p->level--);
27066 return NULL;
27067 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027068 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 +010027069 arg_ty lambda_param_no_default_var;
27070 while (
27071 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
27072 )
27073 {
27074 _res = lambda_param_no_default_var;
27075 if (_n == _children_capacity) {
27076 _children_capacity *= 2;
27077 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27078 if (!_new_children) {
27079 p->error_indicator = 1;
27080 PyErr_NoMemory();
27081 D(p->level--);
27082 return NULL;
27083 }
27084 _children = _new_children;
27085 }
27086 _children[_n++] = _res;
27087 _mark = p->mark;
27088 }
27089 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027090 D(fprintf(stderr, "%*c%s _loop0_98[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027091 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
27092 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027093 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027094 if (!_seq) {
27095 PyMem_Free(_children);
27096 p->error_indicator = 1;
27097 PyErr_NoMemory();
27098 D(p->level--);
27099 return NULL;
27100 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027101 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027102 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080027103 _PyPegen_insert_memo(p, _start_mark, _loop0_98_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027104 D(p->level--);
27105 return _seq;
27106}
27107
Brandt Bucher145bf262021-02-26 14:51:55 -080027108// _loop1_99: lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027109static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027110_loop1_99_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027111{
27112 D(p->level++);
27113 if (p->error_indicator) {
27114 D(p->level--);
27115 return NULL;
27116 }
27117 void *_res = NULL;
27118 int _mark = p->mark;
27119 int _start_mark = p->mark;
27120 void **_children = PyMem_Malloc(sizeof(void *));
27121 if (!_children) {
27122 p->error_indicator = 1;
27123 PyErr_NoMemory();
27124 D(p->level--);
27125 return NULL;
27126 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027127 Py_ssize_t _children_capacity = 1;
27128 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027129 { // lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027130 if (p->error_indicator) {
27131 D(p->level--);
27132 return NULL;
27133 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027134 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 +000027135 NameDefaultPair* lambda_param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027136 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027137 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027138 )
27139 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027140 _res = lambda_param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027141 if (_n == _children_capacity) {
27142 _children_capacity *= 2;
27143 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27144 if (!_new_children) {
27145 p->error_indicator = 1;
27146 PyErr_NoMemory();
27147 D(p->level--);
27148 return NULL;
27149 }
27150 _children = _new_children;
27151 }
27152 _children[_n++] = _res;
27153 _mark = p->mark;
27154 }
27155 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027156 D(fprintf(stderr, "%*c%s _loop1_99[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027157 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027158 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027159 if (_n == 0 || p->error_indicator) {
27160 PyMem_Free(_children);
27161 D(p->level--);
27162 return NULL;
27163 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027164 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027165 if (!_seq) {
27166 PyMem_Free(_children);
27167 p->error_indicator = 1;
27168 PyErr_NoMemory();
27169 D(p->level--);
27170 return NULL;
27171 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027172 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027173 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080027174 _PyPegen_insert_memo(p, _start_mark, _loop1_99_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027175 D(p->level--);
27176 return _seq;
27177}
27178
Brandt Bucher145bf262021-02-26 14:51:55 -080027179// _loop0_100: lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027180static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027181_loop0_100_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027182{
27183 D(p->level++);
27184 if (p->error_indicator) {
27185 D(p->level--);
27186 return NULL;
27187 }
27188 void *_res = NULL;
27189 int _mark = p->mark;
27190 int _start_mark = p->mark;
27191 void **_children = PyMem_Malloc(sizeof(void *));
27192 if (!_children) {
27193 p->error_indicator = 1;
27194 PyErr_NoMemory();
27195 D(p->level--);
27196 return NULL;
27197 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027198 Py_ssize_t _children_capacity = 1;
27199 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027200 { // lambda_param_no_default
27201 if (p->error_indicator) {
27202 D(p->level--);
27203 return NULL;
27204 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027205 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 +010027206 arg_ty lambda_param_no_default_var;
27207 while (
27208 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
27209 )
27210 {
27211 _res = lambda_param_no_default_var;
27212 if (_n == _children_capacity) {
27213 _children_capacity *= 2;
27214 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27215 if (!_new_children) {
27216 p->error_indicator = 1;
27217 PyErr_NoMemory();
27218 D(p->level--);
27219 return NULL;
27220 }
27221 _children = _new_children;
27222 }
27223 _children[_n++] = _res;
27224 _mark = p->mark;
27225 }
27226 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027227 D(fprintf(stderr, "%*c%s _loop0_100[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027228 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
27229 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027230 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027231 if (!_seq) {
27232 PyMem_Free(_children);
27233 p->error_indicator = 1;
27234 PyErr_NoMemory();
27235 D(p->level--);
27236 return NULL;
27237 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027238 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027239 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080027240 _PyPegen_insert_memo(p, _start_mark, _loop0_100_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027241 D(p->level--);
27242 return _seq;
27243}
27244
Brandt Bucher145bf262021-02-26 14:51:55 -080027245// _loop1_101: lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027246static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027247_loop1_101_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027248{
27249 D(p->level++);
27250 if (p->error_indicator) {
27251 D(p->level--);
27252 return NULL;
27253 }
27254 void *_res = NULL;
27255 int _mark = p->mark;
27256 int _start_mark = p->mark;
27257 void **_children = PyMem_Malloc(sizeof(void *));
27258 if (!_children) {
27259 p->error_indicator = 1;
27260 PyErr_NoMemory();
27261 D(p->level--);
27262 return NULL;
27263 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027264 Py_ssize_t _children_capacity = 1;
27265 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027266 { // lambda_param_with_default
27267 if (p->error_indicator) {
27268 D(p->level--);
27269 return NULL;
27270 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027271 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 +010027272 NameDefaultPair* lambda_param_with_default_var;
27273 while (
27274 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
27275 )
27276 {
27277 _res = lambda_param_with_default_var;
27278 if (_n == _children_capacity) {
27279 _children_capacity *= 2;
27280 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27281 if (!_new_children) {
27282 p->error_indicator = 1;
27283 PyErr_NoMemory();
27284 D(p->level--);
27285 return NULL;
27286 }
27287 _children = _new_children;
27288 }
27289 _children[_n++] = _res;
27290 _mark = p->mark;
27291 }
27292 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027293 D(fprintf(stderr, "%*c%s _loop1_101[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027294 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
27295 }
27296 if (_n == 0 || p->error_indicator) {
27297 PyMem_Free(_children);
27298 D(p->level--);
27299 return NULL;
27300 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027301 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027302 if (!_seq) {
27303 PyMem_Free(_children);
27304 p->error_indicator = 1;
27305 PyErr_NoMemory();
27306 D(p->level--);
27307 return NULL;
27308 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027309 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027310 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080027311 _PyPegen_insert_memo(p, _start_mark, _loop1_101_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027312 D(p->level--);
27313 return _seq;
27314}
27315
Brandt Bucher145bf262021-02-26 14:51:55 -080027316// _loop0_102: lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027317static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027318_loop0_102_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027319{
27320 D(p->level++);
27321 if (p->error_indicator) {
27322 D(p->level--);
27323 return NULL;
27324 }
27325 void *_res = NULL;
27326 int _mark = p->mark;
27327 int _start_mark = p->mark;
27328 void **_children = PyMem_Malloc(sizeof(void *));
27329 if (!_children) {
27330 p->error_indicator = 1;
27331 PyErr_NoMemory();
27332 D(p->level--);
27333 return NULL;
27334 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027335 Py_ssize_t _children_capacity = 1;
27336 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027337 { // lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027338 if (p->error_indicator) {
27339 D(p->level--);
27340 return NULL;
27341 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027342 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 +000027343 NameDefaultPair* lambda_param_maybe_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027344 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027345 (lambda_param_maybe_default_var = lambda_param_maybe_default_rule(p)) // lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027346 )
27347 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027348 _res = lambda_param_maybe_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027349 if (_n == _children_capacity) {
27350 _children_capacity *= 2;
27351 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27352 if (!_new_children) {
27353 p->error_indicator = 1;
27354 PyErr_NoMemory();
27355 D(p->level--);
27356 return NULL;
27357 }
27358 _children = _new_children;
27359 }
27360 _children[_n++] = _res;
27361 _mark = p->mark;
27362 }
27363 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027364 D(fprintf(stderr, "%*c%s _loop0_102[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027365 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_maybe_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027366 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027367 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027368 if (!_seq) {
27369 PyMem_Free(_children);
27370 p->error_indicator = 1;
27371 PyErr_NoMemory();
27372 D(p->level--);
27373 return NULL;
27374 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027375 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027376 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080027377 _PyPegen_insert_memo(p, _start_mark, _loop0_102_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027378 D(p->level--);
27379 return _seq;
27380}
27381
Brandt Bucher145bf262021-02-26 14:51:55 -080027382// _loop1_103: lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027383static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027384_loop1_103_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027385{
27386 D(p->level++);
27387 if (p->error_indicator) {
27388 D(p->level--);
27389 return NULL;
27390 }
27391 void *_res = NULL;
27392 int _mark = p->mark;
27393 int _start_mark = p->mark;
27394 void **_children = PyMem_Malloc(sizeof(void *));
27395 if (!_children) {
27396 p->error_indicator = 1;
27397 PyErr_NoMemory();
27398 D(p->level--);
27399 return NULL;
27400 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027401 Py_ssize_t _children_capacity = 1;
27402 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027403 { // lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027404 if (p->error_indicator) {
27405 D(p->level--);
27406 return NULL;
27407 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027408 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 +000027409 NameDefaultPair* lambda_param_maybe_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027410 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027411 (lambda_param_maybe_default_var = lambda_param_maybe_default_rule(p)) // lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027412 )
27413 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027414 _res = lambda_param_maybe_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027415 if (_n == _children_capacity) {
27416 _children_capacity *= 2;
27417 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27418 if (!_new_children) {
27419 p->error_indicator = 1;
27420 PyErr_NoMemory();
27421 D(p->level--);
27422 return NULL;
27423 }
27424 _children = _new_children;
27425 }
27426 _children[_n++] = _res;
27427 _mark = p->mark;
27428 }
27429 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027430 D(fprintf(stderr, "%*c%s _loop1_103[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027431 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_maybe_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027432 }
27433 if (_n == 0 || p->error_indicator) {
27434 PyMem_Free(_children);
27435 D(p->level--);
27436 return NULL;
27437 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027438 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027439 if (!_seq) {
27440 PyMem_Free(_children);
27441 p->error_indicator = 1;
27442 PyErr_NoMemory();
27443 D(p->level--);
27444 return NULL;
27445 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027446 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027447 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080027448 _PyPegen_insert_memo(p, _start_mark, _loop1_103_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027449 D(p->level--);
27450 return _seq;
27451}
27452
Brandt Bucher145bf262021-02-26 14:51:55 -080027453// _loop1_104: ('or' conjunction)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030027454static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027455_loop1_104_rule(Parser *p)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030027456{
27457 D(p->level++);
27458 if (p->error_indicator) {
27459 D(p->level--);
27460 return NULL;
27461 }
27462 void *_res = NULL;
27463 int _mark = p->mark;
27464 int _start_mark = p->mark;
27465 void **_children = PyMem_Malloc(sizeof(void *));
27466 if (!_children) {
27467 p->error_indicator = 1;
27468 PyErr_NoMemory();
27469 D(p->level--);
27470 return NULL;
27471 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027472 Py_ssize_t _children_capacity = 1;
27473 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027474 { // ('or' conjunction)
27475 if (p->error_indicator) {
27476 D(p->level--);
27477 return NULL;
27478 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027479 D(fprintf(stderr, "%*c> _loop1_104[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('or' conjunction)"));
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000027480 void *_tmp_187_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027481 while (
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000027482 (_tmp_187_var = _tmp_187_rule(p)) // 'or' conjunction
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027483 )
27484 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000027485 _res = _tmp_187_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027486 if (_n == _children_capacity) {
27487 _children_capacity *= 2;
27488 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27489 if (!_new_children) {
27490 p->error_indicator = 1;
27491 PyErr_NoMemory();
27492 D(p->level--);
27493 return NULL;
27494 }
27495 _children = _new_children;
27496 }
27497 _children[_n++] = _res;
27498 _mark = p->mark;
27499 }
27500 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027501 D(fprintf(stderr, "%*c%s _loop1_104[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027502 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('or' conjunction)"));
27503 }
27504 if (_n == 0 || p->error_indicator) {
27505 PyMem_Free(_children);
27506 D(p->level--);
27507 return NULL;
27508 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027509 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027510 if (!_seq) {
27511 PyMem_Free(_children);
27512 p->error_indicator = 1;
27513 PyErr_NoMemory();
27514 D(p->level--);
27515 return NULL;
27516 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027517 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027518 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080027519 _PyPegen_insert_memo(p, _start_mark, _loop1_104_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027520 D(p->level--);
27521 return _seq;
27522}
27523
Brandt Bucher145bf262021-02-26 14:51:55 -080027524// _loop1_105: ('and' inversion)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027525static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027526_loop1_105_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027527{
27528 D(p->level++);
27529 if (p->error_indicator) {
27530 D(p->level--);
27531 return NULL;
27532 }
27533 void *_res = NULL;
27534 int _mark = p->mark;
27535 int _start_mark = p->mark;
27536 void **_children = PyMem_Malloc(sizeof(void *));
27537 if (!_children) {
27538 p->error_indicator = 1;
27539 PyErr_NoMemory();
27540 D(p->level--);
27541 return NULL;
27542 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027543 Py_ssize_t _children_capacity = 1;
27544 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027545 { // ('and' inversion)
27546 if (p->error_indicator) {
27547 D(p->level--);
27548 return NULL;
27549 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027550 D(fprintf(stderr, "%*c> _loop1_105[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('and' inversion)"));
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000027551 void *_tmp_188_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027552 while (
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000027553 (_tmp_188_var = _tmp_188_rule(p)) // 'and' inversion
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027554 )
27555 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000027556 _res = _tmp_188_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027557 if (_n == _children_capacity) {
27558 _children_capacity *= 2;
27559 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27560 if (!_new_children) {
27561 p->error_indicator = 1;
27562 PyErr_NoMemory();
27563 D(p->level--);
27564 return NULL;
27565 }
27566 _children = _new_children;
27567 }
27568 _children[_n++] = _res;
27569 _mark = p->mark;
27570 }
27571 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027572 D(fprintf(stderr, "%*c%s _loop1_105[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027573 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('and' inversion)"));
27574 }
27575 if (_n == 0 || p->error_indicator) {
27576 PyMem_Free(_children);
27577 D(p->level--);
27578 return NULL;
27579 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027580 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027581 if (!_seq) {
27582 PyMem_Free(_children);
27583 p->error_indicator = 1;
27584 PyErr_NoMemory();
27585 D(p->level--);
27586 return NULL;
27587 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027588 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027589 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080027590 _PyPegen_insert_memo(p, _start_mark, _loop1_105_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027591 D(p->level--);
27592 return _seq;
27593}
27594
Brandt Bucher145bf262021-02-26 14:51:55 -080027595// _loop1_106: compare_op_bitwise_or_pair
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027596static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027597_loop1_106_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027598{
27599 D(p->level++);
27600 if (p->error_indicator) {
27601 D(p->level--);
27602 return NULL;
27603 }
27604 void *_res = NULL;
27605 int _mark = p->mark;
27606 int _start_mark = p->mark;
27607 void **_children = PyMem_Malloc(sizeof(void *));
27608 if (!_children) {
27609 p->error_indicator = 1;
27610 PyErr_NoMemory();
27611 D(p->level--);
27612 return NULL;
27613 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027614 Py_ssize_t _children_capacity = 1;
27615 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027616 { // compare_op_bitwise_or_pair
27617 if (p->error_indicator) {
27618 D(p->level--);
27619 return NULL;
27620 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027621 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 +010027622 CmpopExprPair* compare_op_bitwise_or_pair_var;
27623 while (
27624 (compare_op_bitwise_or_pair_var = compare_op_bitwise_or_pair_rule(p)) // compare_op_bitwise_or_pair
27625 )
27626 {
27627 _res = compare_op_bitwise_or_pair_var;
27628 if (_n == _children_capacity) {
27629 _children_capacity *= 2;
27630 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27631 if (!_new_children) {
27632 p->error_indicator = 1;
27633 PyErr_NoMemory();
27634 D(p->level--);
27635 return NULL;
27636 }
27637 _children = _new_children;
27638 }
27639 _children[_n++] = _res;
27640 _mark = p->mark;
27641 }
27642 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027643 D(fprintf(stderr, "%*c%s _loop1_106[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027644 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "compare_op_bitwise_or_pair"));
27645 }
27646 if (_n == 0 || p->error_indicator) {
27647 PyMem_Free(_children);
27648 D(p->level--);
27649 return NULL;
27650 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027651 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027652 if (!_seq) {
27653 PyMem_Free(_children);
27654 p->error_indicator = 1;
27655 PyErr_NoMemory();
27656 D(p->level--);
27657 return NULL;
27658 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027659 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027660 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080027661 _PyPegen_insert_memo(p, _start_mark, _loop1_106_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027662 D(p->level--);
27663 return _seq;
27664}
27665
Brandt Bucher145bf262021-02-26 14:51:55 -080027666// _tmp_107: '!='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027667static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080027668_tmp_107_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027669{
27670 D(p->level++);
27671 if (p->error_indicator) {
27672 D(p->level--);
27673 return NULL;
27674 }
27675 void * _res = NULL;
27676 int _mark = p->mark;
27677 { // '!='
27678 if (p->error_indicator) {
27679 D(p->level--);
27680 return NULL;
27681 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027682 D(fprintf(stderr, "%*c> _tmp_107[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'!='"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027683 Token * tok;
27684 if (
27685 (tok = _PyPegen_expect_token(p, 28)) // token='!='
27686 )
27687 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027688 D(fprintf(stderr, "%*c+ _tmp_107[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'!='"));
Pablo Galindo06f8c332020-10-30 23:48:42 +000027689 _res = _PyPegen_check_barry_as_flufl ( p , tok ) ? NULL : tok;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027690 if (_res == NULL && PyErr_Occurred()) {
27691 p->error_indicator = 1;
27692 D(p->level--);
27693 return NULL;
27694 }
27695 goto done;
27696 }
27697 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027698 D(fprintf(stderr, "%*c%s _tmp_107[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027699 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'!='"));
27700 }
27701 _res = NULL;
27702 done:
27703 D(p->level--);
27704 return _res;
27705}
27706
Brandt Bucher145bf262021-02-26 14:51:55 -080027707// _loop0_109: ',' slice
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027708static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027709_loop0_109_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027710{
27711 D(p->level++);
27712 if (p->error_indicator) {
27713 D(p->level--);
27714 return NULL;
27715 }
27716 void *_res = NULL;
27717 int _mark = p->mark;
27718 int _start_mark = p->mark;
27719 void **_children = PyMem_Malloc(sizeof(void *));
27720 if (!_children) {
27721 p->error_indicator = 1;
27722 PyErr_NoMemory();
27723 D(p->level--);
27724 return NULL;
27725 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027726 Py_ssize_t _children_capacity = 1;
27727 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027728 { // ',' slice
27729 if (p->error_indicator) {
27730 D(p->level--);
27731 return NULL;
27732 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027733 D(fprintf(stderr, "%*c> _loop0_109[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' slice"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027734 Token * _literal;
27735 expr_ty elem;
27736 while (
27737 (_literal = _PyPegen_expect_token(p, 12)) // token=','
27738 &&
27739 (elem = slice_rule(p)) // slice
27740 )
27741 {
27742 _res = elem;
27743 if (_res == NULL && PyErr_Occurred()) {
27744 p->error_indicator = 1;
27745 PyMem_Free(_children);
27746 D(p->level--);
27747 return NULL;
27748 }
27749 if (_n == _children_capacity) {
27750 _children_capacity *= 2;
27751 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27752 if (!_new_children) {
27753 p->error_indicator = 1;
27754 PyErr_NoMemory();
27755 D(p->level--);
27756 return NULL;
27757 }
27758 _children = _new_children;
27759 }
27760 _children[_n++] = _res;
27761 _mark = p->mark;
27762 }
27763 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027764 D(fprintf(stderr, "%*c%s _loop0_109[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027765 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' slice"));
27766 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027767 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027768 if (!_seq) {
27769 PyMem_Free(_children);
27770 p->error_indicator = 1;
27771 PyErr_NoMemory();
27772 D(p->level--);
27773 return NULL;
27774 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027775 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027776 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080027777 _PyPegen_insert_memo(p, _start_mark, _loop0_109_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027778 D(p->level--);
27779 return _seq;
27780}
27781
Brandt Bucher145bf262021-02-26 14:51:55 -080027782// _gather_108: slice _loop0_109
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027783static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027784_gather_108_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027785{
27786 D(p->level++);
27787 if (p->error_indicator) {
27788 D(p->level--);
27789 return NULL;
27790 }
27791 asdl_seq * _res = NULL;
27792 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027793 { // slice _loop0_109
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027794 if (p->error_indicator) {
27795 D(p->level--);
27796 return NULL;
27797 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027798 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 +010027799 expr_ty elem;
27800 asdl_seq * seq;
27801 if (
27802 (elem = slice_rule(p)) // slice
27803 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080027804 (seq = _loop0_109_rule(p)) // _loop0_109
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027805 )
27806 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027807 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 +010027808 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
27809 goto done;
27810 }
27811 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027812 D(fprintf(stderr, "%*c%s _gather_108[%d-%d]: %s failed!\n", p->level, ' ',
27813 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slice _loop0_109"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027814 }
27815 _res = NULL;
27816 done:
27817 D(p->level--);
27818 return _res;
27819}
27820
Brandt Bucher145bf262021-02-26 14:51:55 -080027821// _tmp_110: ':' expression?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027822static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080027823_tmp_110_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027824{
27825 D(p->level++);
27826 if (p->error_indicator) {
27827 D(p->level--);
27828 return NULL;
27829 }
27830 void * _res = NULL;
27831 int _mark = p->mark;
27832 { // ':' expression?
27833 if (p->error_indicator) {
27834 D(p->level--);
27835 return NULL;
27836 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027837 D(fprintf(stderr, "%*c> _tmp_110[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':' expression?"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027838 Token * _literal;
27839 void *d;
27840 if (
27841 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
27842 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +020027843 (d = expression_rule(p), !p->error_indicator) // expression?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027844 )
27845 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027846 D(fprintf(stderr, "%*c+ _tmp_110[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':' expression?"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027847 _res = d;
27848 if (_res == NULL && PyErr_Occurred()) {
27849 p->error_indicator = 1;
27850 D(p->level--);
27851 return NULL;
27852 }
27853 goto done;
27854 }
27855 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027856 D(fprintf(stderr, "%*c%s _tmp_110[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027857 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':' expression?"));
27858 }
27859 _res = NULL;
27860 done:
27861 D(p->level--);
27862 return _res;
27863}
27864
Brandt Bucher145bf262021-02-26 14:51:55 -080027865// _tmp_111: tuple | group | genexp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027866static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080027867_tmp_111_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027868{
27869 D(p->level++);
27870 if (p->error_indicator) {
27871 D(p->level--);
27872 return NULL;
27873 }
27874 void * _res = NULL;
27875 int _mark = p->mark;
27876 { // tuple
27877 if (p->error_indicator) {
27878 D(p->level--);
27879 return NULL;
27880 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027881 D(fprintf(stderr, "%*c> _tmp_111[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "tuple"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027882 expr_ty tuple_var;
27883 if (
27884 (tuple_var = tuple_rule(p)) // tuple
27885 )
27886 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027887 D(fprintf(stderr, "%*c+ _tmp_111[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "tuple"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027888 _res = tuple_var;
27889 goto done;
27890 }
27891 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027892 D(fprintf(stderr, "%*c%s _tmp_111[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027893 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "tuple"));
27894 }
27895 { // group
27896 if (p->error_indicator) {
27897 D(p->level--);
27898 return NULL;
27899 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027900 D(fprintf(stderr, "%*c> _tmp_111[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "group"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027901 expr_ty group_var;
27902 if (
27903 (group_var = group_rule(p)) // group
27904 )
27905 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027906 D(fprintf(stderr, "%*c+ _tmp_111[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "group"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027907 _res = group_var;
27908 goto done;
27909 }
27910 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027911 D(fprintf(stderr, "%*c%s _tmp_111[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027912 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "group"));
27913 }
27914 { // genexp
27915 if (p->error_indicator) {
27916 D(p->level--);
27917 return NULL;
27918 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027919 D(fprintf(stderr, "%*c> _tmp_111[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "genexp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027920 expr_ty genexp_var;
27921 if (
27922 (genexp_var = genexp_rule(p)) // genexp
27923 )
27924 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027925 D(fprintf(stderr, "%*c+ _tmp_111[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "genexp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027926 _res = genexp_var;
27927 goto done;
27928 }
27929 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027930 D(fprintf(stderr, "%*c%s _tmp_111[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027931 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "genexp"));
27932 }
27933 _res = NULL;
27934 done:
27935 D(p->level--);
27936 return _res;
27937}
27938
Brandt Bucher145bf262021-02-26 14:51:55 -080027939// _tmp_112: list | listcomp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027940static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080027941_tmp_112_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027942{
27943 D(p->level++);
27944 if (p->error_indicator) {
27945 D(p->level--);
27946 return NULL;
27947 }
27948 void * _res = NULL;
27949 int _mark = p->mark;
27950 { // list
27951 if (p->error_indicator) {
27952 D(p->level--);
27953 return NULL;
27954 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027955 D(fprintf(stderr, "%*c> _tmp_112[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "list"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027956 expr_ty list_var;
27957 if (
27958 (list_var = list_rule(p)) // list
27959 )
27960 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027961 D(fprintf(stderr, "%*c+ _tmp_112[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "list"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027962 _res = list_var;
27963 goto done;
27964 }
27965 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027966 D(fprintf(stderr, "%*c%s _tmp_112[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027967 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "list"));
27968 }
27969 { // listcomp
27970 if (p->error_indicator) {
27971 D(p->level--);
27972 return NULL;
27973 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027974 D(fprintf(stderr, "%*c> _tmp_112[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "listcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027975 expr_ty listcomp_var;
27976 if (
27977 (listcomp_var = listcomp_rule(p)) // listcomp
27978 )
27979 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027980 D(fprintf(stderr, "%*c+ _tmp_112[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "listcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027981 _res = listcomp_var;
27982 goto done;
27983 }
27984 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027985 D(fprintf(stderr, "%*c%s _tmp_112[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027986 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "listcomp"));
27987 }
27988 _res = NULL;
27989 done:
27990 D(p->level--);
27991 return _res;
27992}
27993
Brandt Bucher145bf262021-02-26 14:51:55 -080027994// _tmp_113: dict | set | dictcomp | setcomp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027995static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080027996_tmp_113_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027997{
27998 D(p->level++);
27999 if (p->error_indicator) {
28000 D(p->level--);
28001 return NULL;
28002 }
28003 void * _res = NULL;
28004 int _mark = p->mark;
28005 { // dict
28006 if (p->error_indicator) {
28007 D(p->level--);
28008 return NULL;
28009 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028010 D(fprintf(stderr, "%*c> _tmp_113[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dict"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028011 expr_ty dict_var;
28012 if (
28013 (dict_var = dict_rule(p)) // dict
28014 )
28015 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028016 D(fprintf(stderr, "%*c+ _tmp_113[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dict"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028017 _res = dict_var;
28018 goto done;
28019 }
28020 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028021 D(fprintf(stderr, "%*c%s _tmp_113[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028022 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dict"));
28023 }
28024 { // set
28025 if (p->error_indicator) {
28026 D(p->level--);
28027 return NULL;
28028 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028029 D(fprintf(stderr, "%*c> _tmp_113[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "set"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028030 expr_ty set_var;
28031 if (
28032 (set_var = set_rule(p)) // set
28033 )
28034 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028035 D(fprintf(stderr, "%*c+ _tmp_113[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "set"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028036 _res = set_var;
28037 goto done;
28038 }
28039 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028040 D(fprintf(stderr, "%*c%s _tmp_113[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028041 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "set"));
28042 }
28043 { // dictcomp
28044 if (p->error_indicator) {
28045 D(p->level--);
28046 return NULL;
28047 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028048 D(fprintf(stderr, "%*c> _tmp_113[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dictcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028049 expr_ty dictcomp_var;
28050 if (
28051 (dictcomp_var = dictcomp_rule(p)) // dictcomp
28052 )
28053 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028054 D(fprintf(stderr, "%*c+ _tmp_113[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dictcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028055 _res = dictcomp_var;
28056 goto done;
28057 }
28058 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028059 D(fprintf(stderr, "%*c%s _tmp_113[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028060 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dictcomp"));
28061 }
28062 { // setcomp
28063 if (p->error_indicator) {
28064 D(p->level--);
28065 return NULL;
28066 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028067 D(fprintf(stderr, "%*c> _tmp_113[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "setcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028068 expr_ty setcomp_var;
28069 if (
28070 (setcomp_var = setcomp_rule(p)) // setcomp
28071 )
28072 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028073 D(fprintf(stderr, "%*c+ _tmp_113[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "setcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028074 _res = setcomp_var;
28075 goto done;
28076 }
28077 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028078 D(fprintf(stderr, "%*c%s _tmp_113[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028079 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "setcomp"));
28080 }
28081 _res = NULL;
28082 done:
28083 D(p->level--);
28084 return _res;
28085}
28086
Brandt Bucher145bf262021-02-26 14:51:55 -080028087// _loop1_114: STRING
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028088static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080028089_loop1_114_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028090{
28091 D(p->level++);
28092 if (p->error_indicator) {
28093 D(p->level--);
28094 return NULL;
28095 }
28096 void *_res = NULL;
28097 int _mark = p->mark;
28098 int _start_mark = p->mark;
28099 void **_children = PyMem_Malloc(sizeof(void *));
28100 if (!_children) {
28101 p->error_indicator = 1;
28102 PyErr_NoMemory();
28103 D(p->level--);
28104 return NULL;
28105 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010028106 Py_ssize_t _children_capacity = 1;
28107 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028108 { // STRING
28109 if (p->error_indicator) {
28110 D(p->level--);
28111 return NULL;
28112 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028113 D(fprintf(stderr, "%*c> _loop1_114[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "STRING"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028114 expr_ty string_var;
28115 while (
28116 (string_var = _PyPegen_string_token(p)) // STRING
28117 )
28118 {
28119 _res = string_var;
28120 if (_n == _children_capacity) {
28121 _children_capacity *= 2;
28122 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28123 if (!_new_children) {
28124 p->error_indicator = 1;
28125 PyErr_NoMemory();
28126 D(p->level--);
28127 return NULL;
28128 }
28129 _children = _new_children;
28130 }
28131 _children[_n++] = _res;
28132 _mark = p->mark;
28133 }
28134 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028135 D(fprintf(stderr, "%*c%s _loop1_114[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028136 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "STRING"));
28137 }
28138 if (_n == 0 || p->error_indicator) {
28139 PyMem_Free(_children);
28140 D(p->level--);
28141 return NULL;
28142 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010028143 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028144 if (!_seq) {
28145 PyMem_Free(_children);
28146 p->error_indicator = 1;
28147 PyErr_NoMemory();
28148 D(p->level--);
28149 return NULL;
28150 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010028151 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028152 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080028153 _PyPegen_insert_memo(p, _start_mark, _loop1_114_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028154 D(p->level--);
28155 return _seq;
28156}
28157
Brandt Bucher145bf262021-02-26 14:51:55 -080028158// _tmp_115: star_named_expression ',' star_named_expressions?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028159static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080028160_tmp_115_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028161{
28162 D(p->level++);
28163 if (p->error_indicator) {
28164 D(p->level--);
28165 return NULL;
28166 }
28167 void * _res = NULL;
28168 int _mark = p->mark;
28169 { // star_named_expression ',' star_named_expressions?
28170 if (p->error_indicator) {
28171 D(p->level--);
28172 return NULL;
28173 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028174 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 +010028175 Token * _literal;
28176 expr_ty y;
28177 void *z;
28178 if (
28179 (y = star_named_expression_rule(p)) // star_named_expression
28180 &&
28181 (_literal = _PyPegen_expect_token(p, 12)) // token=','
28182 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +020028183 (z = star_named_expressions_rule(p), !p->error_indicator) // star_named_expressions?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028184 )
28185 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028186 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 +010028187 _res = _PyPegen_seq_insert_in_front ( p , y , z );
28188 if (_res == NULL && PyErr_Occurred()) {
28189 p->error_indicator = 1;
28190 D(p->level--);
28191 return NULL;
28192 }
28193 goto done;
28194 }
28195 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028196 D(fprintf(stderr, "%*c%s _tmp_115[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028197 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression ',' star_named_expressions?"));
28198 }
28199 _res = NULL;
28200 done:
28201 D(p->level--);
28202 return _res;
28203}
28204
Brandt Bucher145bf262021-02-26 14:51:55 -080028205// _tmp_116: yield_expr | named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028206static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080028207_tmp_116_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028208{
28209 D(p->level++);
28210 if (p->error_indicator) {
28211 D(p->level--);
28212 return NULL;
28213 }
28214 void * _res = NULL;
28215 int _mark = p->mark;
28216 { // yield_expr
28217 if (p->error_indicator) {
28218 D(p->level--);
28219 return NULL;
28220 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028221 D(fprintf(stderr, "%*c> _tmp_116[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028222 expr_ty yield_expr_var;
28223 if (
28224 (yield_expr_var = yield_expr_rule(p)) // yield_expr
28225 )
28226 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028227 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 +010028228 _res = yield_expr_var;
28229 goto done;
28230 }
28231 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028232 D(fprintf(stderr, "%*c%s _tmp_116[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028233 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
28234 }
28235 { // named_expression
28236 if (p->error_indicator) {
28237 D(p->level--);
28238 return NULL;
28239 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028240 D(fprintf(stderr, "%*c> _tmp_116[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028241 expr_ty named_expression_var;
28242 if (
28243 (named_expression_var = named_expression_rule(p)) // named_expression
28244 )
28245 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028246 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 +010028247 _res = named_expression_var;
28248 goto done;
28249 }
28250 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028251 D(fprintf(stderr, "%*c%s _tmp_116[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028252 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression"));
28253 }
28254 _res = NULL;
28255 done:
28256 D(p->level--);
28257 return _res;
28258}
28259
Pablo Galindo Salgado0e34a592021-11-04 23:19:27 +000028260// _tmp_117: assignment_expression | expression !':='
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028261static void *
28262_tmp_117_rule(Parser *p)
28263{
28264 D(p->level++);
28265 if (p->error_indicator) {
28266 D(p->level--);
28267 return NULL;
28268 }
28269 void * _res = NULL;
28270 int _mark = p->mark;
Pablo Galindo Salgado0e34a592021-11-04 23:19:27 +000028271 { // assignment_expression
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028272 if (p->error_indicator) {
28273 D(p->level--);
28274 return NULL;
28275 }
Pablo Galindo Salgado0e34a592021-11-04 23:19:27 +000028276 D(fprintf(stderr, "%*c> _tmp_117[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "assignment_expression"));
28277 expr_ty assignment_expression_var;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028278 if (
Pablo Galindo Salgado0e34a592021-11-04 23:19:27 +000028279 (assignment_expression_var = assignment_expression_rule(p)) // assignment_expression
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028280 )
28281 {
Pablo Galindo Salgado0e34a592021-11-04 23:19:27 +000028282 D(fprintf(stderr, "%*c+ _tmp_117[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "assignment_expression"));
28283 _res = assignment_expression_var;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028284 goto done;
28285 }
28286 p->mark = _mark;
28287 D(fprintf(stderr, "%*c%s _tmp_117[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo Salgado0e34a592021-11-04 23:19:27 +000028288 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "assignment_expression"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028289 }
28290 { // expression !':='
28291 if (p->error_indicator) {
28292 D(p->level--);
28293 return NULL;
28294 }
28295 D(fprintf(stderr, "%*c> _tmp_117[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression !':='"));
28296 expr_ty expression_var;
28297 if (
28298 (expression_var = expression_rule(p)) // expression
28299 &&
28300 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 53) // token=':='
28301 )
28302 {
28303 D(fprintf(stderr, "%*c+ _tmp_117[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression !':='"));
28304 _res = expression_var;
28305 goto done;
28306 }
28307 p->mark = _mark;
28308 D(fprintf(stderr, "%*c%s _tmp_117[%d-%d]: %s failed!\n", p->level, ' ',
28309 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression !':='"));
28310 }
28311 _res = NULL;
28312 done:
28313 D(p->level--);
28314 return _res;
28315}
28316
28317// _loop0_119: ',' double_starred_kvpair
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028318static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028319_loop0_119_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028320{
28321 D(p->level++);
28322 if (p->error_indicator) {
28323 D(p->level--);
28324 return NULL;
28325 }
28326 void *_res = NULL;
28327 int _mark = p->mark;
28328 int _start_mark = p->mark;
28329 void **_children = PyMem_Malloc(sizeof(void *));
28330 if (!_children) {
28331 p->error_indicator = 1;
28332 PyErr_NoMemory();
28333 D(p->level--);
28334 return NULL;
28335 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010028336 Py_ssize_t _children_capacity = 1;
28337 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028338 { // ',' double_starred_kvpair
28339 if (p->error_indicator) {
28340 D(p->level--);
28341 return NULL;
28342 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028343 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 +010028344 Token * _literal;
28345 KeyValuePair* elem;
28346 while (
28347 (_literal = _PyPegen_expect_token(p, 12)) // token=','
28348 &&
28349 (elem = double_starred_kvpair_rule(p)) // double_starred_kvpair
28350 )
28351 {
28352 _res = elem;
28353 if (_res == NULL && PyErr_Occurred()) {
28354 p->error_indicator = 1;
28355 PyMem_Free(_children);
28356 D(p->level--);
28357 return NULL;
28358 }
28359 if (_n == _children_capacity) {
28360 _children_capacity *= 2;
28361 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28362 if (!_new_children) {
28363 p->error_indicator = 1;
28364 PyErr_NoMemory();
28365 D(p->level--);
28366 return NULL;
28367 }
28368 _children = _new_children;
28369 }
28370 _children[_n++] = _res;
28371 _mark = p->mark;
28372 }
28373 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028374 D(fprintf(stderr, "%*c%s _loop0_119[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028375 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' double_starred_kvpair"));
28376 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010028377 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028378 if (!_seq) {
28379 PyMem_Free(_children);
28380 p->error_indicator = 1;
28381 PyErr_NoMemory();
28382 D(p->level--);
28383 return NULL;
28384 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010028385 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028386 PyMem_Free(_children);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028387 _PyPegen_insert_memo(p, _start_mark, _loop0_119_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028388 D(p->level--);
28389 return _seq;
28390}
28391
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028392// _gather_118: double_starred_kvpair _loop0_119
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028393static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028394_gather_118_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028395{
28396 D(p->level++);
28397 if (p->error_indicator) {
28398 D(p->level--);
28399 return NULL;
28400 }
28401 asdl_seq * _res = NULL;
28402 int _mark = p->mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028403 { // double_starred_kvpair _loop0_119
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028404 if (p->error_indicator) {
28405 D(p->level--);
28406 return NULL;
28407 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028408 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 +010028409 KeyValuePair* elem;
28410 asdl_seq * seq;
28411 if (
28412 (elem = double_starred_kvpair_rule(p)) // double_starred_kvpair
28413 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028414 (seq = _loop0_119_rule(p)) // _loop0_119
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028415 )
28416 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028417 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 +010028418 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
28419 goto done;
28420 }
28421 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028422 D(fprintf(stderr, "%*c%s _gather_118[%d-%d]: %s failed!\n", p->level, ' ',
28423 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "double_starred_kvpair _loop0_119"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028424 }
28425 _res = NULL;
28426 done:
28427 D(p->level--);
28428 return _res;
28429}
28430
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028431// _loop1_120: for_if_clause
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028432static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028433_loop1_120_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028434{
28435 D(p->level++);
28436 if (p->error_indicator) {
28437 D(p->level--);
28438 return NULL;
28439 }
28440 void *_res = NULL;
28441 int _mark = p->mark;
28442 int _start_mark = p->mark;
28443 void **_children = PyMem_Malloc(sizeof(void *));
28444 if (!_children) {
28445 p->error_indicator = 1;
28446 PyErr_NoMemory();
28447 D(p->level--);
28448 return NULL;
28449 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010028450 Py_ssize_t _children_capacity = 1;
28451 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028452 { // for_if_clause
28453 if (p->error_indicator) {
28454 D(p->level--);
28455 return NULL;
28456 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028457 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 +010028458 comprehension_ty for_if_clause_var;
28459 while (
28460 (for_if_clause_var = for_if_clause_rule(p)) // for_if_clause
28461 )
28462 {
28463 _res = for_if_clause_var;
28464 if (_n == _children_capacity) {
28465 _children_capacity *= 2;
28466 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28467 if (!_new_children) {
28468 p->error_indicator = 1;
28469 PyErr_NoMemory();
28470 D(p->level--);
28471 return NULL;
28472 }
28473 _children = _new_children;
28474 }
28475 _children[_n++] = _res;
28476 _mark = p->mark;
28477 }
28478 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028479 D(fprintf(stderr, "%*c%s _loop1_120[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028480 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "for_if_clause"));
28481 }
28482 if (_n == 0 || p->error_indicator) {
28483 PyMem_Free(_children);
28484 D(p->level--);
28485 return NULL;
28486 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010028487 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028488 if (!_seq) {
28489 PyMem_Free(_children);
28490 p->error_indicator = 1;
28491 PyErr_NoMemory();
28492 D(p->level--);
28493 return NULL;
28494 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010028495 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028496 PyMem_Free(_children);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028497 _PyPegen_insert_memo(p, _start_mark, _loop1_120_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028498 D(p->level--);
28499 return _seq;
28500}
28501
Brandt Bucher145bf262021-02-26 14:51:55 -080028502// _loop0_121: ('if' disjunction)
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028503static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080028504_loop0_121_rule(Parser *p)
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028505{
28506 D(p->level++);
28507 if (p->error_indicator) {
28508 D(p->level--);
28509 return NULL;
28510 }
28511 void *_res = NULL;
28512 int _mark = p->mark;
28513 int _start_mark = p->mark;
28514 void **_children = PyMem_Malloc(sizeof(void *));
28515 if (!_children) {
28516 p->error_indicator = 1;
28517 PyErr_NoMemory();
28518 D(p->level--);
28519 return NULL;
28520 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010028521 Py_ssize_t _children_capacity = 1;
28522 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028523 { // ('if' disjunction)
28524 if (p->error_indicator) {
28525 D(p->level--);
28526 return NULL;
28527 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028528 D(fprintf(stderr, "%*c> _loop0_121[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('if' disjunction)"));
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000028529 void *_tmp_189_var;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028530 while (
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000028531 (_tmp_189_var = _tmp_189_rule(p)) // 'if' disjunction
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028532 )
28533 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000028534 _res = _tmp_189_var;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028535 if (_n == _children_capacity) {
28536 _children_capacity *= 2;
28537 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28538 if (!_new_children) {
28539 p->error_indicator = 1;
28540 PyErr_NoMemory();
28541 D(p->level--);
28542 return NULL;
28543 }
28544 _children = _new_children;
28545 }
28546 _children[_n++] = _res;
28547 _mark = p->mark;
28548 }
28549 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028550 D(fprintf(stderr, "%*c%s _loop0_121[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028551 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('if' disjunction)"));
28552 }
28553 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
28554 if (!_seq) {
28555 PyMem_Free(_children);
28556 p->error_indicator = 1;
28557 PyErr_NoMemory();
28558 D(p->level--);
28559 return NULL;
28560 }
28561 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
28562 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080028563 _PyPegen_insert_memo(p, _start_mark, _loop0_121_type, _seq);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028564 D(p->level--);
28565 return _seq;
28566}
28567
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028568// _loop0_122: ('if' disjunction)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030028569static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028570_loop0_122_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028571{
28572 D(p->level++);
28573 if (p->error_indicator) {
28574 D(p->level--);
28575 return NULL;
28576 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030028577 void *_res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028578 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030028579 int _start_mark = p->mark;
28580 void **_children = PyMem_Malloc(sizeof(void *));
28581 if (!_children) {
28582 p->error_indicator = 1;
28583 PyErr_NoMemory();
28584 D(p->level--);
28585 return NULL;
28586 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010028587 Py_ssize_t _children_capacity = 1;
28588 Py_ssize_t _n = 0;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028589 { // ('if' disjunction)
Pablo Galindo4a97b152020-09-02 17:44:19 +010028590 if (p->error_indicator) {
28591 D(p->level--);
28592 return NULL;
28593 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028594 D(fprintf(stderr, "%*c> _loop0_122[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('if' disjunction)"));
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000028595 void *_tmp_190_var;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028596 while (
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000028597 (_tmp_190_var = _tmp_190_rule(p)) // 'if' disjunction
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028598 )
28599 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000028600 _res = _tmp_190_var;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028601 if (_n == _children_capacity) {
28602 _children_capacity *= 2;
28603 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28604 if (!_new_children) {
28605 p->error_indicator = 1;
28606 PyErr_NoMemory();
28607 D(p->level--);
28608 return NULL;
28609 }
28610 _children = _new_children;
28611 }
28612 _children[_n++] = _res;
28613 _mark = p->mark;
28614 }
28615 p->mark = _mark;
28616 D(fprintf(stderr, "%*c%s _loop0_122[%d-%d]: %s failed!\n", p->level, ' ',
28617 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('if' disjunction)"));
28618 }
28619 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
28620 if (!_seq) {
28621 PyMem_Free(_children);
28622 p->error_indicator = 1;
28623 PyErr_NoMemory();
28624 D(p->level--);
28625 return NULL;
28626 }
28627 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
28628 PyMem_Free(_children);
28629 _PyPegen_insert_memo(p, _start_mark, _loop0_122_type, _seq);
28630 D(p->level--);
28631 return _seq;
28632}
28633
Pablo Galindo Salgado0e34a592021-11-04 23:19:27 +000028634// _loop0_124: ',' (starred_expression | (assignment_expression | expression !':=') !'=')
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028635static asdl_seq *
28636_loop0_124_rule(Parser *p)
28637{
28638 D(p->level++);
28639 if (p->error_indicator) {
28640 D(p->level--);
28641 return NULL;
28642 }
28643 void *_res = NULL;
28644 int _mark = p->mark;
28645 int _start_mark = p->mark;
28646 void **_children = PyMem_Malloc(sizeof(void *));
28647 if (!_children) {
28648 p->error_indicator = 1;
28649 PyErr_NoMemory();
28650 D(p->level--);
28651 return NULL;
28652 }
28653 Py_ssize_t _children_capacity = 1;
28654 Py_ssize_t _n = 0;
Pablo Galindo Salgado0e34a592021-11-04 23:19:27 +000028655 { // ',' (starred_expression | (assignment_expression | expression !':=') !'=')
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028656 if (p->error_indicator) {
28657 D(p->level--);
28658 return NULL;
28659 }
Pablo Galindo Salgado0e34a592021-11-04 23:19:27 +000028660 D(fprintf(stderr, "%*c> _loop0_124[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (starred_expression | (assignment_expression | expression !':=') !'=')"));
Pablo Galindo4a97b152020-09-02 17:44:19 +010028661 Token * _literal;
28662 void *elem;
28663 while (
28664 (_literal = _PyPegen_expect_token(p, 12)) // token=','
28665 &&
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000028666 (elem = _tmp_191_rule(p)) // starred_expression | (assignment_expression | expression !':=') !'='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028667 )
28668 {
28669 _res = elem;
28670 if (_res == NULL && PyErr_Occurred()) {
28671 p->error_indicator = 1;
28672 PyMem_Free(_children);
28673 D(p->level--);
28674 return NULL;
28675 }
28676 if (_n == _children_capacity) {
28677 _children_capacity *= 2;
28678 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28679 if (!_new_children) {
28680 p->error_indicator = 1;
28681 PyErr_NoMemory();
28682 D(p->level--);
28683 return NULL;
28684 }
28685 _children = _new_children;
28686 }
28687 _children[_n++] = _res;
28688 _mark = p->mark;
28689 }
28690 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028691 D(fprintf(stderr, "%*c%s _loop0_124[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo Salgado0e34a592021-11-04 23:19:27 +000028692 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (starred_expression | (assignment_expression | expression !':=') !'=')"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028693 }
28694 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
28695 if (!_seq) {
28696 PyMem_Free(_children);
28697 p->error_indicator = 1;
28698 PyErr_NoMemory();
28699 D(p->level--);
28700 return NULL;
28701 }
28702 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
28703 PyMem_Free(_children);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028704 _PyPegen_insert_memo(p, _start_mark, _loop0_124_type, _seq);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028705 D(p->level--);
28706 return _seq;
28707}
28708
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028709// _gather_123:
Pablo Galindo Salgado0e34a592021-11-04 23:19:27 +000028710// | (starred_expression | (assignment_expression | expression !':=') !'=') _loop0_124
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028711static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028712_gather_123_rule(Parser *p)
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028713{
28714 D(p->level++);
28715 if (p->error_indicator) {
28716 D(p->level--);
28717 return NULL;
28718 }
28719 asdl_seq * _res = NULL;
28720 int _mark = p->mark;
Pablo Galindo Salgado0e34a592021-11-04 23:19:27 +000028721 { // (starred_expression | (assignment_expression | expression !':=') !'=') _loop0_124
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028722 if (p->error_indicator) {
28723 D(p->level--);
28724 return NULL;
28725 }
Pablo Galindo Salgado0e34a592021-11-04 23:19:27 +000028726 D(fprintf(stderr, "%*c> _gather_123[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(starred_expression | (assignment_expression | expression !':=') !'=') _loop0_124"));
Brandt Bucher145bf262021-02-26 14:51:55 -080028727 void *elem;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028728 asdl_seq * seq;
28729 if (
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000028730 (elem = _tmp_191_rule(p)) // starred_expression | (assignment_expression | expression !':=') !'='
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028731 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028732 (seq = _loop0_124_rule(p)) // _loop0_124
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028733 )
28734 {
Pablo Galindo Salgado0e34a592021-11-04 23:19:27 +000028735 D(fprintf(stderr, "%*c+ _gather_123[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(starred_expression | (assignment_expression | expression !':=') !'=') _loop0_124"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028736 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
28737 goto done;
28738 }
28739 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028740 D(fprintf(stderr, "%*c%s _gather_123[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo Salgado0e34a592021-11-04 23:19:27 +000028741 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(starred_expression | (assignment_expression | expression !':=') !'=') _loop0_124"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028742 }
28743 _res = NULL;
28744 done:
28745 D(p->level--);
28746 return _res;
28747}
28748
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028749// _tmp_125: ',' kwargs
Brandt Bucher145bf262021-02-26 14:51:55 -080028750static void *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028751_tmp_125_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080028752{
28753 D(p->level++);
28754 if (p->error_indicator) {
28755 D(p->level--);
28756 return NULL;
28757 }
28758 void * _res = NULL;
28759 int _mark = p->mark;
28760 { // ',' kwargs
28761 if (p->error_indicator) {
28762 D(p->level--);
28763 return NULL;
28764 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028765 D(fprintf(stderr, "%*c> _tmp_125[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwargs"));
Brandt Bucher145bf262021-02-26 14:51:55 -080028766 Token * _literal;
28767 asdl_seq* k;
28768 if (
28769 (_literal = _PyPegen_expect_token(p, 12)) // token=','
28770 &&
28771 (k = kwargs_rule(p)) // kwargs
28772 )
28773 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028774 D(fprintf(stderr, "%*c+ _tmp_125[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' kwargs"));
Brandt Bucher145bf262021-02-26 14:51:55 -080028775 _res = k;
28776 if (_res == NULL && PyErr_Occurred()) {
28777 p->error_indicator = 1;
28778 D(p->level--);
28779 return NULL;
28780 }
28781 goto done;
28782 }
28783 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028784 D(fprintf(stderr, "%*c%s _tmp_125[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080028785 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwargs"));
28786 }
28787 _res = NULL;
28788 done:
28789 D(p->level--);
28790 return _res;
28791}
28792
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028793// _loop0_127: ',' kwarg_or_starred
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028794static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028795_loop0_127_rule(Parser *p)
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028796{
28797 D(p->level++);
28798 if (p->error_indicator) {
28799 D(p->level--);
28800 return NULL;
28801 }
28802 void *_res = NULL;
28803 int _mark = p->mark;
28804 int _start_mark = p->mark;
28805 void **_children = PyMem_Malloc(sizeof(void *));
28806 if (!_children) {
28807 p->error_indicator = 1;
28808 PyErr_NoMemory();
28809 D(p->level--);
28810 return NULL;
28811 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010028812 Py_ssize_t _children_capacity = 1;
28813 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080028814 { // ',' kwarg_or_starred
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028815 if (p->error_indicator) {
28816 D(p->level--);
28817 return NULL;
28818 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028819 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 +000028820 Token * _literal;
Brandt Bucher145bf262021-02-26 14:51:55 -080028821 KeywordOrStarred* elem;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028822 while (
28823 (_literal = _PyPegen_expect_token(p, 12)) // token=','
28824 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080028825 (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028826 )
28827 {
28828 _res = elem;
28829 if (_res == NULL && PyErr_Occurred()) {
28830 p->error_indicator = 1;
28831 PyMem_Free(_children);
28832 D(p->level--);
28833 return NULL;
28834 }
28835 if (_n == _children_capacity) {
28836 _children_capacity *= 2;
28837 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28838 if (!_new_children) {
28839 p->error_indicator = 1;
28840 PyErr_NoMemory();
28841 D(p->level--);
28842 return NULL;
28843 }
28844 _children = _new_children;
28845 }
28846 _children[_n++] = _res;
28847 _mark = p->mark;
28848 }
28849 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028850 D(fprintf(stderr, "%*c%s _loop0_127[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080028851 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_starred"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028852 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010028853 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028854 if (!_seq) {
28855 PyMem_Free(_children);
28856 p->error_indicator = 1;
28857 PyErr_NoMemory();
28858 D(p->level--);
28859 return NULL;
28860 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010028861 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028862 PyMem_Free(_children);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028863 _PyPegen_insert_memo(p, _start_mark, _loop0_127_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028864 D(p->level--);
28865 return _seq;
28866}
28867
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028868// _gather_126: kwarg_or_starred _loop0_127
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028869static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028870_gather_126_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028871{
28872 D(p->level++);
28873 if (p->error_indicator) {
28874 D(p->level--);
28875 return NULL;
28876 }
28877 asdl_seq * _res = NULL;
28878 int _mark = p->mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028879 { // kwarg_or_starred _loop0_127
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028880 if (p->error_indicator) {
28881 D(p->level--);
28882 return NULL;
28883 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028884 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 -080028885 KeywordOrStarred* elem;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028886 asdl_seq * seq;
28887 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080028888 (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028889 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028890 (seq = _loop0_127_rule(p)) // _loop0_127
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028891 )
28892 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028893 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 +010028894 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
28895 goto done;
28896 }
28897 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028898 D(fprintf(stderr, "%*c%s _gather_126[%d-%d]: %s failed!\n", p->level, ' ',
28899 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_starred _loop0_127"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028900 }
28901 _res = NULL;
28902 done:
28903 D(p->level--);
28904 return _res;
28905}
28906
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028907// _loop0_129: ',' kwarg_or_double_starred
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028908static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028909_loop0_129_rule(Parser *p)
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028910{
28911 D(p->level++);
28912 if (p->error_indicator) {
28913 D(p->level--);
28914 return NULL;
28915 }
28916 void *_res = NULL;
28917 int _mark = p->mark;
28918 int _start_mark = p->mark;
28919 void **_children = PyMem_Malloc(sizeof(void *));
28920 if (!_children) {
28921 p->error_indicator = 1;
28922 PyErr_NoMemory();
28923 D(p->level--);
28924 return NULL;
28925 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010028926 Py_ssize_t _children_capacity = 1;
28927 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080028928 { // ',' kwarg_or_double_starred
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028929 if (p->error_indicator) {
28930 D(p->level--);
28931 return NULL;
28932 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028933 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 -080028934 Token * _literal;
28935 KeywordOrStarred* elem;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028936 while (
Brandt Bucher145bf262021-02-26 14:51:55 -080028937 (_literal = _PyPegen_expect_token(p, 12)) // token=','
28938 &&
28939 (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028940 )
28941 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028942 _res = elem;
28943 if (_res == NULL && PyErr_Occurred()) {
28944 p->error_indicator = 1;
28945 PyMem_Free(_children);
28946 D(p->level--);
28947 return NULL;
28948 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028949 if (_n == _children_capacity) {
28950 _children_capacity *= 2;
28951 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28952 if (!_new_children) {
28953 p->error_indicator = 1;
28954 PyErr_NoMemory();
28955 D(p->level--);
28956 return NULL;
28957 }
28958 _children = _new_children;
28959 }
28960 _children[_n++] = _res;
28961 _mark = p->mark;
28962 }
28963 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028964 D(fprintf(stderr, "%*c%s _loop0_129[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080028965 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_double_starred"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028966 }
28967 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
28968 if (!_seq) {
28969 PyMem_Free(_children);
28970 p->error_indicator = 1;
28971 PyErr_NoMemory();
28972 D(p->level--);
28973 return NULL;
28974 }
28975 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
28976 PyMem_Free(_children);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028977 _PyPegen_insert_memo(p, _start_mark, _loop0_129_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028978 D(p->level--);
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030028979 return _seq;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028980}
28981
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028982// _gather_128: kwarg_or_double_starred _loop0_129
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020028983static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028984_gather_128_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080028985{
28986 D(p->level++);
28987 if (p->error_indicator) {
28988 D(p->level--);
28989 return NULL;
28990 }
28991 asdl_seq * _res = NULL;
28992 int _mark = p->mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028993 { // kwarg_or_double_starred _loop0_129
Brandt Bucher145bf262021-02-26 14:51:55 -080028994 if (p->error_indicator) {
28995 D(p->level--);
28996 return NULL;
28997 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028998 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 -080028999 KeywordOrStarred* elem;
29000 asdl_seq * seq;
29001 if (
29002 (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
29003 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029004 (seq = _loop0_129_rule(p)) // _loop0_129
Brandt Bucher145bf262021-02-26 14:51:55 -080029005 )
29006 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029007 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 -080029008 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
29009 goto done;
29010 }
29011 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029012 D(fprintf(stderr, "%*c%s _gather_128[%d-%d]: %s failed!\n", p->level, ' ',
29013 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_double_starred _loop0_129"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029014 }
29015 _res = NULL;
29016 done:
29017 D(p->level--);
29018 return _res;
29019}
29020
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029021// _loop0_131: ',' kwarg_or_starred
Brandt Bucher145bf262021-02-26 14:51:55 -080029022static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029023_loop0_131_rule(Parser *p)
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020029024{
29025 D(p->level++);
29026 if (p->error_indicator) {
29027 D(p->level--);
29028 return NULL;
29029 }
29030 void *_res = NULL;
29031 int _mark = p->mark;
29032 int _start_mark = p->mark;
29033 void **_children = PyMem_Malloc(sizeof(void *));
29034 if (!_children) {
29035 p->error_indicator = 1;
29036 PyErr_NoMemory();
29037 D(p->level--);
29038 return NULL;
29039 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010029040 Py_ssize_t _children_capacity = 1;
29041 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080029042 { // ',' kwarg_or_starred
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020029043 if (p->error_indicator) {
29044 D(p->level--);
29045 return NULL;
29046 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029047 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 -080029048 Token * _literal;
29049 KeywordOrStarred* elem;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020029050 while (
Brandt Bucher145bf262021-02-26 14:51:55 -080029051 (_literal = _PyPegen_expect_token(p, 12)) // token=','
29052 &&
29053 (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020029054 )
29055 {
Brandt Bucher145bf262021-02-26 14:51:55 -080029056 _res = elem;
29057 if (_res == NULL && PyErr_Occurred()) {
29058 p->error_indicator = 1;
29059 PyMem_Free(_children);
29060 D(p->level--);
29061 return NULL;
29062 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020029063 if (_n == _children_capacity) {
29064 _children_capacity *= 2;
29065 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
29066 if (!_new_children) {
29067 p->error_indicator = 1;
29068 PyErr_NoMemory();
29069 D(p->level--);
29070 return NULL;
29071 }
29072 _children = _new_children;
29073 }
29074 _children[_n++] = _res;
29075 _mark = p->mark;
29076 }
29077 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029078 D(fprintf(stderr, "%*c%s _loop0_131[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080029079 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_starred"));
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020029080 }
29081 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
29082 if (!_seq) {
29083 PyMem_Free(_children);
29084 p->error_indicator = 1;
29085 PyErr_NoMemory();
29086 D(p->level--);
29087 return NULL;
29088 }
29089 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
29090 PyMem_Free(_children);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029091 _PyPegen_insert_memo(p, _start_mark, _loop0_131_type, _seq);
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020029092 D(p->level--);
29093 return _seq;
29094}
29095
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029096// _gather_130: kwarg_or_starred _loop0_131
Brandt Bucher145bf262021-02-26 14:51:55 -080029097static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029098_gather_130_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029099{
29100 D(p->level++);
29101 if (p->error_indicator) {
29102 D(p->level--);
29103 return NULL;
29104 }
Brandt Bucher145bf262021-02-26 14:51:55 -080029105 asdl_seq * _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029106 int _mark = p->mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029107 { // kwarg_or_starred _loop0_131
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029108 if (p->error_indicator) {
29109 D(p->level--);
29110 return NULL;
29111 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029112 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 -080029113 KeywordOrStarred* elem;
29114 asdl_seq * seq;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029115 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080029116 (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
29117 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029118 (seq = _loop0_131_rule(p)) // _loop0_131
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029119 )
29120 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029121 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 -080029122 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029123 goto done;
29124 }
29125 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029126 D(fprintf(stderr, "%*c%s _gather_130[%d-%d]: %s failed!\n", p->level, ' ',
29127 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_starred _loop0_131"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029128 }
29129 _res = NULL;
29130 done:
29131 D(p->level--);
29132 return _res;
29133}
29134
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029135// _loop0_133: ',' kwarg_or_double_starred
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029136static asdl_seq *
Pablo Galindo835f14f2021-01-31 22:52:56 +000029137_loop0_133_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029138{
29139 D(p->level++);
29140 if (p->error_indicator) {
29141 D(p->level--);
29142 return NULL;
29143 }
29144 void *_res = NULL;
29145 int _mark = p->mark;
29146 int _start_mark = p->mark;
29147 void **_children = PyMem_Malloc(sizeof(void *));
29148 if (!_children) {
29149 p->error_indicator = 1;
29150 PyErr_NoMemory();
29151 D(p->level--);
29152 return NULL;
29153 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010029154 Py_ssize_t _children_capacity = 1;
29155 Py_ssize_t _n = 0;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029156 { // ',' kwarg_or_double_starred
29157 if (p->error_indicator) {
29158 D(p->level--);
29159 return NULL;
29160 }
29161 D(fprintf(stderr, "%*c> _loop0_133[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwarg_or_double_starred"));
29162 Token * _literal;
29163 KeywordOrStarred* elem;
29164 while (
29165 (_literal = _PyPegen_expect_token(p, 12)) // token=','
29166 &&
29167 (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
29168 )
29169 {
29170 _res = elem;
29171 if (_res == NULL && PyErr_Occurred()) {
29172 p->error_indicator = 1;
29173 PyMem_Free(_children);
29174 D(p->level--);
29175 return NULL;
29176 }
29177 if (_n == _children_capacity) {
29178 _children_capacity *= 2;
29179 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
29180 if (!_new_children) {
29181 p->error_indicator = 1;
29182 PyErr_NoMemory();
29183 D(p->level--);
29184 return NULL;
29185 }
29186 _children = _new_children;
29187 }
29188 _children[_n++] = _res;
29189 _mark = p->mark;
29190 }
29191 p->mark = _mark;
29192 D(fprintf(stderr, "%*c%s _loop0_133[%d-%d]: %s failed!\n", p->level, ' ',
29193 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_double_starred"));
29194 }
29195 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
29196 if (!_seq) {
29197 PyMem_Free(_children);
29198 p->error_indicator = 1;
29199 PyErr_NoMemory();
29200 D(p->level--);
29201 return NULL;
29202 }
29203 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
29204 PyMem_Free(_children);
29205 _PyPegen_insert_memo(p, _start_mark, _loop0_133_type, _seq);
29206 D(p->level--);
29207 return _seq;
29208}
29209
29210// _gather_132: kwarg_or_double_starred _loop0_133
29211static asdl_seq *
29212_gather_132_rule(Parser *p)
29213{
29214 D(p->level++);
29215 if (p->error_indicator) {
29216 D(p->level--);
29217 return NULL;
29218 }
29219 asdl_seq * _res = NULL;
29220 int _mark = p->mark;
29221 { // kwarg_or_double_starred _loop0_133
29222 if (p->error_indicator) {
29223 D(p->level--);
29224 return NULL;
29225 }
29226 D(fprintf(stderr, "%*c> _gather_132[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwarg_or_double_starred _loop0_133"));
29227 KeywordOrStarred* elem;
29228 asdl_seq * seq;
29229 if (
29230 (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
29231 &&
29232 (seq = _loop0_133_rule(p)) // _loop0_133
29233 )
29234 {
29235 D(fprintf(stderr, "%*c+ _gather_132[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwarg_or_double_starred _loop0_133"));
29236 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
29237 goto done;
29238 }
29239 p->mark = _mark;
29240 D(fprintf(stderr, "%*c%s _gather_132[%d-%d]: %s failed!\n", p->level, ' ',
29241 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_double_starred _loop0_133"));
29242 }
29243 _res = NULL;
29244 done:
29245 D(p->level--);
29246 return _res;
29247}
29248
29249// _loop0_134: (',' star_target)
29250static asdl_seq *
29251_loop0_134_rule(Parser *p)
29252{
29253 D(p->level++);
29254 if (p->error_indicator) {
29255 D(p->level--);
29256 return NULL;
29257 }
29258 void *_res = NULL;
29259 int _mark = p->mark;
29260 int _start_mark = p->mark;
29261 void **_children = PyMem_Malloc(sizeof(void *));
29262 if (!_children) {
29263 p->error_indicator = 1;
29264 PyErr_NoMemory();
29265 D(p->level--);
29266 return NULL;
29267 }
29268 Py_ssize_t _children_capacity = 1;
29269 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080029270 { // (',' star_target)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029271 if (p->error_indicator) {
29272 D(p->level--);
29273 return NULL;
29274 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029275 D(fprintf(stderr, "%*c> _loop0_134[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' star_target)"));
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000029276 void *_tmp_192_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029277 while (
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000029278 (_tmp_192_var = _tmp_192_rule(p)) // ',' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029279 )
29280 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000029281 _res = _tmp_192_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029282 if (_n == _children_capacity) {
29283 _children_capacity *= 2;
29284 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
29285 if (!_new_children) {
29286 p->error_indicator = 1;
29287 PyErr_NoMemory();
29288 D(p->level--);
29289 return NULL;
29290 }
29291 _children = _new_children;
29292 }
29293 _children[_n++] = _res;
29294 _mark = p->mark;
29295 }
29296 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029297 D(fprintf(stderr, "%*c%s _loop0_134[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080029298 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' star_target)"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029299 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010029300 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029301 if (!_seq) {
29302 PyMem_Free(_children);
29303 p->error_indicator = 1;
29304 PyErr_NoMemory();
29305 D(p->level--);
29306 return NULL;
29307 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010029308 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029309 PyMem_Free(_children);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029310 _PyPegen_insert_memo(p, _start_mark, _loop0_134_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029311 D(p->level--);
29312 return _seq;
29313}
29314
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029315// _loop0_136: ',' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029316static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029317_loop0_136_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029318{
29319 D(p->level++);
29320 if (p->error_indicator) {
29321 D(p->level--);
29322 return NULL;
29323 }
29324 void *_res = NULL;
29325 int _mark = p->mark;
29326 int _start_mark = p->mark;
29327 void **_children = PyMem_Malloc(sizeof(void *));
29328 if (!_children) {
29329 p->error_indicator = 1;
29330 PyErr_NoMemory();
29331 D(p->level--);
29332 return NULL;
29333 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010029334 Py_ssize_t _children_capacity = 1;
29335 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080029336 { // ',' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029337 if (p->error_indicator) {
29338 D(p->level--);
29339 return NULL;
29340 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029341 D(fprintf(stderr, "%*c> _loop0_136[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_target"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029342 Token * _literal;
29343 expr_ty elem;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029344 while (
Brandt Bucher145bf262021-02-26 14:51:55 -080029345 (_literal = _PyPegen_expect_token(p, 12)) // token=','
29346 &&
29347 (elem = star_target_rule(p)) // star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029348 )
29349 {
Brandt Bucher145bf262021-02-26 14:51:55 -080029350 _res = elem;
29351 if (_res == NULL && PyErr_Occurred()) {
29352 p->error_indicator = 1;
29353 PyMem_Free(_children);
29354 D(p->level--);
29355 return NULL;
29356 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029357 if (_n == _children_capacity) {
29358 _children_capacity *= 2;
29359 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
29360 if (!_new_children) {
29361 p->error_indicator = 1;
29362 PyErr_NoMemory();
29363 D(p->level--);
29364 return NULL;
29365 }
29366 _children = _new_children;
29367 }
29368 _children[_n++] = _res;
29369 _mark = p->mark;
29370 }
29371 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029372 D(fprintf(stderr, "%*c%s _loop0_136[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080029373 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029374 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010029375 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029376 if (!_seq) {
29377 PyMem_Free(_children);
29378 p->error_indicator = 1;
29379 PyErr_NoMemory();
29380 D(p->level--);
29381 return NULL;
29382 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010029383 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029384 PyMem_Free(_children);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029385 _PyPegen_insert_memo(p, _start_mark, _loop0_136_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029386 D(p->level--);
29387 return _seq;
29388}
29389
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029390// _gather_135: star_target _loop0_136
Brandt Bucher145bf262021-02-26 14:51:55 -080029391static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029392_gather_135_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080029393{
29394 D(p->level++);
29395 if (p->error_indicator) {
29396 D(p->level--);
29397 return NULL;
29398 }
29399 asdl_seq * _res = NULL;
29400 int _mark = p->mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029401 { // star_target _loop0_136
Brandt Bucher145bf262021-02-26 14:51:55 -080029402 if (p->error_indicator) {
29403 D(p->level--);
29404 return NULL;
29405 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029406 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 -080029407 expr_ty elem;
29408 asdl_seq * seq;
29409 if (
29410 (elem = star_target_rule(p)) // star_target
29411 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029412 (seq = _loop0_136_rule(p)) // _loop0_136
Brandt Bucher145bf262021-02-26 14:51:55 -080029413 )
29414 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029415 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 -080029416 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
29417 goto done;
29418 }
29419 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029420 D(fprintf(stderr, "%*c%s _gather_135[%d-%d]: %s failed!\n", p->level, ' ',
29421 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target _loop0_136"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029422 }
29423 _res = NULL;
29424 done:
29425 D(p->level--);
29426 return _res;
29427}
29428
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029429// _loop1_137: (',' star_target)
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020029430static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029431_loop1_137_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029432{
29433 D(p->level++);
29434 if (p->error_indicator) {
29435 D(p->level--);
29436 return NULL;
29437 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020029438 void *_res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029439 int _mark = p->mark;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020029440 int _start_mark = p->mark;
29441 void **_children = PyMem_Malloc(sizeof(void *));
29442 if (!_children) {
29443 p->error_indicator = 1;
29444 PyErr_NoMemory();
29445 D(p->level--);
29446 return NULL;
29447 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010029448 Py_ssize_t _children_capacity = 1;
29449 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080029450 { // (',' star_target)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029451 if (p->error_indicator) {
29452 D(p->level--);
29453 return NULL;
29454 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029455 D(fprintf(stderr, "%*c> _loop1_137[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' star_target)"));
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000029456 void *_tmp_193_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020029457 while (
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000029458 (_tmp_193_var = _tmp_193_rule(p)) // ',' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029459 )
29460 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000029461 _res = _tmp_193_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020029462 if (_n == _children_capacity) {
29463 _children_capacity *= 2;
29464 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
29465 if (!_new_children) {
29466 p->error_indicator = 1;
29467 PyErr_NoMemory();
29468 D(p->level--);
29469 return NULL;
29470 }
29471 _children = _new_children;
29472 }
29473 _children[_n++] = _res;
29474 _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029475 }
29476 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029477 D(fprintf(stderr, "%*c%s _loop1_137[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080029478 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' star_target)"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029479 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020029480 if (_n == 0 || p->error_indicator) {
29481 PyMem_Free(_children);
29482 D(p->level--);
29483 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029484 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020029485 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
29486 if (!_seq) {
29487 PyMem_Free(_children);
29488 p->error_indicator = 1;
29489 PyErr_NoMemory();
29490 D(p->level--);
29491 return NULL;
29492 }
29493 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
29494 PyMem_Free(_children);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029495 _PyPegen_insert_memo(p, _start_mark, _loop1_137_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029496 D(p->level--);
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020029497 return _seq;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029498}
29499
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029500// _tmp_138: !'*' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029501static void *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029502_tmp_138_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029503{
29504 D(p->level++);
29505 if (p->error_indicator) {
29506 D(p->level--);
29507 return NULL;
29508 }
29509 void * _res = NULL;
29510 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080029511 { // !'*' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029512 if (p->error_indicator) {
29513 D(p->level--);
29514 return NULL;
29515 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029516 D(fprintf(stderr, "%*c> _tmp_138[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "!'*' star_target"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029517 expr_ty star_target_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029518 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080029519 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 16) // token='*'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029520 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080029521 (star_target_var = star_target_rule(p)) // star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029522 )
29523 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029524 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 -080029525 _res = star_target_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029526 goto done;
29527 }
29528 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029529 D(fprintf(stderr, "%*c%s _tmp_138[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080029530 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "!'*' star_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029531 }
29532 _res = NULL;
29533 done:
29534 D(p->level--);
29535 return _res;
29536}
29537
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029538// _loop0_140: ',' del_target
Brandt Bucher145bf262021-02-26 14:51:55 -080029539static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029540_loop0_140_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029541{
29542 D(p->level++);
29543 if (p->error_indicator) {
29544 D(p->level--);
29545 return NULL;
29546 }
Brandt Bucher145bf262021-02-26 14:51:55 -080029547 void *_res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029548 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080029549 int _start_mark = p->mark;
29550 void **_children = PyMem_Malloc(sizeof(void *));
29551 if (!_children) {
29552 p->error_indicator = 1;
29553 PyErr_NoMemory();
29554 D(p->level--);
29555 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029556 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010029557 Py_ssize_t _children_capacity = 1;
29558 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080029559 { // ',' del_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029560 if (p->error_indicator) {
29561 D(p->level--);
29562 return NULL;
29563 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029564 D(fprintf(stderr, "%*c> _loop0_140[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' del_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029565 Token * _literal;
Brandt Bucher145bf262021-02-26 14:51:55 -080029566 expr_ty elem;
29567 while (
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029568 (_literal = _PyPegen_expect_token(p, 12)) // token=','
29569 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080029570 (elem = del_target_rule(p)) // del_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029571 )
29572 {
Brandt Bucher145bf262021-02-26 14:51:55 -080029573 _res = elem;
29574 if (_res == NULL && PyErr_Occurred()) {
29575 p->error_indicator = 1;
29576 PyMem_Free(_children);
29577 D(p->level--);
29578 return NULL;
29579 }
29580 if (_n == _children_capacity) {
29581 _children_capacity *= 2;
29582 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
29583 if (!_new_children) {
29584 p->error_indicator = 1;
29585 PyErr_NoMemory();
29586 D(p->level--);
29587 return NULL;
29588 }
29589 _children = _new_children;
29590 }
29591 _children[_n++] = _res;
29592 _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029593 }
29594 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029595 D(fprintf(stderr, "%*c%s _loop0_140[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080029596 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' del_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029597 }
Brandt Bucher145bf262021-02-26 14:51:55 -080029598 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
29599 if (!_seq) {
29600 PyMem_Free(_children);
29601 p->error_indicator = 1;
29602 PyErr_NoMemory();
29603 D(p->level--);
29604 return NULL;
29605 }
29606 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
29607 PyMem_Free(_children);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029608 _PyPegen_insert_memo(p, _start_mark, _loop0_140_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029609 D(p->level--);
Brandt Bucher145bf262021-02-26 14:51:55 -080029610 return _seq;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029611}
29612
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029613// _gather_139: del_target _loop0_140
Brandt Bucher145bf262021-02-26 14:51:55 -080029614static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029615_gather_139_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029616{
29617 D(p->level++);
29618 if (p->error_indicator) {
29619 D(p->level--);
29620 return NULL;
29621 }
Brandt Bucher145bf262021-02-26 14:51:55 -080029622 asdl_seq * _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029623 int _mark = p->mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029624 { // del_target _loop0_140
Pablo Galindo58fb1562021-02-02 19:54:22 +000029625 if (p->error_indicator) {
29626 D(p->level--);
29627 return NULL;
29628 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029629 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 -080029630 expr_ty elem;
29631 asdl_seq * seq;
Pablo Galindo58fb1562021-02-02 19:54:22 +000029632 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080029633 (elem = del_target_rule(p)) // del_target
29634 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029635 (seq = _loop0_140_rule(p)) // _loop0_140
Pablo Galindo58fb1562021-02-02 19:54:22 +000029636 )
29637 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029638 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 -080029639 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindo58fb1562021-02-02 19:54:22 +000029640 goto done;
29641 }
29642 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029643 D(fprintf(stderr, "%*c%s _gather_139[%d-%d]: %s failed!\n", p->level, ' ',
29644 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "del_target _loop0_140"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000029645 }
29646 _res = NULL;
29647 done:
29648 D(p->level--);
29649 return _res;
29650}
29651
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029652// _tmp_141: args | expression for_if_clauses
Brandt Bucher145bf262021-02-26 14:51:55 -080029653static void *
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029654_tmp_141_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080029655{
29656 D(p->level++);
29657 if (p->error_indicator) {
29658 D(p->level--);
29659 return NULL;
29660 }
29661 void * _res = NULL;
29662 int _mark = p->mark;
29663 { // args
29664 if (p->error_indicator) {
29665 D(p->level--);
29666 return NULL;
29667 }
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029668 D(fprintf(stderr, "%*c> _tmp_141[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029669 expr_ty args_var;
29670 if (
29671 (args_var = args_rule(p)) // args
29672 )
29673 {
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029674 D(fprintf(stderr, "%*c+ _tmp_141[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029675 _res = args_var;
29676 goto done;
29677 }
29678 p->mark = _mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029679 D(fprintf(stderr, "%*c%s _tmp_141[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080029680 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args"));
29681 }
29682 { // expression for_if_clauses
29683 if (p->error_indicator) {
29684 D(p->level--);
29685 return NULL;
29686 }
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029687 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 -080029688 expr_ty expression_var;
29689 asdl_comprehension_seq* for_if_clauses_var;
29690 if (
29691 (expression_var = expression_rule(p)) // expression
29692 &&
29693 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
29694 )
29695 {
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029696 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 -080029697 _res = _PyPegen_dummy_name(p, expression_var, for_if_clauses_var);
29698 goto done;
29699 }
29700 p->mark = _mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029701 D(fprintf(stderr, "%*c%s _tmp_141[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080029702 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression for_if_clauses"));
29703 }
29704 _res = NULL;
29705 done:
29706 D(p->level--);
29707 return _res;
29708}
29709
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000029710// _tmp_142: 'True' | 'False' | 'None'
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029711static void *
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029712_tmp_142_rule(Parser *p)
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029713{
29714 D(p->level++);
29715 if (p->error_indicator) {
29716 D(p->level--);
29717 return NULL;
29718 }
29719 void * _res = NULL;
29720 int _mark = p->mark;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000029721 { // 'True'
29722 if (p->error_indicator) {
29723 D(p->level--);
29724 return NULL;
29725 }
29726 D(fprintf(stderr, "%*c> _tmp_142[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'True'"));
29727 Token * _keyword;
29728 if (
29729 (_keyword = _PyPegen_expect_token(p, 524)) // token='True'
29730 )
29731 {
29732 D(fprintf(stderr, "%*c+ _tmp_142[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'"));
29733 _res = _keyword;
29734 goto done;
29735 }
29736 p->mark = _mark;
29737 D(fprintf(stderr, "%*c%s _tmp_142[%d-%d]: %s failed!\n", p->level, ' ',
29738 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'True'"));
29739 }
29740 { // 'False'
29741 if (p->error_indicator) {
29742 D(p->level--);
29743 return NULL;
29744 }
29745 D(fprintf(stderr, "%*c> _tmp_142[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False'"));
29746 Token * _keyword;
29747 if (
29748 (_keyword = _PyPegen_expect_token(p, 525)) // token='False'
29749 )
29750 {
29751 D(fprintf(stderr, "%*c+ _tmp_142[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'"));
29752 _res = _keyword;
29753 goto done;
29754 }
29755 p->mark = _mark;
29756 D(fprintf(stderr, "%*c%s _tmp_142[%d-%d]: %s failed!\n", p->level, ' ',
29757 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'False'"));
29758 }
29759 { // 'None'
29760 if (p->error_indicator) {
29761 D(p->level--);
29762 return NULL;
29763 }
29764 D(fprintf(stderr, "%*c> _tmp_142[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'None'"));
29765 Token * _keyword;
29766 if (
29767 (_keyword = _PyPegen_expect_token(p, 523)) // token='None'
29768 )
29769 {
29770 D(fprintf(stderr, "%*c+ _tmp_142[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'"));
29771 _res = _keyword;
29772 goto done;
29773 }
29774 p->mark = _mark;
29775 D(fprintf(stderr, "%*c%s _tmp_142[%d-%d]: %s failed!\n", p->level, ' ',
29776 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'None'"));
29777 }
29778 _res = NULL;
29779 done:
29780 D(p->level--);
29781 return _res;
29782}
29783
29784// _tmp_143: NAME '='
29785static void *
29786_tmp_143_rule(Parser *p)
29787{
29788 D(p->level++);
29789 if (p->error_indicator) {
29790 D(p->level--);
29791 return NULL;
29792 }
29793 void * _res = NULL;
29794 int _mark = p->mark;
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070029795 { // NAME '='
29796 if (p->error_indicator) {
29797 D(p->level--);
29798 return NULL;
29799 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000029800 D(fprintf(stderr, "%*c> _tmp_143[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME '='"));
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070029801 Token * _literal;
29802 expr_ty name_var;
29803 if (
29804 (name_var = _PyPegen_name_token(p)) // NAME
29805 &&
29806 (_literal = _PyPegen_expect_token(p, 22)) // token='='
29807 )
29808 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000029809 D(fprintf(stderr, "%*c+ _tmp_143[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '='"));
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070029810 _res = _PyPegen_dummy_name(p, name_var, _literal);
29811 goto done;
29812 }
29813 p->mark = _mark;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000029814 D(fprintf(stderr, "%*c%s _tmp_143[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070029815 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '='"));
29816 }
29817 _res = NULL;
29818 done:
29819 D(p->level--);
29820 return _res;
29821}
29822
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000029823// _tmp_144: NAME STRING | SOFT_KEYWORD
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070029824static void *
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000029825_tmp_144_rule(Parser *p)
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070029826{
29827 D(p->level++);
29828 if (p->error_indicator) {
29829 D(p->level--);
29830 return NULL;
29831 }
29832 void * _res = NULL;
29833 int _mark = p->mark;
Pablo Galindob2802482021-04-15 21:38:45 +010029834 { // NAME STRING
29835 if (p->error_indicator) {
29836 D(p->level--);
29837 return NULL;
29838 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000029839 D(fprintf(stderr, "%*c> _tmp_144[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME STRING"));
Pablo Galindob2802482021-04-15 21:38:45 +010029840 expr_ty name_var;
29841 expr_ty string_var;
29842 if (
29843 (name_var = _PyPegen_name_token(p)) // NAME
29844 &&
29845 (string_var = _PyPegen_string_token(p)) // STRING
29846 )
29847 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000029848 D(fprintf(stderr, "%*c+ _tmp_144[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME STRING"));
Pablo Galindob2802482021-04-15 21:38:45 +010029849 _res = _PyPegen_dummy_name(p, name_var, string_var);
29850 goto done;
29851 }
29852 p->mark = _mark;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000029853 D(fprintf(stderr, "%*c%s _tmp_144[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob2802482021-04-15 21:38:45 +010029854 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME STRING"));
29855 }
29856 { // SOFT_KEYWORD
29857 if (p->error_indicator) {
29858 D(p->level--);
29859 return NULL;
29860 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000029861 D(fprintf(stderr, "%*c> _tmp_144[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "SOFT_KEYWORD"));
Pablo Galindob2802482021-04-15 21:38:45 +010029862 expr_ty soft_keyword_var;
29863 if (
29864 (soft_keyword_var = _PyPegen_soft_keyword_token(p)) // SOFT_KEYWORD
29865 )
29866 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000029867 D(fprintf(stderr, "%*c+ _tmp_144[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "SOFT_KEYWORD"));
Pablo Galindob2802482021-04-15 21:38:45 +010029868 _res = soft_keyword_var;
29869 goto done;
29870 }
29871 p->mark = _mark;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000029872 D(fprintf(stderr, "%*c%s _tmp_144[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob2802482021-04-15 21:38:45 +010029873 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "SOFT_KEYWORD"));
29874 }
29875 _res = NULL;
29876 done:
29877 D(p->level--);
29878 return _res;
29879}
29880
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000029881// _tmp_145: 'else' | ':'
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029882static void *
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000029883_tmp_145_rule(Parser *p)
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029884{
29885 D(p->level++);
29886 if (p->error_indicator) {
29887 D(p->level--);
29888 return NULL;
29889 }
29890 void * _res = NULL;
29891 int _mark = p->mark;
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010029892 { // 'else'
29893 if (p->error_indicator) {
29894 D(p->level--);
29895 return NULL;
29896 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000029897 D(fprintf(stderr, "%*c> _tmp_145[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'else'"));
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010029898 Token * _keyword;
29899 if (
29900 (_keyword = _PyPegen_expect_token(p, 516)) // token='else'
29901 )
29902 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000029903 D(fprintf(stderr, "%*c+ _tmp_145[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'else'"));
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010029904 _res = _keyword;
29905 goto done;
29906 }
29907 p->mark = _mark;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000029908 D(fprintf(stderr, "%*c%s _tmp_145[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010029909 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'else'"));
29910 }
29911 { // ':'
29912 if (p->error_indicator) {
29913 D(p->level--);
29914 return NULL;
29915 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000029916 D(fprintf(stderr, "%*c> _tmp_145[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010029917 Token * _literal;
29918 if (
29919 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
29920 )
29921 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000029922 D(fprintf(stderr, "%*c+ _tmp_145[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010029923 _res = _literal;
29924 goto done;
29925 }
29926 p->mark = _mark;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000029927 D(fprintf(stderr, "%*c%s _tmp_145[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010029928 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
29929 }
29930 _res = NULL;
29931 done:
29932 D(p->level--);
29933 return _res;
29934}
29935
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000029936// _tmp_146: '=' | ':='
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010029937static void *
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000029938_tmp_146_rule(Parser *p)
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010029939{
29940 D(p->level++);
29941 if (p->error_indicator) {
29942 D(p->level--);
29943 return NULL;
29944 }
29945 void * _res = NULL;
29946 int _mark = p->mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029947 { // '='
29948 if (p->error_indicator) {
29949 D(p->level--);
29950 return NULL;
29951 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000029952 D(fprintf(stderr, "%*c> _tmp_146[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'='"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029953 Token * _literal;
29954 if (
29955 (_literal = _PyPegen_expect_token(p, 22)) // token='='
29956 )
29957 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000029958 D(fprintf(stderr, "%*c+ _tmp_146[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'='"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029959 _res = _literal;
29960 goto done;
29961 }
29962 p->mark = _mark;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000029963 D(fprintf(stderr, "%*c%s _tmp_146[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029964 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'='"));
29965 }
29966 { // ':='
29967 if (p->error_indicator) {
29968 D(p->level--);
29969 return NULL;
29970 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000029971 D(fprintf(stderr, "%*c> _tmp_146[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':='"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029972 Token * _literal;
29973 if (
29974 (_literal = _PyPegen_expect_token(p, 53)) // token=':='
29975 )
29976 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000029977 D(fprintf(stderr, "%*c+ _tmp_146[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':='"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029978 _res = _literal;
29979 goto done;
29980 }
29981 p->mark = _mark;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000029982 D(fprintf(stderr, "%*c%s _tmp_146[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029983 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':='"));
29984 }
29985 _res = NULL;
29986 done:
29987 D(p->level--);
29988 return _res;
29989}
29990
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000029991// _tmp_147: list | tuple | genexp | 'True' | 'None' | 'False'
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029992static void *
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000029993_tmp_147_rule(Parser *p)
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029994{
29995 D(p->level++);
29996 if (p->error_indicator) {
29997 D(p->level--);
29998 return NULL;
29999 }
30000 void * _res = NULL;
30001 int _mark = p->mark;
30002 { // list
30003 if (p->error_indicator) {
30004 D(p->level--);
30005 return NULL;
30006 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030007 D(fprintf(stderr, "%*c> _tmp_147[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "list"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030008 expr_ty list_var;
30009 if (
30010 (list_var = list_rule(p)) // list
30011 )
30012 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030013 D(fprintf(stderr, "%*c+ _tmp_147[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "list"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030014 _res = list_var;
30015 goto done;
30016 }
30017 p->mark = _mark;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030018 D(fprintf(stderr, "%*c%s _tmp_147[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030019 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "list"));
30020 }
30021 { // tuple
30022 if (p->error_indicator) {
30023 D(p->level--);
30024 return NULL;
30025 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030026 D(fprintf(stderr, "%*c> _tmp_147[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "tuple"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030027 expr_ty tuple_var;
30028 if (
30029 (tuple_var = tuple_rule(p)) // tuple
30030 )
30031 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030032 D(fprintf(stderr, "%*c+ _tmp_147[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "tuple"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030033 _res = tuple_var;
30034 goto done;
30035 }
30036 p->mark = _mark;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030037 D(fprintf(stderr, "%*c%s _tmp_147[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030038 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "tuple"));
30039 }
30040 { // genexp
30041 if (p->error_indicator) {
30042 D(p->level--);
30043 return NULL;
30044 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030045 D(fprintf(stderr, "%*c> _tmp_147[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "genexp"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030046 expr_ty genexp_var;
30047 if (
30048 (genexp_var = genexp_rule(p)) // genexp
30049 )
30050 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030051 D(fprintf(stderr, "%*c+ _tmp_147[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "genexp"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030052 _res = genexp_var;
30053 goto done;
30054 }
30055 p->mark = _mark;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030056 D(fprintf(stderr, "%*c%s _tmp_147[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030057 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "genexp"));
30058 }
30059 { // 'True'
30060 if (p->error_indicator) {
30061 D(p->level--);
30062 return NULL;
30063 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030064 D(fprintf(stderr, "%*c> _tmp_147[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'True'"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030065 Token * _keyword;
30066 if (
30067 (_keyword = _PyPegen_expect_token(p, 524)) // token='True'
30068 )
30069 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030070 D(fprintf(stderr, "%*c+ _tmp_147[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030071 _res = _keyword;
30072 goto done;
30073 }
30074 p->mark = _mark;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030075 D(fprintf(stderr, "%*c%s _tmp_147[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030076 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'True'"));
30077 }
30078 { // 'None'
30079 if (p->error_indicator) {
30080 D(p->level--);
30081 return NULL;
30082 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030083 D(fprintf(stderr, "%*c> _tmp_147[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'None'"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030084 Token * _keyword;
30085 if (
30086 (_keyword = _PyPegen_expect_token(p, 523)) // token='None'
30087 )
30088 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030089 D(fprintf(stderr, "%*c+ _tmp_147[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030090 _res = _keyword;
30091 goto done;
30092 }
30093 p->mark = _mark;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030094 D(fprintf(stderr, "%*c%s _tmp_147[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030095 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'None'"));
30096 }
30097 { // 'False'
30098 if (p->error_indicator) {
30099 D(p->level--);
30100 return NULL;
30101 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030102 D(fprintf(stderr, "%*c> _tmp_147[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False'"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030103 Token * _keyword;
30104 if (
30105 (_keyword = _PyPegen_expect_token(p, 525)) // token='False'
30106 )
30107 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030108 D(fprintf(stderr, "%*c+ _tmp_147[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030109 _res = _keyword;
30110 goto done;
30111 }
30112 p->mark = _mark;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030113 D(fprintf(stderr, "%*c%s _tmp_147[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030114 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'False'"));
30115 }
30116 _res = NULL;
30117 done:
30118 D(p->level--);
30119 return _res;
30120}
30121
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030122// _tmp_148: '=' | ':='
Pablo Galindob2802482021-04-15 21:38:45 +010030123static void *
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030124_tmp_148_rule(Parser *p)
Pablo Galindob2802482021-04-15 21:38:45 +010030125{
30126 D(p->level++);
30127 if (p->error_indicator) {
30128 D(p->level--);
30129 return NULL;
30130 }
30131 void * _res = NULL;
30132 int _mark = p->mark;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030133 { // '='
30134 if (p->error_indicator) {
30135 D(p->level--);
30136 return NULL;
30137 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030138 D(fprintf(stderr, "%*c> _tmp_148[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'='"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030139 Token * _literal;
30140 if (
30141 (_literal = _PyPegen_expect_token(p, 22)) // token='='
30142 )
30143 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030144 D(fprintf(stderr, "%*c+ _tmp_148[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'='"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030145 _res = _literal;
30146 goto done;
30147 }
30148 p->mark = _mark;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030149 D(fprintf(stderr, "%*c%s _tmp_148[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030150 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'='"));
30151 }
30152 { // ':='
30153 if (p->error_indicator) {
30154 D(p->level--);
30155 return NULL;
30156 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030157 D(fprintf(stderr, "%*c> _tmp_148[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':='"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030158 Token * _literal;
30159 if (
30160 (_literal = _PyPegen_expect_token(p, 53)) // token=':='
30161 )
30162 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030163 D(fprintf(stderr, "%*c+ _tmp_148[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':='"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030164 _res = _literal;
30165 goto done;
30166 }
30167 p->mark = _mark;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030168 D(fprintf(stderr, "%*c%s _tmp_148[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030169 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':='"));
30170 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030171 _res = NULL;
30172 done:
30173 D(p->level--);
30174 return _res;
30175}
30176
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030177// _loop0_149: star_named_expressions
Pablo Galindo58fb1562021-02-02 19:54:22 +000030178static asdl_seq *
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030179_loop0_149_rule(Parser *p)
Pablo Galindo58fb1562021-02-02 19:54:22 +000030180{
30181 D(p->level++);
30182 if (p->error_indicator) {
30183 D(p->level--);
30184 return NULL;
30185 }
30186 void *_res = NULL;
30187 int _mark = p->mark;
30188 int _start_mark = p->mark;
30189 void **_children = PyMem_Malloc(sizeof(void *));
30190 if (!_children) {
30191 p->error_indicator = 1;
30192 PyErr_NoMemory();
30193 D(p->level--);
30194 return NULL;
30195 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010030196 Py_ssize_t _children_capacity = 1;
30197 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080030198 { // star_named_expressions
Pablo Galindo58fb1562021-02-02 19:54:22 +000030199 if (p->error_indicator) {
30200 D(p->level--);
30201 return NULL;
30202 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030203 D(fprintf(stderr, "%*c> _loop0_149[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_named_expressions"));
Brandt Bucher145bf262021-02-26 14:51:55 -080030204 asdl_expr_seq* star_named_expressions_var;
30205 while (
30206 (star_named_expressions_var = star_named_expressions_rule(p)) // star_named_expressions
30207 )
30208 {
30209 _res = star_named_expressions_var;
30210 if (_n == _children_capacity) {
30211 _children_capacity *= 2;
30212 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
30213 if (!_new_children) {
30214 p->error_indicator = 1;
30215 PyErr_NoMemory();
30216 D(p->level--);
30217 return NULL;
30218 }
30219 _children = _new_children;
30220 }
30221 _children[_n++] = _res;
30222 _mark = p->mark;
30223 }
30224 p->mark = _mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030225 D(fprintf(stderr, "%*c%s _loop0_149[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030226 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expressions"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030227 }
30228 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
30229 if (!_seq) {
30230 PyMem_Free(_children);
30231 p->error_indicator = 1;
30232 PyErr_NoMemory();
30233 D(p->level--);
30234 return NULL;
30235 }
30236 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
30237 PyMem_Free(_children);
Pablo Galindob2802482021-04-15 21:38:45 +010030238 _PyPegen_insert_memo(p, _start_mark, _loop0_149_type, _seq);
30239 D(p->level--);
30240 return _seq;
30241}
30242
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010030243// _loop0_150: (star_targets '=')
30244static asdl_seq *
30245_loop0_150_rule(Parser *p)
30246{
30247 D(p->level++);
30248 if (p->error_indicator) {
30249 D(p->level--);
30250 return NULL;
30251 }
30252 void *_res = NULL;
30253 int _mark = p->mark;
30254 int _start_mark = p->mark;
30255 void **_children = PyMem_Malloc(sizeof(void *));
30256 if (!_children) {
30257 p->error_indicator = 1;
30258 PyErr_NoMemory();
30259 D(p->level--);
30260 return NULL;
30261 }
30262 Py_ssize_t _children_capacity = 1;
30263 Py_ssize_t _n = 0;
30264 { // (star_targets '=')
30265 if (p->error_indicator) {
30266 D(p->level--);
30267 return NULL;
30268 }
30269 D(fprintf(stderr, "%*c> _loop0_150[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')"));
30270 void *_tmp_194_var;
30271 while (
30272 (_tmp_194_var = _tmp_194_rule(p)) // star_targets '='
30273 )
30274 {
30275 _res = _tmp_194_var;
30276 if (_n == _children_capacity) {
30277 _children_capacity *= 2;
30278 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
30279 if (!_new_children) {
30280 p->error_indicator = 1;
30281 PyErr_NoMemory();
30282 D(p->level--);
30283 return NULL;
30284 }
30285 _children = _new_children;
30286 }
30287 _children[_n++] = _res;
30288 _mark = p->mark;
30289 }
30290 p->mark = _mark;
30291 D(fprintf(stderr, "%*c%s _loop0_150[%d-%d]: %s failed!\n", p->level, ' ',
30292 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(star_targets '=')"));
30293 }
30294 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
30295 if (!_seq) {
30296 PyMem_Free(_children);
30297 p->error_indicator = 1;
30298 PyErr_NoMemory();
30299 D(p->level--);
30300 return NULL;
30301 }
30302 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
30303 PyMem_Free(_children);
30304 _PyPegen_insert_memo(p, _start_mark, _loop0_150_type, _seq);
30305 D(p->level--);
30306 return _seq;
30307}
30308
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030309// _loop0_151: (star_targets '=')
30310static asdl_seq *
30311_loop0_151_rule(Parser *p)
30312{
30313 D(p->level++);
30314 if (p->error_indicator) {
30315 D(p->level--);
30316 return NULL;
30317 }
30318 void *_res = NULL;
30319 int _mark = p->mark;
30320 int _start_mark = p->mark;
30321 void **_children = PyMem_Malloc(sizeof(void *));
30322 if (!_children) {
30323 p->error_indicator = 1;
30324 PyErr_NoMemory();
30325 D(p->level--);
30326 return NULL;
30327 }
30328 Py_ssize_t _children_capacity = 1;
30329 Py_ssize_t _n = 0;
30330 { // (star_targets '=')
30331 if (p->error_indicator) {
30332 D(p->level--);
30333 return NULL;
30334 }
30335 D(fprintf(stderr, "%*c> _loop0_151[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')"));
30336 void *_tmp_195_var;
30337 while (
30338 (_tmp_195_var = _tmp_195_rule(p)) // star_targets '='
30339 )
30340 {
30341 _res = _tmp_195_var;
30342 if (_n == _children_capacity) {
30343 _children_capacity *= 2;
30344 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
30345 if (!_new_children) {
30346 p->error_indicator = 1;
30347 PyErr_NoMemory();
30348 D(p->level--);
30349 return NULL;
30350 }
30351 _children = _new_children;
30352 }
30353 _children[_n++] = _res;
30354 _mark = p->mark;
30355 }
30356 p->mark = _mark;
30357 D(fprintf(stderr, "%*c%s _loop0_151[%d-%d]: %s failed!\n", p->level, ' ',
30358 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(star_targets '=')"));
30359 }
30360 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
30361 if (!_seq) {
30362 PyMem_Free(_children);
30363 p->error_indicator = 1;
30364 PyErr_NoMemory();
30365 D(p->level--);
30366 return NULL;
30367 }
30368 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
30369 PyMem_Free(_children);
30370 _PyPegen_insert_memo(p, _start_mark, _loop0_151_type, _seq);
30371 D(p->level--);
30372 return _seq;
30373}
30374
30375// _tmp_152: yield_expr | star_expressions
Brandt Bucher145bf262021-02-26 14:51:55 -080030376static void *
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030377_tmp_152_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080030378{
30379 D(p->level++);
30380 if (p->error_indicator) {
30381 D(p->level--);
30382 return NULL;
30383 }
30384 void * _res = NULL;
30385 int _mark = p->mark;
30386 { // yield_expr
30387 if (p->error_indicator) {
30388 D(p->level--);
30389 return NULL;
30390 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030391 D(fprintf(stderr, "%*c> _tmp_152[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
Brandt Bucher145bf262021-02-26 14:51:55 -080030392 expr_ty yield_expr_var;
30393 if (
30394 (yield_expr_var = yield_expr_rule(p)) // yield_expr
30395 )
30396 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030397 D(fprintf(stderr, "%*c+ _tmp_152[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
Brandt Bucher145bf262021-02-26 14:51:55 -080030398 _res = yield_expr_var;
30399 goto done;
30400 }
30401 p->mark = _mark;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030402 D(fprintf(stderr, "%*c%s _tmp_152[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080030403 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
30404 }
30405 { // star_expressions
30406 if (p->error_indicator) {
30407 D(p->level--);
30408 return NULL;
30409 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030410 D(fprintf(stderr, "%*c> _tmp_152[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
Brandt Bucher145bf262021-02-26 14:51:55 -080030411 expr_ty star_expressions_var;
30412 if (
30413 (star_expressions_var = star_expressions_rule(p)) // star_expressions
30414 )
30415 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030416 D(fprintf(stderr, "%*c+ _tmp_152[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
Brandt Bucher145bf262021-02-26 14:51:55 -080030417 _res = star_expressions_var;
30418 goto done;
30419 }
30420 p->mark = _mark;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030421 D(fprintf(stderr, "%*c%s _tmp_152[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080030422 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
30423 }
30424 _res = NULL;
30425 done:
30426 D(p->level--);
30427 return _res;
30428}
30429
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030430// _tmp_153: '[' | '(' | '{'
Pablo Galindoa77aac42021-04-23 14:27:05 +010030431static void *
30432_tmp_153_rule(Parser *p)
30433{
30434 D(p->level++);
30435 if (p->error_indicator) {
30436 D(p->level--);
30437 return NULL;
30438 }
30439 void * _res = NULL;
30440 int _mark = p->mark;
30441 { // '['
30442 if (p->error_indicator) {
30443 D(p->level--);
30444 return NULL;
30445 }
30446 D(fprintf(stderr, "%*c> _tmp_153[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['"));
30447 Token * _literal;
30448 if (
30449 (_literal = _PyPegen_expect_token(p, 9)) // token='['
30450 )
30451 {
30452 D(fprintf(stderr, "%*c+ _tmp_153[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['"));
30453 _res = _literal;
30454 goto done;
30455 }
30456 p->mark = _mark;
30457 D(fprintf(stderr, "%*c%s _tmp_153[%d-%d]: %s failed!\n", p->level, ' ',
30458 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'['"));
30459 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030460 { // '('
30461 if (p->error_indicator) {
30462 D(p->level--);
30463 return NULL;
30464 }
30465 D(fprintf(stderr, "%*c> _tmp_153[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'('"));
30466 Token * _literal;
30467 if (
30468 (_literal = _PyPegen_expect_token(p, 7)) // token='('
30469 )
30470 {
30471 D(fprintf(stderr, "%*c+ _tmp_153[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'('"));
30472 _res = _literal;
30473 goto done;
30474 }
30475 p->mark = _mark;
30476 D(fprintf(stderr, "%*c%s _tmp_153[%d-%d]: %s failed!\n", p->level, ' ',
30477 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'('"));
30478 }
Pablo Galindoa77aac42021-04-23 14:27:05 +010030479 { // '{'
30480 if (p->error_indicator) {
30481 D(p->level--);
30482 return NULL;
30483 }
30484 D(fprintf(stderr, "%*c> _tmp_153[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{'"));
30485 Token * _literal;
30486 if (
30487 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
30488 )
30489 {
30490 D(fprintf(stderr, "%*c+ _tmp_153[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{'"));
30491 _res = _literal;
30492 goto done;
30493 }
30494 p->mark = _mark;
30495 D(fprintf(stderr, "%*c%s _tmp_153[%d-%d]: %s failed!\n", p->level, ' ',
30496 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{'"));
30497 }
30498 _res = NULL;
30499 done:
30500 D(p->level--);
30501 return _res;
30502}
30503
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010030504// _tmp_154: '[' | '{'
30505static void *
30506_tmp_154_rule(Parser *p)
30507{
30508 D(p->level++);
30509 if (p->error_indicator) {
30510 D(p->level--);
30511 return NULL;
30512 }
30513 void * _res = NULL;
30514 int _mark = p->mark;
30515 { // '['
30516 if (p->error_indicator) {
30517 D(p->level--);
30518 return NULL;
30519 }
30520 D(fprintf(stderr, "%*c> _tmp_154[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['"));
30521 Token * _literal;
30522 if (
30523 (_literal = _PyPegen_expect_token(p, 9)) // token='['
30524 )
30525 {
30526 D(fprintf(stderr, "%*c+ _tmp_154[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['"));
30527 _res = _literal;
30528 goto done;
30529 }
30530 p->mark = _mark;
30531 D(fprintf(stderr, "%*c%s _tmp_154[%d-%d]: %s failed!\n", p->level, ' ',
30532 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'['"));
30533 }
30534 { // '{'
30535 if (p->error_indicator) {
30536 D(p->level--);
30537 return NULL;
30538 }
30539 D(fprintf(stderr, "%*c> _tmp_154[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{'"));
30540 Token * _literal;
30541 if (
30542 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
30543 )
30544 {
30545 D(fprintf(stderr, "%*c+ _tmp_154[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{'"));
30546 _res = _literal;
30547 goto done;
30548 }
30549 p->mark = _mark;
30550 D(fprintf(stderr, "%*c%s _tmp_154[%d-%d]: %s failed!\n", p->level, ' ',
30551 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{'"));
30552 }
30553 _res = NULL;
30554 done:
30555 D(p->level--);
30556 return _res;
30557}
30558
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030559// _tmp_155: '[' | '{'
30560static void *
30561_tmp_155_rule(Parser *p)
30562{
30563 D(p->level++);
30564 if (p->error_indicator) {
30565 D(p->level--);
30566 return NULL;
30567 }
30568 void * _res = NULL;
30569 int _mark = p->mark;
30570 { // '['
30571 if (p->error_indicator) {
30572 D(p->level--);
30573 return NULL;
30574 }
30575 D(fprintf(stderr, "%*c> _tmp_155[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['"));
30576 Token * _literal;
30577 if (
30578 (_literal = _PyPegen_expect_token(p, 9)) // token='['
30579 )
30580 {
30581 D(fprintf(stderr, "%*c+ _tmp_155[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['"));
30582 _res = _literal;
30583 goto done;
30584 }
30585 p->mark = _mark;
30586 D(fprintf(stderr, "%*c%s _tmp_155[%d-%d]: %s failed!\n", p->level, ' ',
30587 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'['"));
30588 }
30589 { // '{'
30590 if (p->error_indicator) {
30591 D(p->level--);
30592 return NULL;
30593 }
30594 D(fprintf(stderr, "%*c> _tmp_155[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{'"));
30595 Token * _literal;
30596 if (
30597 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
30598 )
30599 {
30600 D(fprintf(stderr, "%*c+ _tmp_155[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{'"));
30601 _res = _literal;
30602 goto done;
30603 }
30604 p->mark = _mark;
30605 D(fprintf(stderr, "%*c%s _tmp_155[%d-%d]: %s failed!\n", p->level, ' ',
30606 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{'"));
30607 }
30608 _res = NULL;
30609 done:
30610 D(p->level--);
30611 return _res;
30612}
30613
30614// _loop0_156: param_no_default
Brandt Bucher145bf262021-02-26 14:51:55 -080030615static asdl_seq *
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030616_loop0_156_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080030617{
30618 D(p->level++);
30619 if (p->error_indicator) {
30620 D(p->level--);
30621 return NULL;
30622 }
30623 void *_res = NULL;
30624 int _mark = p->mark;
30625 int _start_mark = p->mark;
30626 void **_children = PyMem_Malloc(sizeof(void *));
30627 if (!_children) {
30628 p->error_indicator = 1;
30629 PyErr_NoMemory();
30630 D(p->level--);
30631 return NULL;
30632 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010030633 Py_ssize_t _children_capacity = 1;
30634 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080030635 { // param_no_default
30636 if (p->error_indicator) {
30637 D(p->level--);
30638 return NULL;
30639 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030640 D(fprintf(stderr, "%*c> _loop0_156[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default"));
Brandt Bucher145bf262021-02-26 14:51:55 -080030641 arg_ty param_no_default_var;
30642 while (
30643 (param_no_default_var = param_no_default_rule(p)) // param_no_default
30644 )
30645 {
30646 _res = param_no_default_var;
30647 if (_n == _children_capacity) {
30648 _children_capacity *= 2;
30649 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
30650 if (!_new_children) {
30651 p->error_indicator = 1;
30652 PyErr_NoMemory();
30653 D(p->level--);
30654 return NULL;
30655 }
30656 _children = _new_children;
30657 }
30658 _children[_n++] = _res;
30659 _mark = p->mark;
30660 }
30661 p->mark = _mark;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030662 D(fprintf(stderr, "%*c%s _loop0_156[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080030663 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
30664 }
30665 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
30666 if (!_seq) {
30667 PyMem_Free(_children);
30668 p->error_indicator = 1;
30669 PyErr_NoMemory();
30670 D(p->level--);
30671 return NULL;
30672 }
30673 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
30674 PyMem_Free(_children);
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030675 _PyPegen_insert_memo(p, _start_mark, _loop0_156_type, _seq);
Brandt Bucher145bf262021-02-26 14:51:55 -080030676 D(p->level--);
30677 return _seq;
30678}
30679
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030680// _loop1_157: param_with_default
Brandt Bucher145bf262021-02-26 14:51:55 -080030681static asdl_seq *
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030682_loop1_157_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080030683{
30684 D(p->level++);
30685 if (p->error_indicator) {
30686 D(p->level--);
30687 return NULL;
30688 }
30689 void *_res = NULL;
30690 int _mark = p->mark;
30691 int _start_mark = p->mark;
30692 void **_children = PyMem_Malloc(sizeof(void *));
30693 if (!_children) {
30694 p->error_indicator = 1;
30695 PyErr_NoMemory();
30696 D(p->level--);
30697 return NULL;
30698 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010030699 Py_ssize_t _children_capacity = 1;
30700 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080030701 { // param_with_default
30702 if (p->error_indicator) {
30703 D(p->level--);
30704 return NULL;
30705 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030706 D(fprintf(stderr, "%*c> _loop1_157[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default"));
Brandt Bucher145bf262021-02-26 14:51:55 -080030707 NameDefaultPair* param_with_default_var;
30708 while (
30709 (param_with_default_var = param_with_default_rule(p)) // param_with_default
30710 )
30711 {
30712 _res = param_with_default_var;
30713 if (_n == _children_capacity) {
30714 _children_capacity *= 2;
30715 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
30716 if (!_new_children) {
30717 p->error_indicator = 1;
30718 PyErr_NoMemory();
30719 D(p->level--);
30720 return NULL;
30721 }
30722 _children = _new_children;
30723 }
30724 _children[_n++] = _res;
30725 _mark = p->mark;
30726 }
30727 p->mark = _mark;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030728 D(fprintf(stderr, "%*c%s _loop1_157[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080030729 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
30730 }
30731 if (_n == 0 || p->error_indicator) {
30732 PyMem_Free(_children);
30733 D(p->level--);
30734 return NULL;
30735 }
30736 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
30737 if (!_seq) {
30738 PyMem_Free(_children);
30739 p->error_indicator = 1;
30740 PyErr_NoMemory();
30741 D(p->level--);
30742 return NULL;
30743 }
30744 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
30745 PyMem_Free(_children);
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030746 _PyPegen_insert_memo(p, _start_mark, _loop1_157_type, _seq);
Brandt Bucher145bf262021-02-26 14:51:55 -080030747 D(p->level--);
30748 return _seq;
30749}
30750
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030751// _loop0_158: lambda_param_no_default
Brandt Bucher145bf262021-02-26 14:51:55 -080030752static asdl_seq *
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030753_loop0_158_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080030754{
30755 D(p->level++);
30756 if (p->error_indicator) {
30757 D(p->level--);
30758 return NULL;
30759 }
30760 void *_res = NULL;
30761 int _mark = p->mark;
30762 int _start_mark = p->mark;
30763 void **_children = PyMem_Malloc(sizeof(void *));
30764 if (!_children) {
30765 p->error_indicator = 1;
30766 PyErr_NoMemory();
30767 D(p->level--);
30768 return NULL;
30769 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010030770 Py_ssize_t _children_capacity = 1;
30771 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080030772 { // lambda_param_no_default
30773 if (p->error_indicator) {
30774 D(p->level--);
30775 return NULL;
30776 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030777 D(fprintf(stderr, "%*c> _loop0_158[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default"));
Brandt Bucher145bf262021-02-26 14:51:55 -080030778 arg_ty lambda_param_no_default_var;
30779 while (
30780 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
30781 )
30782 {
30783 _res = lambda_param_no_default_var;
30784 if (_n == _children_capacity) {
30785 _children_capacity *= 2;
30786 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
30787 if (!_new_children) {
30788 p->error_indicator = 1;
30789 PyErr_NoMemory();
30790 D(p->level--);
30791 return NULL;
30792 }
30793 _children = _new_children;
30794 }
30795 _children[_n++] = _res;
30796 _mark = p->mark;
30797 }
30798 p->mark = _mark;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030799 D(fprintf(stderr, "%*c%s _loop0_158[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080030800 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
30801 }
30802 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
30803 if (!_seq) {
30804 PyMem_Free(_children);
30805 p->error_indicator = 1;
30806 PyErr_NoMemory();
30807 D(p->level--);
30808 return NULL;
30809 }
30810 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
30811 PyMem_Free(_children);
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030812 _PyPegen_insert_memo(p, _start_mark, _loop0_158_type, _seq);
Brandt Bucher145bf262021-02-26 14:51:55 -080030813 D(p->level--);
30814 return _seq;
30815}
30816
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030817// _loop1_159: lambda_param_with_default
Brandt Bucher145bf262021-02-26 14:51:55 -080030818static asdl_seq *
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030819_loop1_159_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080030820{
30821 D(p->level++);
30822 if (p->error_indicator) {
30823 D(p->level--);
30824 return NULL;
30825 }
30826 void *_res = NULL;
30827 int _mark = p->mark;
30828 int _start_mark = p->mark;
30829 void **_children = PyMem_Malloc(sizeof(void *));
30830 if (!_children) {
30831 p->error_indicator = 1;
30832 PyErr_NoMemory();
30833 D(p->level--);
30834 return NULL;
30835 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010030836 Py_ssize_t _children_capacity = 1;
30837 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080030838 { // lambda_param_with_default
30839 if (p->error_indicator) {
30840 D(p->level--);
30841 return NULL;
30842 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030843 D(fprintf(stderr, "%*c> _loop1_159[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default"));
Brandt Bucher145bf262021-02-26 14:51:55 -080030844 NameDefaultPair* lambda_param_with_default_var;
30845 while (
30846 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
30847 )
30848 {
30849 _res = lambda_param_with_default_var;
30850 if (_n == _children_capacity) {
30851 _children_capacity *= 2;
30852 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
30853 if (!_new_children) {
30854 p->error_indicator = 1;
30855 PyErr_NoMemory();
30856 D(p->level--);
30857 return NULL;
30858 }
30859 _children = _new_children;
30860 }
30861 _children[_n++] = _res;
30862 _mark = p->mark;
30863 }
30864 p->mark = _mark;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030865 D(fprintf(stderr, "%*c%s _loop1_159[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080030866 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
30867 }
30868 if (_n == 0 || p->error_indicator) {
30869 PyMem_Free(_children);
30870 D(p->level--);
30871 return NULL;
30872 }
30873 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
30874 if (!_seq) {
30875 PyMem_Free(_children);
30876 p->error_indicator = 1;
30877 PyErr_NoMemory();
30878 D(p->level--);
30879 return NULL;
30880 }
30881 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
30882 PyMem_Free(_children);
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030883 _PyPegen_insert_memo(p, _start_mark, _loop1_159_type, _seq);
Brandt Bucher145bf262021-02-26 14:51:55 -080030884 D(p->level--);
30885 return _seq;
30886}
30887
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030888// _tmp_160: ')' | ',' (')' | '**')
Pablo Galindo56c95df2021-04-21 15:28:21 +010030889static void *
Pablo Galindoa77aac42021-04-23 14:27:05 +010030890_tmp_160_rule(Parser *p)
Pablo Galindo56c95df2021-04-21 15:28:21 +010030891{
30892 D(p->level++);
30893 if (p->error_indicator) {
30894 D(p->level--);
30895 return NULL;
30896 }
30897 void * _res = NULL;
30898 int _mark = p->mark;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030899 { // ')'
Pablo Galindoa77aac42021-04-23 14:27:05 +010030900 if (p->error_indicator) {
30901 D(p->level--);
30902 return NULL;
30903 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030904 D(fprintf(stderr, "%*c> _tmp_160[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010030905 Token * _literal;
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070030906 if (
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030907 (_literal = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoa77aac42021-04-23 14:27:05 +010030908 )
30909 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030910 D(fprintf(stderr, "%*c+ _tmp_160[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030911 _res = _literal;
Pablo Galindoa77aac42021-04-23 14:27:05 +010030912 goto done;
30913 }
30914 p->mark = _mark;
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070030915 D(fprintf(stderr, "%*c%s _tmp_160[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030916 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030917 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030918 { // ',' (')' | '**')
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030919 if (p->error_indicator) {
30920 D(p->level--);
30921 return NULL;
30922 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030923 D(fprintf(stderr, "%*c> _tmp_160[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (')' | '**')"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030924 Token * _literal;
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010030925 void *_tmp_196_var;
30926 if (
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030927 (_literal = _PyPegen_expect_token(p, 12)) // token=','
30928 &&
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030929 (_tmp_196_var = _tmp_196_rule(p)) // ')' | '**'
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030930 )
30931 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030932 D(fprintf(stderr, "%*c+ _tmp_160[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' (')' | '**')"));
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010030933 _res = _PyPegen_dummy_name(p, _literal, _tmp_196_var);
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030934 goto done;
30935 }
30936 p->mark = _mark;
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010030937 D(fprintf(stderr, "%*c%s _tmp_160[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030938 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (')' | '**')"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030939 }
30940 _res = NULL;
30941 done:
30942 D(p->level--);
30943 return _res;
30944}
30945
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030946// _tmp_161: ':' | ',' (':' | '**')
Pablo Galindo56c95df2021-04-21 15:28:21 +010030947static void *
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010030948_tmp_161_rule(Parser *p)
30949{
30950 D(p->level++);
30951 if (p->error_indicator) {
30952 D(p->level--);
30953 return NULL;
30954 }
30955 void * _res = NULL;
30956 int _mark = p->mark;
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010030957 { // ':'
30958 if (p->error_indicator) {
30959 D(p->level--);
30960 return NULL;
30961 }
30962 D(fprintf(stderr, "%*c> _tmp_161[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
30963 Token * _literal;
30964 if (
30965 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
30966 )
30967 {
30968 D(fprintf(stderr, "%*c+ _tmp_161[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
30969 _res = _literal;
30970 goto done;
30971 }
30972 p->mark = _mark;
30973 D(fprintf(stderr, "%*c%s _tmp_161[%d-%d]: %s failed!\n", p->level, ' ',
30974 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
30975 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030976 { // ',' (':' | '**')
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010030977 if (p->error_indicator) {
30978 D(p->level--);
30979 return NULL;
30980 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030981 D(fprintf(stderr, "%*c> _tmp_161[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (':' | '**')"));
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010030982 Token * _literal;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030983 void *_tmp_197_var;
30984 if (
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010030985 (_literal = _PyPegen_expect_token(p, 12)) // token=','
30986 &&
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030987 (_tmp_197_var = _tmp_197_rule(p)) // ':' | '**'
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010030988 )
30989 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030990 D(fprintf(stderr, "%*c+ _tmp_161[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' (':' | '**')"));
30991 _res = _PyPegen_dummy_name(p, _literal, _tmp_197_var);
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010030992 goto done;
30993 }
30994 p->mark = _mark;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030995 D(fprintf(stderr, "%*c%s _tmp_161[%d-%d]: %s failed!\n", p->level, ' ',
30996 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (':' | '**')"));
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010030997 }
30998 _res = NULL;
30999 done:
31000 D(p->level--);
31001 return _res;
31002}
31003
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031004// _tmp_162: ',' | ')' | ':'
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010031005static void *
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031006_tmp_162_rule(Parser *p)
31007{
31008 D(p->level++);
31009 if (p->error_indicator) {
31010 D(p->level--);
31011 return NULL;
31012 }
31013 void * _res = NULL;
31014 int _mark = p->mark;
31015 { // ','
31016 if (p->error_indicator) {
31017 D(p->level--);
31018 return NULL;
31019 }
31020 D(fprintf(stderr, "%*c> _tmp_162[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','"));
31021 Token * _literal;
31022 if (
31023 (_literal = _PyPegen_expect_token(p, 12)) // token=','
31024 )
31025 {
31026 D(fprintf(stderr, "%*c+ _tmp_162[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','"));
31027 _res = _literal;
31028 goto done;
31029 }
31030 p->mark = _mark;
31031 D(fprintf(stderr, "%*c%s _tmp_162[%d-%d]: %s failed!\n", p->level, ' ',
31032 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','"));
31033 }
31034 { // ')'
31035 if (p->error_indicator) {
31036 D(p->level--);
31037 return NULL;
31038 }
31039 D(fprintf(stderr, "%*c> _tmp_162[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
31040 Token * _literal;
31041 if (
31042 (_literal = _PyPegen_expect_token(p, 8)) // token=')'
31043 )
31044 {
31045 D(fprintf(stderr, "%*c+ _tmp_162[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
31046 _res = _literal;
31047 goto done;
31048 }
31049 p->mark = _mark;
31050 D(fprintf(stderr, "%*c%s _tmp_162[%d-%d]: %s failed!\n", p->level, ' ',
31051 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
31052 }
31053 { // ':'
31054 if (p->error_indicator) {
31055 D(p->level--);
31056 return NULL;
31057 }
31058 D(fprintf(stderr, "%*c> _tmp_162[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
31059 Token * _literal;
31060 if (
31061 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
31062 )
31063 {
31064 D(fprintf(stderr, "%*c+ _tmp_162[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
31065 _res = _literal;
31066 goto done;
31067 }
31068 p->mark = _mark;
31069 D(fprintf(stderr, "%*c%s _tmp_162[%d-%d]: %s failed!\n", p->level, ' ',
31070 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
31071 }
31072 _res = NULL;
31073 done:
31074 D(p->level--);
31075 return _res;
31076}
31077
31078// _loop0_164: ',' (expression ['as' star_target])
31079static asdl_seq *
31080_loop0_164_rule(Parser *p)
31081{
31082 D(p->level++);
31083 if (p->error_indicator) {
31084 D(p->level--);
31085 return NULL;
31086 }
31087 void *_res = NULL;
31088 int _mark = p->mark;
31089 int _start_mark = p->mark;
31090 void **_children = PyMem_Malloc(sizeof(void *));
31091 if (!_children) {
31092 p->error_indicator = 1;
31093 PyErr_NoMemory();
31094 D(p->level--);
31095 return NULL;
31096 }
31097 Py_ssize_t _children_capacity = 1;
31098 Py_ssize_t _n = 0;
31099 { // ',' (expression ['as' star_target])
31100 if (p->error_indicator) {
31101 D(p->level--);
31102 return NULL;
31103 }
31104 D(fprintf(stderr, "%*c> _loop0_164[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (expression ['as' star_target])"));
31105 Token * _literal;
31106 void *elem;
31107 while (
31108 (_literal = _PyPegen_expect_token(p, 12)) // token=','
31109 &&
31110 (elem = _tmp_198_rule(p)) // expression ['as' star_target]
31111 )
31112 {
31113 _res = elem;
31114 if (_res == NULL && PyErr_Occurred()) {
31115 p->error_indicator = 1;
31116 PyMem_Free(_children);
31117 D(p->level--);
31118 return NULL;
31119 }
31120 if (_n == _children_capacity) {
31121 _children_capacity *= 2;
31122 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
31123 if (!_new_children) {
31124 p->error_indicator = 1;
31125 PyErr_NoMemory();
31126 D(p->level--);
31127 return NULL;
31128 }
31129 _children = _new_children;
31130 }
31131 _children[_n++] = _res;
31132 _mark = p->mark;
31133 }
31134 p->mark = _mark;
31135 D(fprintf(stderr, "%*c%s _loop0_164[%d-%d]: %s failed!\n", p->level, ' ',
31136 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (expression ['as' star_target])"));
31137 }
31138 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
31139 if (!_seq) {
31140 PyMem_Free(_children);
31141 p->error_indicator = 1;
31142 PyErr_NoMemory();
31143 D(p->level--);
31144 return NULL;
31145 }
31146 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
31147 PyMem_Free(_children);
31148 _PyPegen_insert_memo(p, _start_mark, _loop0_164_type, _seq);
31149 D(p->level--);
31150 return _seq;
31151}
31152
31153// _gather_163: (expression ['as' star_target]) _loop0_164
31154static asdl_seq *
31155_gather_163_rule(Parser *p)
31156{
31157 D(p->level++);
31158 if (p->error_indicator) {
31159 D(p->level--);
31160 return NULL;
31161 }
31162 asdl_seq * _res = NULL;
31163 int _mark = p->mark;
31164 { // (expression ['as' star_target]) _loop0_164
31165 if (p->error_indicator) {
31166 D(p->level--);
31167 return NULL;
31168 }
31169 D(fprintf(stderr, "%*c> _gather_163[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(expression ['as' star_target]) _loop0_164"));
31170 void *elem;
31171 asdl_seq * seq;
31172 if (
31173 (elem = _tmp_198_rule(p)) // expression ['as' star_target]
31174 &&
31175 (seq = _loop0_164_rule(p)) // _loop0_164
31176 )
31177 {
31178 D(fprintf(stderr, "%*c+ _gather_163[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(expression ['as' star_target]) _loop0_164"));
31179 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
31180 goto done;
31181 }
31182 p->mark = _mark;
31183 D(fprintf(stderr, "%*c%s _gather_163[%d-%d]: %s failed!\n", p->level, ' ',
31184 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(expression ['as' star_target]) _loop0_164"));
31185 }
31186 _res = NULL;
31187 done:
31188 D(p->level--);
31189 return _res;
31190}
31191
31192// _loop0_166: ',' (expressions ['as' star_target])
31193static asdl_seq *
31194_loop0_166_rule(Parser *p)
31195{
31196 D(p->level++);
31197 if (p->error_indicator) {
31198 D(p->level--);
31199 return NULL;
31200 }
31201 void *_res = NULL;
31202 int _mark = p->mark;
31203 int _start_mark = p->mark;
31204 void **_children = PyMem_Malloc(sizeof(void *));
31205 if (!_children) {
31206 p->error_indicator = 1;
31207 PyErr_NoMemory();
31208 D(p->level--);
31209 return NULL;
31210 }
31211 Py_ssize_t _children_capacity = 1;
31212 Py_ssize_t _n = 0;
31213 { // ',' (expressions ['as' star_target])
31214 if (p->error_indicator) {
31215 D(p->level--);
31216 return NULL;
31217 }
31218 D(fprintf(stderr, "%*c> _loop0_166[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (expressions ['as' star_target])"));
31219 Token * _literal;
31220 void *elem;
31221 while (
31222 (_literal = _PyPegen_expect_token(p, 12)) // token=','
31223 &&
31224 (elem = _tmp_199_rule(p)) // expressions ['as' star_target]
31225 )
31226 {
31227 _res = elem;
31228 if (_res == NULL && PyErr_Occurred()) {
31229 p->error_indicator = 1;
31230 PyMem_Free(_children);
31231 D(p->level--);
31232 return NULL;
31233 }
31234 if (_n == _children_capacity) {
31235 _children_capacity *= 2;
31236 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
31237 if (!_new_children) {
31238 p->error_indicator = 1;
31239 PyErr_NoMemory();
31240 D(p->level--);
31241 return NULL;
31242 }
31243 _children = _new_children;
31244 }
31245 _children[_n++] = _res;
31246 _mark = p->mark;
31247 }
31248 p->mark = _mark;
31249 D(fprintf(stderr, "%*c%s _loop0_166[%d-%d]: %s failed!\n", p->level, ' ',
31250 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (expressions ['as' star_target])"));
31251 }
31252 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
31253 if (!_seq) {
31254 PyMem_Free(_children);
31255 p->error_indicator = 1;
31256 PyErr_NoMemory();
31257 D(p->level--);
31258 return NULL;
31259 }
31260 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
31261 PyMem_Free(_children);
31262 _PyPegen_insert_memo(p, _start_mark, _loop0_166_type, _seq);
31263 D(p->level--);
31264 return _seq;
31265}
31266
31267// _gather_165: (expressions ['as' star_target]) _loop0_166
31268static asdl_seq *
31269_gather_165_rule(Parser *p)
31270{
31271 D(p->level++);
31272 if (p->error_indicator) {
31273 D(p->level--);
31274 return NULL;
31275 }
31276 asdl_seq * _res = NULL;
31277 int _mark = p->mark;
31278 { // (expressions ['as' star_target]) _loop0_166
31279 if (p->error_indicator) {
31280 D(p->level--);
31281 return NULL;
31282 }
31283 D(fprintf(stderr, "%*c> _gather_165[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(expressions ['as' star_target]) _loop0_166"));
31284 void *elem;
31285 asdl_seq * seq;
31286 if (
31287 (elem = _tmp_199_rule(p)) // expressions ['as' star_target]
31288 &&
31289 (seq = _loop0_166_rule(p)) // _loop0_166
31290 )
31291 {
31292 D(fprintf(stderr, "%*c+ _gather_165[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(expressions ['as' star_target]) _loop0_166"));
31293 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
31294 goto done;
31295 }
31296 p->mark = _mark;
31297 D(fprintf(stderr, "%*c%s _gather_165[%d-%d]: %s failed!\n", p->level, ' ',
31298 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(expressions ['as' star_target]) _loop0_166"));
31299 }
31300 _res = NULL;
31301 done:
31302 D(p->level--);
31303 return _res;
31304}
31305
31306// _loop0_168: ',' (expression ['as' star_target])
31307static asdl_seq *
31308_loop0_168_rule(Parser *p)
31309{
31310 D(p->level++);
31311 if (p->error_indicator) {
31312 D(p->level--);
31313 return NULL;
31314 }
31315 void *_res = NULL;
31316 int _mark = p->mark;
31317 int _start_mark = p->mark;
31318 void **_children = PyMem_Malloc(sizeof(void *));
31319 if (!_children) {
31320 p->error_indicator = 1;
31321 PyErr_NoMemory();
31322 D(p->level--);
31323 return NULL;
31324 }
31325 Py_ssize_t _children_capacity = 1;
31326 Py_ssize_t _n = 0;
31327 { // ',' (expression ['as' star_target])
31328 if (p->error_indicator) {
31329 D(p->level--);
31330 return NULL;
31331 }
31332 D(fprintf(stderr, "%*c> _loop0_168[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (expression ['as' star_target])"));
31333 Token * _literal;
31334 void *elem;
31335 while (
31336 (_literal = _PyPegen_expect_token(p, 12)) // token=','
31337 &&
31338 (elem = _tmp_200_rule(p)) // expression ['as' star_target]
31339 )
31340 {
31341 _res = elem;
31342 if (_res == NULL && PyErr_Occurred()) {
31343 p->error_indicator = 1;
31344 PyMem_Free(_children);
31345 D(p->level--);
31346 return NULL;
31347 }
31348 if (_n == _children_capacity) {
31349 _children_capacity *= 2;
31350 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
31351 if (!_new_children) {
31352 p->error_indicator = 1;
31353 PyErr_NoMemory();
31354 D(p->level--);
31355 return NULL;
31356 }
31357 _children = _new_children;
31358 }
31359 _children[_n++] = _res;
31360 _mark = p->mark;
31361 }
31362 p->mark = _mark;
31363 D(fprintf(stderr, "%*c%s _loop0_168[%d-%d]: %s failed!\n", p->level, ' ',
31364 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (expression ['as' star_target])"));
31365 }
31366 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
31367 if (!_seq) {
31368 PyMem_Free(_children);
31369 p->error_indicator = 1;
31370 PyErr_NoMemory();
31371 D(p->level--);
31372 return NULL;
31373 }
31374 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
31375 PyMem_Free(_children);
31376 _PyPegen_insert_memo(p, _start_mark, _loop0_168_type, _seq);
31377 D(p->level--);
31378 return _seq;
31379}
31380
31381// _gather_167: (expression ['as' star_target]) _loop0_168
31382static asdl_seq *
31383_gather_167_rule(Parser *p)
31384{
31385 D(p->level++);
31386 if (p->error_indicator) {
31387 D(p->level--);
31388 return NULL;
31389 }
31390 asdl_seq * _res = NULL;
31391 int _mark = p->mark;
31392 { // (expression ['as' star_target]) _loop0_168
31393 if (p->error_indicator) {
31394 D(p->level--);
31395 return NULL;
31396 }
31397 D(fprintf(stderr, "%*c> _gather_167[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(expression ['as' star_target]) _loop0_168"));
31398 void *elem;
31399 asdl_seq * seq;
31400 if (
31401 (elem = _tmp_200_rule(p)) // expression ['as' star_target]
31402 &&
31403 (seq = _loop0_168_rule(p)) // _loop0_168
31404 )
31405 {
31406 D(fprintf(stderr, "%*c+ _gather_167[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(expression ['as' star_target]) _loop0_168"));
31407 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
31408 goto done;
31409 }
31410 p->mark = _mark;
31411 D(fprintf(stderr, "%*c%s _gather_167[%d-%d]: %s failed!\n", p->level, ' ',
31412 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(expression ['as' star_target]) _loop0_168"));
31413 }
31414 _res = NULL;
31415 done:
31416 D(p->level--);
31417 return _res;
31418}
31419
31420// _loop0_170: ',' (expressions ['as' star_target])
31421static asdl_seq *
31422_loop0_170_rule(Parser *p)
31423{
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 int _start_mark = p->mark;
31432 void **_children = PyMem_Malloc(sizeof(void *));
31433 if (!_children) {
31434 p->error_indicator = 1;
31435 PyErr_NoMemory();
31436 D(p->level--);
31437 return NULL;
31438 }
31439 Py_ssize_t _children_capacity = 1;
31440 Py_ssize_t _n = 0;
31441 { // ',' (expressions ['as' star_target])
31442 if (p->error_indicator) {
31443 D(p->level--);
31444 return NULL;
31445 }
31446 D(fprintf(stderr, "%*c> _loop0_170[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (expressions ['as' star_target])"));
31447 Token * _literal;
31448 void *elem;
31449 while (
31450 (_literal = _PyPegen_expect_token(p, 12)) // token=','
31451 &&
31452 (elem = _tmp_201_rule(p)) // expressions ['as' star_target]
31453 )
31454 {
31455 _res = elem;
31456 if (_res == NULL && PyErr_Occurred()) {
31457 p->error_indicator = 1;
31458 PyMem_Free(_children);
31459 D(p->level--);
31460 return NULL;
31461 }
31462 if (_n == _children_capacity) {
31463 _children_capacity *= 2;
31464 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
31465 if (!_new_children) {
31466 p->error_indicator = 1;
31467 PyErr_NoMemory();
31468 D(p->level--);
31469 return NULL;
31470 }
31471 _children = _new_children;
31472 }
31473 _children[_n++] = _res;
31474 _mark = p->mark;
31475 }
31476 p->mark = _mark;
31477 D(fprintf(stderr, "%*c%s _loop0_170[%d-%d]: %s failed!\n", p->level, ' ',
31478 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (expressions ['as' star_target])"));
31479 }
31480 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
31481 if (!_seq) {
31482 PyMem_Free(_children);
31483 p->error_indicator = 1;
31484 PyErr_NoMemory();
31485 D(p->level--);
31486 return NULL;
31487 }
31488 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
31489 PyMem_Free(_children);
31490 _PyPegen_insert_memo(p, _start_mark, _loop0_170_type, _seq);
31491 D(p->level--);
31492 return _seq;
31493}
31494
31495// _gather_169: (expressions ['as' star_target]) _loop0_170
31496static asdl_seq *
31497_gather_169_rule(Parser *p)
31498{
31499 D(p->level++);
31500 if (p->error_indicator) {
31501 D(p->level--);
31502 return NULL;
31503 }
31504 asdl_seq * _res = NULL;
31505 int _mark = p->mark;
31506 { // (expressions ['as' star_target]) _loop0_170
31507 if (p->error_indicator) {
31508 D(p->level--);
31509 return NULL;
31510 }
31511 D(fprintf(stderr, "%*c> _gather_169[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(expressions ['as' star_target]) _loop0_170"));
31512 void *elem;
31513 asdl_seq * seq;
31514 if (
31515 (elem = _tmp_201_rule(p)) // expressions ['as' star_target]
31516 &&
31517 (seq = _loop0_170_rule(p)) // _loop0_170
31518 )
31519 {
31520 D(fprintf(stderr, "%*c+ _gather_169[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(expressions ['as' star_target]) _loop0_170"));
31521 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
31522 goto done;
31523 }
31524 p->mark = _mark;
31525 D(fprintf(stderr, "%*c%s _gather_169[%d-%d]: %s failed!\n", p->level, ' ',
31526 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(expressions ['as' star_target]) _loop0_170"));
31527 }
31528 _res = NULL;
31529 done:
31530 D(p->level--);
31531 return _res;
31532}
31533
31534// _tmp_171: 'except' | 'finally'
31535static void *
31536_tmp_171_rule(Parser *p)
Pablo Galindo56c95df2021-04-21 15:28:21 +010031537{
31538 D(p->level++);
31539 if (p->error_indicator) {
31540 D(p->level--);
31541 return NULL;
31542 }
31543 void * _res = NULL;
31544 int _mark = p->mark;
Pablo Galindoe53f72a2021-06-04 00:11:43 +010031545 { // 'except'
Pablo Galindoa77aac42021-04-23 14:27:05 +010031546 if (p->error_indicator) {
31547 D(p->level--);
31548 return NULL;
31549 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031550 D(fprintf(stderr, "%*c> _tmp_171[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except'"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010031551 Token * _keyword;
Pablo Galindoa77aac42021-04-23 14:27:05 +010031552 if (
Pablo Galindoe53f72a2021-06-04 00:11:43 +010031553 (_keyword = _PyPegen_expect_token(p, 521)) // token='except'
Pablo Galindoa77aac42021-04-23 14:27:05 +010031554 )
31555 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031556 D(fprintf(stderr, "%*c+ _tmp_171[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except'"));
Pablo Galindoe53f72a2021-06-04 00:11:43 +010031557 _res = _keyword;
Pablo Galindoa77aac42021-04-23 14:27:05 +010031558 goto done;
31559 }
31560 p->mark = _mark;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031561 D(fprintf(stderr, "%*c%s _tmp_171[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindoe53f72a2021-06-04 00:11:43 +010031562 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except'"));
31563 }
31564 { // 'finally'
31565 if (p->error_indicator) {
31566 D(p->level--);
31567 return NULL;
31568 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031569 D(fprintf(stderr, "%*c> _tmp_171[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'finally'"));
Pablo Galindoe53f72a2021-06-04 00:11:43 +010031570 Token * _keyword;
31571 if (
31572 (_keyword = _PyPegen_expect_token(p, 522)) // token='finally'
31573 )
31574 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031575 D(fprintf(stderr, "%*c+ _tmp_171[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'finally'"));
Pablo Galindoe53f72a2021-06-04 00:11:43 +010031576 _res = _keyword;
31577 goto done;
31578 }
31579 p->mark = _mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031580 D(fprintf(stderr, "%*c%s _tmp_171[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031581 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'finally'"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031582 }
31583 _res = NULL;
31584 done:
31585 D(p->level--);
31586 return _res;
31587}
31588
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070031589// _tmp_172: 'as' NAME
Pablo Galindoa77aac42021-04-23 14:27:05 +010031590static void *
31591_tmp_172_rule(Parser *p)
31592{
31593 D(p->level++);
31594 if (p->error_indicator) {
31595 D(p->level--);
31596 return NULL;
31597 }
31598 void * _res = NULL;
31599 int _mark = p->mark;
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070031600 { // 'as' NAME
31601 if (p->error_indicator) {
31602 D(p->level--);
31603 return NULL;
31604 }
31605 D(fprintf(stderr, "%*c> _tmp_172[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
31606 Token * _keyword;
31607 expr_ty name_var;
31608 if (
31609 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
31610 &&
31611 (name_var = _PyPegen_name_token(p)) // NAME
31612 )
31613 {
31614 D(fprintf(stderr, "%*c+ _tmp_172[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
31615 _res = _PyPegen_dummy_name(p, _keyword, name_var);
31616 goto done;
31617 }
31618 p->mark = _mark;
31619 D(fprintf(stderr, "%*c%s _tmp_172[%d-%d]: %s failed!\n", p->level, ' ',
31620 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
31621 }
31622 _res = NULL;
31623 done:
31624 D(p->level--);
31625 return _res;
31626}
31627
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010031628// _tmp_173: 'as' NAME
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070031629static void *
31630_tmp_173_rule(Parser *p)
31631{
31632 D(p->level++);
31633 if (p->error_indicator) {
31634 D(p->level--);
31635 return NULL;
31636 }
31637 void * _res = NULL;
31638 int _mark = p->mark;
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010031639 { // 'as' NAME
31640 if (p->error_indicator) {
31641 D(p->level--);
31642 return NULL;
31643 }
31644 D(fprintf(stderr, "%*c> _tmp_173[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
31645 Token * _keyword;
31646 expr_ty name_var;
31647 if (
31648 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
31649 &&
31650 (name_var = _PyPegen_name_token(p)) // NAME
31651 )
31652 {
31653 D(fprintf(stderr, "%*c+ _tmp_173[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
31654 _res = _PyPegen_dummy_name(p, _keyword, name_var);
31655 goto done;
31656 }
31657 p->mark = _mark;
31658 D(fprintf(stderr, "%*c%s _tmp_173[%d-%d]: %s failed!\n", p->level, ' ',
31659 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
31660 }
31661 _res = NULL;
31662 done:
31663 D(p->level--);
31664 return _res;
31665}
31666
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031667// _tmp_174: 'as' NAME
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010031668static void *
31669_tmp_174_rule(Parser *p)
31670{
31671 D(p->level++);
31672 if (p->error_indicator) {
31673 D(p->level--);
31674 return NULL;
31675 }
31676 void * _res = NULL;
31677 int _mark = p->mark;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031678 { // 'as' NAME
31679 if (p->error_indicator) {
31680 D(p->level--);
31681 return NULL;
31682 }
31683 D(fprintf(stderr, "%*c> _tmp_174[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
31684 Token * _keyword;
31685 expr_ty name_var;
31686 if (
31687 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
31688 &&
31689 (name_var = _PyPegen_name_token(p)) // NAME
31690 )
31691 {
31692 D(fprintf(stderr, "%*c+ _tmp_174[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
31693 _res = _PyPegen_dummy_name(p, _keyword, name_var);
31694 goto done;
31695 }
31696 p->mark = _mark;
31697 D(fprintf(stderr, "%*c%s _tmp_174[%d-%d]: %s failed!\n", p->level, ' ',
31698 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
31699 }
31700 _res = NULL;
31701 done:
31702 D(p->level--);
31703 return _res;
31704}
31705
31706// _tmp_175: positional_patterns ','
31707static void *
31708_tmp_175_rule(Parser *p)
31709{
31710 D(p->level++);
31711 if (p->error_indicator) {
31712 D(p->level--);
31713 return NULL;
31714 }
31715 void * _res = NULL;
31716 int _mark = p->mark;
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070031717 { // positional_patterns ','
31718 if (p->error_indicator) {
31719 D(p->level--);
31720 return NULL;
31721 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031722 D(fprintf(stderr, "%*c> _tmp_175[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "positional_patterns ','"));
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070031723 Token * _literal;
31724 asdl_pattern_seq* positional_patterns_var;
31725 if (
31726 (positional_patterns_var = positional_patterns_rule(p)) // positional_patterns
31727 &&
31728 (_literal = _PyPegen_expect_token(p, 12)) // token=','
31729 )
31730 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031731 D(fprintf(stderr, "%*c+ _tmp_175[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "positional_patterns ','"));
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070031732 _res = _PyPegen_dummy_name(p, positional_patterns_var, _literal);
31733 goto done;
31734 }
31735 p->mark = _mark;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031736 D(fprintf(stderr, "%*c%s _tmp_175[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070031737 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "positional_patterns ','"));
31738 }
31739 _res = NULL;
31740 done:
31741 D(p->level--);
31742 return _res;
31743}
31744
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031745// _tmp_176: '->' expression
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070031746static void *
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031747_tmp_176_rule(Parser *p)
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070031748{
31749 D(p->level++);
31750 if (p->error_indicator) {
31751 D(p->level--);
31752 return NULL;
31753 }
31754 void * _res = NULL;
31755 int _mark = p->mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +010031756 { // '->' expression
31757 if (p->error_indicator) {
31758 D(p->level--);
31759 return NULL;
31760 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031761 D(fprintf(stderr, "%*c> _tmp_176[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'->' expression"));
Pablo Galindo56c95df2021-04-21 15:28:21 +010031762 Token * _literal;
31763 expr_ty expression_var;
31764 if (
31765 (_literal = _PyPegen_expect_token(p, 51)) // token='->'
31766 &&
31767 (expression_var = expression_rule(p)) // expression
31768 )
31769 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031770 D(fprintf(stderr, "%*c+ _tmp_176[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'->' expression"));
Pablo Galindo56c95df2021-04-21 15:28:21 +010031771 _res = _PyPegen_dummy_name(p, _literal, expression_var);
31772 goto done;
31773 }
31774 p->mark = _mark;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031775 D(fprintf(stderr, "%*c%s _tmp_176[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo56c95df2021-04-21 15:28:21 +010031776 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'->' expression"));
31777 }
31778 _res = NULL;
31779 done:
31780 D(p->level--);
31781 return _res;
31782}
31783
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031784// _tmp_177: '(' arguments? ')'
Pablo Galindo56c95df2021-04-21 15:28:21 +010031785static void *
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031786_tmp_177_rule(Parser *p)
Pablo Galindo56c95df2021-04-21 15:28:21 +010031787{
31788 D(p->level++);
31789 if (p->error_indicator) {
31790 D(p->level--);
31791 return NULL;
31792 }
31793 void * _res = NULL;
31794 int _mark = p->mark;
31795 { // '(' arguments? ')'
31796 if (p->error_indicator) {
31797 D(p->level--);
31798 return NULL;
31799 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031800 D(fprintf(stderr, "%*c> _tmp_177[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'"));
Pablo Galindo56c95df2021-04-21 15:28:21 +010031801 Token * _literal;
31802 Token * _literal_1;
31803 void *_opt_var;
31804 UNUSED(_opt_var); // Silence compiler warnings
31805 if (
31806 (_literal = _PyPegen_expect_token(p, 7)) // token='('
31807 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +020031808 (_opt_var = arguments_rule(p), !p->error_indicator) // arguments?
Pablo Galindo56c95df2021-04-21 15:28:21 +010031809 &&
31810 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
31811 )
31812 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031813 D(fprintf(stderr, "%*c+ _tmp_177[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'"));
Pablo Galindo56c95df2021-04-21 15:28:21 +010031814 _res = _PyPegen_dummy_name(p, _literal, _opt_var, _literal_1);
31815 goto done;
31816 }
31817 p->mark = _mark;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031818 D(fprintf(stderr, "%*c%s _tmp_177[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo56c95df2021-04-21 15:28:21 +010031819 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' arguments? ')'"));
31820 }
31821 _res = NULL;
31822 done:
31823 D(p->level--);
31824 return _res;
31825}
31826
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031827// _loop0_179: ',' double_starred_kvpair
Pablo Galindo56c95df2021-04-21 15:28:21 +010031828static asdl_seq *
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031829_loop0_179_rule(Parser *p)
Pablo Galindo56c95df2021-04-21 15:28:21 +010031830{
31831 D(p->level++);
31832 if (p->error_indicator) {
31833 D(p->level--);
31834 return NULL;
31835 }
31836 void *_res = NULL;
31837 int _mark = p->mark;
31838 int _start_mark = p->mark;
31839 void **_children = PyMem_Malloc(sizeof(void *));
31840 if (!_children) {
31841 p->error_indicator = 1;
31842 PyErr_NoMemory();
31843 D(p->level--);
31844 return NULL;
31845 }
31846 Py_ssize_t _children_capacity = 1;
31847 Py_ssize_t _n = 0;
Pablo Galindoda743502021-04-15 14:06:39 +010031848 { // ',' double_starred_kvpair
31849 if (p->error_indicator) {
31850 D(p->level--);
31851 return NULL;
31852 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031853 D(fprintf(stderr, "%*c> _loop0_179[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' double_starred_kvpair"));
Pablo Galindoda743502021-04-15 14:06:39 +010031854 Token * _literal;
31855 KeyValuePair* elem;
31856 while (
31857 (_literal = _PyPegen_expect_token(p, 12)) // token=','
31858 &&
31859 (elem = double_starred_kvpair_rule(p)) // double_starred_kvpair
31860 )
31861 {
31862 _res = elem;
31863 if (_res == NULL && PyErr_Occurred()) {
31864 p->error_indicator = 1;
31865 PyMem_Free(_children);
31866 D(p->level--);
31867 return NULL;
31868 }
31869 if (_n == _children_capacity) {
31870 _children_capacity *= 2;
31871 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
31872 if (!_new_children) {
31873 p->error_indicator = 1;
31874 PyErr_NoMemory();
31875 D(p->level--);
31876 return NULL;
31877 }
31878 _children = _new_children;
31879 }
31880 _children[_n++] = _res;
31881 _mark = p->mark;
31882 }
31883 p->mark = _mark;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031884 D(fprintf(stderr, "%*c%s _loop0_179[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindoda743502021-04-15 14:06:39 +010031885 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' double_starred_kvpair"));
31886 }
31887 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
31888 if (!_seq) {
31889 PyMem_Free(_children);
31890 p->error_indicator = 1;
31891 PyErr_NoMemory();
31892 D(p->level--);
31893 return NULL;
31894 }
31895 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
31896 PyMem_Free(_children);
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031897 _PyPegen_insert_memo(p, _start_mark, _loop0_179_type, _seq);
Pablo Galindoda743502021-04-15 14:06:39 +010031898 D(p->level--);
31899 return _seq;
31900}
31901
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031902// _gather_178: double_starred_kvpair _loop0_179
Pablo Galindoda743502021-04-15 14:06:39 +010031903static asdl_seq *
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031904_gather_178_rule(Parser *p)
Pablo Galindoda743502021-04-15 14:06:39 +010031905{
31906 D(p->level++);
31907 if (p->error_indicator) {
31908 D(p->level--);
31909 return NULL;
31910 }
31911 asdl_seq * _res = NULL;
31912 int _mark = p->mark;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031913 { // double_starred_kvpair _loop0_179
Pablo Galindoda743502021-04-15 14:06:39 +010031914 if (p->error_indicator) {
31915 D(p->level--);
31916 return NULL;
31917 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031918 D(fprintf(stderr, "%*c> _gather_178[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "double_starred_kvpair _loop0_179"));
Pablo Galindoda743502021-04-15 14:06:39 +010031919 KeyValuePair* elem;
31920 asdl_seq * seq;
31921 if (
31922 (elem = double_starred_kvpair_rule(p)) // double_starred_kvpair
31923 &&
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031924 (seq = _loop0_179_rule(p)) // _loop0_179
Pablo Galindoda743502021-04-15 14:06:39 +010031925 )
31926 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031927 D(fprintf(stderr, "%*c+ _gather_178[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "double_starred_kvpair _loop0_179"));
Pablo Galindoda743502021-04-15 14:06:39 +010031928 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
31929 goto done;
31930 }
31931 p->mark = _mark;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031932 D(fprintf(stderr, "%*c%s _gather_178[%d-%d]: %s failed!\n", p->level, ' ',
31933 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "double_starred_kvpair _loop0_179"));
Pablo Galindoda743502021-04-15 14:06:39 +010031934 }
31935 _res = NULL;
31936 done:
31937 D(p->level--);
31938 return _res;
31939}
31940
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031941// _tmp_180: '}' | ','
Pablo Galindo206cbda2021-02-07 18:42:21 +000031942static void *
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031943_tmp_180_rule(Parser *p)
Pablo Galindoda743502021-04-15 14:06:39 +010031944{
31945 D(p->level++);
31946 if (p->error_indicator) {
31947 D(p->level--);
31948 return NULL;
31949 }
31950 void * _res = NULL;
31951 int _mark = p->mark;
31952 { // '}'
31953 if (p->error_indicator) {
31954 D(p->level--);
31955 return NULL;
31956 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031957 D(fprintf(stderr, "%*c> _tmp_180[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'}'"));
Pablo Galindoda743502021-04-15 14:06:39 +010031958 Token * _literal;
31959 if (
31960 (_literal = _PyPegen_expect_token(p, 26)) // token='}'
31961 )
31962 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031963 D(fprintf(stderr, "%*c+ _tmp_180[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'}'"));
Pablo Galindoda743502021-04-15 14:06:39 +010031964 _res = _literal;
31965 goto done;
31966 }
31967 p->mark = _mark;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031968 D(fprintf(stderr, "%*c%s _tmp_180[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindoda743502021-04-15 14:06:39 +010031969 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'}'"));
31970 }
31971 { // ','
31972 if (p->error_indicator) {
31973 D(p->level--);
31974 return NULL;
31975 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031976 D(fprintf(stderr, "%*c> _tmp_180[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','"));
Pablo Galindoda743502021-04-15 14:06:39 +010031977 Token * _literal;
31978 if (
31979 (_literal = _PyPegen_expect_token(p, 12)) // token=','
31980 )
31981 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031982 D(fprintf(stderr, "%*c+ _tmp_180[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','"));
Pablo Galindoda743502021-04-15 14:06:39 +010031983 _res = _literal;
31984 goto done;
31985 }
31986 p->mark = _mark;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031987 D(fprintf(stderr, "%*c%s _tmp_180[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindoda743502021-04-15 14:06:39 +010031988 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','"));
31989 }
31990 _res = NULL;
31991 done:
31992 D(p->level--);
31993 return _res;
31994}
31995
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031996// _tmp_181: star_targets '='
Pablo Galindoda743502021-04-15 14:06:39 +010031997static void *
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031998_tmp_181_rule(Parser *p)
Pablo Galindo206cbda2021-02-07 18:42:21 +000031999{
32000 D(p->level++);
32001 if (p->error_indicator) {
32002 D(p->level--);
32003 return NULL;
32004 }
32005 void * _res = NULL;
32006 int _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032007 { // star_targets '='
32008 if (p->error_indicator) {
32009 D(p->level--);
32010 return NULL;
32011 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032012 D(fprintf(stderr, "%*c> _tmp_181[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032013 Token * _literal;
32014 expr_ty z;
32015 if (
32016 (z = star_targets_rule(p)) // star_targets
32017 &&
32018 (_literal = _PyPegen_expect_token(p, 22)) // token='='
32019 )
32020 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032021 D(fprintf(stderr, "%*c+ _tmp_181[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032022 _res = z;
32023 if (_res == NULL && PyErr_Occurred()) {
32024 p->error_indicator = 1;
32025 D(p->level--);
32026 return NULL;
32027 }
32028 goto done;
32029 }
32030 p->mark = _mark;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032031 D(fprintf(stderr, "%*c%s _tmp_181[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032032 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_targets '='"));
32033 }
32034 _res = NULL;
32035 done:
32036 D(p->level--);
32037 return _res;
32038}
32039
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010032040// _tmp_182: '.' | '...'
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032041static void *
32042_tmp_182_rule(Parser *p)
32043{
32044 D(p->level++);
32045 if (p->error_indicator) {
32046 D(p->level--);
32047 return NULL;
32048 }
32049 void * _res = NULL;
32050 int _mark = p->mark;
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010032051 { // '.'
32052 if (p->error_indicator) {
32053 D(p->level--);
32054 return NULL;
32055 }
32056 D(fprintf(stderr, "%*c> _tmp_182[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
32057 Token * _literal;
32058 if (
32059 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
32060 )
32061 {
32062 D(fprintf(stderr, "%*c+ _tmp_182[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
32063 _res = _literal;
32064 goto done;
32065 }
32066 p->mark = _mark;
32067 D(fprintf(stderr, "%*c%s _tmp_182[%d-%d]: %s failed!\n", p->level, ' ',
32068 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
32069 }
32070 { // '...'
32071 if (p->error_indicator) {
32072 D(p->level--);
32073 return NULL;
32074 }
32075 D(fprintf(stderr, "%*c> _tmp_182[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'"));
32076 Token * _literal;
32077 if (
32078 (_literal = _PyPegen_expect_token(p, 52)) // token='...'
32079 )
32080 {
32081 D(fprintf(stderr, "%*c+ _tmp_182[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'"));
32082 _res = _literal;
32083 goto done;
32084 }
32085 p->mark = _mark;
32086 D(fprintf(stderr, "%*c%s _tmp_182[%d-%d]: %s failed!\n", p->level, ' ',
32087 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'...'"));
32088 }
32089 _res = NULL;
32090 done:
32091 D(p->level--);
32092 return _res;
32093}
32094
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032095// _tmp_183: '.' | '...'
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010032096static void *
32097_tmp_183_rule(Parser *p)
32098{
32099 D(p->level++);
32100 if (p->error_indicator) {
32101 D(p->level--);
32102 return NULL;
32103 }
32104 void * _res = NULL;
32105 int _mark = p->mark;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032106 { // '.'
32107 if (p->error_indicator) {
32108 D(p->level--);
32109 return NULL;
32110 }
32111 D(fprintf(stderr, "%*c> _tmp_183[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
32112 Token * _literal;
32113 if (
32114 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
32115 )
32116 {
32117 D(fprintf(stderr, "%*c+ _tmp_183[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
32118 _res = _literal;
32119 goto done;
32120 }
32121 p->mark = _mark;
32122 D(fprintf(stderr, "%*c%s _tmp_183[%d-%d]: %s failed!\n", p->level, ' ',
32123 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
32124 }
32125 { // '...'
32126 if (p->error_indicator) {
32127 D(p->level--);
32128 return NULL;
32129 }
32130 D(fprintf(stderr, "%*c> _tmp_183[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'"));
32131 Token * _literal;
32132 if (
32133 (_literal = _PyPegen_expect_token(p, 52)) // token='...'
32134 )
32135 {
32136 D(fprintf(stderr, "%*c+ _tmp_183[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'"));
32137 _res = _literal;
32138 goto done;
32139 }
32140 p->mark = _mark;
32141 D(fprintf(stderr, "%*c%s _tmp_183[%d-%d]: %s failed!\n", p->level, ' ',
32142 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'...'"));
32143 }
32144 _res = NULL;
32145 done:
32146 D(p->level--);
32147 return _res;
32148}
32149
32150// _tmp_184: '@' named_expression NEWLINE
32151static void *
32152_tmp_184_rule(Parser *p)
32153{
32154 D(p->level++);
32155 if (p->error_indicator) {
32156 D(p->level--);
32157 return NULL;
32158 }
32159 void * _res = NULL;
32160 int _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032161 { // '@' named_expression NEWLINE
32162 if (p->error_indicator) {
32163 D(p->level--);
32164 return NULL;
32165 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032166 D(fprintf(stderr, "%*c> _tmp_184[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@' named_expression NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032167 Token * _literal;
32168 expr_ty f;
32169 Token * newline_var;
32170 if (
32171 (_literal = _PyPegen_expect_token(p, 49)) // token='@'
32172 &&
32173 (f = named_expression_rule(p)) // named_expression
32174 &&
32175 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
32176 )
32177 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032178 D(fprintf(stderr, "%*c+ _tmp_184[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@' named_expression NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032179 _res = f;
32180 if (_res == NULL && PyErr_Occurred()) {
32181 p->error_indicator = 1;
32182 D(p->level--);
32183 return NULL;
32184 }
32185 goto done;
32186 }
32187 p->mark = _mark;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032188 D(fprintf(stderr, "%*c%s _tmp_184[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032189 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@' named_expression NEWLINE"));
32190 }
32191 _res = NULL;
32192 done:
32193 D(p->level--);
32194 return _res;
32195}
32196
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032197// _tmp_185: ',' star_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032198static void *
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032199_tmp_185_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032200{
32201 D(p->level++);
32202 if (p->error_indicator) {
32203 D(p->level--);
32204 return NULL;
32205 }
32206 void * _res = NULL;
32207 int _mark = p->mark;
32208 { // ',' star_expression
32209 if (p->error_indicator) {
32210 D(p->level--);
32211 return NULL;
32212 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032213 D(fprintf(stderr, "%*c> _tmp_185[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032214 Token * _literal;
32215 expr_ty c;
32216 if (
32217 (_literal = _PyPegen_expect_token(p, 12)) // token=','
32218 &&
32219 (c = star_expression_rule(p)) // star_expression
32220 )
32221 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032222 D(fprintf(stderr, "%*c+ _tmp_185[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032223 _res = c;
32224 if (_res == NULL && PyErr_Occurred()) {
32225 p->error_indicator = 1;
32226 D(p->level--);
32227 return NULL;
32228 }
32229 goto done;
32230 }
32231 p->mark = _mark;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032232 D(fprintf(stderr, "%*c%s _tmp_185[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032233 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_expression"));
32234 }
32235 _res = NULL;
32236 done:
32237 D(p->level--);
32238 return _res;
32239}
32240
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032241// _tmp_186: ',' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032242static void *
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032243_tmp_186_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032244{
32245 D(p->level++);
32246 if (p->error_indicator) {
32247 D(p->level--);
32248 return NULL;
32249 }
32250 void * _res = NULL;
32251 int _mark = p->mark;
32252 { // ',' expression
32253 if (p->error_indicator) {
32254 D(p->level--);
32255 return NULL;
32256 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032257 D(fprintf(stderr, "%*c> _tmp_186[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032258 Token * _literal;
32259 expr_ty c;
32260 if (
32261 (_literal = _PyPegen_expect_token(p, 12)) // token=','
32262 &&
32263 (c = expression_rule(p)) // expression
32264 )
32265 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032266 D(fprintf(stderr, "%*c+ _tmp_186[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032267 _res = c;
32268 if (_res == NULL && PyErr_Occurred()) {
32269 p->error_indicator = 1;
32270 D(p->level--);
32271 return NULL;
32272 }
32273 goto done;
32274 }
32275 p->mark = _mark;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032276 D(fprintf(stderr, "%*c%s _tmp_186[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032277 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
32278 }
32279 _res = NULL;
32280 done:
32281 D(p->level--);
32282 return _res;
32283}
32284
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032285// _tmp_187: 'or' conjunction
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032286static void *
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032287_tmp_187_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032288{
32289 D(p->level++);
32290 if (p->error_indicator) {
32291 D(p->level--);
32292 return NULL;
32293 }
32294 void * _res = NULL;
32295 int _mark = p->mark;
32296 { // 'or' conjunction
32297 if (p->error_indicator) {
32298 D(p->level--);
32299 return NULL;
32300 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032301 D(fprintf(stderr, "%*c> _tmp_187[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'or' conjunction"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032302 Token * _keyword;
32303 expr_ty c;
32304 if (
32305 (_keyword = _PyPegen_expect_token(p, 531)) // token='or'
32306 &&
32307 (c = conjunction_rule(p)) // conjunction
32308 )
32309 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032310 D(fprintf(stderr, "%*c+ _tmp_187[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'or' conjunction"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032311 _res = c;
32312 if (_res == NULL && PyErr_Occurred()) {
32313 p->error_indicator = 1;
32314 D(p->level--);
32315 return NULL;
32316 }
32317 goto done;
32318 }
32319 p->mark = _mark;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032320 D(fprintf(stderr, "%*c%s _tmp_187[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032321 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'or' conjunction"));
32322 }
32323 _res = NULL;
32324 done:
32325 D(p->level--);
32326 return _res;
32327}
32328
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032329// _tmp_188: 'and' inversion
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032330static void *
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032331_tmp_188_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032332{
32333 D(p->level++);
32334 if (p->error_indicator) {
32335 D(p->level--);
32336 return NULL;
32337 }
32338 void * _res = NULL;
32339 int _mark = p->mark;
32340 { // 'and' inversion
32341 if (p->error_indicator) {
32342 D(p->level--);
32343 return NULL;
32344 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032345 D(fprintf(stderr, "%*c> _tmp_188[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'and' inversion"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032346 Token * _keyword;
32347 expr_ty c;
32348 if (
32349 (_keyword = _PyPegen_expect_token(p, 532)) // token='and'
32350 &&
32351 (c = inversion_rule(p)) // inversion
32352 )
32353 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032354 D(fprintf(stderr, "%*c+ _tmp_188[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'and' inversion"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032355 _res = c;
32356 if (_res == NULL && PyErr_Occurred()) {
32357 p->error_indicator = 1;
32358 D(p->level--);
32359 return NULL;
32360 }
32361 goto done;
32362 }
32363 p->mark = _mark;
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032364 D(fprintf(stderr, "%*c%s _tmp_188[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032365 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'and' inversion"));
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032366 }
32367 _res = NULL;
32368 done:
32369 D(p->level--);
32370 return _res;
32371}
32372
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010032373// _tmp_189: 'if' disjunction
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032374static void *
32375_tmp_189_rule(Parser *p)
32376{
32377 D(p->level++);
32378 if (p->error_indicator) {
32379 D(p->level--);
32380 return NULL;
32381 }
32382 void * _res = NULL;
32383 int _mark = p->mark;
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010032384 { // 'if' disjunction
32385 if (p->error_indicator) {
32386 D(p->level--);
32387 return NULL;
32388 }
32389 D(fprintf(stderr, "%*c> _tmp_189[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
32390 Token * _keyword;
32391 expr_ty z;
32392 if (
32393 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
32394 &&
32395 (z = disjunction_rule(p)) // disjunction
32396 )
32397 {
32398 D(fprintf(stderr, "%*c+ _tmp_189[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
32399 _res = z;
32400 if (_res == NULL && PyErr_Occurred()) {
32401 p->error_indicator = 1;
32402 D(p->level--);
32403 return NULL;
32404 }
32405 goto done;
32406 }
32407 p->mark = _mark;
32408 D(fprintf(stderr, "%*c%s _tmp_189[%d-%d]: %s failed!\n", p->level, ' ',
32409 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' disjunction"));
32410 }
32411 _res = NULL;
32412 done:
32413 D(p->level--);
32414 return _res;
32415}
32416
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032417// _tmp_190: 'if' disjunction
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010032418static void *
32419_tmp_190_rule(Parser *p)
32420{
32421 D(p->level++);
32422 if (p->error_indicator) {
32423 D(p->level--);
32424 return NULL;
32425 }
32426 void * _res = NULL;
32427 int _mark = p->mark;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032428 { // 'if' disjunction
32429 if (p->error_indicator) {
32430 D(p->level--);
32431 return NULL;
32432 }
32433 D(fprintf(stderr, "%*c> _tmp_190[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
32434 Token * _keyword;
32435 expr_ty z;
32436 if (
32437 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
32438 &&
32439 (z = disjunction_rule(p)) // disjunction
32440 )
32441 {
32442 D(fprintf(stderr, "%*c+ _tmp_190[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
32443 _res = z;
32444 if (_res == NULL && PyErr_Occurred()) {
32445 p->error_indicator = 1;
32446 D(p->level--);
32447 return NULL;
32448 }
32449 goto done;
32450 }
32451 p->mark = _mark;
32452 D(fprintf(stderr, "%*c%s _tmp_190[%d-%d]: %s failed!\n", p->level, ' ',
32453 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' disjunction"));
32454 }
32455 _res = NULL;
32456 done:
32457 D(p->level--);
32458 return _res;
32459}
32460
32461// _tmp_191: starred_expression | (assignment_expression | expression !':=') !'='
32462static void *
32463_tmp_191_rule(Parser *p)
32464{
32465 D(p->level++);
32466 if (p->error_indicator) {
32467 D(p->level--);
32468 return NULL;
32469 }
32470 void * _res = NULL;
32471 int _mark = p->mark;
Pablo Galindo4a97b152020-09-02 17:44:19 +010032472 { // starred_expression
32473 if (p->error_indicator) {
32474 D(p->level--);
32475 return NULL;
32476 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032477 D(fprintf(stderr, "%*c> _tmp_191[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "starred_expression"));
Pablo Galindo4a97b152020-09-02 17:44:19 +010032478 expr_ty starred_expression_var;
32479 if (
32480 (starred_expression_var = starred_expression_rule(p)) // starred_expression
32481 )
32482 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032483 D(fprintf(stderr, "%*c+ _tmp_191[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "starred_expression"));
Pablo Galindo4a97b152020-09-02 17:44:19 +010032484 _res = starred_expression_var;
32485 goto done;
32486 }
32487 p->mark = _mark;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032488 D(fprintf(stderr, "%*c%s _tmp_191[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo4a97b152020-09-02 17:44:19 +010032489 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "starred_expression"));
32490 }
Pablo Galindo Salgado0e34a592021-11-04 23:19:27 +000032491 { // (assignment_expression | expression !':=') !'='
Pablo Galindo4a97b152020-09-02 17:44:19 +010032492 if (p->error_indicator) {
32493 D(p->level--);
32494 return NULL;
32495 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032496 D(fprintf(stderr, "%*c> _tmp_191[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(assignment_expression | expression !':=') !'='"));
32497 void *_tmp_202_var;
Pablo Galindo4a97b152020-09-02 17:44:19 +010032498 if (
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032499 (_tmp_202_var = _tmp_202_rule(p)) // assignment_expression | expression !':='
Pablo Galindo4a97b152020-09-02 17:44:19 +010032500 &&
32501 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 22) // token='='
32502 )
32503 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032504 D(fprintf(stderr, "%*c+ _tmp_191[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(assignment_expression | expression !':=') !'='"));
32505 _res = _tmp_202_var;
Pablo Galindoa77aac42021-04-23 14:27:05 +010032506 goto done;
32507 }
32508 p->mark = _mark;
32509 D(fprintf(stderr, "%*c%s _tmp_191[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032510 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(assignment_expression | expression !':=') !'='"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010032511 }
32512 _res = NULL;
32513 done:
32514 D(p->level--);
32515 return _res;
32516}
32517
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010032518// _tmp_192: ',' star_target
Pablo Galindoa77aac42021-04-23 14:27:05 +010032519static void *
32520_tmp_192_rule(Parser *p)
32521{
32522 D(p->level++);
32523 if (p->error_indicator) {
32524 D(p->level--);
32525 return NULL;
32526 }
32527 void * _res = NULL;
32528 int _mark = p->mark;
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010032529 { // ',' star_target
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032530 if (p->error_indicator) {
32531 D(p->level--);
32532 return NULL;
32533 }
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010032534 D(fprintf(stderr, "%*c> _tmp_192[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_target"));
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032535 Token * _literal;
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010032536 expr_ty c;
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032537 if (
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010032538 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032539 &&
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010032540 (c = star_target_rule(p)) // star_target
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032541 )
32542 {
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010032543 D(fprintf(stderr, "%*c+ _tmp_192[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_target"));
32544 _res = c;
32545 if (_res == NULL && PyErr_Occurred()) {
32546 p->error_indicator = 1;
32547 D(p->level--);
32548 return NULL;
32549 }
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032550 goto done;
32551 }
32552 p->mark = _mark;
32553 D(fprintf(stderr, "%*c%s _tmp_192[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010032554 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_target"));
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032555 }
32556 _res = NULL;
32557 done:
32558 D(p->level--);
32559 return _res;
32560}
32561
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032562// _tmp_193: ',' star_target
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032563static void *
32564_tmp_193_rule(Parser *p)
32565{
32566 D(p->level++);
32567 if (p->error_indicator) {
32568 D(p->level--);
32569 return NULL;
32570 }
32571 void * _res = NULL;
32572 int _mark = p->mark;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032573 { // ',' star_target
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032574 if (p->error_indicator) {
32575 D(p->level--);
32576 return NULL;
32577 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032578 D(fprintf(stderr, "%*c> _tmp_193[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_target"));
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032579 Token * _literal;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032580 expr_ty c;
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032581 if (
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032582 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032583 &&
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032584 (c = star_target_rule(p)) // star_target
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032585 )
32586 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032587 D(fprintf(stderr, "%*c+ _tmp_193[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_target"));
32588 _res = c;
32589 if (_res == NULL && PyErr_Occurred()) {
32590 p->error_indicator = 1;
32591 D(p->level--);
32592 return NULL;
32593 }
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032594 goto done;
32595 }
32596 p->mark = _mark;
32597 D(fprintf(stderr, "%*c%s _tmp_193[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032598 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_target"));
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032599 }
32600 _res = NULL;
32601 done:
32602 D(p->level--);
32603 return _res;
32604}
32605
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010032606// _tmp_194: star_targets '='
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032607static void *
32608_tmp_194_rule(Parser *p)
32609{
32610 D(p->level++);
32611 if (p->error_indicator) {
32612 D(p->level--);
32613 return NULL;
32614 }
32615 void * _res = NULL;
32616 int _mark = p->mark;
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010032617 { // star_targets '='
32618 if (p->error_indicator) {
32619 D(p->level--);
32620 return NULL;
32621 }
32622 D(fprintf(stderr, "%*c> _tmp_194[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
32623 Token * _literal;
32624 expr_ty star_targets_var;
32625 if (
32626 (star_targets_var = star_targets_rule(p)) // star_targets
32627 &&
32628 (_literal = _PyPegen_expect_token(p, 22)) // token='='
32629 )
32630 {
32631 D(fprintf(stderr, "%*c+ _tmp_194[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
32632 _res = _PyPegen_dummy_name(p, star_targets_var, _literal);
32633 goto done;
32634 }
32635 p->mark = _mark;
32636 D(fprintf(stderr, "%*c%s _tmp_194[%d-%d]: %s failed!\n", p->level, ' ',
32637 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_targets '='"));
32638 }
32639 _res = NULL;
32640 done:
32641 D(p->level--);
32642 return _res;
32643}
32644
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032645// _tmp_195: star_targets '='
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010032646static void *
32647_tmp_195_rule(Parser *p)
32648{
32649 D(p->level++);
32650 if (p->error_indicator) {
32651 D(p->level--);
32652 return NULL;
32653 }
32654 void * _res = NULL;
32655 int _mark = p->mark;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032656 { // star_targets '='
32657 if (p->error_indicator) {
32658 D(p->level--);
32659 return NULL;
32660 }
32661 D(fprintf(stderr, "%*c> _tmp_195[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
32662 Token * _literal;
32663 expr_ty star_targets_var;
32664 if (
32665 (star_targets_var = star_targets_rule(p)) // star_targets
32666 &&
32667 (_literal = _PyPegen_expect_token(p, 22)) // token='='
32668 )
32669 {
32670 D(fprintf(stderr, "%*c+ _tmp_195[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
32671 _res = _PyPegen_dummy_name(p, star_targets_var, _literal);
32672 goto done;
32673 }
32674 p->mark = _mark;
32675 D(fprintf(stderr, "%*c%s _tmp_195[%d-%d]: %s failed!\n", p->level, ' ',
32676 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_targets '='"));
32677 }
32678 _res = NULL;
32679 done:
32680 D(p->level--);
32681 return _res;
32682}
32683
32684// _tmp_196: ')' | '**'
32685static void *
32686_tmp_196_rule(Parser *p)
32687{
32688 D(p->level++);
32689 if (p->error_indicator) {
32690 D(p->level--);
32691 return NULL;
32692 }
32693 void * _res = NULL;
32694 int _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032695 { // ')'
32696 if (p->error_indicator) {
32697 D(p->level--);
32698 return NULL;
32699 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032700 D(fprintf(stderr, "%*c> _tmp_196[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032701 Token * _literal;
32702 if (
32703 (_literal = _PyPegen_expect_token(p, 8)) // token=')'
32704 )
32705 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032706 D(fprintf(stderr, "%*c+ _tmp_196[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010032707 _res = _literal;
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032708 goto done;
32709 }
32710 p->mark = _mark;
32711 D(fprintf(stderr, "%*c%s _tmp_196[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032712 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010032713 }
32714 { // '**'
32715 if (p->error_indicator) {
32716 D(p->level--);
32717 return NULL;
32718 }
32719 D(fprintf(stderr, "%*c> _tmp_196[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**'"));
32720 Token * _literal;
32721 if (
32722 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
32723 )
32724 {
32725 D(fprintf(stderr, "%*c+ _tmp_196[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**'"));
32726 _res = _literal;
32727 goto done;
32728 }
32729 p->mark = _mark;
32730 D(fprintf(stderr, "%*c%s _tmp_196[%d-%d]: %s failed!\n", p->level, ' ',
32731 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**'"));
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032732 }
32733 _res = NULL;
32734 done:
32735 D(p->level--);
32736 return _res;
32737}
32738
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032739// _tmp_197: ':' | '**'
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032740static void *
32741_tmp_197_rule(Parser *p)
32742{
32743 D(p->level++);
32744 if (p->error_indicator) {
32745 D(p->level--);
32746 return NULL;
32747 }
32748 void * _res = NULL;
32749 int _mark = p->mark;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032750 { // ':'
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010032751 if (p->error_indicator) {
32752 D(p->level--);
32753 return NULL;
32754 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032755 D(fprintf(stderr, "%*c> _tmp_197[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
32756 Token * _literal;
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010032757 if (
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032758 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010032759 )
32760 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032761 D(fprintf(stderr, "%*c+ _tmp_197[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
32762 _res = _literal;
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010032763 goto done;
32764 }
32765 p->mark = _mark;
32766 D(fprintf(stderr, "%*c%s _tmp_197[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032767 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
32768 }
32769 { // '**'
32770 if (p->error_indicator) {
32771 D(p->level--);
32772 return NULL;
32773 }
32774 D(fprintf(stderr, "%*c> _tmp_197[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**'"));
32775 Token * _literal;
32776 if (
32777 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
32778 )
32779 {
32780 D(fprintf(stderr, "%*c+ _tmp_197[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**'"));
32781 _res = _literal;
32782 goto done;
32783 }
32784 p->mark = _mark;
32785 D(fprintf(stderr, "%*c%s _tmp_197[%d-%d]: %s failed!\n", p->level, ' ',
32786 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**'"));
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010032787 }
32788 _res = NULL;
32789 done:
32790 D(p->level--);
32791 return _res;
32792}
32793
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032794// _tmp_198: expression ['as' star_target]
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010032795static void *
32796_tmp_198_rule(Parser *p)
32797{
32798 D(p->level++);
32799 if (p->error_indicator) {
32800 D(p->level--);
32801 return NULL;
32802 }
32803 void * _res = NULL;
32804 int _mark = p->mark;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032805 { // expression ['as' star_target]
32806 if (p->error_indicator) {
32807 D(p->level--);
32808 return NULL;
32809 }
32810 D(fprintf(stderr, "%*c> _tmp_198[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]"));
32811 void *_opt_var;
32812 UNUSED(_opt_var); // Silence compiler warnings
32813 expr_ty expression_var;
32814 if (
32815 (expression_var = expression_rule(p)) // expression
32816 &&
32817 (_opt_var = _tmp_203_rule(p), !p->error_indicator) // ['as' star_target]
32818 )
32819 {
32820 D(fprintf(stderr, "%*c+ _tmp_198[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]"));
32821 _res = _PyPegen_dummy_name(p, expression_var, _opt_var);
32822 goto done;
32823 }
32824 p->mark = _mark;
32825 D(fprintf(stderr, "%*c%s _tmp_198[%d-%d]: %s failed!\n", p->level, ' ',
32826 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ['as' star_target]"));
32827 }
32828 _res = NULL;
32829 done:
32830 D(p->level--);
32831 return _res;
32832}
32833
32834// _tmp_199: expressions ['as' star_target]
32835static void *
32836_tmp_199_rule(Parser *p)
32837{
32838 D(p->level++);
32839 if (p->error_indicator) {
32840 D(p->level--);
32841 return NULL;
32842 }
32843 void * _res = NULL;
32844 int _mark = p->mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032845 { // expressions ['as' star_target]
32846 if (p->error_indicator) {
32847 D(p->level--);
32848 return NULL;
32849 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032850 D(fprintf(stderr, "%*c> _tmp_199[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032851 void *_opt_var;
32852 UNUSED(_opt_var); // Silence compiler warnings
32853 expr_ty expressions_var;
32854 if (
32855 (expressions_var = expressions_rule(p)) // expressions
32856 &&
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032857 (_opt_var = _tmp_204_rule(p), !p->error_indicator) // ['as' star_target]
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032858 )
32859 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032860 D(fprintf(stderr, "%*c+ _tmp_199[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032861 _res = _PyPegen_dummy_name(p, expressions_var, _opt_var);
32862 goto done;
32863 }
32864 p->mark = _mark;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032865 D(fprintf(stderr, "%*c%s _tmp_199[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032866 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expressions ['as' star_target]"));
32867 }
32868 _res = NULL;
32869 done:
32870 D(p->level--);
32871 return _res;
32872}
32873
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032874// _tmp_200: expression ['as' star_target]
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032875static void *
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032876_tmp_200_rule(Parser *p)
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032877{
32878 D(p->level++);
32879 if (p->error_indicator) {
32880 D(p->level--);
32881 return NULL;
32882 }
32883 void * _res = NULL;
32884 int _mark = p->mark;
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032885 { // expression ['as' star_target]
32886 if (p->error_indicator) {
32887 D(p->level--);
32888 return NULL;
32889 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032890 D(fprintf(stderr, "%*c> _tmp_200[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]"));
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032891 void *_opt_var;
32892 UNUSED(_opt_var); // Silence compiler warnings
32893 expr_ty expression_var;
32894 if (
32895 (expression_var = expression_rule(p)) // expression
32896 &&
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032897 (_opt_var = _tmp_205_rule(p), !p->error_indicator) // ['as' star_target]
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032898 )
32899 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032900 D(fprintf(stderr, "%*c+ _tmp_200[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]"));
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032901 _res = _PyPegen_dummy_name(p, expression_var, _opt_var);
32902 goto done;
32903 }
32904 p->mark = _mark;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032905 D(fprintf(stderr, "%*c%s _tmp_200[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032906 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ['as' star_target]"));
32907 }
32908 _res = NULL;
32909 done:
32910 D(p->level--);
32911 return _res;
32912}
32913
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032914// _tmp_201: expressions ['as' star_target]
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032915static void *
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032916_tmp_201_rule(Parser *p)
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032917{
32918 D(p->level++);
32919 if (p->error_indicator) {
32920 D(p->level--);
32921 return NULL;
32922 }
32923 void * _res = NULL;
32924 int _mark = p->mark;
Pablo Galindo58fb1562021-02-02 19:54:22 +000032925 { // expressions ['as' star_target]
32926 if (p->error_indicator) {
32927 D(p->level--);
32928 return NULL;
32929 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032930 D(fprintf(stderr, "%*c> _tmp_201[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000032931 void *_opt_var;
32932 UNUSED(_opt_var); // Silence compiler warnings
32933 expr_ty expressions_var;
32934 if (
32935 (expressions_var = expressions_rule(p)) // expressions
32936 &&
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032937 (_opt_var = _tmp_206_rule(p), !p->error_indicator) // ['as' star_target]
Pablo Galindo58fb1562021-02-02 19:54:22 +000032938 )
32939 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032940 D(fprintf(stderr, "%*c+ _tmp_201[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000032941 _res = _PyPegen_dummy_name(p, expressions_var, _opt_var);
32942 goto done;
32943 }
32944 p->mark = _mark;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032945 D(fprintf(stderr, "%*c%s _tmp_201[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob2802482021-04-15 21:38:45 +010032946 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expressions ['as' star_target]"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000032947 }
32948 _res = NULL;
32949 done:
32950 D(p->level--);
32951 return _res;
32952}
32953
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032954// _tmp_202: assignment_expression | expression !':='
Pablo Galindo58fb1562021-02-02 19:54:22 +000032955static void *
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032956_tmp_202_rule(Parser *p)
Pablo Galindo56c95df2021-04-21 15:28:21 +010032957{
32958 D(p->level++);
32959 if (p->error_indicator) {
32960 D(p->level--);
32961 return NULL;
32962 }
32963 void * _res = NULL;
32964 int _mark = p->mark;
Pablo Galindo Salgado0e34a592021-11-04 23:19:27 +000032965 { // assignment_expression
Pablo Galindo56c95df2021-04-21 15:28:21 +010032966 if (p->error_indicator) {
32967 D(p->level--);
32968 return NULL;
32969 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032970 D(fprintf(stderr, "%*c> _tmp_202[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "assignment_expression"));
Pablo Galindo Salgado0e34a592021-11-04 23:19:27 +000032971 expr_ty assignment_expression_var;
Pablo Galindo56c95df2021-04-21 15:28:21 +010032972 if (
Pablo Galindo Salgado0e34a592021-11-04 23:19:27 +000032973 (assignment_expression_var = assignment_expression_rule(p)) // assignment_expression
Pablo Galindo56c95df2021-04-21 15:28:21 +010032974 )
32975 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032976 D(fprintf(stderr, "%*c+ _tmp_202[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "assignment_expression"));
Pablo Galindo Salgado0e34a592021-11-04 23:19:27 +000032977 _res = assignment_expression_var;
Pablo Galindo56c95df2021-04-21 15:28:21 +010032978 goto done;
32979 }
32980 p->mark = _mark;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032981 D(fprintf(stderr, "%*c%s _tmp_202[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo Salgado0e34a592021-11-04 23:19:27 +000032982 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "assignment_expression"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032983 }
32984 { // expression !':='
32985 if (p->error_indicator) {
32986 D(p->level--);
32987 return NULL;
32988 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032989 D(fprintf(stderr, "%*c> _tmp_202[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression !':='"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032990 expr_ty expression_var;
32991 if (
32992 (expression_var = expression_rule(p)) // expression
32993 &&
32994 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 53) // token=':='
32995 )
32996 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032997 D(fprintf(stderr, "%*c+ _tmp_202[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression !':='"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032998 _res = expression_var;
32999 goto done;
33000 }
33001 p->mark = _mark;
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070033002 D(fprintf(stderr, "%*c%s _tmp_202[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000033003 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression !':='"));
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070033004 }
33005 _res = NULL;
33006 done:
33007 D(p->level--);
33008 return _res;
33009}
33010
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070033011// _tmp_203: 'as' star_target
33012static void *
33013_tmp_203_rule(Parser *p)
33014{
33015 D(p->level++);
33016 if (p->error_indicator) {
33017 D(p->level--);
33018 return NULL;
33019 }
33020 void * _res = NULL;
33021 int _mark = p->mark;
33022 { // 'as' star_target
33023 if (p->error_indicator) {
33024 D(p->level--);
33025 return NULL;
33026 }
33027 D(fprintf(stderr, "%*c> _tmp_203[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
33028 Token * _keyword;
33029 expr_ty star_target_var;
33030 if (
33031 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
33032 &&
33033 (star_target_var = star_target_rule(p)) // star_target
33034 )
33035 {
33036 D(fprintf(stderr, "%*c+ _tmp_203[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
33037 _res = _PyPegen_dummy_name(p, _keyword, star_target_var);
33038 goto done;
33039 }
33040 p->mark = _mark;
33041 D(fprintf(stderr, "%*c%s _tmp_203[%d-%d]: %s failed!\n", p->level, ' ',
33042 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' star_target"));
33043 }
33044 _res = NULL;
33045 done:
33046 D(p->level--);
33047 return _res;
33048}
33049
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070033050// _tmp_204: 'as' star_target
33051static void *
33052_tmp_204_rule(Parser *p)
33053{
33054 D(p->level++);
33055 if (p->error_indicator) {
33056 D(p->level--);
33057 return NULL;
33058 }
33059 void * _res = NULL;
33060 int _mark = p->mark;
33061 { // 'as' star_target
33062 if (p->error_indicator) {
33063 D(p->level--);
33064 return NULL;
33065 }
33066 D(fprintf(stderr, "%*c> _tmp_204[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
33067 Token * _keyword;
33068 expr_ty star_target_var;
33069 if (
33070 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
33071 &&
33072 (star_target_var = star_target_rule(p)) // star_target
33073 )
33074 {
33075 D(fprintf(stderr, "%*c+ _tmp_204[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
33076 _res = _PyPegen_dummy_name(p, _keyword, star_target_var);
33077 goto done;
33078 }
33079 p->mark = _mark;
33080 D(fprintf(stderr, "%*c%s _tmp_204[%d-%d]: %s failed!\n", p->level, ' ',
33081 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' star_target"));
33082 }
33083 _res = NULL;
33084 done:
33085 D(p->level--);
33086 return _res;
33087}
33088
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010033089// _tmp_205: 'as' star_target
33090static void *
33091_tmp_205_rule(Parser *p)
33092{
33093 D(p->level++);
33094 if (p->error_indicator) {
33095 D(p->level--);
33096 return NULL;
33097 }
33098 void * _res = NULL;
33099 int _mark = p->mark;
33100 { // 'as' star_target
33101 if (p->error_indicator) {
33102 D(p->level--);
33103 return NULL;
33104 }
33105 D(fprintf(stderr, "%*c> _tmp_205[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
33106 Token * _keyword;
33107 expr_ty star_target_var;
33108 if (
33109 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
33110 &&
33111 (star_target_var = star_target_rule(p)) // star_target
33112 )
33113 {
33114 D(fprintf(stderr, "%*c+ _tmp_205[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
33115 _res = _PyPegen_dummy_name(p, _keyword, star_target_var);
33116 goto done;
33117 }
33118 p->mark = _mark;
33119 D(fprintf(stderr, "%*c%s _tmp_205[%d-%d]: %s failed!\n", p->level, ' ',
33120 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' star_target"));
33121 }
33122 _res = NULL;
33123 done:
33124 D(p->level--);
33125 return _res;
33126}
33127
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000033128// _tmp_206: 'as' star_target
33129static void *
33130_tmp_206_rule(Parser *p)
33131{
33132 D(p->level++);
33133 if (p->error_indicator) {
33134 D(p->level--);
33135 return NULL;
33136 }
33137 void * _res = NULL;
33138 int _mark = p->mark;
33139 { // 'as' star_target
33140 if (p->error_indicator) {
33141 D(p->level--);
33142 return NULL;
33143 }
33144 D(fprintf(stderr, "%*c> _tmp_206[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
33145 Token * _keyword;
33146 expr_ty star_target_var;
33147 if (
33148 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
33149 &&
33150 (star_target_var = star_target_rule(p)) // star_target
33151 )
33152 {
33153 D(fprintf(stderr, "%*c+ _tmp_206[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
33154 _res = _PyPegen_dummy_name(p, _keyword, star_target_var);
33155 goto done;
33156 }
33157 p->mark = _mark;
33158 D(fprintf(stderr, "%*c%s _tmp_206[%d-%d]: %s failed!\n", p->level, ' ',
33159 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' star_target"));
33160 }
33161 _res = NULL;
33162 done:
33163 D(p->level--);
33164 return _res;
33165}
33166
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010033167void *
33168_PyPegen_parse(Parser *p)
33169{
33170 // Initialize keywords
33171 p->keywords = reserved_keywords;
33172 p->n_keyword_lists = n_keyword_lists;
Pablo Galindob2802482021-04-15 21:38:45 +010033173 p->soft_keywords = soft_keywords;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010033174
33175 // Run parser
33176 void *result = NULL;
33177 if (p->start_rule == Py_file_input) {
33178 result = file_rule(p);
33179 } else if (p->start_rule == Py_single_input) {
33180 result = interactive_rule(p);
33181 } else if (p->start_rule == Py_eval_input) {
33182 result = eval_rule(p);
33183 } else if (p->start_rule == Py_func_type_input) {
33184 result = func_type_rule(p);
33185 } else if (p->start_rule == Py_fstring_input) {
33186 result = fstring_rule(p);
33187 }
33188
33189 return result;
33190}
33191
33192// The end