blob: 81218842cbafe77ccba84ea856dd3e3965a36113 [file] [log] [blame]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001// @generated by pegen.py from ./Grammar/python.gram
2#include "pegen.h"
Guido van Rossumf70e43a1991-02-19 12:39:46 +00003
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004#if defined(Py_DEBUG) && defined(Py_BUILD_CORE)
Victor Stinner6af528b2021-03-18 09:54:13 +01005# define D(x) if (Py_DebugFlag) x;
Guido van Rossum85a5fbb1990-10-14 12:07:46 +00006#else
Victor Stinner6af528b2021-03-18 09:54:13 +01007# define D(x)
Guido van Rossum85a5fbb1990-10-14 12:07:46 +00008#endif
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009static const int n_keyword_lists = 9;
10static KeywordToken *reserved_keywords[] = {
Pablo Galindo1ac0cbc2020-07-06 20:31:16 +010011 (KeywordToken[]) {{NULL, -1}},
12 (KeywordToken[]) {{NULL, -1}},
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013 (KeywordToken[]) {
14 {"if", 510},
15 {"in", 518},
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016 {"as", 520},
Brandt Bucher145bf262021-02-26 14:51:55 -080017 {"is", 530},
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018 {"or", 531},
19 {NULL, -1},
20 },
21 (KeywordToken[]) {
22 {"del", 503},
23 {"try", 511},
24 {"for", 517},
Brandt Bucher145bf262021-02-26 14:51:55 -080025 {"def", 526},
26 {"not", 529},
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027 {"and", 532},
28 {NULL, -1},
29 },
30 (KeywordToken[]) {
31 {"pass", 502},
32 {"from", 514},
33 {"elif", 515},
34 {"else", 516},
35 {"with", 519},
Brandt Bucher145bf262021-02-26 14:51:55 -080036 {"None", 523},
37 {"True", 524},
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010038 {NULL, -1},
39 },
40 (KeywordToken[]) {
41 {"raise", 501},
42 {"yield", 504},
43 {"break", 506},
44 {"while", 512},
Brandt Bucher145bf262021-02-26 14:51:55 -080045 {"False", 525},
46 {"class", 527},
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010047 {NULL, -1},
48 },
49 (KeywordToken[]) {
50 {"return", 500},
51 {"assert", 505},
52 {"global", 508},
53 {"import", 513},
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030054 {"except", 521},
Brandt Bucher145bf262021-02-26 14:51:55 -080055 {"lambda", 528},
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010056 {NULL, -1},
57 },
58 (KeywordToken[]) {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030059 {"finally", 522},
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010060 {NULL, -1},
61 },
62 (KeywordToken[]) {
63 {"continue", 507},
64 {"nonlocal", 509},
65 {NULL, -1},
66 },
67};
Pablo Galindob2802482021-04-15 21:38:45 +010068static char *soft_keywords[] = {
69 "_",
70 "case",
71 "match",
72 NULL,
73};
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010074#define file_type 1000
75#define interactive_type 1001
76#define eval_type 1002
77#define func_type_type 1003
78#define fstring_type 1004
79#define type_expressions_type 1005
80#define statements_type 1006
81#define statement_type 1007
82#define statement_newline_type 1008
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000083#define simple_stmts_type 1009
84#define simple_stmt_type 1010
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010085#define compound_stmt_type 1011
86#define assignment_type 1012
87#define augassign_type 1013
88#define global_stmt_type 1014
89#define nonlocal_stmt_type 1015
90#define yield_stmt_type 1016
91#define assert_stmt_type 1017
92#define del_stmt_type 1018
93#define import_stmt_type 1019
94#define import_name_type 1020
95#define import_from_type 1021
96#define import_from_targets_type 1022
97#define import_from_as_names_type 1023
98#define import_from_as_name_type 1024
99#define dotted_as_names_type 1025
100#define dotted_as_name_type 1026
101#define dotted_name_type 1027 // Left-recursive
102#define if_stmt_type 1028
103#define elif_stmt_type 1029
104#define else_block_type 1030
105#define while_stmt_type 1031
106#define for_stmt_type 1032
107#define with_stmt_type 1033
108#define with_item_type 1034
109#define try_stmt_type 1035
110#define except_block_type 1036
111#define finally_block_type 1037
Brandt Bucher145bf262021-02-26 14:51:55 -0800112#define match_stmt_type 1038
113#define subject_expr_type 1039
114#define case_block_type 1040
115#define guard_type 1041
116#define patterns_type 1042
117#define pattern_type 1043
118#define as_pattern_type 1044
119#define or_pattern_type 1045
120#define closed_pattern_type 1046
121#define literal_pattern_type 1047
Nick Coghlan1e7b8582021-04-29 15:58:44 +1000122#define literal_expr_type 1048
123#define complex_number_type 1049
124#define signed_number_type 1050
Brandt Bucherdbe60ee2021-04-29 17:19:28 -0700125#define signed_real_number_type 1051
126#define real_number_type 1052
127#define imaginary_number_type 1053
128#define capture_pattern_type 1054
129#define pattern_capture_target_type 1055
130#define wildcard_pattern_type 1056
131#define value_pattern_type 1057
132#define attr_type 1058 // Left-recursive
133#define name_or_attr_type 1059 // Left-recursive
134#define group_pattern_type 1060
135#define sequence_pattern_type 1061
136#define open_sequence_pattern_type 1062
137#define maybe_sequence_pattern_type 1063
138#define maybe_star_pattern_type 1064
139#define star_pattern_type 1065
140#define mapping_pattern_type 1066
141#define items_pattern_type 1067
142#define key_value_pattern_type 1068
143#define double_star_pattern_type 1069
144#define class_pattern_type 1070
145#define positional_patterns_type 1071
146#define keyword_patterns_type 1072
147#define keyword_pattern_type 1073
148#define return_stmt_type 1074
149#define raise_stmt_type 1075
150#define function_def_type 1076
151#define function_def_raw_type 1077
152#define func_type_comment_type 1078
153#define params_type 1079
154#define parameters_type 1080
155#define slash_no_default_type 1081
156#define slash_with_default_type 1082
157#define star_etc_type 1083
158#define kwds_type 1084
159#define param_no_default_type 1085
160#define param_with_default_type 1086
161#define param_maybe_default_type 1087
162#define param_type 1088
163#define annotation_type 1089
164#define default_type 1090
165#define decorators_type 1091
166#define class_def_type 1092
167#define class_def_raw_type 1093
168#define block_type 1094
169#define star_expressions_type 1095
170#define star_expression_type 1096
171#define star_named_expressions_type 1097
172#define star_named_expression_type 1098
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -0700173#define assigment_expression_type 1099
174#define named_expression_type 1100
Brandt Bucherdbe60ee2021-04-29 17:19:28 -0700175#define annotated_rhs_type 1101
176#define expressions_type 1102
177#define expression_type 1103
178#define lambdef_type 1104
179#define lambda_params_type 1105
180#define lambda_parameters_type 1106
181#define lambda_slash_no_default_type 1107
182#define lambda_slash_with_default_type 1108
183#define lambda_star_etc_type 1109
184#define lambda_kwds_type 1110
185#define lambda_param_no_default_type 1111
186#define lambda_param_with_default_type 1112
187#define lambda_param_maybe_default_type 1113
188#define lambda_param_type 1114
189#define disjunction_type 1115
190#define conjunction_type 1116
191#define inversion_type 1117
192#define comparison_type 1118
193#define compare_op_bitwise_or_pair_type 1119
194#define eq_bitwise_or_type 1120
195#define noteq_bitwise_or_type 1121
196#define lte_bitwise_or_type 1122
197#define lt_bitwise_or_type 1123
198#define gte_bitwise_or_type 1124
199#define gt_bitwise_or_type 1125
200#define notin_bitwise_or_type 1126
201#define in_bitwise_or_type 1127
202#define isnot_bitwise_or_type 1128
203#define is_bitwise_or_type 1129
204#define bitwise_or_type 1130 // Left-recursive
205#define bitwise_xor_type 1131 // Left-recursive
206#define bitwise_and_type 1132 // Left-recursive
207#define shift_expr_type 1133 // Left-recursive
208#define sum_type 1134 // Left-recursive
209#define term_type 1135 // Left-recursive
210#define factor_type 1136
211#define power_type 1137
212#define await_primary_type 1138
213#define primary_type 1139 // Left-recursive
214#define slices_type 1140
215#define slice_type 1141
216#define atom_type 1142
217#define strings_type 1143
218#define list_type 1144
219#define listcomp_type 1145
220#define tuple_type 1146
221#define group_type 1147
222#define genexp_type 1148
223#define set_type 1149
224#define setcomp_type 1150
225#define dict_type 1151
226#define dictcomp_type 1152
227#define double_starred_kvpairs_type 1153
228#define double_starred_kvpair_type 1154
229#define kvpair_type 1155
230#define for_if_clauses_type 1156
231#define for_if_clause_type 1157
232#define yield_expr_type 1158
233#define arguments_type 1159
234#define args_type 1160
235#define kwargs_type 1161
236#define starred_expression_type 1162
237#define kwarg_or_starred_type 1163
238#define kwarg_or_double_starred_type 1164
239#define star_targets_type 1165
240#define star_targets_list_seq_type 1166
241#define star_targets_tuple_seq_type 1167
242#define star_target_type 1168
243#define target_with_star_atom_type 1169
244#define star_atom_type 1170
245#define single_target_type 1171
246#define single_subscript_attribute_target_type 1172
247#define del_targets_type 1173
248#define del_target_type 1174
249#define del_t_atom_type 1175
250#define targets_type 1176
251#define target_type 1177
252#define t_primary_type 1178 // Left-recursive
253#define t_lookahead_type 1179
254#define t_atom_type 1180
255#define invalid_arguments_type 1181
256#define invalid_kwarg_type 1182
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -0700257#define expression_without_invalid_type 1183
258#define invalid_expression_type 1184
259#define invalid_named_expression_type 1185
260#define invalid_assignment_type 1186
261#define invalid_ann_assign_target_type 1187
262#define invalid_del_stmt_type 1188
263#define invalid_block_type 1189
264#define invalid_primary_type 1190 // Left-recursive
265#define invalid_comprehension_type 1191
266#define invalid_dict_comprehension_type 1192
267#define invalid_parameters_type 1193
268#define invalid_parameters_helper_type 1194
269#define invalid_lambda_parameters_type 1195
270#define invalid_lambda_parameters_helper_type 1196
271#define invalid_star_etc_type 1197
272#define invalid_lambda_star_etc_type 1198
273#define invalid_double_type_comments_type 1199
274#define invalid_with_item_type 1200
275#define invalid_for_target_type 1201
276#define invalid_group_type 1202
277#define invalid_import_from_targets_type 1203
278#define invalid_with_stmt_type 1204
279#define invalid_with_stmt_indent_type 1205
280#define invalid_try_stmt_type 1206
281#define invalid_except_stmt_type 1207
282#define invalid_finally_stmt_type 1208
283#define invalid_except_stmt_indent_type 1209
284#define invalid_match_stmt_type 1210
285#define invalid_case_block_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
Brandt Bucherdbe60ee2021-04-29 17:19:28 -0700426#define _loop0_133_type 1352
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -0700427#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 _loop0_142_type 1361
436#define _gather_141_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
Pablo Galindoe53f72a2021-06-04 00:11:43 +0100470#define _tmp_176_type 1396
471#define _loop0_178_type 1397
472#define _gather_177_type 1398
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -0700473#define _tmp_179_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
Pablo Galindoe53f72a2021-06-04 00:11:43 +0100499#define _tmp_205_type 1425
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100500
501static mod_ty file_rule(Parser *p);
502static mod_ty interactive_rule(Parser *p);
503static mod_ty eval_rule(Parser *p);
504static mod_ty func_type_rule(Parser *p);
505static expr_ty fstring_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100506static asdl_expr_seq* type_expressions_rule(Parser *p);
507static asdl_stmt_seq* statements_rule(Parser *p);
508static asdl_stmt_seq* statement_rule(Parser *p);
509static asdl_stmt_seq* statement_newline_rule(Parser *p);
Pablo Galindo9bdc40e2020-11-30 19:42:38 +0000510static asdl_stmt_seq* simple_stmts_rule(Parser *p);
511static stmt_ty simple_stmt_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100512static stmt_ty compound_stmt_rule(Parser *p);
513static stmt_ty assignment_rule(Parser *p);
514static AugOperator* augassign_rule(Parser *p);
515static stmt_ty global_stmt_rule(Parser *p);
516static stmt_ty nonlocal_stmt_rule(Parser *p);
517static stmt_ty yield_stmt_rule(Parser *p);
518static stmt_ty assert_stmt_rule(Parser *p);
519static stmt_ty del_stmt_rule(Parser *p);
520static stmt_ty import_stmt_rule(Parser *p);
521static stmt_ty import_name_rule(Parser *p);
522static stmt_ty import_from_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100523static asdl_alias_seq* import_from_targets_rule(Parser *p);
524static asdl_alias_seq* import_from_as_names_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100525static alias_ty import_from_as_name_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100526static asdl_alias_seq* dotted_as_names_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100527static alias_ty dotted_as_name_rule(Parser *p);
528static expr_ty dotted_name_rule(Parser *p);
529static stmt_ty if_stmt_rule(Parser *p);
530static stmt_ty elif_stmt_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100531static asdl_stmt_seq* else_block_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100532static stmt_ty while_stmt_rule(Parser *p);
533static stmt_ty for_stmt_rule(Parser *p);
534static stmt_ty with_stmt_rule(Parser *p);
535static withitem_ty with_item_rule(Parser *p);
536static stmt_ty try_stmt_rule(Parser *p);
537static excepthandler_ty except_block_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100538static asdl_stmt_seq* finally_block_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800539static stmt_ty match_stmt_rule(Parser *p);
540static expr_ty subject_expr_rule(Parser *p);
541static match_case_ty case_block_rule(Parser *p);
542static expr_ty guard_rule(Parser *p);
Nick Coghlan1e7b8582021-04-29 15:58:44 +1000543static pattern_ty patterns_rule(Parser *p);
544static pattern_ty pattern_rule(Parser *p);
545static pattern_ty as_pattern_rule(Parser *p);
546static pattern_ty or_pattern_rule(Parser *p);
547static pattern_ty closed_pattern_rule(Parser *p);
548static pattern_ty literal_pattern_rule(Parser *p);
549static expr_ty literal_expr_rule(Parser *p);
550static expr_ty complex_number_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800551static expr_ty signed_number_rule(Parser *p);
Brandt Bucherdbe60ee2021-04-29 17:19:28 -0700552static expr_ty signed_real_number_rule(Parser *p);
553static expr_ty real_number_rule(Parser *p);
Nick Coghlan1e7b8582021-04-29 15:58:44 +1000554static expr_ty imaginary_number_rule(Parser *p);
555static pattern_ty capture_pattern_rule(Parser *p);
556static expr_ty pattern_capture_target_rule(Parser *p);
557static pattern_ty wildcard_pattern_rule(Parser *p);
558static pattern_ty value_pattern_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800559static expr_ty attr_rule(Parser *p);
560static expr_ty name_or_attr_rule(Parser *p);
Nick Coghlan1e7b8582021-04-29 15:58:44 +1000561static pattern_ty group_pattern_rule(Parser *p);
562static pattern_ty sequence_pattern_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800563static asdl_seq* open_sequence_pattern_rule(Parser *p);
564static asdl_seq* maybe_sequence_pattern_rule(Parser *p);
Nick Coghlan1e7b8582021-04-29 15:58:44 +1000565static pattern_ty maybe_star_pattern_rule(Parser *p);
566static pattern_ty star_pattern_rule(Parser *p);
567static pattern_ty mapping_pattern_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800568static asdl_seq* items_pattern_rule(Parser *p);
Nick Coghlan1e7b8582021-04-29 15:58:44 +1000569static KeyPatternPair* key_value_pattern_rule(Parser *p);
570static expr_ty double_star_pattern_rule(Parser *p);
571static pattern_ty class_pattern_rule(Parser *p);
572static asdl_pattern_seq* positional_patterns_rule(Parser *p);
573static asdl_seq* keyword_patterns_rule(Parser *p);
574static KeyPatternPair* keyword_pattern_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100575static stmt_ty return_stmt_rule(Parser *p);
576static stmt_ty raise_stmt_rule(Parser *p);
577static stmt_ty function_def_rule(Parser *p);
578static stmt_ty function_def_raw_rule(Parser *p);
579static Token* func_type_comment_rule(Parser *p);
580static arguments_ty params_rule(Parser *p);
581static arguments_ty parameters_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100582static asdl_arg_seq* slash_no_default_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100583static SlashWithDefault* slash_with_default_rule(Parser *p);
584static StarEtc* star_etc_rule(Parser *p);
585static arg_ty kwds_rule(Parser *p);
586static arg_ty param_no_default_rule(Parser *p);
587static NameDefaultPair* param_with_default_rule(Parser *p);
588static NameDefaultPair* param_maybe_default_rule(Parser *p);
589static arg_ty param_rule(Parser *p);
590static expr_ty annotation_rule(Parser *p);
591static expr_ty default_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100592static asdl_expr_seq* decorators_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100593static stmt_ty class_def_rule(Parser *p);
594static stmt_ty class_def_raw_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100595static asdl_stmt_seq* block_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100596static expr_ty star_expressions_rule(Parser *p);
597static expr_ty star_expression_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100598static asdl_expr_seq* star_named_expressions_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100599static expr_ty star_named_expression_rule(Parser *p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -0700600static expr_ty assigment_expression_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100601static expr_ty named_expression_rule(Parser *p);
602static expr_ty annotated_rhs_rule(Parser *p);
603static expr_ty expressions_rule(Parser *p);
604static expr_ty expression_rule(Parser *p);
605static expr_ty lambdef_rule(Parser *p);
606static arguments_ty lambda_params_rule(Parser *p);
607static arguments_ty lambda_parameters_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100608static asdl_arg_seq* lambda_slash_no_default_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100609static SlashWithDefault* lambda_slash_with_default_rule(Parser *p);
610static StarEtc* lambda_star_etc_rule(Parser *p);
611static arg_ty lambda_kwds_rule(Parser *p);
612static arg_ty lambda_param_no_default_rule(Parser *p);
613static NameDefaultPair* lambda_param_with_default_rule(Parser *p);
614static NameDefaultPair* lambda_param_maybe_default_rule(Parser *p);
615static arg_ty lambda_param_rule(Parser *p);
616static expr_ty disjunction_rule(Parser *p);
617static expr_ty conjunction_rule(Parser *p);
618static expr_ty inversion_rule(Parser *p);
619static expr_ty comparison_rule(Parser *p);
620static CmpopExprPair* compare_op_bitwise_or_pair_rule(Parser *p);
621static CmpopExprPair* eq_bitwise_or_rule(Parser *p);
622static CmpopExprPair* noteq_bitwise_or_rule(Parser *p);
623static CmpopExprPair* lte_bitwise_or_rule(Parser *p);
624static CmpopExprPair* lt_bitwise_or_rule(Parser *p);
625static CmpopExprPair* gte_bitwise_or_rule(Parser *p);
626static CmpopExprPair* gt_bitwise_or_rule(Parser *p);
627static CmpopExprPair* notin_bitwise_or_rule(Parser *p);
628static CmpopExprPair* in_bitwise_or_rule(Parser *p);
629static CmpopExprPair* isnot_bitwise_or_rule(Parser *p);
630static CmpopExprPair* is_bitwise_or_rule(Parser *p);
631static expr_ty bitwise_or_rule(Parser *p);
632static expr_ty bitwise_xor_rule(Parser *p);
633static expr_ty bitwise_and_rule(Parser *p);
634static expr_ty shift_expr_rule(Parser *p);
635static expr_ty sum_rule(Parser *p);
636static expr_ty term_rule(Parser *p);
637static expr_ty factor_rule(Parser *p);
638static expr_ty power_rule(Parser *p);
639static expr_ty await_primary_rule(Parser *p);
640static expr_ty primary_rule(Parser *p);
641static expr_ty slices_rule(Parser *p);
642static expr_ty slice_rule(Parser *p);
643static expr_ty atom_rule(Parser *p);
644static expr_ty strings_rule(Parser *p);
645static expr_ty list_rule(Parser *p);
646static expr_ty listcomp_rule(Parser *p);
647static expr_ty tuple_rule(Parser *p);
648static expr_ty group_rule(Parser *p);
649static expr_ty genexp_rule(Parser *p);
650static expr_ty set_rule(Parser *p);
651static expr_ty setcomp_rule(Parser *p);
652static expr_ty dict_rule(Parser *p);
653static expr_ty dictcomp_rule(Parser *p);
654static asdl_seq* double_starred_kvpairs_rule(Parser *p);
655static KeyValuePair* double_starred_kvpair_rule(Parser *p);
656static KeyValuePair* kvpair_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100657static asdl_comprehension_seq* for_if_clauses_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100658static comprehension_ty for_if_clause_rule(Parser *p);
659static expr_ty yield_expr_rule(Parser *p);
660static expr_ty arguments_rule(Parser *p);
661static expr_ty args_rule(Parser *p);
662static asdl_seq* kwargs_rule(Parser *p);
663static expr_ty starred_expression_rule(Parser *p);
664static KeywordOrStarred* kwarg_or_starred_rule(Parser *p);
665static KeywordOrStarred* kwarg_or_double_starred_rule(Parser *p);
666static expr_ty star_targets_rule(Parser *p);
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +0200667static asdl_expr_seq* star_targets_list_seq_rule(Parser *p);
668static asdl_expr_seq* star_targets_tuple_seq_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100669static expr_ty star_target_rule(Parser *p);
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +0200670static expr_ty target_with_star_atom_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100671static expr_ty star_atom_rule(Parser *p);
672static expr_ty single_target_rule(Parser *p);
673static expr_ty single_subscript_attribute_target_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100674static asdl_expr_seq* del_targets_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100675static expr_ty del_target_rule(Parser *p);
676static expr_ty del_t_atom_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100677static asdl_expr_seq* targets_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100678static expr_ty target_rule(Parser *p);
679static expr_ty t_primary_rule(Parser *p);
680static void *t_lookahead_rule(Parser *p);
681static expr_ty t_atom_rule(Parser *p);
Lysandros Nikolaoubca70142020-10-27 00:42:04 +0200682static void *invalid_arguments_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100683static void *invalid_kwarg_rule(Parser *p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -0700684static expr_ty expression_without_invalid_rule(Parser *p);
Pablo Galindob2802482021-04-15 21:38:45 +0100685static void *invalid_expression_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100686static void *invalid_named_expression_rule(Parser *p);
687static void *invalid_assignment_rule(Parser *p);
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +0300688static expr_ty invalid_ann_assign_target_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300689static void *invalid_del_stmt_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100690static void *invalid_block_rule(Parser *p);
Lysandros Nikolaou15acc4e2020-10-27 20:54:20 +0200691static void *invalid_primary_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100692static void *invalid_comprehension_rule(Parser *p);
693static void *invalid_dict_comprehension_rule(Parser *p);
694static void *invalid_parameters_rule(Parser *p);
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +0200695static void *invalid_parameters_helper_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100696static void *invalid_lambda_parameters_rule(Parser *p);
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +0200697static void *invalid_lambda_parameters_helper_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100698static void *invalid_star_etc_rule(Parser *p);
699static void *invalid_lambda_star_etc_rule(Parser *p);
700static void *invalid_double_type_comments_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300701static void *invalid_with_item_rule(Parser *p);
702static void *invalid_for_target_rule(Parser *p);
703static void *invalid_group_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100704static void *invalid_import_from_targets_rule(Parser *p);
Pablo Galindo58fb1562021-02-02 19:54:22 +0000705static void *invalid_with_stmt_rule(Parser *p);
Pablo Galindo56c95df2021-04-21 15:28:21 +0100706static void *invalid_with_stmt_indent_rule(Parser *p);
707static void *invalid_try_stmt_rule(Parser *p);
708static void *invalid_except_stmt_rule(Parser *p);
709static void *invalid_finally_stmt_rule(Parser *p);
710static void *invalid_except_stmt_indent_rule(Parser *p);
Pablo Galindo08fb8ac2021-03-18 01:03:11 +0000711static void *invalid_match_stmt_rule(Parser *p);
712static void *invalid_case_block_rule(Parser *p);
Pablo Galindob86ed8e2021-04-12 16:59:30 +0100713static void *invalid_if_stmt_rule(Parser *p);
714static void *invalid_elif_stmt_rule(Parser *p);
Pablo Galindo56c95df2021-04-21 15:28:21 +0100715static void *invalid_else_stmt_rule(Parser *p);
Pablo Galindob86ed8e2021-04-12 16:59:30 +0100716static void *invalid_while_stmt_rule(Parser *p);
Pablo Galindo56c95df2021-04-21 15:28:21 +0100717static void *invalid_for_stmt_rule(Parser *p);
718static void *invalid_def_raw_rule(Parser *p);
719static void *invalid_class_def_raw_rule(Parser *p);
Pablo Galindoda743502021-04-15 14:06:39 +0100720static void *invalid_double_starred_kvpairs_rule(Parser *p);
721static void *invalid_kvpair_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100722static asdl_seq *_loop0_1_rule(Parser *p);
723static asdl_seq *_loop0_2_rule(Parser *p);
724static asdl_seq *_loop0_4_rule(Parser *p);
725static asdl_seq *_gather_3_rule(Parser *p);
726static asdl_seq *_loop0_6_rule(Parser *p);
727static asdl_seq *_gather_5_rule(Parser *p);
728static asdl_seq *_loop0_8_rule(Parser *p);
729static asdl_seq *_gather_7_rule(Parser *p);
730static asdl_seq *_loop0_10_rule(Parser *p);
731static asdl_seq *_gather_9_rule(Parser *p);
732static asdl_seq *_loop1_11_rule(Parser *p);
733static asdl_seq *_loop0_13_rule(Parser *p);
734static asdl_seq *_gather_12_rule(Parser *p);
735static void *_tmp_14_rule(Parser *p);
736static void *_tmp_15_rule(Parser *p);
737static void *_tmp_16_rule(Parser *p);
738static void *_tmp_17_rule(Parser *p);
739static void *_tmp_18_rule(Parser *p);
740static void *_tmp_19_rule(Parser *p);
741static void *_tmp_20_rule(Parser *p);
742static void *_tmp_21_rule(Parser *p);
743static asdl_seq *_loop1_22_rule(Parser *p);
744static void *_tmp_23_rule(Parser *p);
745static void *_tmp_24_rule(Parser *p);
746static asdl_seq *_loop0_26_rule(Parser *p);
747static asdl_seq *_gather_25_rule(Parser *p);
748static asdl_seq *_loop0_28_rule(Parser *p);
749static asdl_seq *_gather_27_rule(Parser *p);
750static void *_tmp_29_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300751static void *_tmp_30_rule(Parser *p);
752static asdl_seq *_loop0_31_rule(Parser *p);
753static asdl_seq *_loop1_32_rule(Parser *p);
754static asdl_seq *_loop0_34_rule(Parser *p);
755static asdl_seq *_gather_33_rule(Parser *p);
756static void *_tmp_35_rule(Parser *p);
757static asdl_seq *_loop0_37_rule(Parser *p);
758static asdl_seq *_gather_36_rule(Parser *p);
759static void *_tmp_38_rule(Parser *p);
760static asdl_seq *_loop0_40_rule(Parser *p);
761static asdl_seq *_gather_39_rule(Parser *p);
762static asdl_seq *_loop0_42_rule(Parser *p);
763static asdl_seq *_gather_41_rule(Parser *p);
764static asdl_seq *_loop0_44_rule(Parser *p);
765static asdl_seq *_gather_43_rule(Parser *p);
766static asdl_seq *_loop0_46_rule(Parser *p);
767static asdl_seq *_gather_45_rule(Parser *p);
768static void *_tmp_47_rule(Parser *p);
769static asdl_seq *_loop1_48_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100770static void *_tmp_49_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800771static asdl_seq *_loop1_50_rule(Parser *p);
772static asdl_seq *_loop0_52_rule(Parser *p);
773static asdl_seq *_gather_51_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300774static void *_tmp_53_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800775static void *_tmp_54_rule(Parser *p);
776static void *_tmp_55_rule(Parser *p);
Nick Coghlan1e7b8582021-04-29 15:58:44 +1000777static void *_tmp_56_rule(Parser *p);
778static asdl_seq *_loop0_58_rule(Parser *p);
779static asdl_seq *_gather_57_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800780static asdl_seq *_loop0_60_rule(Parser *p);
781static asdl_seq *_gather_59_rule(Parser *p);
782static void *_tmp_61_rule(Parser *p);
783static asdl_seq *_loop0_63_rule(Parser *p);
784static asdl_seq *_gather_62_rule(Parser *p);
785static asdl_seq *_loop0_65_rule(Parser *p);
786static asdl_seq *_gather_64_rule(Parser *p);
787static void *_tmp_66_rule(Parser *p);
788static void *_tmp_67_rule(Parser *p);
789static void *_tmp_68_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300790static void *_tmp_69_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800791static asdl_seq *_loop0_70_rule(Parser *p);
792static asdl_seq *_loop0_71_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000793static asdl_seq *_loop0_72_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000794static asdl_seq *_loop1_73_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300795static asdl_seq *_loop0_74_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800796static asdl_seq *_loop1_75_rule(Parser *p);
797static asdl_seq *_loop1_76_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000798static asdl_seq *_loop1_77_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300799static asdl_seq *_loop0_78_rule(Parser *p);
800static asdl_seq *_loop1_79_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800801static asdl_seq *_loop0_80_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100802static asdl_seq *_loop1_81_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000803static asdl_seq *_loop0_82_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300804static asdl_seq *_loop1_83_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800805static asdl_seq *_loop1_84_rule(Parser *p);
806static void *_tmp_85_rule(Parser *p);
807static asdl_seq *_loop1_86_rule(Parser *p);
808static asdl_seq *_loop0_88_rule(Parser *p);
809static asdl_seq *_gather_87_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100810static asdl_seq *_loop1_89_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800811static asdl_seq *_loop0_90_rule(Parser *p);
812static asdl_seq *_loop0_91_rule(Parser *p);
813static asdl_seq *_loop0_92_rule(Parser *p);
814static asdl_seq *_loop1_93_rule(Parser *p);
815static asdl_seq *_loop0_94_rule(Parser *p);
816static asdl_seq *_loop1_95_rule(Parser *p);
817static asdl_seq *_loop1_96_rule(Parser *p);
818static asdl_seq *_loop1_97_rule(Parser *p);
819static asdl_seq *_loop0_98_rule(Parser *p);
820static asdl_seq *_loop1_99_rule(Parser *p);
821static asdl_seq *_loop0_100_rule(Parser *p);
822static asdl_seq *_loop1_101_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000823static asdl_seq *_loop0_102_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000824static asdl_seq *_loop1_103_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800825static asdl_seq *_loop1_104_rule(Parser *p);
826static asdl_seq *_loop1_105_rule(Parser *p);
827static asdl_seq *_loop1_106_rule(Parser *p);
828static void *_tmp_107_rule(Parser *p);
829static asdl_seq *_loop0_109_rule(Parser *p);
830static asdl_seq *_gather_108_rule(Parser *p);
831static void *_tmp_110_rule(Parser *p);
832static void *_tmp_111_rule(Parser *p);
833static void *_tmp_112_rule(Parser *p);
834static void *_tmp_113_rule(Parser *p);
835static asdl_seq *_loop1_114_rule(Parser *p);
836static void *_tmp_115_rule(Parser *p);
837static void *_tmp_116_rule(Parser *p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -0700838static void *_tmp_117_rule(Parser *p);
839static asdl_seq *_loop0_119_rule(Parser *p);
840static asdl_seq *_gather_118_rule(Parser *p);
841static asdl_seq *_loop1_120_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800842static asdl_seq *_loop0_121_rule(Parser *p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -0700843static asdl_seq *_loop0_122_rule(Parser *p);
844static asdl_seq *_loop0_124_rule(Parser *p);
845static asdl_seq *_gather_123_rule(Parser *p);
846static void *_tmp_125_rule(Parser *p);
847static asdl_seq *_loop0_127_rule(Parser *p);
848static asdl_seq *_gather_126_rule(Parser *p);
849static asdl_seq *_loop0_129_rule(Parser *p);
850static asdl_seq *_gather_128_rule(Parser *p);
851static asdl_seq *_loop0_131_rule(Parser *p);
852static asdl_seq *_gather_130_rule(Parser *p);
Pablo Galindo835f14f2021-01-31 22:52:56 +0000853static asdl_seq *_loop0_133_rule(Parser *p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -0700854static asdl_seq *_gather_132_rule(Parser *p);
855static asdl_seq *_loop0_134_rule(Parser *p);
856static asdl_seq *_loop0_136_rule(Parser *p);
857static asdl_seq *_gather_135_rule(Parser *p);
858static asdl_seq *_loop1_137_rule(Parser *p);
859static void *_tmp_138_rule(Parser *p);
860static asdl_seq *_loop0_140_rule(Parser *p);
861static asdl_seq *_gather_139_rule(Parser *p);
862static asdl_seq *_loop0_142_rule(Parser *p);
863static asdl_seq *_gather_141_rule(Parser *p);
Pablo Galindob86ed8e2021-04-12 16:59:30 +0100864static void *_tmp_143_rule(Parser *p);
865static void *_tmp_144_rule(Parser *p);
866static void *_tmp_145_rule(Parser *p);
Pablo Galindob2802482021-04-15 21:38:45 +0100867static void *_tmp_146_rule(Parser *p);
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -0700868static void *_tmp_147_rule(Parser *p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -0700869static void *_tmp_148_rule(Parser *p);
Pablo Galindob2802482021-04-15 21:38:45 +0100870static asdl_seq *_loop0_149_rule(Parser *p);
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -0700871static asdl_seq *_loop0_150_rule(Parser *p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -0700872static asdl_seq *_loop0_151_rule(Parser *p);
Pablo Galindob2802482021-04-15 21:38:45 +0100873static void *_tmp_152_rule(Parser *p);
Pablo Galindoa77aac42021-04-23 14:27:05 +0100874static void *_tmp_153_rule(Parser *p);
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -0700875static void *_tmp_154_rule(Parser *p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -0700876static void *_tmp_155_rule(Parser *p);
877static asdl_seq *_loop0_156_rule(Parser *p);
878static asdl_seq *_loop1_157_rule(Parser *p);
879static asdl_seq *_loop0_158_rule(Parser *p);
880static asdl_seq *_loop1_159_rule(Parser *p);
Pablo Galindoa77aac42021-04-23 14:27:05 +0100881static void *_tmp_160_rule(Parser *p);
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -0700882static void *_tmp_161_rule(Parser *p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -0700883static void *_tmp_162_rule(Parser *p);
884static asdl_seq *_loop0_164_rule(Parser *p);
885static asdl_seq *_gather_163_rule(Parser *p);
886static asdl_seq *_loop0_166_rule(Parser *p);
887static asdl_seq *_gather_165_rule(Parser *p);
888static asdl_seq *_loop0_168_rule(Parser *p);
889static asdl_seq *_gather_167_rule(Parser *p);
890static asdl_seq *_loop0_170_rule(Parser *p);
891static asdl_seq *_gather_169_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800892static void *_tmp_171_rule(Parser *p);
893static void *_tmp_172_rule(Parser *p);
Pablo Galindoa77aac42021-04-23 14:27:05 +0100894static void *_tmp_173_rule(Parser *p);
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -0700895static void *_tmp_174_rule(Parser *p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -0700896static void *_tmp_175_rule(Parser *p);
Pablo Galindoe53f72a2021-06-04 00:11:43 +0100897static void *_tmp_176_rule(Parser *p);
898static asdl_seq *_loop0_178_rule(Parser *p);
899static asdl_seq *_gather_177_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800900static void *_tmp_179_rule(Parser *p);
901static void *_tmp_180_rule(Parser *p);
902static void *_tmp_181_rule(Parser *p);
903static void *_tmp_182_rule(Parser *p);
Pablo Galindob86ed8e2021-04-12 16:59:30 +0100904static void *_tmp_183_rule(Parser *p);
905static void *_tmp_184_rule(Parser *p);
906static void *_tmp_185_rule(Parser *p);
Pablo Galindoda743502021-04-15 14:06:39 +0100907static void *_tmp_186_rule(Parser *p);
908static void *_tmp_187_rule(Parser *p);
909static void *_tmp_188_rule(Parser *p);
Pablo Galindob2802482021-04-15 21:38:45 +0100910static void *_tmp_189_rule(Parser *p);
Pablo Galindo56c95df2021-04-21 15:28:21 +0100911static void *_tmp_190_rule(Parser *p);
912static void *_tmp_191_rule(Parser *p);
913static void *_tmp_192_rule(Parser *p);
914static void *_tmp_193_rule(Parser *p);
915static void *_tmp_194_rule(Parser *p);
916static void *_tmp_195_rule(Parser *p);
917static void *_tmp_196_rule(Parser *p);
918static void *_tmp_197_rule(Parser *p);
919static void *_tmp_198_rule(Parser *p);
920static void *_tmp_199_rule(Parser *p);
921static void *_tmp_200_rule(Parser *p);
Pablo Galindoa77aac42021-04-23 14:27:05 +0100922static void *_tmp_201_rule(Parser *p);
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -0700923static void *_tmp_202_rule(Parser *p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -0700924static void *_tmp_203_rule(Parser *p);
925static void *_tmp_204_rule(Parser *p);
Pablo Galindoe53f72a2021-06-04 00:11:43 +0100926static void *_tmp_205_rule(Parser *p);
Guido van Rossum85a5fbb1990-10-14 12:07:46 +0000927
928
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100929// file: statements? $
930static mod_ty
931file_rule(Parser *p)
Guido van Rossum85a5fbb1990-10-14 12:07:46 +0000932{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100933 D(p->level++);
934 if (p->error_indicator) {
935 D(p->level--);
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000936 return NULL;
937 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100938 mod_ty _res = NULL;
939 int _mark = p->mark;
940 { // statements? $
941 if (p->error_indicator) {
942 D(p->level--);
943 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000944 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100945 D(fprintf(stderr, "%*c> file[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statements? $"));
946 void *a;
947 Token * endmarker_var;
948 if (
949 (a = statements_rule(p), 1) // statements?
950 &&
951 (endmarker_var = _PyPegen_expect_token(p, ENDMARKER)) // token='ENDMARKER'
952 )
953 {
954 D(fprintf(stderr, "%*c+ file[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "statements? $"));
955 _res = _PyPegen_make_module ( p , a );
956 if (_res == NULL && PyErr_Occurred()) {
957 p->error_indicator = 1;
958 D(p->level--);
959 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000960 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100961 goto done;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000962 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100963 p->mark = _mark;
964 D(fprintf(stderr, "%*c%s file[%d-%d]: %s failed!\n", p->level, ' ',
965 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statements? $"));
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000966 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100967 _res = NULL;
968 done:
969 D(p->level--);
970 return _res;
Guido van Rossum85a5fbb1990-10-14 12:07:46 +0000971}
972
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100973// interactive: statement_newline
974static mod_ty
975interactive_rule(Parser *p)
Guido van Rossumb09f7ed2001-07-15 21:08:29 +0000976{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100977 D(p->level++);
978 if (p->error_indicator) {
979 D(p->level--);
980 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000981 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100982 mod_ty _res = NULL;
983 int _mark = p->mark;
984 { // statement_newline
985 if (p->error_indicator) {
986 D(p->level--);
987 return NULL;
988 }
989 D(fprintf(stderr, "%*c> interactive[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statement_newline"));
Pablo Galindoa5634c42020-09-16 19:42:00 +0100990 asdl_stmt_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100991 if (
992 (a = statement_newline_rule(p)) // statement_newline
993 )
994 {
995 D(fprintf(stderr, "%*c+ interactive[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "statement_newline"));
Victor Stinnerd27f8d22021-04-07 21:34:22 +0200996 _res = _PyAST_Interactive ( a , p -> arena );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100997 if (_res == NULL && PyErr_Occurred()) {
998 p->error_indicator = 1;
999 D(p->level--);
1000 return NULL;
1001 }
1002 goto done;
1003 }
1004 p->mark = _mark;
1005 D(fprintf(stderr, "%*c%s interactive[%d-%d]: %s failed!\n", p->level, ' ',
1006 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statement_newline"));
1007 }
1008 _res = NULL;
1009 done:
1010 D(p->level--);
1011 return _res;
Guido van Rossumb09f7ed2001-07-15 21:08:29 +00001012}
1013
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001014// eval: expressions NEWLINE* $
1015static mod_ty
1016eval_rule(Parser *p)
Guido van Rossum85a5fbb1990-10-14 12:07:46 +00001017{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001018 D(p->level++);
1019 if (p->error_indicator) {
1020 D(p->level--);
1021 return NULL;
1022 }
1023 mod_ty _res = NULL;
1024 int _mark = p->mark;
1025 { // expressions NEWLINE* $
1026 if (p->error_indicator) {
1027 D(p->level--);
1028 return NULL;
1029 }
1030 D(fprintf(stderr, "%*c> eval[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expressions NEWLINE* $"));
1031 asdl_seq * _loop0_1_var;
1032 expr_ty a;
1033 Token * endmarker_var;
1034 if (
1035 (a = expressions_rule(p)) // expressions
1036 &&
1037 (_loop0_1_var = _loop0_1_rule(p)) // NEWLINE*
1038 &&
1039 (endmarker_var = _PyPegen_expect_token(p, ENDMARKER)) // token='ENDMARKER'
1040 )
1041 {
1042 D(fprintf(stderr, "%*c+ eval[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expressions NEWLINE* $"));
Victor Stinnerd27f8d22021-04-07 21:34:22 +02001043 _res = _PyAST_Expression ( a , p -> arena );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001044 if (_res == NULL && PyErr_Occurred()) {
1045 p->error_indicator = 1;
1046 D(p->level--);
1047 return NULL;
1048 }
1049 goto done;
1050 }
1051 p->mark = _mark;
1052 D(fprintf(stderr, "%*c%s eval[%d-%d]: %s failed!\n", p->level, ' ',
1053 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expressions NEWLINE* $"));
1054 }
1055 _res = NULL;
1056 done:
1057 D(p->level--);
1058 return _res;
1059}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +00001060
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001061// func_type: '(' type_expressions? ')' '->' expression NEWLINE* $
1062static mod_ty
1063func_type_rule(Parser *p)
1064{
1065 D(p->level++);
1066 if (p->error_indicator) {
1067 D(p->level--);
1068 return NULL;
1069 }
1070 mod_ty _res = NULL;
1071 int _mark = p->mark;
1072 { // '(' type_expressions? ')' '->' expression NEWLINE* $
1073 if (p->error_indicator) {
1074 D(p->level--);
1075 return NULL;
1076 }
1077 D(fprintf(stderr, "%*c> func_type[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' type_expressions? ')' '->' expression NEWLINE* $"));
1078 Token * _literal;
1079 Token * _literal_1;
1080 Token * _literal_2;
1081 asdl_seq * _loop0_2_var;
1082 void *a;
1083 expr_ty b;
1084 Token * endmarker_var;
1085 if (
1086 (_literal = _PyPegen_expect_token(p, 7)) // token='('
1087 &&
1088 (a = type_expressions_rule(p), 1) // type_expressions?
1089 &&
1090 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
1091 &&
1092 (_literal_2 = _PyPegen_expect_token(p, 51)) // token='->'
1093 &&
1094 (b = expression_rule(p)) // expression
1095 &&
1096 (_loop0_2_var = _loop0_2_rule(p)) // NEWLINE*
1097 &&
1098 (endmarker_var = _PyPegen_expect_token(p, ENDMARKER)) // token='ENDMARKER'
1099 )
1100 {
1101 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 +02001102 _res = _PyAST_FunctionType ( a , b , p -> arena );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001103 if (_res == NULL && PyErr_Occurred()) {
1104 p->error_indicator = 1;
1105 D(p->level--);
1106 return NULL;
1107 }
1108 goto done;
1109 }
1110 p->mark = _mark;
1111 D(fprintf(stderr, "%*c%s func_type[%d-%d]: %s failed!\n", p->level, ' ',
1112 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' type_expressions? ')' '->' expression NEWLINE* $"));
1113 }
1114 _res = NULL;
1115 done:
1116 D(p->level--);
1117 return _res;
1118}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +00001119
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001120// fstring: star_expressions
1121static expr_ty
1122fstring_rule(Parser *p)
1123{
1124 D(p->level++);
1125 if (p->error_indicator) {
1126 D(p->level--);
1127 return NULL;
1128 }
1129 expr_ty _res = NULL;
1130 int _mark = p->mark;
1131 { // star_expressions
1132 if (p->error_indicator) {
1133 D(p->level--);
1134 return NULL;
1135 }
1136 D(fprintf(stderr, "%*c> fstring[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
1137 expr_ty star_expressions_var;
1138 if (
1139 (star_expressions_var = star_expressions_rule(p)) // star_expressions
1140 )
1141 {
1142 D(fprintf(stderr, "%*c+ fstring[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
1143 _res = star_expressions_var;
1144 goto done;
1145 }
1146 p->mark = _mark;
1147 D(fprintf(stderr, "%*c%s fstring[%d-%d]: %s failed!\n", p->level, ' ',
1148 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
1149 }
1150 _res = NULL;
1151 done:
1152 D(p->level--);
1153 return _res;
1154}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +00001155
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001156// type_expressions:
1157// | ','.expression+ ',' '*' expression ',' '**' expression
1158// | ','.expression+ ',' '*' expression
1159// | ','.expression+ ',' '**' expression
1160// | '*' expression ',' '**' expression
1161// | '*' expression
1162// | '**' expression
1163// | ','.expression+
Pablo Galindoa5634c42020-09-16 19:42:00 +01001164static asdl_expr_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001165type_expressions_rule(Parser *p)
1166{
1167 D(p->level++);
1168 if (p->error_indicator) {
1169 D(p->level--);
1170 return NULL;
1171 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01001172 asdl_expr_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001173 int _mark = p->mark;
1174 { // ','.expression+ ',' '*' expression ',' '**' expression
1175 if (p->error_indicator) {
1176 D(p->level--);
1177 return NULL;
1178 }
1179 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.expression+ ',' '*' expression ',' '**' expression"));
1180 Token * _literal;
1181 Token * _literal_1;
1182 Token * _literal_2;
1183 Token * _literal_3;
1184 asdl_seq * a;
1185 expr_ty b;
1186 expr_ty c;
1187 if (
1188 (a = _gather_3_rule(p)) // ','.expression+
1189 &&
1190 (_literal = _PyPegen_expect_token(p, 12)) // token=','
1191 &&
1192 (_literal_1 = _PyPegen_expect_token(p, 16)) // token='*'
1193 &&
1194 (b = expression_rule(p)) // expression
1195 &&
1196 (_literal_2 = _PyPegen_expect_token(p, 12)) // token=','
1197 &&
1198 (_literal_3 = _PyPegen_expect_token(p, 35)) // token='**'
1199 &&
1200 (c = expression_rule(p)) // expression
1201 )
1202 {
1203 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 +03001204 _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 +01001205 if (_res == NULL && PyErr_Occurred()) {
1206 p->error_indicator = 1;
1207 D(p->level--);
1208 return NULL;
1209 }
1210 goto done;
1211 }
1212 p->mark = _mark;
1213 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1214 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+ ',' '*' expression ',' '**' expression"));
1215 }
1216 { // ','.expression+ ',' '*' expression
1217 if (p->error_indicator) {
1218 D(p->level--);
1219 return NULL;
1220 }
1221 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.expression+ ',' '*' expression"));
1222 Token * _literal;
1223 Token * _literal_1;
1224 asdl_seq * a;
1225 expr_ty b;
1226 if (
1227 (a = _gather_5_rule(p)) // ','.expression+
1228 &&
1229 (_literal = _PyPegen_expect_token(p, 12)) // token=','
1230 &&
1231 (_literal_1 = _PyPegen_expect_token(p, 16)) // token='*'
1232 &&
1233 (b = expression_rule(p)) // expression
1234 )
1235 {
1236 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 +01001237 _res = ( asdl_expr_seq * ) _PyPegen_seq_append_to_end ( p , a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001238 if (_res == NULL && PyErr_Occurred()) {
1239 p->error_indicator = 1;
1240 D(p->level--);
1241 return NULL;
1242 }
1243 goto done;
1244 }
1245 p->mark = _mark;
1246 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1247 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+ ',' '*' expression"));
1248 }
1249 { // ','.expression+ ',' '**' expression
1250 if (p->error_indicator) {
1251 D(p->level--);
1252 return NULL;
1253 }
1254 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.expression+ ',' '**' expression"));
1255 Token * _literal;
1256 Token * _literal_1;
1257 asdl_seq * a;
1258 expr_ty b;
1259 if (
1260 (a = _gather_7_rule(p)) // ','.expression+
1261 &&
1262 (_literal = _PyPegen_expect_token(p, 12)) // token=','
1263 &&
1264 (_literal_1 = _PyPegen_expect_token(p, 35)) // token='**'
1265 &&
1266 (b = expression_rule(p)) // expression
1267 )
1268 {
1269 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 +01001270 _res = ( asdl_expr_seq * ) _PyPegen_seq_append_to_end ( p , a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001271 if (_res == NULL && PyErr_Occurred()) {
1272 p->error_indicator = 1;
1273 D(p->level--);
1274 return NULL;
1275 }
1276 goto done;
1277 }
1278 p->mark = _mark;
1279 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1280 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+ ',' '**' expression"));
1281 }
1282 { // '*' expression ',' '**' expression
1283 if (p->error_indicator) {
1284 D(p->level--);
1285 return NULL;
1286 }
1287 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' expression ',' '**' expression"));
1288 Token * _literal;
1289 Token * _literal_1;
1290 Token * _literal_2;
1291 expr_ty a;
1292 expr_ty b;
1293 if (
1294 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
1295 &&
1296 (a = expression_rule(p)) // expression
1297 &&
1298 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
1299 &&
1300 (_literal_2 = _PyPegen_expect_token(p, 35)) // token='**'
1301 &&
1302 (b = expression_rule(p)) // expression
1303 )
1304 {
1305 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 +03001306 _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 +01001307 if (_res == NULL && PyErr_Occurred()) {
1308 p->error_indicator = 1;
1309 D(p->level--);
1310 return NULL;
1311 }
1312 goto done;
1313 }
1314 p->mark = _mark;
1315 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1316 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' expression ',' '**' expression"));
1317 }
1318 { // '*' expression
1319 if (p->error_indicator) {
1320 D(p->level--);
1321 return NULL;
1322 }
1323 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' expression"));
1324 Token * _literal;
1325 expr_ty a;
1326 if (
1327 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
1328 &&
1329 (a = expression_rule(p)) // expression
1330 )
1331 {
1332 D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' expression"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001333 _res = ( asdl_expr_seq * ) _PyPegen_singleton_seq ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001334 if (_res == NULL && PyErr_Occurred()) {
1335 p->error_indicator = 1;
1336 D(p->level--);
1337 return NULL;
1338 }
1339 goto done;
1340 }
1341 p->mark = _mark;
1342 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1343 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' expression"));
1344 }
1345 { // '**' expression
1346 if (p->error_indicator) {
1347 D(p->level--);
1348 return NULL;
1349 }
1350 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' expression"));
1351 Token * _literal;
1352 expr_ty a;
1353 if (
1354 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
1355 &&
1356 (a = expression_rule(p)) // expression
1357 )
1358 {
1359 D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' expression"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001360 _res = ( asdl_expr_seq * ) _PyPegen_singleton_seq ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001361 if (_res == NULL && PyErr_Occurred()) {
1362 p->error_indicator = 1;
1363 D(p->level--);
1364 return NULL;
1365 }
1366 goto done;
1367 }
1368 p->mark = _mark;
1369 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1370 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' expression"));
1371 }
1372 { // ','.expression+
1373 if (p->error_indicator) {
1374 D(p->level--);
1375 return NULL;
1376 }
1377 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.expression+"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001378 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001379 if (
Pablo Galindoa5634c42020-09-16 19:42:00 +01001380 (a = (asdl_expr_seq*)_gather_9_rule(p)) // ','.expression+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001381 )
1382 {
1383 D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.expression+"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001384 _res = a;
1385 if (_res == NULL && PyErr_Occurred()) {
1386 p->error_indicator = 1;
1387 D(p->level--);
1388 return NULL;
1389 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001390 goto done;
1391 }
1392 p->mark = _mark;
1393 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1394 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+"));
1395 }
1396 _res = NULL;
1397 done:
1398 D(p->level--);
1399 return _res;
1400}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +00001401
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001402// statements: statement+
Pablo Galindoa5634c42020-09-16 19:42:00 +01001403static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001404statements_rule(Parser *p)
1405{
1406 D(p->level++);
1407 if (p->error_indicator) {
1408 D(p->level--);
1409 return NULL;
1410 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01001411 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001412 int _mark = p->mark;
1413 { // statement+
1414 if (p->error_indicator) {
1415 D(p->level--);
1416 return NULL;
1417 }
1418 D(fprintf(stderr, "%*c> statements[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statement+"));
1419 asdl_seq * a;
1420 if (
1421 (a = _loop1_11_rule(p)) // statement+
1422 )
1423 {
1424 D(fprintf(stderr, "%*c+ statements[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "statement+"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001425 _res = ( asdl_stmt_seq * ) _PyPegen_seq_flatten ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001426 if (_res == NULL && PyErr_Occurred()) {
1427 p->error_indicator = 1;
1428 D(p->level--);
1429 return NULL;
1430 }
1431 goto done;
1432 }
1433 p->mark = _mark;
1434 D(fprintf(stderr, "%*c%s statements[%d-%d]: %s failed!\n", p->level, ' ',
1435 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statement+"));
1436 }
1437 _res = NULL;
1438 done:
1439 D(p->level--);
1440 return _res;
1441}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +00001442
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001443// statement: compound_stmt | simple_stmts
Pablo Galindoa5634c42020-09-16 19:42:00 +01001444static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001445statement_rule(Parser *p)
1446{
1447 D(p->level++);
1448 if (p->error_indicator) {
1449 D(p->level--);
1450 return NULL;
1451 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01001452 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001453 int _mark = p->mark;
1454 { // compound_stmt
1455 if (p->error_indicator) {
1456 D(p->level--);
1457 return NULL;
1458 }
1459 D(fprintf(stderr, "%*c> statement[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "compound_stmt"));
1460 stmt_ty a;
1461 if (
1462 (a = compound_stmt_rule(p)) // compound_stmt
1463 )
1464 {
1465 D(fprintf(stderr, "%*c+ statement[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "compound_stmt"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001466 _res = ( asdl_stmt_seq * ) _PyPegen_singleton_seq ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001467 if (_res == NULL && PyErr_Occurred()) {
1468 p->error_indicator = 1;
1469 D(p->level--);
1470 return NULL;
1471 }
1472 goto done;
1473 }
1474 p->mark = _mark;
1475 D(fprintf(stderr, "%*c%s statement[%d-%d]: %s failed!\n", p->level, ' ',
1476 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "compound_stmt"));
1477 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001478 { // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001479 if (p->error_indicator) {
1480 D(p->level--);
1481 return NULL;
1482 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001483 D(fprintf(stderr, "%*c> statement[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001484 asdl_stmt_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001485 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001486 (a = (asdl_stmt_seq*)simple_stmts_rule(p)) // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001487 )
1488 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001489 D(fprintf(stderr, "%*c+ statement[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001490 _res = a;
1491 if (_res == NULL && PyErr_Occurred()) {
1492 p->error_indicator = 1;
1493 D(p->level--);
1494 return NULL;
1495 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001496 goto done;
1497 }
1498 p->mark = _mark;
1499 D(fprintf(stderr, "%*c%s statement[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001500 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmts"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001501 }
1502 _res = NULL;
1503 done:
1504 D(p->level--);
1505 return _res;
1506}
1507
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001508// statement_newline: compound_stmt NEWLINE | simple_stmts | NEWLINE | $
Pablo Galindoa5634c42020-09-16 19:42:00 +01001509static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001510statement_newline_rule(Parser *p)
1511{
1512 D(p->level++);
1513 if (p->error_indicator) {
1514 D(p->level--);
1515 return NULL;
1516 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01001517 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001518 int _mark = p->mark;
1519 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
1520 p->error_indicator = 1;
1521 D(p->level--);
1522 return NULL;
1523 }
1524 int _start_lineno = p->tokens[_mark]->lineno;
1525 UNUSED(_start_lineno); // Only used by EXTRA macro
1526 int _start_col_offset = p->tokens[_mark]->col_offset;
1527 UNUSED(_start_col_offset); // Only used by EXTRA macro
1528 { // compound_stmt NEWLINE
1529 if (p->error_indicator) {
1530 D(p->level--);
1531 return NULL;
1532 }
1533 D(fprintf(stderr, "%*c> statement_newline[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "compound_stmt NEWLINE"));
1534 stmt_ty a;
1535 Token * newline_var;
1536 if (
1537 (a = compound_stmt_rule(p)) // compound_stmt
1538 &&
1539 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
1540 )
1541 {
1542 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 +01001543 _res = ( asdl_stmt_seq * ) _PyPegen_singleton_seq ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001544 if (_res == NULL && PyErr_Occurred()) {
1545 p->error_indicator = 1;
1546 D(p->level--);
1547 return NULL;
1548 }
1549 goto done;
1550 }
1551 p->mark = _mark;
1552 D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ',
1553 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "compound_stmt NEWLINE"));
1554 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001555 { // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001556 if (p->error_indicator) {
1557 D(p->level--);
1558 return NULL;
1559 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001560 D(fprintf(stderr, "%*c> statement_newline[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
1561 asdl_stmt_seq* simple_stmts_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001562 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001563 (simple_stmts_var = simple_stmts_rule(p)) // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001564 )
1565 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001566 D(fprintf(stderr, "%*c+ statement_newline[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
1567 _res = simple_stmts_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001568 goto done;
1569 }
1570 p->mark = _mark;
1571 D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001572 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmts"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001573 }
1574 { // NEWLINE
1575 if (p->error_indicator) {
1576 D(p->level--);
1577 return NULL;
1578 }
1579 D(fprintf(stderr, "%*c> statement_newline[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
1580 Token * newline_var;
1581 if (
1582 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
1583 )
1584 {
1585 D(fprintf(stderr, "%*c+ statement_newline[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
1586 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1587 if (_token == NULL) {
1588 D(p->level--);
1589 return NULL;
1590 }
1591 int _end_lineno = _token->end_lineno;
1592 UNUSED(_end_lineno); // Only used by EXTRA macro
1593 int _end_col_offset = _token->end_col_offset;
1594 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02001595 _res = ( asdl_stmt_seq * ) _PyPegen_singleton_seq ( p , CHECK ( stmt_ty , _PyAST_Pass ( EXTRA ) ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001596 if (_res == NULL && PyErr_Occurred()) {
1597 p->error_indicator = 1;
1598 D(p->level--);
1599 return NULL;
1600 }
1601 goto done;
1602 }
1603 p->mark = _mark;
1604 D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ',
1605 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
1606 }
1607 { // $
1608 if (p->error_indicator) {
1609 D(p->level--);
1610 return NULL;
1611 }
1612 D(fprintf(stderr, "%*c> statement_newline[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "$"));
1613 Token * endmarker_var;
1614 if (
1615 (endmarker_var = _PyPegen_expect_token(p, ENDMARKER)) // token='ENDMARKER'
1616 )
1617 {
1618 D(fprintf(stderr, "%*c+ statement_newline[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "$"));
1619 _res = _PyPegen_interactive_exit ( p );
1620 if (_res == NULL && PyErr_Occurred()) {
1621 p->error_indicator = 1;
1622 D(p->level--);
1623 return NULL;
1624 }
1625 goto done;
1626 }
1627 p->mark = _mark;
1628 D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ',
1629 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "$"));
1630 }
1631 _res = NULL;
1632 done:
1633 D(p->level--);
1634 return _res;
1635}
1636
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001637// simple_stmts: simple_stmt !';' NEWLINE | ';'.simple_stmt+ ';'? NEWLINE
Pablo Galindoa5634c42020-09-16 19:42:00 +01001638static asdl_stmt_seq*
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001639simple_stmts_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001640{
1641 D(p->level++);
1642 if (p->error_indicator) {
1643 D(p->level--);
1644 return NULL;
1645 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01001646 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001647 int _mark = p->mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001648 { // simple_stmt !';' NEWLINE
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001649 if (p->error_indicator) {
1650 D(p->level--);
1651 return NULL;
1652 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001653 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 +01001654 stmt_ty a;
1655 Token * newline_var;
1656 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001657 (a = simple_stmt_rule(p)) // simple_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001658 &&
1659 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 13) // token=';'
1660 &&
1661 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
1662 )
1663 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001664 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 +01001665 _res = ( asdl_stmt_seq * ) _PyPegen_singleton_seq ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001666 if (_res == NULL && PyErr_Occurred()) {
1667 p->error_indicator = 1;
1668 D(p->level--);
1669 return NULL;
1670 }
1671 goto done;
1672 }
1673 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001674 D(fprintf(stderr, "%*c%s simple_stmts[%d-%d]: %s failed!\n", p->level, ' ',
1675 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmt !';' NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001676 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001677 { // ';'.simple_stmt+ ';'? NEWLINE
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001678 if (p->error_indicator) {
1679 D(p->level--);
1680 return NULL;
1681 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001682 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 +01001683 void *_opt_var;
1684 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +01001685 asdl_stmt_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001686 Token * newline_var;
1687 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001688 (a = (asdl_stmt_seq*)_gather_12_rule(p)) // ';'.simple_stmt+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001689 &&
1690 (_opt_var = _PyPegen_expect_token(p, 13), 1) // ';'?
1691 &&
1692 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
1693 )
1694 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001695 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 +01001696 _res = a;
1697 if (_res == NULL && PyErr_Occurred()) {
1698 p->error_indicator = 1;
1699 D(p->level--);
1700 return NULL;
1701 }
1702 goto done;
1703 }
1704 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001705 D(fprintf(stderr, "%*c%s simple_stmts[%d-%d]: %s failed!\n", p->level, ' ',
1706 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "';'.simple_stmt+ ';'? NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001707 }
1708 _res = NULL;
1709 done:
1710 D(p->level--);
1711 return _res;
1712}
1713
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001714// simple_stmt:
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001715// | assignment
1716// | star_expressions
1717// | &'return' return_stmt
1718// | &('import' | 'from') import_stmt
1719// | &'raise' raise_stmt
1720// | 'pass'
1721// | &'del' del_stmt
1722// | &'yield' yield_stmt
1723// | &'assert' assert_stmt
1724// | 'break'
1725// | 'continue'
1726// | &'global' global_stmt
1727// | &'nonlocal' nonlocal_stmt
1728static stmt_ty
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001729simple_stmt_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001730{
1731 D(p->level++);
1732 if (p->error_indicator) {
1733 D(p->level--);
1734 return NULL;
1735 }
1736 stmt_ty _res = NULL;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001737 if (_PyPegen_is_memoized(p, simple_stmt_type, &_res)) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001738 D(p->level--);
1739 return _res;
1740 }
1741 int _mark = p->mark;
1742 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
1743 p->error_indicator = 1;
1744 D(p->level--);
1745 return NULL;
1746 }
1747 int _start_lineno = p->tokens[_mark]->lineno;
1748 UNUSED(_start_lineno); // Only used by EXTRA macro
1749 int _start_col_offset = p->tokens[_mark]->col_offset;
1750 UNUSED(_start_col_offset); // Only used by EXTRA macro
1751 { // assignment
1752 if (p->error_indicator) {
1753 D(p->level--);
1754 return NULL;
1755 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001756 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "assignment"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001757 stmt_ty assignment_var;
1758 if (
1759 (assignment_var = assignment_rule(p)) // assignment
1760 )
1761 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001762 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "assignment"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001763 _res = assignment_var;
1764 goto done;
1765 }
1766 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001767 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001768 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "assignment"));
1769 }
1770 { // star_expressions
1771 if (p->error_indicator) {
1772 D(p->level--);
1773 return NULL;
1774 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001775 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001776 expr_ty e;
1777 if (
1778 (e = star_expressions_rule(p)) // star_expressions
1779 )
1780 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001781 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 +01001782 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1783 if (_token == NULL) {
1784 D(p->level--);
1785 return NULL;
1786 }
1787 int _end_lineno = _token->end_lineno;
1788 UNUSED(_end_lineno); // Only used by EXTRA macro
1789 int _end_col_offset = _token->end_col_offset;
1790 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02001791 _res = _PyAST_Expr ( e , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001792 if (_res == NULL && PyErr_Occurred()) {
1793 p->error_indicator = 1;
1794 D(p->level--);
1795 return NULL;
1796 }
1797 goto done;
1798 }
1799 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001800 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001801 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
1802 }
1803 { // &'return' return_stmt
1804 if (p->error_indicator) {
1805 D(p->level--);
1806 return NULL;
1807 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001808 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 +01001809 stmt_ty return_stmt_var;
1810 if (
1811 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 500) // token='return'
1812 &&
1813 (return_stmt_var = return_stmt_rule(p)) // return_stmt
1814 )
1815 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001816 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 +01001817 _res = return_stmt_var;
1818 goto done;
1819 }
1820 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001821 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001822 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'return' return_stmt"));
1823 }
1824 { // &('import' | 'from') import_stmt
1825 if (p->error_indicator) {
1826 D(p->level--);
1827 return NULL;
1828 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001829 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 +01001830 stmt_ty import_stmt_var;
1831 if (
1832 _PyPegen_lookahead(1, _tmp_14_rule, p)
1833 &&
1834 (import_stmt_var = import_stmt_rule(p)) // import_stmt
1835 )
1836 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001837 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 +01001838 _res = import_stmt_var;
1839 goto done;
1840 }
1841 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001842 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001843 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('import' | 'from') import_stmt"));
1844 }
1845 { // &'raise' raise_stmt
1846 if (p->error_indicator) {
1847 D(p->level--);
1848 return NULL;
1849 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001850 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 +01001851 stmt_ty raise_stmt_var;
1852 if (
1853 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 501) // token='raise'
1854 &&
1855 (raise_stmt_var = raise_stmt_rule(p)) // raise_stmt
1856 )
1857 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001858 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 +01001859 _res = raise_stmt_var;
1860 goto done;
1861 }
1862 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001863 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001864 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'raise' raise_stmt"));
1865 }
1866 { // 'pass'
1867 if (p->error_indicator) {
1868 D(p->level--);
1869 return NULL;
1870 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001871 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'pass'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001872 Token * _keyword;
1873 if (
1874 (_keyword = _PyPegen_expect_token(p, 502)) // token='pass'
1875 )
1876 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001877 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'pass'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001878 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1879 if (_token == NULL) {
1880 D(p->level--);
1881 return NULL;
1882 }
1883 int _end_lineno = _token->end_lineno;
1884 UNUSED(_end_lineno); // Only used by EXTRA macro
1885 int _end_col_offset = _token->end_col_offset;
1886 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02001887 _res = _PyAST_Pass ( EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001888 if (_res == NULL && PyErr_Occurred()) {
1889 p->error_indicator = 1;
1890 D(p->level--);
1891 return NULL;
1892 }
1893 goto done;
1894 }
1895 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001896 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001897 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'pass'"));
1898 }
1899 { // &'del' del_stmt
1900 if (p->error_indicator) {
1901 D(p->level--);
1902 return NULL;
1903 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001904 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 +01001905 stmt_ty del_stmt_var;
1906 if (
1907 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 503) // token='del'
1908 &&
1909 (del_stmt_var = del_stmt_rule(p)) // del_stmt
1910 )
1911 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001912 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 +01001913 _res = del_stmt_var;
1914 goto done;
1915 }
1916 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001917 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001918 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'del' del_stmt"));
1919 }
1920 { // &'yield' yield_stmt
1921 if (p->error_indicator) {
1922 D(p->level--);
1923 return NULL;
1924 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001925 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 +01001926 stmt_ty yield_stmt_var;
1927 if (
1928 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 504) // token='yield'
1929 &&
1930 (yield_stmt_var = yield_stmt_rule(p)) // yield_stmt
1931 )
1932 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001933 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 +01001934 _res = yield_stmt_var;
1935 goto done;
1936 }
1937 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001938 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001939 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'yield' yield_stmt"));
1940 }
1941 { // &'assert' assert_stmt
1942 if (p->error_indicator) {
1943 D(p->level--);
1944 return NULL;
1945 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001946 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 +01001947 stmt_ty assert_stmt_var;
1948 if (
1949 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 505) // token='assert'
1950 &&
1951 (assert_stmt_var = assert_stmt_rule(p)) // assert_stmt
1952 )
1953 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001954 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 +01001955 _res = assert_stmt_var;
1956 goto done;
1957 }
1958 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001959 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001960 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'assert' assert_stmt"));
1961 }
1962 { // 'break'
1963 if (p->error_indicator) {
1964 D(p->level--);
1965 return NULL;
1966 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001967 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'break'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001968 Token * _keyword;
1969 if (
1970 (_keyword = _PyPegen_expect_token(p, 506)) // token='break'
1971 )
1972 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001973 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'break'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001974 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1975 if (_token == NULL) {
1976 D(p->level--);
1977 return NULL;
1978 }
1979 int _end_lineno = _token->end_lineno;
1980 UNUSED(_end_lineno); // Only used by EXTRA macro
1981 int _end_col_offset = _token->end_col_offset;
1982 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02001983 _res = _PyAST_Break ( EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001984 if (_res == NULL && PyErr_Occurred()) {
1985 p->error_indicator = 1;
1986 D(p->level--);
1987 return NULL;
1988 }
1989 goto done;
1990 }
1991 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001992 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001993 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'break'"));
1994 }
1995 { // 'continue'
1996 if (p->error_indicator) {
1997 D(p->level--);
1998 return NULL;
1999 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00002000 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'continue'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002001 Token * _keyword;
2002 if (
2003 (_keyword = _PyPegen_expect_token(p, 507)) // token='continue'
2004 )
2005 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00002006 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'continue'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002007 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2008 if (_token == NULL) {
2009 D(p->level--);
2010 return NULL;
2011 }
2012 int _end_lineno = _token->end_lineno;
2013 UNUSED(_end_lineno); // Only used by EXTRA macro
2014 int _end_col_offset = _token->end_col_offset;
2015 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02002016 _res = _PyAST_Continue ( EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002017 if (_res == NULL && PyErr_Occurred()) {
2018 p->error_indicator = 1;
2019 D(p->level--);
2020 return NULL;
2021 }
2022 goto done;
2023 }
2024 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00002025 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002026 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'continue'"));
2027 }
2028 { // &'global' global_stmt
2029 if (p->error_indicator) {
2030 D(p->level--);
2031 return NULL;
2032 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00002033 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 +01002034 stmt_ty global_stmt_var;
2035 if (
2036 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 508) // token='global'
2037 &&
2038 (global_stmt_var = global_stmt_rule(p)) // global_stmt
2039 )
2040 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00002041 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 +01002042 _res = global_stmt_var;
2043 goto done;
2044 }
2045 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00002046 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002047 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'global' global_stmt"));
2048 }
2049 { // &'nonlocal' nonlocal_stmt
2050 if (p->error_indicator) {
2051 D(p->level--);
2052 return NULL;
2053 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00002054 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 +01002055 stmt_ty nonlocal_stmt_var;
2056 if (
2057 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 509) // token='nonlocal'
2058 &&
2059 (nonlocal_stmt_var = nonlocal_stmt_rule(p)) // nonlocal_stmt
2060 )
2061 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00002062 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 +01002063 _res = nonlocal_stmt_var;
2064 goto done;
2065 }
2066 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00002067 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002068 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'nonlocal' nonlocal_stmt"));
2069 }
2070 _res = NULL;
2071 done:
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00002072 _PyPegen_insert_memo(p, _mark, simple_stmt_type, _res);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002073 D(p->level--);
2074 return _res;
2075}
2076
2077// compound_stmt:
2078// | &('def' | '@' | ASYNC) function_def
2079// | &'if' if_stmt
2080// | &('class' | '@') class_def
2081// | &('with' | ASYNC) with_stmt
2082// | &('for' | ASYNC) for_stmt
2083// | &'try' try_stmt
2084// | &'while' while_stmt
Brandt Bucher145bf262021-02-26 14:51:55 -08002085// | match_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002086static stmt_ty
2087compound_stmt_rule(Parser *p)
2088{
2089 D(p->level++);
2090 if (p->error_indicator) {
2091 D(p->level--);
2092 return NULL;
2093 }
2094 stmt_ty _res = NULL;
2095 int _mark = p->mark;
2096 { // &('def' | '@' | ASYNC) function_def
2097 if (p->error_indicator) {
2098 D(p->level--);
2099 return NULL;
2100 }
2101 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('def' | '@' | ASYNC) function_def"));
2102 stmt_ty function_def_var;
2103 if (
2104 _PyPegen_lookahead(1, _tmp_15_rule, p)
2105 &&
2106 (function_def_var = function_def_rule(p)) // function_def
2107 )
2108 {
2109 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('def' | '@' | ASYNC) function_def"));
2110 _res = function_def_var;
2111 goto done;
2112 }
2113 p->mark = _mark;
2114 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2115 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('def' | '@' | ASYNC) function_def"));
2116 }
2117 { // &'if' if_stmt
2118 if (p->error_indicator) {
2119 D(p->level--);
2120 return NULL;
2121 }
2122 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'if' if_stmt"));
2123 stmt_ty if_stmt_var;
2124 if (
2125 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 510) // token='if'
2126 &&
2127 (if_stmt_var = if_stmt_rule(p)) // if_stmt
2128 )
2129 {
2130 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'if' if_stmt"));
2131 _res = if_stmt_var;
2132 goto done;
2133 }
2134 p->mark = _mark;
2135 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2136 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'if' if_stmt"));
2137 }
2138 { // &('class' | '@') class_def
2139 if (p->error_indicator) {
2140 D(p->level--);
2141 return NULL;
2142 }
2143 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('class' | '@') class_def"));
2144 stmt_ty class_def_var;
2145 if (
2146 _PyPegen_lookahead(1, _tmp_16_rule, p)
2147 &&
2148 (class_def_var = class_def_rule(p)) // class_def
2149 )
2150 {
2151 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('class' | '@') class_def"));
2152 _res = class_def_var;
2153 goto done;
2154 }
2155 p->mark = _mark;
2156 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2157 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('class' | '@') class_def"));
2158 }
2159 { // &('with' | ASYNC) with_stmt
2160 if (p->error_indicator) {
2161 D(p->level--);
2162 return NULL;
2163 }
2164 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('with' | ASYNC) with_stmt"));
2165 stmt_ty with_stmt_var;
2166 if (
2167 _PyPegen_lookahead(1, _tmp_17_rule, p)
2168 &&
2169 (with_stmt_var = with_stmt_rule(p)) // with_stmt
2170 )
2171 {
2172 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('with' | ASYNC) with_stmt"));
2173 _res = with_stmt_var;
2174 goto done;
2175 }
2176 p->mark = _mark;
2177 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2178 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('with' | ASYNC) with_stmt"));
2179 }
2180 { // &('for' | ASYNC) for_stmt
2181 if (p->error_indicator) {
2182 D(p->level--);
2183 return NULL;
2184 }
2185 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('for' | ASYNC) for_stmt"));
2186 stmt_ty for_stmt_var;
2187 if (
2188 _PyPegen_lookahead(1, _tmp_18_rule, p)
2189 &&
2190 (for_stmt_var = for_stmt_rule(p)) // for_stmt
2191 )
2192 {
2193 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('for' | ASYNC) for_stmt"));
2194 _res = for_stmt_var;
2195 goto done;
2196 }
2197 p->mark = _mark;
2198 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2199 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('for' | ASYNC) for_stmt"));
2200 }
2201 { // &'try' try_stmt
2202 if (p->error_indicator) {
2203 D(p->level--);
2204 return NULL;
2205 }
2206 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'try' try_stmt"));
2207 stmt_ty try_stmt_var;
2208 if (
2209 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 511) // token='try'
2210 &&
2211 (try_stmt_var = try_stmt_rule(p)) // try_stmt
2212 )
2213 {
2214 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'try' try_stmt"));
2215 _res = try_stmt_var;
2216 goto done;
2217 }
2218 p->mark = _mark;
2219 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2220 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'try' try_stmt"));
2221 }
2222 { // &'while' while_stmt
2223 if (p->error_indicator) {
2224 D(p->level--);
2225 return NULL;
2226 }
2227 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'while' while_stmt"));
2228 stmt_ty while_stmt_var;
2229 if (
2230 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 512) // token='while'
2231 &&
2232 (while_stmt_var = while_stmt_rule(p)) // while_stmt
2233 )
2234 {
2235 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'while' while_stmt"));
2236 _res = while_stmt_var;
2237 goto done;
2238 }
2239 p->mark = _mark;
2240 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2241 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'while' while_stmt"));
2242 }
Brandt Bucher145bf262021-02-26 14:51:55 -08002243 { // match_stmt
2244 if (p->error_indicator) {
2245 D(p->level--);
2246 return NULL;
2247 }
2248 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "match_stmt"));
2249 stmt_ty match_stmt_var;
2250 if (
2251 (match_stmt_var = match_stmt_rule(p)) // match_stmt
2252 )
2253 {
2254 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "match_stmt"));
2255 _res = match_stmt_var;
2256 goto done;
2257 }
2258 p->mark = _mark;
2259 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2260 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "match_stmt"));
2261 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002262 _res = NULL;
2263 done:
2264 D(p->level--);
2265 return _res;
2266}
2267
2268// assignment:
2269// | NAME ':' expression ['=' annotated_rhs]
2270// | ('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]
2271// | ((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002272// | single_target augassign ~ (yield_expr | star_expressions)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002273// | invalid_assignment
2274static stmt_ty
2275assignment_rule(Parser *p)
2276{
2277 D(p->level++);
2278 if (p->error_indicator) {
2279 D(p->level--);
2280 return NULL;
2281 }
2282 stmt_ty _res = NULL;
2283 int _mark = p->mark;
2284 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2285 p->error_indicator = 1;
2286 D(p->level--);
2287 return NULL;
2288 }
2289 int _start_lineno = p->tokens[_mark]->lineno;
2290 UNUSED(_start_lineno); // Only used by EXTRA macro
2291 int _start_col_offset = p->tokens[_mark]->col_offset;
2292 UNUSED(_start_col_offset); // Only used by EXTRA macro
2293 { // NAME ':' expression ['=' annotated_rhs]
2294 if (p->error_indicator) {
2295 D(p->level--);
2296 return NULL;
2297 }
2298 D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME ':' expression ['=' annotated_rhs]"));
2299 Token * _literal;
2300 expr_ty a;
2301 expr_ty b;
2302 void *c;
2303 if (
2304 (a = _PyPegen_name_token(p)) // NAME
2305 &&
2306 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
2307 &&
2308 (b = expression_rule(p)) // expression
2309 &&
2310 (c = _tmp_19_rule(p), 1) // ['=' annotated_rhs]
2311 )
2312 {
2313 D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME ':' expression ['=' annotated_rhs]"));
2314 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2315 if (_token == NULL) {
2316 D(p->level--);
2317 return NULL;
2318 }
2319 int _end_lineno = _token->end_lineno;
2320 UNUSED(_end_lineno); // Only used by EXTRA macro
2321 int _end_col_offset = _token->end_col_offset;
2322 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02002323 _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 +01002324 if (_res == NULL && PyErr_Occurred()) {
2325 p->error_indicator = 1;
2326 D(p->level--);
2327 return NULL;
2328 }
2329 goto done;
2330 }
2331 p->mark = _mark;
2332 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
2333 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME ':' expression ['=' annotated_rhs]"));
2334 }
2335 { // ('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]
2336 if (p->error_indicator) {
2337 D(p->level--);
2338 return NULL;
2339 }
2340 D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]"));
2341 Token * _literal;
2342 void *a;
2343 expr_ty b;
2344 void *c;
2345 if (
2346 (a = _tmp_20_rule(p)) // '(' single_target ')' | single_subscript_attribute_target
2347 &&
2348 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
2349 &&
2350 (b = expression_rule(p)) // expression
2351 &&
2352 (c = _tmp_21_rule(p), 1) // ['=' annotated_rhs]
2353 )
2354 {
2355 D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]"));
2356 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2357 if (_token == NULL) {
2358 D(p->level--);
2359 return NULL;
2360 }
2361 int _end_lineno = _token->end_lineno;
2362 UNUSED(_end_lineno); // Only used by EXTRA macro
2363 int _end_col_offset = _token->end_col_offset;
2364 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02002365 _res = CHECK_VERSION ( stmt_ty , 6 , "Variable annotations syntax is" , _PyAST_AnnAssign ( a , b , c , 0 , EXTRA ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002366 if (_res == NULL && PyErr_Occurred()) {
2367 p->error_indicator = 1;
2368 D(p->level--);
2369 return NULL;
2370 }
2371 goto done;
2372 }
2373 p->mark = _mark;
2374 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
2375 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]"));
2376 }
2377 { // ((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?
2378 if (p->error_indicator) {
2379 D(p->level--);
2380 return NULL;
2381 }
2382 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 +01002383 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002384 void *b;
2385 void *tc;
2386 if (
Pablo Galindoa5634c42020-09-16 19:42:00 +01002387 (a = (asdl_expr_seq*)_loop1_22_rule(p)) // ((star_targets '='))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002388 &&
2389 (b = _tmp_23_rule(p)) // yield_expr | star_expressions
2390 &&
2391 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 22) // token='='
2392 &&
2393 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
2394 )
2395 {
2396 D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?"));
2397 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2398 if (_token == NULL) {
2399 D(p->level--);
2400 return NULL;
2401 }
2402 int _end_lineno = _token->end_lineno;
2403 UNUSED(_end_lineno); // Only used by EXTRA macro
2404 int _end_col_offset = _token->end_col_offset;
2405 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02002406 _res = _PyAST_Assign ( a , b , NEW_TYPE_COMMENT ( p , tc ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002407 if (_res == NULL && PyErr_Occurred()) {
2408 p->error_indicator = 1;
2409 D(p->level--);
2410 return NULL;
2411 }
2412 goto done;
2413 }
2414 p->mark = _mark;
2415 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
2416 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?"));
2417 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002418 { // single_target augassign ~ (yield_expr | star_expressions)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002419 if (p->error_indicator) {
2420 D(p->level--);
2421 return NULL;
2422 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002423 D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "single_target augassign ~ (yield_expr | star_expressions)"));
2424 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002425 expr_ty a;
2426 AugOperator* b;
2427 void *c;
2428 if (
2429 (a = single_target_rule(p)) // single_target
2430 &&
2431 (b = augassign_rule(p)) // augassign
2432 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002433 (_cut_var = 1)
2434 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002435 (c = _tmp_24_rule(p)) // yield_expr | star_expressions
2436 )
2437 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002438 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 +01002439 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2440 if (_token == NULL) {
2441 D(p->level--);
2442 return NULL;
2443 }
2444 int _end_lineno = _token->end_lineno;
2445 UNUSED(_end_lineno); // Only used by EXTRA macro
2446 int _end_col_offset = _token->end_col_offset;
2447 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02002448 _res = _PyAST_AugAssign ( a , b -> kind , c , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002449 if (_res == NULL && PyErr_Occurred()) {
2450 p->error_indicator = 1;
2451 D(p->level--);
2452 return NULL;
2453 }
2454 goto done;
2455 }
2456 p->mark = _mark;
2457 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002458 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "single_target augassign ~ (yield_expr | star_expressions)"));
2459 if (_cut_var) {
2460 D(p->level--);
2461 return NULL;
2462 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002463 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02002464 if (p->call_invalid_rules) { // invalid_assignment
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002465 if (p->error_indicator) {
2466 D(p->level--);
2467 return NULL;
2468 }
2469 D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_assignment"));
2470 void *invalid_assignment_var;
2471 if (
2472 (invalid_assignment_var = invalid_assignment_rule(p)) // invalid_assignment
2473 )
2474 {
2475 D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_assignment"));
2476 _res = invalid_assignment_var;
2477 goto done;
2478 }
2479 p->mark = _mark;
2480 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
2481 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_assignment"));
2482 }
2483 _res = NULL;
2484 done:
2485 D(p->level--);
2486 return _res;
2487}
2488
2489// augassign:
2490// | '+='
2491// | '-='
2492// | '*='
2493// | '@='
2494// | '/='
2495// | '%='
2496// | '&='
2497// | '|='
2498// | '^='
2499// | '<<='
2500// | '>>='
2501// | '**='
2502// | '//='
2503static AugOperator*
2504augassign_rule(Parser *p)
2505{
2506 D(p->level++);
2507 if (p->error_indicator) {
2508 D(p->level--);
2509 return NULL;
2510 }
2511 AugOperator* _res = NULL;
2512 int _mark = p->mark;
2513 { // '+='
2514 if (p->error_indicator) {
2515 D(p->level--);
2516 return NULL;
2517 }
2518 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'+='"));
2519 Token * _literal;
2520 if (
2521 (_literal = _PyPegen_expect_token(p, 36)) // token='+='
2522 )
2523 {
2524 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'+='"));
2525 _res = _PyPegen_augoperator ( p , Add );
2526 if (_res == NULL && PyErr_Occurred()) {
2527 p->error_indicator = 1;
2528 D(p->level--);
2529 return NULL;
2530 }
2531 goto done;
2532 }
2533 p->mark = _mark;
2534 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2535 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'+='"));
2536 }
2537 { // '-='
2538 if (p->error_indicator) {
2539 D(p->level--);
2540 return NULL;
2541 }
2542 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-='"));
2543 Token * _literal;
2544 if (
2545 (_literal = _PyPegen_expect_token(p, 37)) // token='-='
2546 )
2547 {
2548 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-='"));
2549 _res = _PyPegen_augoperator ( p , Sub );
2550 if (_res == NULL && PyErr_Occurred()) {
2551 p->error_indicator = 1;
2552 D(p->level--);
2553 return NULL;
2554 }
2555 goto done;
2556 }
2557 p->mark = _mark;
2558 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2559 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-='"));
2560 }
2561 { // '*='
2562 if (p->error_indicator) {
2563 D(p->level--);
2564 return NULL;
2565 }
2566 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*='"));
2567 Token * _literal;
2568 if (
2569 (_literal = _PyPegen_expect_token(p, 38)) // token='*='
2570 )
2571 {
2572 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*='"));
2573 _res = _PyPegen_augoperator ( p , Mult );
2574 if (_res == NULL && PyErr_Occurred()) {
2575 p->error_indicator = 1;
2576 D(p->level--);
2577 return NULL;
2578 }
2579 goto done;
2580 }
2581 p->mark = _mark;
2582 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2583 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*='"));
2584 }
2585 { // '@='
2586 if (p->error_indicator) {
2587 D(p->level--);
2588 return NULL;
2589 }
2590 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@='"));
2591 Token * _literal;
2592 if (
2593 (_literal = _PyPegen_expect_token(p, 50)) // token='@='
2594 )
2595 {
2596 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@='"));
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03002597 _res = CHECK_VERSION ( AugOperator * , 5 , "The '@' operator is" , _PyPegen_augoperator ( p , MatMult ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002598 if (_res == NULL && PyErr_Occurred()) {
2599 p->error_indicator = 1;
2600 D(p->level--);
2601 return NULL;
2602 }
2603 goto done;
2604 }
2605 p->mark = _mark;
2606 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2607 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@='"));
2608 }
2609 { // '/='
2610 if (p->error_indicator) {
2611 D(p->level--);
2612 return NULL;
2613 }
2614 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'/='"));
2615 Token * _literal;
2616 if (
2617 (_literal = _PyPegen_expect_token(p, 39)) // token='/='
2618 )
2619 {
2620 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'/='"));
2621 _res = _PyPegen_augoperator ( p , Div );
2622 if (_res == NULL && PyErr_Occurred()) {
2623 p->error_indicator = 1;
2624 D(p->level--);
2625 return NULL;
2626 }
2627 goto done;
2628 }
2629 p->mark = _mark;
2630 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2631 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'/='"));
2632 }
2633 { // '%='
2634 if (p->error_indicator) {
2635 D(p->level--);
2636 return NULL;
2637 }
2638 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'%='"));
2639 Token * _literal;
2640 if (
2641 (_literal = _PyPegen_expect_token(p, 40)) // token='%='
2642 )
2643 {
2644 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'%='"));
2645 _res = _PyPegen_augoperator ( p , Mod );
2646 if (_res == NULL && PyErr_Occurred()) {
2647 p->error_indicator = 1;
2648 D(p->level--);
2649 return NULL;
2650 }
2651 goto done;
2652 }
2653 p->mark = _mark;
2654 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2655 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'%='"));
2656 }
2657 { // '&='
2658 if (p->error_indicator) {
2659 D(p->level--);
2660 return NULL;
2661 }
2662 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'&='"));
2663 Token * _literal;
2664 if (
2665 (_literal = _PyPegen_expect_token(p, 41)) // token='&='
2666 )
2667 {
2668 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'&='"));
2669 _res = _PyPegen_augoperator ( p , BitAnd );
2670 if (_res == NULL && PyErr_Occurred()) {
2671 p->error_indicator = 1;
2672 D(p->level--);
2673 return NULL;
2674 }
2675 goto done;
2676 }
2677 p->mark = _mark;
2678 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2679 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'&='"));
2680 }
2681 { // '|='
2682 if (p->error_indicator) {
2683 D(p->level--);
2684 return NULL;
2685 }
2686 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'|='"));
2687 Token * _literal;
2688 if (
2689 (_literal = _PyPegen_expect_token(p, 42)) // token='|='
2690 )
2691 {
2692 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'|='"));
2693 _res = _PyPegen_augoperator ( p , BitOr );
2694 if (_res == NULL && PyErr_Occurred()) {
2695 p->error_indicator = 1;
2696 D(p->level--);
2697 return NULL;
2698 }
2699 goto done;
2700 }
2701 p->mark = _mark;
2702 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2703 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'|='"));
2704 }
2705 { // '^='
2706 if (p->error_indicator) {
2707 D(p->level--);
2708 return NULL;
2709 }
2710 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'^='"));
2711 Token * _literal;
2712 if (
2713 (_literal = _PyPegen_expect_token(p, 43)) // token='^='
2714 )
2715 {
2716 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'^='"));
2717 _res = _PyPegen_augoperator ( p , BitXor );
2718 if (_res == NULL && PyErr_Occurred()) {
2719 p->error_indicator = 1;
2720 D(p->level--);
2721 return NULL;
2722 }
2723 goto done;
2724 }
2725 p->mark = _mark;
2726 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2727 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'^='"));
2728 }
2729 { // '<<='
2730 if (p->error_indicator) {
2731 D(p->level--);
2732 return NULL;
2733 }
2734 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'<<='"));
2735 Token * _literal;
2736 if (
2737 (_literal = _PyPegen_expect_token(p, 44)) // token='<<='
2738 )
2739 {
2740 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'<<='"));
2741 _res = _PyPegen_augoperator ( p , LShift );
2742 if (_res == NULL && PyErr_Occurred()) {
2743 p->error_indicator = 1;
2744 D(p->level--);
2745 return NULL;
2746 }
2747 goto done;
2748 }
2749 p->mark = _mark;
2750 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2751 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'<<='"));
2752 }
2753 { // '>>='
2754 if (p->error_indicator) {
2755 D(p->level--);
2756 return NULL;
2757 }
2758 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'>>='"));
2759 Token * _literal;
2760 if (
2761 (_literal = _PyPegen_expect_token(p, 45)) // token='>>='
2762 )
2763 {
2764 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'>>='"));
2765 _res = _PyPegen_augoperator ( p , RShift );
2766 if (_res == NULL && PyErr_Occurred()) {
2767 p->error_indicator = 1;
2768 D(p->level--);
2769 return NULL;
2770 }
2771 goto done;
2772 }
2773 p->mark = _mark;
2774 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2775 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'>>='"));
2776 }
2777 { // '**='
2778 if (p->error_indicator) {
2779 D(p->level--);
2780 return NULL;
2781 }
2782 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**='"));
2783 Token * _literal;
2784 if (
2785 (_literal = _PyPegen_expect_token(p, 46)) // token='**='
2786 )
2787 {
2788 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**='"));
2789 _res = _PyPegen_augoperator ( p , Pow );
2790 if (_res == NULL && PyErr_Occurred()) {
2791 p->error_indicator = 1;
2792 D(p->level--);
2793 return NULL;
2794 }
2795 goto done;
2796 }
2797 p->mark = _mark;
2798 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2799 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**='"));
2800 }
2801 { // '//='
2802 if (p->error_indicator) {
2803 D(p->level--);
2804 return NULL;
2805 }
2806 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'//='"));
2807 Token * _literal;
2808 if (
2809 (_literal = _PyPegen_expect_token(p, 48)) // token='//='
2810 )
2811 {
2812 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'//='"));
2813 _res = _PyPegen_augoperator ( p , FloorDiv );
2814 if (_res == NULL && PyErr_Occurred()) {
2815 p->error_indicator = 1;
2816 D(p->level--);
2817 return NULL;
2818 }
2819 goto done;
2820 }
2821 p->mark = _mark;
2822 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2823 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'//='"));
2824 }
2825 _res = NULL;
2826 done:
2827 D(p->level--);
2828 return _res;
2829}
2830
2831// global_stmt: 'global' ','.NAME+
2832static stmt_ty
2833global_stmt_rule(Parser *p)
2834{
2835 D(p->level++);
2836 if (p->error_indicator) {
2837 D(p->level--);
2838 return NULL;
2839 }
2840 stmt_ty _res = NULL;
2841 int _mark = p->mark;
2842 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2843 p->error_indicator = 1;
2844 D(p->level--);
2845 return NULL;
2846 }
2847 int _start_lineno = p->tokens[_mark]->lineno;
2848 UNUSED(_start_lineno); // Only used by EXTRA macro
2849 int _start_col_offset = p->tokens[_mark]->col_offset;
2850 UNUSED(_start_col_offset); // Only used by EXTRA macro
2851 { // 'global' ','.NAME+
2852 if (p->error_indicator) {
2853 D(p->level--);
2854 return NULL;
2855 }
2856 D(fprintf(stderr, "%*c> global_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'global' ','.NAME+"));
2857 Token * _keyword;
Pablo Galindoa5634c42020-09-16 19:42:00 +01002858 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002859 if (
2860 (_keyword = _PyPegen_expect_token(p, 508)) // token='global'
2861 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01002862 (a = (asdl_expr_seq*)_gather_25_rule(p)) // ','.NAME+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002863 )
2864 {
2865 D(fprintf(stderr, "%*c+ global_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'global' ','.NAME+"));
2866 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2867 if (_token == NULL) {
2868 D(p->level--);
2869 return NULL;
2870 }
2871 int _end_lineno = _token->end_lineno;
2872 UNUSED(_end_lineno); // Only used by EXTRA macro
2873 int _end_col_offset = _token->end_col_offset;
2874 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02002875 _res = _PyAST_Global ( CHECK ( asdl_identifier_seq * , _PyPegen_map_names_to_ids ( p , a ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002876 if (_res == NULL && PyErr_Occurred()) {
2877 p->error_indicator = 1;
2878 D(p->level--);
2879 return NULL;
2880 }
2881 goto done;
2882 }
2883 p->mark = _mark;
2884 D(fprintf(stderr, "%*c%s global_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2885 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'global' ','.NAME+"));
2886 }
2887 _res = NULL;
2888 done:
2889 D(p->level--);
2890 return _res;
2891}
2892
2893// nonlocal_stmt: 'nonlocal' ','.NAME+
2894static stmt_ty
2895nonlocal_stmt_rule(Parser *p)
2896{
2897 D(p->level++);
2898 if (p->error_indicator) {
2899 D(p->level--);
2900 return NULL;
2901 }
2902 stmt_ty _res = NULL;
2903 int _mark = p->mark;
2904 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2905 p->error_indicator = 1;
2906 D(p->level--);
2907 return NULL;
2908 }
2909 int _start_lineno = p->tokens[_mark]->lineno;
2910 UNUSED(_start_lineno); // Only used by EXTRA macro
2911 int _start_col_offset = p->tokens[_mark]->col_offset;
2912 UNUSED(_start_col_offset); // Only used by EXTRA macro
2913 { // 'nonlocal' ','.NAME+
2914 if (p->error_indicator) {
2915 D(p->level--);
2916 return NULL;
2917 }
2918 D(fprintf(stderr, "%*c> nonlocal_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'nonlocal' ','.NAME+"));
2919 Token * _keyword;
Pablo Galindoa5634c42020-09-16 19:42:00 +01002920 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002921 if (
2922 (_keyword = _PyPegen_expect_token(p, 509)) // token='nonlocal'
2923 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01002924 (a = (asdl_expr_seq*)_gather_27_rule(p)) // ','.NAME+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002925 )
2926 {
2927 D(fprintf(stderr, "%*c+ nonlocal_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'nonlocal' ','.NAME+"));
2928 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2929 if (_token == NULL) {
2930 D(p->level--);
2931 return NULL;
2932 }
2933 int _end_lineno = _token->end_lineno;
2934 UNUSED(_end_lineno); // Only used by EXTRA macro
2935 int _end_col_offset = _token->end_col_offset;
2936 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02002937 _res = _PyAST_Nonlocal ( CHECK ( asdl_identifier_seq * , _PyPegen_map_names_to_ids ( p , a ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002938 if (_res == NULL && PyErr_Occurred()) {
2939 p->error_indicator = 1;
2940 D(p->level--);
2941 return NULL;
2942 }
2943 goto done;
2944 }
2945 p->mark = _mark;
2946 D(fprintf(stderr, "%*c%s nonlocal_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2947 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'nonlocal' ','.NAME+"));
2948 }
2949 _res = NULL;
2950 done:
2951 D(p->level--);
2952 return _res;
2953}
2954
2955// yield_stmt: yield_expr
2956static stmt_ty
2957yield_stmt_rule(Parser *p)
2958{
2959 D(p->level++);
2960 if (p->error_indicator) {
2961 D(p->level--);
2962 return NULL;
2963 }
2964 stmt_ty _res = NULL;
2965 int _mark = p->mark;
2966 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2967 p->error_indicator = 1;
2968 D(p->level--);
2969 return NULL;
2970 }
2971 int _start_lineno = p->tokens[_mark]->lineno;
2972 UNUSED(_start_lineno); // Only used by EXTRA macro
2973 int _start_col_offset = p->tokens[_mark]->col_offset;
2974 UNUSED(_start_col_offset); // Only used by EXTRA macro
2975 { // yield_expr
2976 if (p->error_indicator) {
2977 D(p->level--);
2978 return NULL;
2979 }
2980 D(fprintf(stderr, "%*c> yield_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
2981 expr_ty y;
2982 if (
2983 (y = yield_expr_rule(p)) // yield_expr
2984 )
2985 {
2986 D(fprintf(stderr, "%*c+ yield_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
2987 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2988 if (_token == NULL) {
2989 D(p->level--);
2990 return NULL;
2991 }
2992 int _end_lineno = _token->end_lineno;
2993 UNUSED(_end_lineno); // Only used by EXTRA macro
2994 int _end_col_offset = _token->end_col_offset;
2995 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02002996 _res = _PyAST_Expr ( y , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002997 if (_res == NULL && PyErr_Occurred()) {
2998 p->error_indicator = 1;
2999 D(p->level--);
3000 return NULL;
3001 }
3002 goto done;
3003 }
3004 p->mark = _mark;
3005 D(fprintf(stderr, "%*c%s yield_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3006 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
3007 }
3008 _res = NULL;
3009 done:
3010 D(p->level--);
3011 return _res;
3012}
3013
3014// assert_stmt: 'assert' expression [',' expression]
3015static stmt_ty
3016assert_stmt_rule(Parser *p)
3017{
3018 D(p->level++);
3019 if (p->error_indicator) {
3020 D(p->level--);
3021 return NULL;
3022 }
3023 stmt_ty _res = NULL;
3024 int _mark = p->mark;
3025 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3026 p->error_indicator = 1;
3027 D(p->level--);
3028 return NULL;
3029 }
3030 int _start_lineno = p->tokens[_mark]->lineno;
3031 UNUSED(_start_lineno); // Only used by EXTRA macro
3032 int _start_col_offset = p->tokens[_mark]->col_offset;
3033 UNUSED(_start_col_offset); // Only used by EXTRA macro
3034 { // 'assert' expression [',' expression]
3035 if (p->error_indicator) {
3036 D(p->level--);
3037 return NULL;
3038 }
3039 D(fprintf(stderr, "%*c> assert_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'assert' expression [',' expression]"));
3040 Token * _keyword;
3041 expr_ty a;
3042 void *b;
3043 if (
3044 (_keyword = _PyPegen_expect_token(p, 505)) // token='assert'
3045 &&
3046 (a = expression_rule(p)) // expression
3047 &&
3048 (b = _tmp_29_rule(p), 1) // [',' expression]
3049 )
3050 {
3051 D(fprintf(stderr, "%*c+ assert_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'assert' expression [',' expression]"));
3052 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3053 if (_token == NULL) {
3054 D(p->level--);
3055 return NULL;
3056 }
3057 int _end_lineno = _token->end_lineno;
3058 UNUSED(_end_lineno); // Only used by EXTRA macro
3059 int _end_col_offset = _token->end_col_offset;
3060 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02003061 _res = _PyAST_Assert ( a , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003062 if (_res == NULL && PyErr_Occurred()) {
3063 p->error_indicator = 1;
3064 D(p->level--);
3065 return NULL;
3066 }
3067 goto done;
3068 }
3069 p->mark = _mark;
3070 D(fprintf(stderr, "%*c%s assert_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3071 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'assert' expression [',' expression]"));
3072 }
3073 _res = NULL;
3074 done:
3075 D(p->level--);
3076 return _res;
3077}
3078
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003079// del_stmt: 'del' del_targets &(';' | NEWLINE) | invalid_del_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003080static stmt_ty
3081del_stmt_rule(Parser *p)
3082{
3083 D(p->level++);
3084 if (p->error_indicator) {
3085 D(p->level--);
3086 return NULL;
3087 }
3088 stmt_ty _res = NULL;
3089 int _mark = p->mark;
3090 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3091 p->error_indicator = 1;
3092 D(p->level--);
3093 return NULL;
3094 }
3095 int _start_lineno = p->tokens[_mark]->lineno;
3096 UNUSED(_start_lineno); // Only used by EXTRA macro
3097 int _start_col_offset = p->tokens[_mark]->col_offset;
3098 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003099 { // 'del' del_targets &(';' | NEWLINE)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003100 if (p->error_indicator) {
3101 D(p->level--);
3102 return NULL;
3103 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003104 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 +01003105 Token * _keyword;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003106 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003107 if (
3108 (_keyword = _PyPegen_expect_token(p, 503)) // token='del'
3109 &&
3110 (a = del_targets_rule(p)) // del_targets
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003111 &&
3112 _PyPegen_lookahead(1, _tmp_30_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003113 )
3114 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003115 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 +01003116 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3117 if (_token == NULL) {
3118 D(p->level--);
3119 return NULL;
3120 }
3121 int _end_lineno = _token->end_lineno;
3122 UNUSED(_end_lineno); // Only used by EXTRA macro
3123 int _end_col_offset = _token->end_col_offset;
3124 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02003125 _res = _PyAST_Delete ( a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003126 if (_res == NULL && PyErr_Occurred()) {
3127 p->error_indicator = 1;
3128 D(p->level--);
3129 return NULL;
3130 }
3131 goto done;
3132 }
3133 p->mark = _mark;
3134 D(fprintf(stderr, "%*c%s del_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003135 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'del' del_targets &(';' | NEWLINE)"));
3136 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02003137 if (p->call_invalid_rules) { // invalid_del_stmt
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003138 if (p->error_indicator) {
3139 D(p->level--);
3140 return NULL;
3141 }
3142 D(fprintf(stderr, "%*c> del_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_del_stmt"));
3143 void *invalid_del_stmt_var;
3144 if (
3145 (invalid_del_stmt_var = invalid_del_stmt_rule(p)) // invalid_del_stmt
3146 )
3147 {
3148 D(fprintf(stderr, "%*c+ del_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_del_stmt"));
3149 _res = invalid_del_stmt_var;
3150 goto done;
3151 }
3152 p->mark = _mark;
3153 D(fprintf(stderr, "%*c%s del_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3154 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_del_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003155 }
3156 _res = NULL;
3157 done:
3158 D(p->level--);
3159 return _res;
3160}
3161
3162// import_stmt: import_name | import_from
3163static stmt_ty
3164import_stmt_rule(Parser *p)
3165{
3166 D(p->level++);
3167 if (p->error_indicator) {
3168 D(p->level--);
3169 return NULL;
3170 }
3171 stmt_ty _res = NULL;
3172 int _mark = p->mark;
3173 { // import_name
3174 if (p->error_indicator) {
3175 D(p->level--);
3176 return NULL;
3177 }
3178 D(fprintf(stderr, "%*c> import_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "import_name"));
3179 stmt_ty import_name_var;
3180 if (
3181 (import_name_var = import_name_rule(p)) // import_name
3182 )
3183 {
3184 D(fprintf(stderr, "%*c+ import_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "import_name"));
3185 _res = import_name_var;
3186 goto done;
3187 }
3188 p->mark = _mark;
3189 D(fprintf(stderr, "%*c%s import_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3190 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_name"));
3191 }
3192 { // import_from
3193 if (p->error_indicator) {
3194 D(p->level--);
3195 return NULL;
3196 }
3197 D(fprintf(stderr, "%*c> import_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "import_from"));
3198 stmt_ty import_from_var;
3199 if (
3200 (import_from_var = import_from_rule(p)) // import_from
3201 )
3202 {
3203 D(fprintf(stderr, "%*c+ import_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "import_from"));
3204 _res = import_from_var;
3205 goto done;
3206 }
3207 p->mark = _mark;
3208 D(fprintf(stderr, "%*c%s import_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3209 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from"));
3210 }
3211 _res = NULL;
3212 done:
3213 D(p->level--);
3214 return _res;
3215}
3216
3217// import_name: 'import' dotted_as_names
3218static stmt_ty
3219import_name_rule(Parser *p)
3220{
3221 D(p->level++);
3222 if (p->error_indicator) {
3223 D(p->level--);
3224 return NULL;
3225 }
3226 stmt_ty _res = NULL;
3227 int _mark = p->mark;
3228 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3229 p->error_indicator = 1;
3230 D(p->level--);
3231 return NULL;
3232 }
3233 int _start_lineno = p->tokens[_mark]->lineno;
3234 UNUSED(_start_lineno); // Only used by EXTRA macro
3235 int _start_col_offset = p->tokens[_mark]->col_offset;
3236 UNUSED(_start_col_offset); // Only used by EXTRA macro
3237 { // 'import' dotted_as_names
3238 if (p->error_indicator) {
3239 D(p->level--);
3240 return NULL;
3241 }
3242 D(fprintf(stderr, "%*c> import_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'import' dotted_as_names"));
3243 Token * _keyword;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003244 asdl_alias_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003245 if (
3246 (_keyword = _PyPegen_expect_token(p, 513)) // token='import'
3247 &&
3248 (a = dotted_as_names_rule(p)) // dotted_as_names
3249 )
3250 {
3251 D(fprintf(stderr, "%*c+ import_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'import' dotted_as_names"));
3252 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3253 if (_token == NULL) {
3254 D(p->level--);
3255 return NULL;
3256 }
3257 int _end_lineno = _token->end_lineno;
3258 UNUSED(_end_lineno); // Only used by EXTRA macro
3259 int _end_col_offset = _token->end_col_offset;
3260 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02003261 _res = _PyAST_Import ( a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003262 if (_res == NULL && PyErr_Occurred()) {
3263 p->error_indicator = 1;
3264 D(p->level--);
3265 return NULL;
3266 }
3267 goto done;
3268 }
3269 p->mark = _mark;
3270 D(fprintf(stderr, "%*c%s import_name[%d-%d]: %s failed!\n", p->level, ' ',
3271 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'import' dotted_as_names"));
3272 }
3273 _res = NULL;
3274 done:
3275 D(p->level--);
3276 return _res;
3277}
3278
3279// import_from:
3280// | 'from' (('.' | '...'))* dotted_name 'import' import_from_targets
3281// | 'from' (('.' | '...'))+ 'import' import_from_targets
3282static stmt_ty
3283import_from_rule(Parser *p)
3284{
3285 D(p->level++);
3286 if (p->error_indicator) {
3287 D(p->level--);
3288 return NULL;
3289 }
3290 stmt_ty _res = NULL;
3291 int _mark = p->mark;
3292 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3293 p->error_indicator = 1;
3294 D(p->level--);
3295 return NULL;
3296 }
3297 int _start_lineno = p->tokens[_mark]->lineno;
3298 UNUSED(_start_lineno); // Only used by EXTRA macro
3299 int _start_col_offset = p->tokens[_mark]->col_offset;
3300 UNUSED(_start_col_offset); // Only used by EXTRA macro
3301 { // 'from' (('.' | '...'))* dotted_name 'import' import_from_targets
3302 if (p->error_indicator) {
3303 D(p->level--);
3304 return NULL;
3305 }
3306 D(fprintf(stderr, "%*c> import_from[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from' (('.' | '...'))* dotted_name 'import' import_from_targets"));
3307 Token * _keyword;
3308 Token * _keyword_1;
3309 asdl_seq * a;
3310 expr_ty b;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003311 asdl_alias_seq* c;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003312 if (
3313 (_keyword = _PyPegen_expect_token(p, 514)) // token='from'
3314 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003315 (a = _loop0_31_rule(p)) // (('.' | '...'))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003316 &&
3317 (b = dotted_name_rule(p)) // dotted_name
3318 &&
3319 (_keyword_1 = _PyPegen_expect_token(p, 513)) // token='import'
3320 &&
3321 (c = import_from_targets_rule(p)) // import_from_targets
3322 )
3323 {
3324 D(fprintf(stderr, "%*c+ import_from[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'from' (('.' | '...'))* dotted_name 'import' import_from_targets"));
3325 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3326 if (_token == NULL) {
3327 D(p->level--);
3328 return NULL;
3329 }
3330 int _end_lineno = _token->end_lineno;
3331 UNUSED(_end_lineno); // Only used by EXTRA macro
3332 int _end_col_offset = _token->end_col_offset;
3333 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02003334 _res = _PyAST_ImportFrom ( b -> v . Name . id , c , _PyPegen_seq_count_dots ( a ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003335 if (_res == NULL && PyErr_Occurred()) {
3336 p->error_indicator = 1;
3337 D(p->level--);
3338 return NULL;
3339 }
3340 goto done;
3341 }
3342 p->mark = _mark;
3343 D(fprintf(stderr, "%*c%s import_from[%d-%d]: %s failed!\n", p->level, ' ',
3344 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from' (('.' | '...'))* dotted_name 'import' import_from_targets"));
3345 }
3346 { // 'from' (('.' | '...'))+ 'import' import_from_targets
3347 if (p->error_indicator) {
3348 D(p->level--);
3349 return NULL;
3350 }
3351 D(fprintf(stderr, "%*c> import_from[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from' (('.' | '...'))+ 'import' import_from_targets"));
3352 Token * _keyword;
3353 Token * _keyword_1;
3354 asdl_seq * a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003355 asdl_alias_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003356 if (
3357 (_keyword = _PyPegen_expect_token(p, 514)) // token='from'
3358 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003359 (a = _loop1_32_rule(p)) // (('.' | '...'))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003360 &&
3361 (_keyword_1 = _PyPegen_expect_token(p, 513)) // token='import'
3362 &&
3363 (b = import_from_targets_rule(p)) // import_from_targets
3364 )
3365 {
3366 D(fprintf(stderr, "%*c+ import_from[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'from' (('.' | '...'))+ 'import' import_from_targets"));
3367 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3368 if (_token == NULL) {
3369 D(p->level--);
3370 return NULL;
3371 }
3372 int _end_lineno = _token->end_lineno;
3373 UNUSED(_end_lineno); // Only used by EXTRA macro
3374 int _end_col_offset = _token->end_col_offset;
3375 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02003376 _res = _PyAST_ImportFrom ( NULL , b , _PyPegen_seq_count_dots ( a ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003377 if (_res == NULL && PyErr_Occurred()) {
3378 p->error_indicator = 1;
3379 D(p->level--);
3380 return NULL;
3381 }
3382 goto done;
3383 }
3384 p->mark = _mark;
3385 D(fprintf(stderr, "%*c%s import_from[%d-%d]: %s failed!\n", p->level, ' ',
3386 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from' (('.' | '...'))+ 'import' import_from_targets"));
3387 }
3388 _res = NULL;
3389 done:
3390 D(p->level--);
3391 return _res;
3392}
3393
3394// import_from_targets:
3395// | '(' import_from_as_names ','? ')'
3396// | import_from_as_names !','
3397// | '*'
3398// | invalid_import_from_targets
Pablo Galindoa5634c42020-09-16 19:42:00 +01003399static asdl_alias_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003400import_from_targets_rule(Parser *p)
3401{
3402 D(p->level++);
3403 if (p->error_indicator) {
3404 D(p->level--);
3405 return NULL;
3406 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01003407 asdl_alias_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003408 int _mark = p->mark;
Matthew Suozzo75a06f02021-04-10 16:56:28 -04003409 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3410 p->error_indicator = 1;
3411 D(p->level--);
3412 return NULL;
3413 }
3414 int _start_lineno = p->tokens[_mark]->lineno;
3415 UNUSED(_start_lineno); // Only used by EXTRA macro
3416 int _start_col_offset = p->tokens[_mark]->col_offset;
3417 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003418 { // '(' import_from_as_names ','? ')'
3419 if (p->error_indicator) {
3420 D(p->level--);
3421 return NULL;
3422 }
3423 D(fprintf(stderr, "%*c> import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' import_from_as_names ','? ')'"));
3424 Token * _literal;
3425 Token * _literal_1;
3426 void *_opt_var;
3427 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +01003428 asdl_alias_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003429 if (
3430 (_literal = _PyPegen_expect_token(p, 7)) // token='('
3431 &&
3432 (a = import_from_as_names_rule(p)) // import_from_as_names
3433 &&
3434 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
3435 &&
3436 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
3437 )
3438 {
3439 D(fprintf(stderr, "%*c+ import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' import_from_as_names ','? ')'"));
3440 _res = a;
3441 if (_res == NULL && PyErr_Occurred()) {
3442 p->error_indicator = 1;
3443 D(p->level--);
3444 return NULL;
3445 }
3446 goto done;
3447 }
3448 p->mark = _mark;
3449 D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
3450 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' import_from_as_names ','? ')'"));
3451 }
3452 { // import_from_as_names !','
3453 if (p->error_indicator) {
3454 D(p->level--);
3455 return NULL;
3456 }
3457 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 +01003458 asdl_alias_seq* import_from_as_names_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003459 if (
3460 (import_from_as_names_var = import_from_as_names_rule(p)) // import_from_as_names
3461 &&
3462 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 12) // token=','
3463 )
3464 {
3465 D(fprintf(stderr, "%*c+ import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "import_from_as_names !','"));
3466 _res = import_from_as_names_var;
3467 goto done;
3468 }
3469 p->mark = _mark;
3470 D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
3471 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from_as_names !','"));
3472 }
3473 { // '*'
3474 if (p->error_indicator) {
3475 D(p->level--);
3476 return NULL;
3477 }
3478 D(fprintf(stderr, "%*c> import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*'"));
3479 Token * _literal;
3480 if (
3481 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
3482 )
3483 {
3484 D(fprintf(stderr, "%*c+ import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*'"));
Matthew Suozzo75a06f02021-04-10 16:56:28 -04003485 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3486 if (_token == NULL) {
3487 D(p->level--);
3488 return NULL;
3489 }
3490 int _end_lineno = _token->end_lineno;
3491 UNUSED(_end_lineno); // Only used by EXTRA macro
3492 int _end_col_offset = _token->end_col_offset;
3493 UNUSED(_end_col_offset); // Only used by EXTRA macro
3494 _res = ( asdl_alias_seq * ) _PyPegen_singleton_seq ( p , CHECK ( alias_ty , _PyPegen_alias_for_star ( p , EXTRA ) ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003495 if (_res == NULL && PyErr_Occurred()) {
3496 p->error_indicator = 1;
3497 D(p->level--);
3498 return NULL;
3499 }
3500 goto done;
3501 }
3502 p->mark = _mark;
3503 D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
3504 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*'"));
3505 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02003506 if (p->call_invalid_rules) { // invalid_import_from_targets
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003507 if (p->error_indicator) {
3508 D(p->level--);
3509 return NULL;
3510 }
3511 D(fprintf(stderr, "%*c> import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_import_from_targets"));
3512 void *invalid_import_from_targets_var;
3513 if (
3514 (invalid_import_from_targets_var = invalid_import_from_targets_rule(p)) // invalid_import_from_targets
3515 )
3516 {
3517 D(fprintf(stderr, "%*c+ import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_import_from_targets"));
3518 _res = invalid_import_from_targets_var;
3519 goto done;
3520 }
3521 p->mark = _mark;
3522 D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
3523 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_import_from_targets"));
3524 }
3525 _res = NULL;
3526 done:
3527 D(p->level--);
3528 return _res;
3529}
3530
3531// import_from_as_names: ','.import_from_as_name+
Pablo Galindoa5634c42020-09-16 19:42:00 +01003532static asdl_alias_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003533import_from_as_names_rule(Parser *p)
3534{
3535 D(p->level++);
3536 if (p->error_indicator) {
3537 D(p->level--);
3538 return NULL;
3539 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01003540 asdl_alias_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003541 int _mark = p->mark;
3542 { // ','.import_from_as_name+
3543 if (p->error_indicator) {
3544 D(p->level--);
3545 return NULL;
3546 }
3547 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 +01003548 asdl_alias_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003549 if (
Pablo Galindoa5634c42020-09-16 19:42:00 +01003550 (a = (asdl_alias_seq*)_gather_33_rule(p)) // ','.import_from_as_name+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003551 )
3552 {
3553 D(fprintf(stderr, "%*c+ import_from_as_names[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.import_from_as_name+"));
3554 _res = a;
3555 if (_res == NULL && PyErr_Occurred()) {
3556 p->error_indicator = 1;
3557 D(p->level--);
3558 return NULL;
3559 }
3560 goto done;
3561 }
3562 p->mark = _mark;
3563 D(fprintf(stderr, "%*c%s import_from_as_names[%d-%d]: %s failed!\n", p->level, ' ',
3564 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.import_from_as_name+"));
3565 }
3566 _res = NULL;
3567 done:
3568 D(p->level--);
3569 return _res;
3570}
3571
3572// import_from_as_name: NAME ['as' NAME]
3573static alias_ty
3574import_from_as_name_rule(Parser *p)
3575{
3576 D(p->level++);
3577 if (p->error_indicator) {
3578 D(p->level--);
3579 return NULL;
3580 }
3581 alias_ty _res = NULL;
3582 int _mark = p->mark;
Matthew Suozzo75a06f02021-04-10 16:56:28 -04003583 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3584 p->error_indicator = 1;
3585 D(p->level--);
3586 return NULL;
3587 }
3588 int _start_lineno = p->tokens[_mark]->lineno;
3589 UNUSED(_start_lineno); // Only used by EXTRA macro
3590 int _start_col_offset = p->tokens[_mark]->col_offset;
3591 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003592 { // NAME ['as' NAME]
3593 if (p->error_indicator) {
3594 D(p->level--);
3595 return NULL;
3596 }
3597 D(fprintf(stderr, "%*c> import_from_as_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME ['as' NAME]"));
3598 expr_ty a;
3599 void *b;
3600 if (
3601 (a = _PyPegen_name_token(p)) // NAME
3602 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003603 (b = _tmp_35_rule(p), 1) // ['as' NAME]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003604 )
3605 {
3606 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 -04003607 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3608 if (_token == NULL) {
3609 D(p->level--);
3610 return NULL;
3611 }
3612 int _end_lineno = _token->end_lineno;
3613 UNUSED(_end_lineno); // Only used by EXTRA macro
3614 int _end_col_offset = _token->end_col_offset;
3615 UNUSED(_end_col_offset); // Only used by EXTRA macro
3616 _res = _PyAST_alias ( a -> v . Name . id , ( b ) ? ( ( expr_ty ) b ) -> v . Name . id : NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003617 if (_res == NULL && PyErr_Occurred()) {
3618 p->error_indicator = 1;
3619 D(p->level--);
3620 return NULL;
3621 }
3622 goto done;
3623 }
3624 p->mark = _mark;
3625 D(fprintf(stderr, "%*c%s import_from_as_name[%d-%d]: %s failed!\n", p->level, ' ',
3626 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME ['as' NAME]"));
3627 }
3628 _res = NULL;
3629 done:
3630 D(p->level--);
3631 return _res;
3632}
3633
3634// dotted_as_names: ','.dotted_as_name+
Pablo Galindoa5634c42020-09-16 19:42:00 +01003635static asdl_alias_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003636dotted_as_names_rule(Parser *p)
3637{
3638 D(p->level++);
3639 if (p->error_indicator) {
3640 D(p->level--);
3641 return NULL;
3642 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01003643 asdl_alias_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003644 int _mark = p->mark;
3645 { // ','.dotted_as_name+
3646 if (p->error_indicator) {
3647 D(p->level--);
3648 return NULL;
3649 }
3650 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 +01003651 asdl_alias_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003652 if (
Pablo Galindoa5634c42020-09-16 19:42:00 +01003653 (a = (asdl_alias_seq*)_gather_36_rule(p)) // ','.dotted_as_name+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003654 )
3655 {
3656 D(fprintf(stderr, "%*c+ dotted_as_names[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.dotted_as_name+"));
3657 _res = a;
3658 if (_res == NULL && PyErr_Occurred()) {
3659 p->error_indicator = 1;
3660 D(p->level--);
3661 return NULL;
3662 }
3663 goto done;
3664 }
3665 p->mark = _mark;
3666 D(fprintf(stderr, "%*c%s dotted_as_names[%d-%d]: %s failed!\n", p->level, ' ',
3667 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.dotted_as_name+"));
3668 }
3669 _res = NULL;
3670 done:
3671 D(p->level--);
3672 return _res;
3673}
3674
3675// dotted_as_name: dotted_name ['as' NAME]
3676static alias_ty
3677dotted_as_name_rule(Parser *p)
3678{
3679 D(p->level++);
3680 if (p->error_indicator) {
3681 D(p->level--);
3682 return NULL;
3683 }
3684 alias_ty _res = NULL;
3685 int _mark = p->mark;
Matthew Suozzo75a06f02021-04-10 16:56:28 -04003686 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3687 p->error_indicator = 1;
3688 D(p->level--);
3689 return NULL;
3690 }
3691 int _start_lineno = p->tokens[_mark]->lineno;
3692 UNUSED(_start_lineno); // Only used by EXTRA macro
3693 int _start_col_offset = p->tokens[_mark]->col_offset;
3694 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003695 { // dotted_name ['as' NAME]
3696 if (p->error_indicator) {
3697 D(p->level--);
3698 return NULL;
3699 }
3700 D(fprintf(stderr, "%*c> dotted_as_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dotted_name ['as' NAME]"));
3701 expr_ty a;
3702 void *b;
3703 if (
3704 (a = dotted_name_rule(p)) // dotted_name
3705 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003706 (b = _tmp_38_rule(p), 1) // ['as' NAME]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003707 )
3708 {
3709 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 -04003710 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3711 if (_token == NULL) {
3712 D(p->level--);
3713 return NULL;
3714 }
3715 int _end_lineno = _token->end_lineno;
3716 UNUSED(_end_lineno); // Only used by EXTRA macro
3717 int _end_col_offset = _token->end_col_offset;
3718 UNUSED(_end_col_offset); // Only used by EXTRA macro
3719 _res = _PyAST_alias ( a -> v . Name . id , ( b ) ? ( ( expr_ty ) b ) -> v . Name . id : NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003720 if (_res == NULL && PyErr_Occurred()) {
3721 p->error_indicator = 1;
3722 D(p->level--);
3723 return NULL;
3724 }
3725 goto done;
3726 }
3727 p->mark = _mark;
3728 D(fprintf(stderr, "%*c%s dotted_as_name[%d-%d]: %s failed!\n", p->level, ' ',
3729 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dotted_name ['as' NAME]"));
3730 }
3731 _res = NULL;
3732 done:
3733 D(p->level--);
3734 return _res;
3735}
3736
3737// Left-recursive
3738// dotted_name: dotted_name '.' NAME | NAME
3739static expr_ty dotted_name_raw(Parser *);
3740static expr_ty
3741dotted_name_rule(Parser *p)
3742{
3743 D(p->level++);
3744 expr_ty _res = NULL;
3745 if (_PyPegen_is_memoized(p, dotted_name_type, &_res)) {
3746 D(p->level--);
3747 return _res;
3748 }
3749 int _mark = p->mark;
3750 int _resmark = p->mark;
3751 while (1) {
3752 int tmpvar_0 = _PyPegen_update_memo(p, _mark, dotted_name_type, _res);
3753 if (tmpvar_0) {
3754 D(p->level--);
3755 return _res;
3756 }
3757 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -07003758 p->in_raw_rule++;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003759 void *_raw = dotted_name_raw(p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -07003760 p->in_raw_rule--;
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +02003761 if (p->error_indicator)
3762 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003763 if (_raw == NULL || p->mark <= _resmark)
3764 break;
3765 _resmark = p->mark;
3766 _res = _raw;
3767 }
3768 p->mark = _resmark;
3769 D(p->level--);
3770 return _res;
3771}
3772static expr_ty
3773dotted_name_raw(Parser *p)
3774{
3775 D(p->level++);
3776 if (p->error_indicator) {
3777 D(p->level--);
3778 return NULL;
3779 }
3780 expr_ty _res = NULL;
3781 int _mark = p->mark;
3782 { // dotted_name '.' NAME
3783 if (p->error_indicator) {
3784 D(p->level--);
3785 return NULL;
3786 }
3787 D(fprintf(stderr, "%*c> dotted_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dotted_name '.' NAME"));
3788 Token * _literal;
3789 expr_ty a;
3790 expr_ty b;
3791 if (
3792 (a = dotted_name_rule(p)) // dotted_name
3793 &&
3794 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
3795 &&
3796 (b = _PyPegen_name_token(p)) // NAME
3797 )
3798 {
3799 D(fprintf(stderr, "%*c+ dotted_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dotted_name '.' NAME"));
3800 _res = _PyPegen_join_names_with_dot ( p , a , b );
3801 if (_res == NULL && PyErr_Occurred()) {
3802 p->error_indicator = 1;
3803 D(p->level--);
3804 return NULL;
3805 }
3806 goto done;
3807 }
3808 p->mark = _mark;
3809 D(fprintf(stderr, "%*c%s dotted_name[%d-%d]: %s failed!\n", p->level, ' ',
3810 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dotted_name '.' NAME"));
3811 }
3812 { // NAME
3813 if (p->error_indicator) {
3814 D(p->level--);
3815 return NULL;
3816 }
3817 D(fprintf(stderr, "%*c> dotted_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
3818 expr_ty name_var;
3819 if (
3820 (name_var = _PyPegen_name_token(p)) // NAME
3821 )
3822 {
3823 D(fprintf(stderr, "%*c+ dotted_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
3824 _res = name_var;
3825 goto done;
3826 }
3827 p->mark = _mark;
3828 D(fprintf(stderr, "%*c%s dotted_name[%d-%d]: %s failed!\n", p->level, ' ',
3829 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
3830 }
3831 _res = NULL;
3832 done:
3833 D(p->level--);
3834 return _res;
3835}
3836
3837// if_stmt:
Pablo Galindo56c95df2021-04-21 15:28:21 +01003838// | invalid_if_stmt
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003839// | 'if' named_expression ':' block elif_stmt
3840// | 'if' named_expression ':' block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003841static stmt_ty
3842if_stmt_rule(Parser *p)
3843{
3844 D(p->level++);
3845 if (p->error_indicator) {
3846 D(p->level--);
3847 return NULL;
3848 }
3849 stmt_ty _res = NULL;
3850 int _mark = p->mark;
3851 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3852 p->error_indicator = 1;
3853 D(p->level--);
3854 return NULL;
3855 }
3856 int _start_lineno = p->tokens[_mark]->lineno;
3857 UNUSED(_start_lineno); // Only used by EXTRA macro
3858 int _start_col_offset = p->tokens[_mark]->col_offset;
3859 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo56c95df2021-04-21 15:28:21 +01003860 if (p->call_invalid_rules) { // invalid_if_stmt
3861 if (p->error_indicator) {
3862 D(p->level--);
3863 return NULL;
3864 }
3865 D(fprintf(stderr, "%*c> if_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_if_stmt"));
3866 void *invalid_if_stmt_var;
3867 if (
3868 (invalid_if_stmt_var = invalid_if_stmt_rule(p)) // invalid_if_stmt
3869 )
3870 {
3871 D(fprintf(stderr, "%*c+ if_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_if_stmt"));
3872 _res = invalid_if_stmt_var;
3873 goto done;
3874 }
3875 p->mark = _mark;
3876 D(fprintf(stderr, "%*c%s if_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3877 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_if_stmt"));
3878 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003879 { // 'if' named_expression ':' block elif_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003880 if (p->error_indicator) {
3881 D(p->level--);
3882 return NULL;
3883 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003884 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 +01003885 Token * _keyword;
3886 Token * _literal;
3887 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003888 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003889 stmt_ty c;
3890 if (
3891 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
3892 &&
3893 (a = named_expression_rule(p)) // named_expression
3894 &&
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003895 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003896 &&
3897 (b = block_rule(p)) // block
3898 &&
3899 (c = elif_stmt_rule(p)) // elif_stmt
3900 )
3901 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003902 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 +01003903 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3904 if (_token == NULL) {
3905 D(p->level--);
3906 return NULL;
3907 }
3908 int _end_lineno = _token->end_lineno;
3909 UNUSED(_end_lineno); // Only used by EXTRA macro
3910 int _end_col_offset = _token->end_col_offset;
3911 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02003912 _res = _PyAST_If ( a , b , CHECK ( asdl_stmt_seq * , _PyPegen_singleton_seq ( p , c ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003913 if (_res == NULL && PyErr_Occurred()) {
3914 p->error_indicator = 1;
3915 D(p->level--);
3916 return NULL;
3917 }
3918 goto done;
3919 }
3920 p->mark = _mark;
3921 D(fprintf(stderr, "%*c%s if_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003922 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' named_expression ':' block elif_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003923 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003924 { // 'if' named_expression ':' block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003925 if (p->error_indicator) {
3926 D(p->level--);
3927 return NULL;
3928 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003929 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 +01003930 Token * _keyword;
3931 Token * _literal;
3932 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003933 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003934 void *c;
3935 if (
3936 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
3937 &&
3938 (a = named_expression_rule(p)) // named_expression
3939 &&
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003940 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003941 &&
3942 (b = block_rule(p)) // block
3943 &&
3944 (c = else_block_rule(p), 1) // else_block?
3945 )
3946 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003947 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 +01003948 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3949 if (_token == NULL) {
3950 D(p->level--);
3951 return NULL;
3952 }
3953 int _end_lineno = _token->end_lineno;
3954 UNUSED(_end_lineno); // Only used by EXTRA macro
3955 int _end_col_offset = _token->end_col_offset;
3956 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02003957 _res = _PyAST_If ( a , b , c , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003958 if (_res == NULL && PyErr_Occurred()) {
3959 p->error_indicator = 1;
3960 D(p->level--);
3961 return NULL;
3962 }
3963 goto done;
3964 }
3965 p->mark = _mark;
3966 D(fprintf(stderr, "%*c%s if_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003967 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' named_expression ':' block else_block?"));
3968 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003969 _res = NULL;
3970 done:
3971 D(p->level--);
3972 return _res;
3973}
3974
3975// elif_stmt:
Pablo Galindo56c95df2021-04-21 15:28:21 +01003976// | invalid_elif_stmt
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003977// | 'elif' named_expression ':' block elif_stmt
3978// | 'elif' named_expression ':' block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003979static stmt_ty
3980elif_stmt_rule(Parser *p)
3981{
3982 D(p->level++);
3983 if (p->error_indicator) {
3984 D(p->level--);
3985 return NULL;
3986 }
3987 stmt_ty _res = NULL;
3988 int _mark = p->mark;
3989 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3990 p->error_indicator = 1;
3991 D(p->level--);
3992 return NULL;
3993 }
3994 int _start_lineno = p->tokens[_mark]->lineno;
3995 UNUSED(_start_lineno); // Only used by EXTRA macro
3996 int _start_col_offset = p->tokens[_mark]->col_offset;
3997 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo56c95df2021-04-21 15:28:21 +01003998 if (p->call_invalid_rules) { // invalid_elif_stmt
3999 if (p->error_indicator) {
4000 D(p->level--);
4001 return NULL;
4002 }
4003 D(fprintf(stderr, "%*c> elif_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_elif_stmt"));
4004 void *invalid_elif_stmt_var;
4005 if (
4006 (invalid_elif_stmt_var = invalid_elif_stmt_rule(p)) // invalid_elif_stmt
4007 )
4008 {
4009 D(fprintf(stderr, "%*c+ elif_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_elif_stmt"));
4010 _res = invalid_elif_stmt_var;
4011 goto done;
4012 }
4013 p->mark = _mark;
4014 D(fprintf(stderr, "%*c%s elif_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4015 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_elif_stmt"));
4016 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004017 { // 'elif' named_expression ':' block elif_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004018 if (p->error_indicator) {
4019 D(p->level--);
4020 return NULL;
4021 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004022 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 +01004023 Token * _keyword;
4024 Token * _literal;
4025 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004026 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004027 stmt_ty c;
4028 if (
4029 (_keyword = _PyPegen_expect_token(p, 515)) // token='elif'
4030 &&
4031 (a = named_expression_rule(p)) // named_expression
4032 &&
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004033 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004034 &&
4035 (b = block_rule(p)) // block
4036 &&
4037 (c = elif_stmt_rule(p)) // elif_stmt
4038 )
4039 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004040 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 +01004041 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4042 if (_token == NULL) {
4043 D(p->level--);
4044 return NULL;
4045 }
4046 int _end_lineno = _token->end_lineno;
4047 UNUSED(_end_lineno); // Only used by EXTRA macro
4048 int _end_col_offset = _token->end_col_offset;
4049 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004050 _res = _PyAST_If ( a , b , CHECK ( asdl_stmt_seq * , _PyPegen_singleton_seq ( p , c ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004051 if (_res == NULL && PyErr_Occurred()) {
4052 p->error_indicator = 1;
4053 D(p->level--);
4054 return NULL;
4055 }
4056 goto done;
4057 }
4058 p->mark = _mark;
4059 D(fprintf(stderr, "%*c%s elif_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004060 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'elif' named_expression ':' block elif_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004061 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004062 { // 'elif' named_expression ':' block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004063 if (p->error_indicator) {
4064 D(p->level--);
4065 return NULL;
4066 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004067 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 +01004068 Token * _keyword;
4069 Token * _literal;
4070 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004071 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004072 void *c;
4073 if (
4074 (_keyword = _PyPegen_expect_token(p, 515)) // token='elif'
4075 &&
4076 (a = named_expression_rule(p)) // named_expression
4077 &&
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004078 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004079 &&
4080 (b = block_rule(p)) // block
4081 &&
4082 (c = else_block_rule(p), 1) // else_block?
4083 )
4084 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004085 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 +01004086 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4087 if (_token == NULL) {
4088 D(p->level--);
4089 return NULL;
4090 }
4091 int _end_lineno = _token->end_lineno;
4092 UNUSED(_end_lineno); // Only used by EXTRA macro
4093 int _end_col_offset = _token->end_col_offset;
4094 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004095 _res = _PyAST_If ( a , b , c , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004096 if (_res == NULL && PyErr_Occurred()) {
4097 p->error_indicator = 1;
4098 D(p->level--);
4099 return NULL;
4100 }
4101 goto done;
4102 }
4103 p->mark = _mark;
4104 D(fprintf(stderr, "%*c%s elif_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004105 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'elif' named_expression ':' block else_block?"));
4106 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004107 _res = NULL;
4108 done:
4109 D(p->level--);
4110 return _res;
4111}
4112
Pablo Galindo56c95df2021-04-21 15:28:21 +01004113// else_block: invalid_else_stmt | 'else' &&':' block
Pablo Galindoa5634c42020-09-16 19:42:00 +01004114static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004115else_block_rule(Parser *p)
4116{
4117 D(p->level++);
4118 if (p->error_indicator) {
4119 D(p->level--);
4120 return NULL;
4121 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01004122 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004123 int _mark = p->mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +01004124 if (p->call_invalid_rules) { // invalid_else_stmt
4125 if (p->error_indicator) {
4126 D(p->level--);
4127 return NULL;
4128 }
4129 D(fprintf(stderr, "%*c> else_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_else_stmt"));
4130 void *invalid_else_stmt_var;
4131 if (
4132 (invalid_else_stmt_var = invalid_else_stmt_rule(p)) // invalid_else_stmt
4133 )
4134 {
4135 D(fprintf(stderr, "%*c+ else_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_else_stmt"));
4136 _res = invalid_else_stmt_var;
4137 goto done;
4138 }
4139 p->mark = _mark;
4140 D(fprintf(stderr, "%*c%s else_block[%d-%d]: %s failed!\n", p->level, ' ',
4141 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_else_stmt"));
4142 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004143 { // 'else' &&':' block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004144 if (p->error_indicator) {
4145 D(p->level--);
4146 return NULL;
4147 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004148 D(fprintf(stderr, "%*c> else_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'else' &&':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004149 Token * _keyword;
4150 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004151 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004152 if (
4153 (_keyword = _PyPegen_expect_token(p, 516)) // token='else'
4154 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00004155 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004156 &&
4157 (b = block_rule(p)) // block
4158 )
4159 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00004160 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 +01004161 _res = b;
4162 if (_res == NULL && PyErr_Occurred()) {
4163 p->error_indicator = 1;
4164 D(p->level--);
4165 return NULL;
4166 }
4167 goto done;
4168 }
4169 p->mark = _mark;
4170 D(fprintf(stderr, "%*c%s else_block[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00004171 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'else' &&':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004172 }
4173 _res = NULL;
4174 done:
4175 D(p->level--);
4176 return _res;
4177}
4178
Pablo Galindo56c95df2021-04-21 15:28:21 +01004179// while_stmt: invalid_while_stmt | 'while' named_expression ':' block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004180static stmt_ty
4181while_stmt_rule(Parser *p)
4182{
4183 D(p->level++);
4184 if (p->error_indicator) {
4185 D(p->level--);
4186 return NULL;
4187 }
4188 stmt_ty _res = NULL;
4189 int _mark = p->mark;
4190 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4191 p->error_indicator = 1;
4192 D(p->level--);
4193 return NULL;
4194 }
4195 int _start_lineno = p->tokens[_mark]->lineno;
4196 UNUSED(_start_lineno); // Only used by EXTRA macro
4197 int _start_col_offset = p->tokens[_mark]->col_offset;
4198 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo56c95df2021-04-21 15:28:21 +01004199 if (p->call_invalid_rules) { // invalid_while_stmt
4200 if (p->error_indicator) {
4201 D(p->level--);
4202 return NULL;
4203 }
4204 D(fprintf(stderr, "%*c> while_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_while_stmt"));
4205 void *invalid_while_stmt_var;
4206 if (
4207 (invalid_while_stmt_var = invalid_while_stmt_rule(p)) // invalid_while_stmt
4208 )
4209 {
4210 D(fprintf(stderr, "%*c+ while_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_while_stmt"));
4211 _res = invalid_while_stmt_var;
4212 goto done;
4213 }
4214 p->mark = _mark;
4215 D(fprintf(stderr, "%*c%s while_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4216 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_while_stmt"));
4217 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004218 { // 'while' named_expression ':' block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004219 if (p->error_indicator) {
4220 D(p->level--);
4221 return NULL;
4222 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004223 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 +01004224 Token * _keyword;
4225 Token * _literal;
4226 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004227 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004228 void *c;
4229 if (
4230 (_keyword = _PyPegen_expect_token(p, 512)) // token='while'
4231 &&
4232 (a = named_expression_rule(p)) // named_expression
4233 &&
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004234 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004235 &&
4236 (b = block_rule(p)) // block
4237 &&
4238 (c = else_block_rule(p), 1) // else_block?
4239 )
4240 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004241 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 +01004242 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4243 if (_token == NULL) {
4244 D(p->level--);
4245 return NULL;
4246 }
4247 int _end_lineno = _token->end_lineno;
4248 UNUSED(_end_lineno); // Only used by EXTRA macro
4249 int _end_col_offset = _token->end_col_offset;
4250 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004251 _res = _PyAST_While ( a , b , c , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004252 if (_res == NULL && PyErr_Occurred()) {
4253 p->error_indicator = 1;
4254 D(p->level--);
4255 return NULL;
4256 }
4257 goto done;
4258 }
4259 p->mark = _mark;
4260 D(fprintf(stderr, "%*c%s while_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004261 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'while' named_expression ':' block else_block?"));
4262 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004263 _res = NULL;
4264 done:
4265 D(p->level--);
4266 return _res;
4267}
4268
4269// for_stmt:
Pablo Galindo56c95df2021-04-21 15:28:21 +01004270// | invalid_for_stmt
Pablo Galindo58fb1562021-02-02 19:54:22 +00004271// | 'for' star_targets 'in' ~ star_expressions &&':' TYPE_COMMENT? block else_block?
4272// | ASYNC 'for' star_targets 'in' ~ star_expressions &&':' TYPE_COMMENT? block else_block?
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004273// | invalid_for_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004274static stmt_ty
4275for_stmt_rule(Parser *p)
4276{
4277 D(p->level++);
4278 if (p->error_indicator) {
4279 D(p->level--);
4280 return NULL;
4281 }
4282 stmt_ty _res = NULL;
4283 int _mark = p->mark;
4284 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4285 p->error_indicator = 1;
4286 D(p->level--);
4287 return NULL;
4288 }
4289 int _start_lineno = p->tokens[_mark]->lineno;
4290 UNUSED(_start_lineno); // Only used by EXTRA macro
4291 int _start_col_offset = p->tokens[_mark]->col_offset;
4292 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo56c95df2021-04-21 15:28:21 +01004293 if (p->call_invalid_rules) { // invalid_for_stmt
4294 if (p->error_indicator) {
4295 D(p->level--);
4296 return NULL;
4297 }
4298 D(fprintf(stderr, "%*c> for_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_for_stmt"));
4299 void *invalid_for_stmt_var;
4300 if (
4301 (invalid_for_stmt_var = invalid_for_stmt_rule(p)) // invalid_for_stmt
4302 )
4303 {
4304 D(fprintf(stderr, "%*c+ for_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_for_stmt"));
4305 _res = invalid_for_stmt_var;
4306 goto done;
4307 }
4308 p->mark = _mark;
4309 D(fprintf(stderr, "%*c%s for_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4310 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_for_stmt"));
4311 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004312 { // 'for' star_targets 'in' ~ star_expressions &&':' TYPE_COMMENT? block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004313 if (p->error_indicator) {
4314 D(p->level--);
4315 return NULL;
4316 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004317 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 +03004318 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004319 Token * _keyword;
4320 Token * _keyword_1;
4321 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004322 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004323 void *el;
4324 expr_ty ex;
4325 expr_ty t;
4326 void *tc;
4327 if (
4328 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
4329 &&
4330 (t = star_targets_rule(p)) // star_targets
4331 &&
4332 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
4333 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004334 (_cut_var = 1)
4335 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004336 (ex = star_expressions_rule(p)) // star_expressions
4337 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00004338 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004339 &&
4340 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
4341 &&
4342 (b = block_rule(p)) // block
4343 &&
4344 (el = else_block_rule(p), 1) // else_block?
4345 )
4346 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00004347 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 +01004348 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4349 if (_token == NULL) {
4350 D(p->level--);
4351 return NULL;
4352 }
4353 int _end_lineno = _token->end_lineno;
4354 UNUSED(_end_lineno); // Only used by EXTRA macro
4355 int _end_col_offset = _token->end_col_offset;
4356 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004357 _res = _PyAST_For ( t , ex , b , el , NEW_TYPE_COMMENT ( p , tc ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004358 if (_res == NULL && PyErr_Occurred()) {
4359 p->error_indicator = 1;
4360 D(p->level--);
4361 return NULL;
4362 }
4363 goto done;
4364 }
4365 p->mark = _mark;
4366 D(fprintf(stderr, "%*c%s for_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00004367 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 +03004368 if (_cut_var) {
4369 D(p->level--);
4370 return NULL;
4371 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004372 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004373 { // ASYNC 'for' star_targets 'in' ~ star_expressions &&':' TYPE_COMMENT? block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004374 if (p->error_indicator) {
4375 D(p->level--);
4376 return NULL;
4377 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004378 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 +03004379 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004380 Token * _keyword;
4381 Token * _keyword_1;
4382 Token * _literal;
4383 Token * async_var;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004384 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004385 void *el;
4386 expr_ty ex;
4387 expr_ty t;
4388 void *tc;
4389 if (
4390 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
4391 &&
4392 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
4393 &&
4394 (t = star_targets_rule(p)) // star_targets
4395 &&
4396 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
4397 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004398 (_cut_var = 1)
4399 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004400 (ex = star_expressions_rule(p)) // star_expressions
4401 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00004402 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004403 &&
4404 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
4405 &&
4406 (b = block_rule(p)) // block
4407 &&
4408 (el = else_block_rule(p), 1) // else_block?
4409 )
4410 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00004411 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 +01004412 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4413 if (_token == NULL) {
4414 D(p->level--);
4415 return NULL;
4416 }
4417 int _end_lineno = _token->end_lineno;
4418 UNUSED(_end_lineno); // Only used by EXTRA macro
4419 int _end_col_offset = _token->end_col_offset;
4420 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004421 _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 +01004422 if (_res == NULL && PyErr_Occurred()) {
4423 p->error_indicator = 1;
4424 D(p->level--);
4425 return NULL;
4426 }
4427 goto done;
4428 }
4429 p->mark = _mark;
4430 D(fprintf(stderr, "%*c%s for_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00004431 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 +03004432 if (_cut_var) {
4433 D(p->level--);
4434 return NULL;
4435 }
4436 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02004437 if (p->call_invalid_rules) { // invalid_for_target
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004438 if (p->error_indicator) {
4439 D(p->level--);
4440 return NULL;
4441 }
4442 D(fprintf(stderr, "%*c> for_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_for_target"));
4443 void *invalid_for_target_var;
4444 if (
4445 (invalid_for_target_var = invalid_for_target_rule(p)) // invalid_for_target
4446 )
4447 {
4448 D(fprintf(stderr, "%*c+ for_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_for_target"));
4449 _res = invalid_for_target_var;
4450 goto done;
4451 }
4452 p->mark = _mark;
4453 D(fprintf(stderr, "%*c%s for_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4454 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_for_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004455 }
4456 _res = NULL;
4457 done:
4458 D(p->level--);
4459 return _res;
4460}
4461
4462// with_stmt:
Pablo Galindo56c95df2021-04-21 15:28:21 +01004463// | invalid_with_stmt_indent
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004464// | 'with' '(' ','.with_item+ ','? ')' ':' block
4465// | 'with' ','.with_item+ ':' TYPE_COMMENT? block
4466// | ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block
4467// | ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block
Pablo Galindo58fb1562021-02-02 19:54:22 +00004468// | invalid_with_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004469static stmt_ty
4470with_stmt_rule(Parser *p)
4471{
4472 D(p->level++);
4473 if (p->error_indicator) {
4474 D(p->level--);
4475 return NULL;
4476 }
4477 stmt_ty _res = NULL;
4478 int _mark = p->mark;
4479 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4480 p->error_indicator = 1;
4481 D(p->level--);
4482 return NULL;
4483 }
4484 int _start_lineno = p->tokens[_mark]->lineno;
4485 UNUSED(_start_lineno); // Only used by EXTRA macro
4486 int _start_col_offset = p->tokens[_mark]->col_offset;
4487 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo56c95df2021-04-21 15:28:21 +01004488 if (p->call_invalid_rules) { // invalid_with_stmt_indent
4489 if (p->error_indicator) {
4490 D(p->level--);
4491 return NULL;
4492 }
4493 D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_with_stmt_indent"));
4494 void *invalid_with_stmt_indent_var;
4495 if (
4496 (invalid_with_stmt_indent_var = invalid_with_stmt_indent_rule(p)) // invalid_with_stmt_indent
4497 )
4498 {
4499 D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_with_stmt_indent"));
4500 _res = invalid_with_stmt_indent_var;
4501 goto done;
4502 }
4503 p->mark = _mark;
4504 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4505 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_with_stmt_indent"));
4506 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004507 { // 'with' '(' ','.with_item+ ','? ')' ':' block
4508 if (p->error_indicator) {
4509 D(p->level--);
4510 return NULL;
4511 }
4512 D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'with' '(' ','.with_item+ ','? ')' ':' block"));
4513 Token * _keyword;
4514 Token * _literal;
4515 Token * _literal_1;
4516 Token * _literal_2;
4517 void *_opt_var;
4518 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +01004519 asdl_withitem_seq* a;
4520 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004521 if (
4522 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
4523 &&
4524 (_literal = _PyPegen_expect_token(p, 7)) // token='('
4525 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01004526 (a = (asdl_withitem_seq*)_gather_39_rule(p)) // ','.with_item+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004527 &&
4528 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
4529 &&
4530 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
4531 &&
4532 (_literal_2 = _PyPegen_expect_token(p, 11)) // token=':'
4533 &&
4534 (b = block_rule(p)) // block
4535 )
4536 {
4537 D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'with' '(' ','.with_item+ ','? ')' ':' block"));
4538 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4539 if (_token == NULL) {
4540 D(p->level--);
4541 return NULL;
4542 }
4543 int _end_lineno = _token->end_lineno;
4544 UNUSED(_end_lineno); // Only used by EXTRA macro
4545 int _end_col_offset = _token->end_col_offset;
4546 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004547 _res = _PyAST_With ( a , b , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004548 if (_res == NULL && PyErr_Occurred()) {
4549 p->error_indicator = 1;
4550 D(p->level--);
4551 return NULL;
4552 }
4553 goto done;
4554 }
4555 p->mark = _mark;
4556 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4557 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'with' '(' ','.with_item+ ','? ')' ':' block"));
4558 }
4559 { // 'with' ','.with_item+ ':' TYPE_COMMENT? block
4560 if (p->error_indicator) {
4561 D(p->level--);
4562 return NULL;
4563 }
4564 D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4565 Token * _keyword;
4566 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004567 asdl_withitem_seq* a;
4568 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004569 void *tc;
4570 if (
4571 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
4572 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01004573 (a = (asdl_withitem_seq*)_gather_41_rule(p)) // ','.with_item+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004574 &&
4575 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
4576 &&
4577 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
4578 &&
4579 (b = block_rule(p)) // block
4580 )
4581 {
4582 D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4583 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4584 if (_token == NULL) {
4585 D(p->level--);
4586 return NULL;
4587 }
4588 int _end_lineno = _token->end_lineno;
4589 UNUSED(_end_lineno); // Only used by EXTRA macro
4590 int _end_col_offset = _token->end_col_offset;
4591 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004592 _res = _PyAST_With ( a , b , NEW_TYPE_COMMENT ( p , tc ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004593 if (_res == NULL && PyErr_Occurred()) {
4594 p->error_indicator = 1;
4595 D(p->level--);
4596 return NULL;
4597 }
4598 goto done;
4599 }
4600 p->mark = _mark;
4601 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4602 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4603 }
4604 { // ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block
4605 if (p->error_indicator) {
4606 D(p->level--);
4607 return NULL;
4608 }
4609 D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block"));
4610 Token * _keyword;
4611 Token * _literal;
4612 Token * _literal_1;
4613 Token * _literal_2;
4614 void *_opt_var;
4615 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +01004616 asdl_withitem_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004617 Token * async_var;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004618 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004619 if (
4620 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
4621 &&
4622 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
4623 &&
4624 (_literal = _PyPegen_expect_token(p, 7)) // token='('
4625 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01004626 (a = (asdl_withitem_seq*)_gather_43_rule(p)) // ','.with_item+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004627 &&
4628 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
4629 &&
4630 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
4631 &&
4632 (_literal_2 = _PyPegen_expect_token(p, 11)) // token=':'
4633 &&
4634 (b = block_rule(p)) // block
4635 )
4636 {
4637 D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block"));
4638 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4639 if (_token == NULL) {
4640 D(p->level--);
4641 return NULL;
4642 }
4643 int _end_lineno = _token->end_lineno;
4644 UNUSED(_end_lineno); // Only used by EXTRA macro
4645 int _end_col_offset = _token->end_col_offset;
4646 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004647 _res = CHECK_VERSION ( stmt_ty , 5 , "Async with statements are" , _PyAST_AsyncWith ( a , b , NULL , EXTRA ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004648 if (_res == NULL && PyErr_Occurred()) {
4649 p->error_indicator = 1;
4650 D(p->level--);
4651 return NULL;
4652 }
4653 goto done;
4654 }
4655 p->mark = _mark;
4656 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4657 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block"));
4658 }
4659 { // ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block
4660 if (p->error_indicator) {
4661 D(p->level--);
4662 return NULL;
4663 }
4664 D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4665 Token * _keyword;
4666 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004667 asdl_withitem_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004668 Token * async_var;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004669 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004670 void *tc;
4671 if (
4672 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
4673 &&
4674 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
4675 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01004676 (a = (asdl_withitem_seq*)_gather_45_rule(p)) // ','.with_item+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004677 &&
4678 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
4679 &&
4680 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
4681 &&
4682 (b = block_rule(p)) // block
4683 )
4684 {
4685 D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4686 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4687 if (_token == NULL) {
4688 D(p->level--);
4689 return NULL;
4690 }
4691 int _end_lineno = _token->end_lineno;
4692 UNUSED(_end_lineno); // Only used by EXTRA macro
4693 int _end_col_offset = _token->end_col_offset;
4694 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004695 _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 +01004696 if (_res == NULL && PyErr_Occurred()) {
4697 p->error_indicator = 1;
4698 D(p->level--);
4699 return NULL;
4700 }
4701 goto done;
4702 }
4703 p->mark = _mark;
4704 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4705 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4706 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004707 if (p->call_invalid_rules) { // invalid_with_stmt
4708 if (p->error_indicator) {
4709 D(p->level--);
4710 return NULL;
4711 }
4712 D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_with_stmt"));
4713 void *invalid_with_stmt_var;
4714 if (
4715 (invalid_with_stmt_var = invalid_with_stmt_rule(p)) // invalid_with_stmt
4716 )
4717 {
4718 D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_with_stmt"));
4719 _res = invalid_with_stmt_var;
4720 goto done;
4721 }
4722 p->mark = _mark;
4723 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4724 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_with_stmt"));
4725 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004726 _res = NULL;
4727 done:
4728 D(p->level--);
4729 return _res;
4730}
4731
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004732// with_item:
4733// | expression 'as' star_target &(',' | ')' | ':')
4734// | invalid_with_item
4735// | expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004736static withitem_ty
4737with_item_rule(Parser *p)
4738{
4739 D(p->level++);
4740 if (p->error_indicator) {
4741 D(p->level--);
4742 return NULL;
4743 }
4744 withitem_ty _res = NULL;
4745 int _mark = p->mark;
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004746 { // expression 'as' star_target &(',' | ')' | ':')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004747 if (p->error_indicator) {
4748 D(p->level--);
4749 return NULL;
4750 }
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004751 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 +03004752 Token * _keyword;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004753 expr_ty e;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004754 expr_ty t;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004755 if (
4756 (e = expression_rule(p)) // expression
4757 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004758 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
4759 &&
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004760 (t = star_target_rule(p)) // star_target
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004761 &&
4762 _PyPegen_lookahead(1, _tmp_47_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004763 )
4764 {
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004765 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 +02004766 _res = _PyAST_withitem ( e , t , p -> arena );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004767 if (_res == NULL && PyErr_Occurred()) {
4768 p->error_indicator = 1;
4769 D(p->level--);
4770 return NULL;
4771 }
4772 goto done;
4773 }
4774 p->mark = _mark;
4775 D(fprintf(stderr, "%*c%s with_item[%d-%d]: %s failed!\n", p->level, ' ',
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004776 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression 'as' star_target &(',' | ')' | ':')"));
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004777 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02004778 if (p->call_invalid_rules) { // invalid_with_item
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004779 if (p->error_indicator) {
4780 D(p->level--);
4781 return NULL;
4782 }
4783 D(fprintf(stderr, "%*c> with_item[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_with_item"));
4784 void *invalid_with_item_var;
4785 if (
4786 (invalid_with_item_var = invalid_with_item_rule(p)) // invalid_with_item
4787 )
4788 {
4789 D(fprintf(stderr, "%*c+ with_item[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_with_item"));
4790 _res = invalid_with_item_var;
4791 goto done;
4792 }
4793 p->mark = _mark;
4794 D(fprintf(stderr, "%*c%s with_item[%d-%d]: %s failed!\n", p->level, ' ',
4795 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_with_item"));
4796 }
4797 { // expression
4798 if (p->error_indicator) {
4799 D(p->level--);
4800 return NULL;
4801 }
4802 D(fprintf(stderr, "%*c> with_item[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression"));
4803 expr_ty e;
4804 if (
4805 (e = expression_rule(p)) // expression
4806 )
4807 {
4808 D(fprintf(stderr, "%*c+ with_item[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression"));
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004809 _res = _PyAST_withitem ( e , NULL , p -> arena );
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004810 if (_res == NULL && PyErr_Occurred()) {
4811 p->error_indicator = 1;
4812 D(p->level--);
4813 return NULL;
4814 }
4815 goto done;
4816 }
4817 p->mark = _mark;
4818 D(fprintf(stderr, "%*c%s with_item[%d-%d]: %s failed!\n", p->level, ' ',
4819 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004820 }
4821 _res = NULL;
4822 done:
4823 D(p->level--);
4824 return _res;
4825}
4826
4827// try_stmt:
Pablo Galindo56c95df2021-04-21 15:28:21 +01004828// | invalid_try_stmt
Pablo Galindo58fb1562021-02-02 19:54:22 +00004829// | 'try' &&':' block finally_block
4830// | 'try' &&':' block except_block+ else_block? finally_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004831static stmt_ty
4832try_stmt_rule(Parser *p)
4833{
4834 D(p->level++);
4835 if (p->error_indicator) {
4836 D(p->level--);
4837 return NULL;
4838 }
4839 stmt_ty _res = NULL;
4840 int _mark = p->mark;
4841 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4842 p->error_indicator = 1;
4843 D(p->level--);
4844 return NULL;
4845 }
4846 int _start_lineno = p->tokens[_mark]->lineno;
4847 UNUSED(_start_lineno); // Only used by EXTRA macro
4848 int _start_col_offset = p->tokens[_mark]->col_offset;
4849 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo56c95df2021-04-21 15:28:21 +01004850 if (p->call_invalid_rules) { // invalid_try_stmt
4851 if (p->error_indicator) {
4852 D(p->level--);
4853 return NULL;
4854 }
4855 D(fprintf(stderr, "%*c> try_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_try_stmt"));
4856 void *invalid_try_stmt_var;
4857 if (
4858 (invalid_try_stmt_var = invalid_try_stmt_rule(p)) // invalid_try_stmt
4859 )
4860 {
4861 D(fprintf(stderr, "%*c+ try_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_try_stmt"));
4862 _res = invalid_try_stmt_var;
4863 goto done;
4864 }
4865 p->mark = _mark;
4866 D(fprintf(stderr, "%*c%s try_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4867 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_try_stmt"));
4868 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004869 { // 'try' &&':' block finally_block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004870 if (p->error_indicator) {
4871 D(p->level--);
4872 return NULL;
4873 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004874 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 +01004875 Token * _keyword;
4876 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004877 asdl_stmt_seq* b;
4878 asdl_stmt_seq* f;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004879 if (
4880 (_keyword = _PyPegen_expect_token(p, 511)) // token='try'
4881 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00004882 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004883 &&
4884 (b = block_rule(p)) // block
4885 &&
4886 (f = finally_block_rule(p)) // finally_block
4887 )
4888 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00004889 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 +01004890 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4891 if (_token == NULL) {
4892 D(p->level--);
4893 return NULL;
4894 }
4895 int _end_lineno = _token->end_lineno;
4896 UNUSED(_end_lineno); // Only used by EXTRA macro
4897 int _end_col_offset = _token->end_col_offset;
4898 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004899 _res = _PyAST_Try ( b , NULL , NULL , f , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004900 if (_res == NULL && PyErr_Occurred()) {
4901 p->error_indicator = 1;
4902 D(p->level--);
4903 return NULL;
4904 }
4905 goto done;
4906 }
4907 p->mark = _mark;
4908 D(fprintf(stderr, "%*c%s try_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00004909 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'try' &&':' block finally_block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004910 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004911 { // 'try' &&':' block except_block+ else_block? finally_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004912 if (p->error_indicator) {
4913 D(p->level--);
4914 return NULL;
4915 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004916 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 +01004917 Token * _keyword;
4918 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004919 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004920 void *el;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004921 asdl_excepthandler_seq* ex;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004922 void *f;
4923 if (
4924 (_keyword = _PyPegen_expect_token(p, 511)) // token='try'
4925 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00004926 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004927 &&
4928 (b = block_rule(p)) // block
4929 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01004930 (ex = (asdl_excepthandler_seq*)_loop1_48_rule(p)) // except_block+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004931 &&
4932 (el = else_block_rule(p), 1) // else_block?
4933 &&
4934 (f = finally_block_rule(p), 1) // finally_block?
4935 )
4936 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00004937 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 +01004938 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4939 if (_token == NULL) {
4940 D(p->level--);
4941 return NULL;
4942 }
4943 int _end_lineno = _token->end_lineno;
4944 UNUSED(_end_lineno); // Only used by EXTRA macro
4945 int _end_col_offset = _token->end_col_offset;
4946 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004947 _res = _PyAST_Try ( b , ex , el , f , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004948 if (_res == NULL && PyErr_Occurred()) {
4949 p->error_indicator = 1;
4950 D(p->level--);
4951 return NULL;
4952 }
4953 goto done;
4954 }
4955 p->mark = _mark;
4956 D(fprintf(stderr, "%*c%s try_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00004957 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'try' &&':' block except_block+ else_block? finally_block?"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004958 }
4959 _res = NULL;
4960 done:
4961 D(p->level--);
4962 return _res;
4963}
4964
Pablo Galindo206cbda2021-02-07 18:42:21 +00004965// except_block:
Pablo Galindo56c95df2021-04-21 15:28:21 +01004966// | invalid_except_stmt_indent
Pablo Galindo206cbda2021-02-07 18:42:21 +00004967// | 'except' expression ['as' NAME] ':' block
4968// | 'except' ':' block
Pablo Galindo56c95df2021-04-21 15:28:21 +01004969// | invalid_except_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004970static excepthandler_ty
4971except_block_rule(Parser *p)
4972{
4973 D(p->level++);
4974 if (p->error_indicator) {
4975 D(p->level--);
4976 return NULL;
4977 }
4978 excepthandler_ty _res = NULL;
4979 int _mark = p->mark;
4980 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4981 p->error_indicator = 1;
4982 D(p->level--);
4983 return NULL;
4984 }
4985 int _start_lineno = p->tokens[_mark]->lineno;
4986 UNUSED(_start_lineno); // Only used by EXTRA macro
4987 int _start_col_offset = p->tokens[_mark]->col_offset;
4988 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo56c95df2021-04-21 15:28:21 +01004989 if (p->call_invalid_rules) { // invalid_except_stmt_indent
4990 if (p->error_indicator) {
4991 D(p->level--);
4992 return NULL;
4993 }
4994 D(fprintf(stderr, "%*c> except_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_except_stmt_indent"));
4995 void *invalid_except_stmt_indent_var;
4996 if (
4997 (invalid_except_stmt_indent_var = invalid_except_stmt_indent_rule(p)) // invalid_except_stmt_indent
4998 )
4999 {
5000 D(fprintf(stderr, "%*c+ except_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_except_stmt_indent"));
5001 _res = invalid_except_stmt_indent_var;
5002 goto done;
5003 }
5004 p->mark = _mark;
5005 D(fprintf(stderr, "%*c%s except_block[%d-%d]: %s failed!\n", p->level, ' ',
5006 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_except_stmt_indent"));
5007 }
Pablo Galindo206cbda2021-02-07 18:42:21 +00005008 { // 'except' expression ['as' NAME] ':' block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005009 if (p->error_indicator) {
5010 D(p->level--);
5011 return NULL;
5012 }
Pablo Galindo206cbda2021-02-07 18:42:21 +00005013 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 +01005014 Token * _keyword;
5015 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01005016 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005017 expr_ty e;
5018 void *t;
5019 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03005020 (_keyword = _PyPegen_expect_token(p, 521)) // token='except'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005021 &&
5022 (e = expression_rule(p)) // expression
5023 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03005024 (t = _tmp_49_rule(p), 1) // ['as' NAME]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005025 &&
Pablo Galindo206cbda2021-02-07 18:42:21 +00005026 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005027 &&
5028 (b = block_rule(p)) // block
5029 )
5030 {
Pablo Galindo206cbda2021-02-07 18:42:21 +00005031 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 +01005032 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5033 if (_token == NULL) {
5034 D(p->level--);
5035 return NULL;
5036 }
5037 int _end_lineno = _token->end_lineno;
5038 UNUSED(_end_lineno); // Only used by EXTRA macro
5039 int _end_col_offset = _token->end_col_offset;
5040 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02005041 _res = _PyAST_ExceptHandler ( e , ( t ) ? ( ( expr_ty ) t ) -> v . Name . id : NULL , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005042 if (_res == NULL && PyErr_Occurred()) {
5043 p->error_indicator = 1;
5044 D(p->level--);
5045 return NULL;
5046 }
5047 goto done;
5048 }
5049 p->mark = _mark;
5050 D(fprintf(stderr, "%*c%s except_block[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo206cbda2021-02-07 18:42:21 +00005051 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' expression ['as' NAME] ':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005052 }
Pablo Galindo206cbda2021-02-07 18:42:21 +00005053 { // 'except' ':' block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005054 if (p->error_indicator) {
5055 D(p->level--);
5056 return NULL;
5057 }
Pablo Galindo206cbda2021-02-07 18:42:21 +00005058 D(fprintf(stderr, "%*c> except_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' ':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005059 Token * _keyword;
5060 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01005061 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005062 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03005063 (_keyword = _PyPegen_expect_token(p, 521)) // token='except'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005064 &&
Pablo Galindo206cbda2021-02-07 18:42:21 +00005065 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005066 &&
5067 (b = block_rule(p)) // block
5068 )
5069 {
Pablo Galindo206cbda2021-02-07 18:42:21 +00005070 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 +01005071 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5072 if (_token == NULL) {
5073 D(p->level--);
5074 return NULL;
5075 }
5076 int _end_lineno = _token->end_lineno;
5077 UNUSED(_end_lineno); // Only used by EXTRA macro
5078 int _end_col_offset = _token->end_col_offset;
5079 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02005080 _res = _PyAST_ExceptHandler ( NULL , NULL , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005081 if (_res == NULL && PyErr_Occurred()) {
5082 p->error_indicator = 1;
5083 D(p->level--);
5084 return NULL;
5085 }
5086 goto done;
5087 }
5088 p->mark = _mark;
5089 D(fprintf(stderr, "%*c%s except_block[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo206cbda2021-02-07 18:42:21 +00005090 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' ':' block"));
5091 }
Pablo Galindo56c95df2021-04-21 15:28:21 +01005092 if (p->call_invalid_rules) { // invalid_except_stmt
Pablo Galindo206cbda2021-02-07 18:42:21 +00005093 if (p->error_indicator) {
5094 D(p->level--);
5095 return NULL;
5096 }
Pablo Galindo56c95df2021-04-21 15:28:21 +01005097 D(fprintf(stderr, "%*c> except_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_except_stmt"));
5098 void *invalid_except_stmt_var;
Pablo Galindo206cbda2021-02-07 18:42:21 +00005099 if (
Pablo Galindo56c95df2021-04-21 15:28:21 +01005100 (invalid_except_stmt_var = invalid_except_stmt_rule(p)) // invalid_except_stmt
Pablo Galindo206cbda2021-02-07 18:42:21 +00005101 )
5102 {
Pablo Galindo56c95df2021-04-21 15:28:21 +01005103 D(fprintf(stderr, "%*c+ except_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_except_stmt"));
5104 _res = invalid_except_stmt_var;
Pablo Galindo206cbda2021-02-07 18:42:21 +00005105 goto done;
5106 }
5107 p->mark = _mark;
5108 D(fprintf(stderr, "%*c%s except_block[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo56c95df2021-04-21 15:28:21 +01005109 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_except_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005110 }
5111 _res = NULL;
5112 done:
5113 D(p->level--);
5114 return _res;
5115}
5116
Pablo Galindo56c95df2021-04-21 15:28:21 +01005117// finally_block: invalid_finally_stmt | 'finally' &&':' block
Pablo Galindoa5634c42020-09-16 19:42:00 +01005118static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005119finally_block_rule(Parser *p)
5120{
5121 D(p->level++);
5122 if (p->error_indicator) {
5123 D(p->level--);
5124 return NULL;
5125 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01005126 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005127 int _mark = p->mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +01005128 if (p->call_invalid_rules) { // invalid_finally_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005129 if (p->error_indicator) {
5130 D(p->level--);
5131 return NULL;
5132 }
Pablo Galindo56c95df2021-04-21 15:28:21 +01005133 D(fprintf(stderr, "%*c> finally_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_finally_stmt"));
5134 void *invalid_finally_stmt_var;
5135 if (
5136 (invalid_finally_stmt_var = invalid_finally_stmt_rule(p)) // invalid_finally_stmt
5137 )
5138 {
5139 D(fprintf(stderr, "%*c+ finally_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_finally_stmt"));
5140 _res = invalid_finally_stmt_var;
5141 goto done;
5142 }
5143 p->mark = _mark;
5144 D(fprintf(stderr, "%*c%s finally_block[%d-%d]: %s failed!\n", p->level, ' ',
5145 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_finally_stmt"));
5146 }
5147 { // 'finally' &&':' block
5148 if (p->error_indicator) {
5149 D(p->level--);
5150 return NULL;
5151 }
5152 D(fprintf(stderr, "%*c> finally_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'finally' &&':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005153 Token * _keyword;
5154 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01005155 asdl_stmt_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005156 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03005157 (_keyword = _PyPegen_expect_token(p, 522)) // token='finally'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005158 &&
Pablo Galindo56c95df2021-04-21 15:28:21 +01005159 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005160 &&
5161 (a = block_rule(p)) // block
5162 )
5163 {
Pablo Galindo56c95df2021-04-21 15:28:21 +01005164 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 +01005165 _res = a;
5166 if (_res == NULL && PyErr_Occurred()) {
5167 p->error_indicator = 1;
5168 D(p->level--);
5169 return NULL;
5170 }
5171 goto done;
5172 }
5173 p->mark = _mark;
5174 D(fprintf(stderr, "%*c%s finally_block[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo56c95df2021-04-21 15:28:21 +01005175 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'finally' &&':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005176 }
5177 _res = NULL;
5178 done:
5179 D(p->level--);
5180 return _res;
5181}
5182
Pablo Galindo08fb8ac2021-03-18 01:03:11 +00005183// match_stmt:
5184// | "match" subject_expr ':' NEWLINE INDENT case_block+ DEDENT
5185// | invalid_match_stmt
Brandt Bucher145bf262021-02-26 14:51:55 -08005186static stmt_ty
5187match_stmt_rule(Parser *p)
5188{
5189 D(p->level++);
5190 if (p->error_indicator) {
5191 D(p->level--);
5192 return NULL;
5193 }
5194 stmt_ty _res = NULL;
5195 int _mark = p->mark;
5196 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
5197 p->error_indicator = 1;
5198 D(p->level--);
5199 return NULL;
5200 }
5201 int _start_lineno = p->tokens[_mark]->lineno;
5202 UNUSED(_start_lineno); // Only used by EXTRA macro
5203 int _start_col_offset = p->tokens[_mark]->col_offset;
5204 UNUSED(_start_col_offset); // Only used by EXTRA macro
5205 { // "match" subject_expr ':' NEWLINE INDENT case_block+ DEDENT
5206 if (p->error_indicator) {
5207 D(p->level--);
5208 return NULL;
5209 }
5210 D(fprintf(stderr, "%*c> match_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"match\" subject_expr ':' NEWLINE INDENT case_block+ DEDENT"));
5211 expr_ty _keyword;
5212 Token * _literal;
5213 asdl_match_case_seq* cases;
5214 Token * dedent_var;
5215 Token * indent_var;
5216 Token * newline_var;
5217 expr_ty subject;
5218 if (
5219 (_keyword = _PyPegen_expect_soft_keyword(p, "match")) // soft_keyword='"match"'
5220 &&
5221 (subject = subject_expr_rule(p)) // subject_expr
5222 &&
5223 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
5224 &&
5225 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
5226 &&
5227 (indent_var = _PyPegen_expect_token(p, INDENT)) // token='INDENT'
5228 &&
5229 (cases = (asdl_match_case_seq*)_loop1_50_rule(p)) // case_block+
5230 &&
5231 (dedent_var = _PyPegen_expect_token(p, DEDENT)) // token='DEDENT'
5232 )
5233 {
5234 D(fprintf(stderr, "%*c+ match_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"match\" subject_expr ':' NEWLINE INDENT case_block+ DEDENT"));
5235 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5236 if (_token == NULL) {
5237 D(p->level--);
5238 return NULL;
5239 }
5240 int _end_lineno = _token->end_lineno;
5241 UNUSED(_end_lineno); // Only used by EXTRA macro
5242 int _end_col_offset = _token->end_col_offset;
5243 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02005244 _res = CHECK_VERSION ( stmt_ty , 10 , "Pattern matching is" , _PyAST_Match ( subject , cases , EXTRA ) );
Brandt Bucher145bf262021-02-26 14:51:55 -08005245 if (_res == NULL && PyErr_Occurred()) {
5246 p->error_indicator = 1;
5247 D(p->level--);
5248 return NULL;
5249 }
5250 goto done;
5251 }
5252 p->mark = _mark;
5253 D(fprintf(stderr, "%*c%s match_stmt[%d-%d]: %s failed!\n", p->level, ' ',
5254 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"match\" subject_expr ':' NEWLINE INDENT case_block+ DEDENT"));
5255 }
Pablo Galindo08fb8ac2021-03-18 01:03:11 +00005256 if (p->call_invalid_rules) { // invalid_match_stmt
5257 if (p->error_indicator) {
5258 D(p->level--);
5259 return NULL;
5260 }
5261 D(fprintf(stderr, "%*c> match_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_match_stmt"));
5262 void *invalid_match_stmt_var;
5263 if (
5264 (invalid_match_stmt_var = invalid_match_stmt_rule(p)) // invalid_match_stmt
5265 )
5266 {
5267 D(fprintf(stderr, "%*c+ match_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_match_stmt"));
5268 _res = invalid_match_stmt_var;
5269 goto done;
5270 }
5271 p->mark = _mark;
5272 D(fprintf(stderr, "%*c%s match_stmt[%d-%d]: %s failed!\n", p->level, ' ',
5273 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_match_stmt"));
5274 }
Brandt Bucher145bf262021-02-26 14:51:55 -08005275 _res = NULL;
5276 done:
5277 D(p->level--);
5278 return _res;
5279}
5280
5281// subject_expr: star_named_expression ',' star_named_expressions? | named_expression
5282static expr_ty
5283subject_expr_rule(Parser *p)
5284{
5285 D(p->level++);
5286 if (p->error_indicator) {
5287 D(p->level--);
5288 return NULL;
5289 }
5290 expr_ty _res = NULL;
5291 int _mark = p->mark;
5292 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
5293 p->error_indicator = 1;
5294 D(p->level--);
5295 return NULL;
5296 }
5297 int _start_lineno = p->tokens[_mark]->lineno;
5298 UNUSED(_start_lineno); // Only used by EXTRA macro
5299 int _start_col_offset = p->tokens[_mark]->col_offset;
5300 UNUSED(_start_col_offset); // Only used by EXTRA macro
5301 { // star_named_expression ',' star_named_expressions?
5302 if (p->error_indicator) {
5303 D(p->level--);
5304 return NULL;
5305 }
5306 D(fprintf(stderr, "%*c> subject_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_named_expression ',' star_named_expressions?"));
5307 Token * _literal;
5308 expr_ty value;
5309 void *values;
5310 if (
5311 (value = star_named_expression_rule(p)) // star_named_expression
5312 &&
5313 (_literal = _PyPegen_expect_token(p, 12)) // token=','
5314 &&
5315 (values = star_named_expressions_rule(p), 1) // star_named_expressions?
5316 )
5317 {
5318 D(fprintf(stderr, "%*c+ subject_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_named_expression ',' star_named_expressions?"));
5319 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5320 if (_token == NULL) {
5321 D(p->level--);
5322 return NULL;
5323 }
5324 int _end_lineno = _token->end_lineno;
5325 UNUSED(_end_lineno); // Only used by EXTRA macro
5326 int _end_col_offset = _token->end_col_offset;
5327 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02005328 _res = _PyAST_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , value , values ) ) , Load , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08005329 if (_res == NULL && PyErr_Occurred()) {
5330 p->error_indicator = 1;
5331 D(p->level--);
5332 return NULL;
5333 }
5334 goto done;
5335 }
5336 p->mark = _mark;
5337 D(fprintf(stderr, "%*c%s subject_expr[%d-%d]: %s failed!\n", p->level, ' ',
5338 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression ',' star_named_expressions?"));
5339 }
5340 { // named_expression
5341 if (p->error_indicator) {
5342 D(p->level--);
5343 return NULL;
5344 }
5345 D(fprintf(stderr, "%*c> subject_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression"));
5346 expr_ty named_expression_var;
5347 if (
5348 (named_expression_var = named_expression_rule(p)) // named_expression
5349 )
5350 {
5351 D(fprintf(stderr, "%*c+ subject_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "named_expression"));
5352 _res = named_expression_var;
5353 goto done;
5354 }
5355 p->mark = _mark;
5356 D(fprintf(stderr, "%*c%s subject_expr[%d-%d]: %s failed!\n", p->level, ' ',
5357 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression"));
5358 }
5359 _res = NULL;
5360 done:
5361 D(p->level--);
5362 return _res;
5363}
5364
Pablo Galindo56c95df2021-04-21 15:28:21 +01005365// case_block: invalid_case_block | "case" patterns guard? ':' block
Brandt Bucher145bf262021-02-26 14:51:55 -08005366static match_case_ty
5367case_block_rule(Parser *p)
5368{
5369 D(p->level++);
5370 if (p->error_indicator) {
5371 D(p->level--);
5372 return NULL;
5373 }
5374 match_case_ty _res = NULL;
5375 int _mark = p->mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +01005376 if (p->call_invalid_rules) { // invalid_case_block
5377 if (p->error_indicator) {
5378 D(p->level--);
5379 return NULL;
5380 }
5381 D(fprintf(stderr, "%*c> case_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_case_block"));
5382 void *invalid_case_block_var;
5383 if (
5384 (invalid_case_block_var = invalid_case_block_rule(p)) // invalid_case_block
5385 )
5386 {
5387 D(fprintf(stderr, "%*c+ case_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_case_block"));
5388 _res = invalid_case_block_var;
5389 goto done;
5390 }
5391 p->mark = _mark;
5392 D(fprintf(stderr, "%*c%s case_block[%d-%d]: %s failed!\n", p->level, ' ',
5393 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_case_block"));
5394 }
Brandt Bucher145bf262021-02-26 14:51:55 -08005395 { // "case" patterns guard? ':' block
5396 if (p->error_indicator) {
5397 D(p->level--);
5398 return NULL;
5399 }
5400 D(fprintf(stderr, "%*c> case_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"case\" patterns guard? ':' block"));
5401 expr_ty _keyword;
5402 Token * _literal;
5403 asdl_stmt_seq* body;
5404 void *guard;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005405 pattern_ty pattern;
Brandt Bucher145bf262021-02-26 14:51:55 -08005406 if (
5407 (_keyword = _PyPegen_expect_soft_keyword(p, "case")) // soft_keyword='"case"'
5408 &&
5409 (pattern = patterns_rule(p)) // patterns
5410 &&
5411 (guard = guard_rule(p), 1) // guard?
5412 &&
5413 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
5414 &&
5415 (body = block_rule(p)) // block
5416 )
5417 {
5418 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 +02005419 _res = _PyAST_match_case ( pattern , guard , body , p -> arena );
Brandt Bucher145bf262021-02-26 14:51:55 -08005420 if (_res == NULL && PyErr_Occurred()) {
5421 p->error_indicator = 1;
5422 D(p->level--);
5423 return NULL;
5424 }
5425 goto done;
5426 }
5427 p->mark = _mark;
5428 D(fprintf(stderr, "%*c%s case_block[%d-%d]: %s failed!\n", p->level, ' ',
5429 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"case\" patterns guard? ':' block"));
5430 }
5431 _res = NULL;
5432 done:
5433 D(p->level--);
5434 return _res;
5435}
5436
5437// guard: 'if' named_expression
5438static expr_ty
5439guard_rule(Parser *p)
5440{
5441 D(p->level++);
5442 if (p->error_indicator) {
5443 D(p->level--);
5444 return NULL;
5445 }
5446 expr_ty _res = NULL;
5447 int _mark = p->mark;
5448 { // 'if' named_expression
5449 if (p->error_indicator) {
5450 D(p->level--);
5451 return NULL;
5452 }
5453 D(fprintf(stderr, "%*c> guard[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' named_expression"));
5454 Token * _keyword;
5455 expr_ty guard;
5456 if (
5457 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
5458 &&
5459 (guard = named_expression_rule(p)) // named_expression
5460 )
5461 {
5462 D(fprintf(stderr, "%*c+ guard[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' named_expression"));
5463 _res = guard;
5464 if (_res == NULL && PyErr_Occurred()) {
5465 p->error_indicator = 1;
5466 D(p->level--);
5467 return NULL;
5468 }
5469 goto done;
5470 }
5471 p->mark = _mark;
5472 D(fprintf(stderr, "%*c%s guard[%d-%d]: %s failed!\n", p->level, ' ',
5473 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' named_expression"));
5474 }
5475 _res = NULL;
5476 done:
5477 D(p->level--);
5478 return _res;
5479}
5480
5481// patterns: open_sequence_pattern | pattern
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005482static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08005483patterns_rule(Parser *p)
5484{
5485 D(p->level++);
5486 if (p->error_indicator) {
5487 D(p->level--);
5488 return NULL;
5489 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005490 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08005491 int _mark = p->mark;
5492 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
5493 p->error_indicator = 1;
5494 D(p->level--);
5495 return NULL;
5496 }
5497 int _start_lineno = p->tokens[_mark]->lineno;
5498 UNUSED(_start_lineno); // Only used by EXTRA macro
5499 int _start_col_offset = p->tokens[_mark]->col_offset;
5500 UNUSED(_start_col_offset); // Only used by EXTRA macro
5501 { // open_sequence_pattern
5502 if (p->error_indicator) {
5503 D(p->level--);
5504 return NULL;
5505 }
5506 D(fprintf(stderr, "%*c> patterns[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "open_sequence_pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005507 asdl_pattern_seq* patterns;
Brandt Bucher145bf262021-02-26 14:51:55 -08005508 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005509 (patterns = (asdl_pattern_seq*)open_sequence_pattern_rule(p)) // open_sequence_pattern
Brandt Bucher145bf262021-02-26 14:51:55 -08005510 )
5511 {
5512 D(fprintf(stderr, "%*c+ patterns[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "open_sequence_pattern"));
5513 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5514 if (_token == NULL) {
5515 D(p->level--);
5516 return NULL;
5517 }
5518 int _end_lineno = _token->end_lineno;
5519 UNUSED(_end_lineno); // Only used by EXTRA macro
5520 int _end_col_offset = _token->end_col_offset;
5521 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005522 _res = _PyAST_MatchSequence ( patterns , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08005523 if (_res == NULL && PyErr_Occurred()) {
5524 p->error_indicator = 1;
5525 D(p->level--);
5526 return NULL;
5527 }
5528 goto done;
5529 }
5530 p->mark = _mark;
5531 D(fprintf(stderr, "%*c%s patterns[%d-%d]: %s failed!\n", p->level, ' ',
5532 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "open_sequence_pattern"));
5533 }
5534 { // pattern
5535 if (p->error_indicator) {
5536 D(p->level--);
5537 return NULL;
5538 }
5539 D(fprintf(stderr, "%*c> patterns[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005540 pattern_ty pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08005541 if (
5542 (pattern_var = pattern_rule(p)) // pattern
5543 )
5544 {
5545 D(fprintf(stderr, "%*c+ patterns[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "pattern"));
5546 _res = pattern_var;
5547 goto done;
5548 }
5549 p->mark = _mark;
5550 D(fprintf(stderr, "%*c%s patterns[%d-%d]: %s failed!\n", p->level, ' ',
5551 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "pattern"));
5552 }
5553 _res = NULL;
5554 done:
5555 D(p->level--);
5556 return _res;
5557}
5558
5559// pattern: as_pattern | or_pattern
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005560static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08005561pattern_rule(Parser *p)
5562{
5563 D(p->level++);
5564 if (p->error_indicator) {
5565 D(p->level--);
5566 return NULL;
5567 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005568 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08005569 int _mark = p->mark;
5570 { // as_pattern
5571 if (p->error_indicator) {
5572 D(p->level--);
5573 return NULL;
5574 }
5575 D(fprintf(stderr, "%*c> pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "as_pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005576 pattern_ty as_pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08005577 if (
5578 (as_pattern_var = as_pattern_rule(p)) // as_pattern
5579 )
5580 {
5581 D(fprintf(stderr, "%*c+ pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "as_pattern"));
5582 _res = as_pattern_var;
5583 goto done;
5584 }
5585 p->mark = _mark;
5586 D(fprintf(stderr, "%*c%s pattern[%d-%d]: %s failed!\n", p->level, ' ',
5587 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "as_pattern"));
5588 }
5589 { // or_pattern
5590 if (p->error_indicator) {
5591 D(p->level--);
5592 return NULL;
5593 }
5594 D(fprintf(stderr, "%*c> pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "or_pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005595 pattern_ty or_pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08005596 if (
5597 (or_pattern_var = or_pattern_rule(p)) // or_pattern
5598 )
5599 {
5600 D(fprintf(stderr, "%*c+ pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "or_pattern"));
5601 _res = or_pattern_var;
5602 goto done;
5603 }
5604 p->mark = _mark;
5605 D(fprintf(stderr, "%*c%s pattern[%d-%d]: %s failed!\n", p->level, ' ',
5606 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "or_pattern"));
5607 }
5608 _res = NULL;
5609 done:
5610 D(p->level--);
5611 return _res;
5612}
5613
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005614// as_pattern: or_pattern 'as' pattern_capture_target
5615static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08005616as_pattern_rule(Parser *p)
5617{
5618 D(p->level++);
5619 if (p->error_indicator) {
5620 D(p->level--);
5621 return NULL;
5622 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005623 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08005624 int _mark = p->mark;
5625 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
5626 p->error_indicator = 1;
5627 D(p->level--);
5628 return NULL;
5629 }
5630 int _start_lineno = p->tokens[_mark]->lineno;
5631 UNUSED(_start_lineno); // Only used by EXTRA macro
5632 int _start_col_offset = p->tokens[_mark]->col_offset;
5633 UNUSED(_start_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005634 { // or_pattern 'as' pattern_capture_target
Brandt Bucher145bf262021-02-26 14:51:55 -08005635 if (p->error_indicator) {
5636 D(p->level--);
5637 return NULL;
5638 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005639 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 -08005640 Token * _keyword;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005641 pattern_ty pattern;
Brandt Bucher145bf262021-02-26 14:51:55 -08005642 expr_ty target;
5643 if (
5644 (pattern = or_pattern_rule(p)) // or_pattern
5645 &&
5646 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
5647 &&
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005648 (target = pattern_capture_target_rule(p)) // pattern_capture_target
Brandt Bucher145bf262021-02-26 14:51:55 -08005649 )
5650 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005651 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 -08005652 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5653 if (_token == NULL) {
5654 D(p->level--);
5655 return NULL;
5656 }
5657 int _end_lineno = _token->end_lineno;
5658 UNUSED(_end_lineno); // Only used by EXTRA macro
5659 int _end_col_offset = _token->end_col_offset;
5660 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02005661 _res = _PyAST_MatchAs ( pattern , target -> v . Name . id , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08005662 if (_res == NULL && PyErr_Occurred()) {
5663 p->error_indicator = 1;
5664 D(p->level--);
5665 return NULL;
5666 }
5667 goto done;
5668 }
5669 p->mark = _mark;
5670 D(fprintf(stderr, "%*c%s as_pattern[%d-%d]: %s failed!\n", p->level, ' ',
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005671 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "or_pattern 'as' pattern_capture_target"));
Brandt Bucher145bf262021-02-26 14:51:55 -08005672 }
5673 _res = NULL;
5674 done:
5675 D(p->level--);
5676 return _res;
5677}
5678
5679// or_pattern: '|'.closed_pattern+
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005680static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08005681or_pattern_rule(Parser *p)
5682{
5683 D(p->level++);
5684 if (p->error_indicator) {
5685 D(p->level--);
5686 return NULL;
5687 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005688 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08005689 int _mark = p->mark;
5690 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
5691 p->error_indicator = 1;
5692 D(p->level--);
5693 return NULL;
5694 }
5695 int _start_lineno = p->tokens[_mark]->lineno;
5696 UNUSED(_start_lineno); // Only used by EXTRA macro
5697 int _start_col_offset = p->tokens[_mark]->col_offset;
5698 UNUSED(_start_col_offset); // Only used by EXTRA macro
5699 { // '|'.closed_pattern+
5700 if (p->error_indicator) {
5701 D(p->level--);
5702 return NULL;
5703 }
5704 D(fprintf(stderr, "%*c> or_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'|'.closed_pattern+"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005705 asdl_pattern_seq* patterns;
Brandt Bucher145bf262021-02-26 14:51:55 -08005706 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005707 (patterns = (asdl_pattern_seq*)_gather_51_rule(p)) // '|'.closed_pattern+
Brandt Bucher145bf262021-02-26 14:51:55 -08005708 )
5709 {
5710 D(fprintf(stderr, "%*c+ or_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'|'.closed_pattern+"));
5711 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5712 if (_token == NULL) {
5713 D(p->level--);
5714 return NULL;
5715 }
5716 int _end_lineno = _token->end_lineno;
5717 UNUSED(_end_lineno); // Only used by EXTRA macro
5718 int _end_col_offset = _token->end_col_offset;
5719 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02005720 _res = asdl_seq_LEN ( patterns ) == 1 ? asdl_seq_GET ( patterns , 0 ) : _PyAST_MatchOr ( patterns , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08005721 if (_res == NULL && PyErr_Occurred()) {
5722 p->error_indicator = 1;
5723 D(p->level--);
5724 return NULL;
5725 }
5726 goto done;
5727 }
5728 p->mark = _mark;
5729 D(fprintf(stderr, "%*c%s or_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5730 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'|'.closed_pattern+"));
5731 }
5732 _res = NULL;
5733 done:
5734 D(p->level--);
5735 return _res;
5736}
5737
5738// closed_pattern:
5739// | literal_pattern
5740// | capture_pattern
5741// | wildcard_pattern
5742// | value_pattern
5743// | group_pattern
5744// | sequence_pattern
5745// | mapping_pattern
5746// | class_pattern
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005747static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08005748closed_pattern_rule(Parser *p)
5749{
5750 D(p->level++);
5751 if (p->error_indicator) {
5752 D(p->level--);
5753 return NULL;
5754 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005755 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08005756 int _mark = p->mark;
5757 { // literal_pattern
5758 if (p->error_indicator) {
5759 D(p->level--);
5760 return NULL;
5761 }
5762 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "literal_pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005763 pattern_ty literal_pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08005764 if (
5765 (literal_pattern_var = literal_pattern_rule(p)) // literal_pattern
5766 )
5767 {
5768 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "literal_pattern"));
5769 _res = literal_pattern_var;
5770 goto done;
5771 }
5772 p->mark = _mark;
5773 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5774 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "literal_pattern"));
5775 }
5776 { // capture_pattern
5777 if (p->error_indicator) {
5778 D(p->level--);
5779 return NULL;
5780 }
5781 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "capture_pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005782 pattern_ty capture_pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08005783 if (
5784 (capture_pattern_var = capture_pattern_rule(p)) // capture_pattern
5785 )
5786 {
5787 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "capture_pattern"));
5788 _res = capture_pattern_var;
5789 goto done;
5790 }
5791 p->mark = _mark;
5792 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5793 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "capture_pattern"));
5794 }
5795 { // wildcard_pattern
5796 if (p->error_indicator) {
5797 D(p->level--);
5798 return NULL;
5799 }
5800 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "wildcard_pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005801 pattern_ty wildcard_pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08005802 if (
5803 (wildcard_pattern_var = wildcard_pattern_rule(p)) // wildcard_pattern
5804 )
5805 {
5806 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "wildcard_pattern"));
5807 _res = wildcard_pattern_var;
5808 goto done;
5809 }
5810 p->mark = _mark;
5811 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5812 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "wildcard_pattern"));
5813 }
5814 { // value_pattern
5815 if (p->error_indicator) {
5816 D(p->level--);
5817 return NULL;
5818 }
5819 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "value_pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005820 pattern_ty value_pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08005821 if (
5822 (value_pattern_var = value_pattern_rule(p)) // value_pattern
5823 )
5824 {
5825 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "value_pattern"));
5826 _res = value_pattern_var;
5827 goto done;
5828 }
5829 p->mark = _mark;
5830 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5831 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "value_pattern"));
5832 }
5833 { // group_pattern
5834 if (p->error_indicator) {
5835 D(p->level--);
5836 return NULL;
5837 }
5838 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "group_pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005839 pattern_ty group_pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08005840 if (
5841 (group_pattern_var = group_pattern_rule(p)) // group_pattern
5842 )
5843 {
5844 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "group_pattern"));
5845 _res = group_pattern_var;
5846 goto done;
5847 }
5848 p->mark = _mark;
5849 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5850 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "group_pattern"));
5851 }
5852 { // sequence_pattern
5853 if (p->error_indicator) {
5854 D(p->level--);
5855 return NULL;
5856 }
5857 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "sequence_pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005858 pattern_ty sequence_pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08005859 if (
5860 (sequence_pattern_var = sequence_pattern_rule(p)) // sequence_pattern
5861 )
5862 {
5863 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "sequence_pattern"));
5864 _res = sequence_pattern_var;
5865 goto done;
5866 }
5867 p->mark = _mark;
5868 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5869 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "sequence_pattern"));
5870 }
5871 { // mapping_pattern
5872 if (p->error_indicator) {
5873 D(p->level--);
5874 return NULL;
5875 }
5876 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "mapping_pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005877 pattern_ty mapping_pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08005878 if (
5879 (mapping_pattern_var = mapping_pattern_rule(p)) // mapping_pattern
5880 )
5881 {
5882 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "mapping_pattern"));
5883 _res = mapping_pattern_var;
5884 goto done;
5885 }
5886 p->mark = _mark;
5887 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5888 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "mapping_pattern"));
5889 }
5890 { // class_pattern
5891 if (p->error_indicator) {
5892 D(p->level--);
5893 return NULL;
5894 }
5895 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "class_pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005896 pattern_ty class_pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08005897 if (
5898 (class_pattern_var = class_pattern_rule(p)) // class_pattern
5899 )
5900 {
5901 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "class_pattern"));
5902 _res = class_pattern_var;
5903 goto done;
5904 }
5905 p->mark = _mark;
5906 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5907 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "class_pattern"));
5908 }
5909 _res = NULL;
5910 done:
5911 D(p->level--);
5912 return _res;
5913}
5914
5915// literal_pattern:
5916// | signed_number !('+' | '-')
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005917// | complex_number
Brandt Bucher145bf262021-02-26 14:51:55 -08005918// | strings
5919// | 'None'
5920// | 'True'
5921// | 'False'
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005922static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08005923literal_pattern_rule(Parser *p)
5924{
5925 D(p->level++);
5926 if (p->error_indicator) {
5927 D(p->level--);
5928 return NULL;
5929 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005930 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08005931 int _mark = p->mark;
5932 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
5933 p->error_indicator = 1;
5934 D(p->level--);
5935 return NULL;
5936 }
5937 int _start_lineno = p->tokens[_mark]->lineno;
5938 UNUSED(_start_lineno); // Only used by EXTRA macro
5939 int _start_col_offset = p->tokens[_mark]->col_offset;
5940 UNUSED(_start_col_offset); // Only used by EXTRA macro
5941 { // signed_number !('+' | '-')
5942 if (p->error_indicator) {
5943 D(p->level--);
5944 return NULL;
5945 }
5946 D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "signed_number !('+' | '-')"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005947 expr_ty value;
Brandt Bucher145bf262021-02-26 14:51:55 -08005948 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005949 (value = signed_number_rule(p)) // signed_number
Brandt Bucher145bf262021-02-26 14:51:55 -08005950 &&
5951 _PyPegen_lookahead(0, _tmp_53_rule, p)
5952 )
5953 {
5954 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 +10005955 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5956 if (_token == NULL) {
5957 D(p->level--);
5958 return NULL;
5959 }
5960 int _end_lineno = _token->end_lineno;
5961 UNUSED(_end_lineno); // Only used by EXTRA macro
5962 int _end_col_offset = _token->end_col_offset;
5963 UNUSED(_end_col_offset); // Only used by EXTRA macro
5964 _res = _PyAST_MatchValue ( value , EXTRA );
5965 if (_res == NULL && PyErr_Occurred()) {
5966 p->error_indicator = 1;
5967 D(p->level--);
5968 return NULL;
5969 }
Brandt Bucher145bf262021-02-26 14:51:55 -08005970 goto done;
5971 }
5972 p->mark = _mark;
5973 D(fprintf(stderr, "%*c%s literal_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5974 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "signed_number !('+' | '-')"));
5975 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005976 { // complex_number
Brandt Bucher145bf262021-02-26 14:51:55 -08005977 if (p->error_indicator) {
5978 D(p->level--);
5979 return NULL;
5980 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005981 D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "complex_number"));
5982 expr_ty value;
Brandt Bucher145bf262021-02-26 14:51:55 -08005983 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005984 (value = complex_number_rule(p)) // complex_number
Brandt Bucher145bf262021-02-26 14:51:55 -08005985 )
5986 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005987 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 -08005988 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5989 if (_token == NULL) {
5990 D(p->level--);
5991 return NULL;
5992 }
5993 int _end_lineno = _token->end_lineno;
5994 UNUSED(_end_lineno); // Only used by EXTRA macro
5995 int _end_col_offset = _token->end_col_offset;
5996 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005997 _res = _PyAST_MatchValue ( value , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08005998 if (_res == NULL && PyErr_Occurred()) {
5999 p->error_indicator = 1;
6000 D(p->level--);
6001 return NULL;
6002 }
6003 goto done;
6004 }
6005 p->mark = _mark;
6006 D(fprintf(stderr, "%*c%s literal_pattern[%d-%d]: %s failed!\n", p->level, ' ',
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006007 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "complex_number"));
Brandt Bucher145bf262021-02-26 14:51:55 -08006008 }
6009 { // strings
6010 if (p->error_indicator) {
6011 D(p->level--);
6012 return NULL;
6013 }
6014 D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "strings"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006015 expr_ty value;
Brandt Bucher145bf262021-02-26 14:51:55 -08006016 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006017 (value = strings_rule(p)) // strings
Brandt Bucher145bf262021-02-26 14:51:55 -08006018 )
6019 {
6020 D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "strings"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006021 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6022 if (_token == NULL) {
6023 D(p->level--);
6024 return NULL;
6025 }
6026 int _end_lineno = _token->end_lineno;
6027 UNUSED(_end_lineno); // Only used by EXTRA macro
6028 int _end_col_offset = _token->end_col_offset;
6029 UNUSED(_end_col_offset); // Only used by EXTRA macro
6030 _res = _PyAST_MatchValue ( value , EXTRA );
6031 if (_res == NULL && PyErr_Occurred()) {
6032 p->error_indicator = 1;
6033 D(p->level--);
6034 return NULL;
6035 }
Brandt Bucher145bf262021-02-26 14:51:55 -08006036 goto done;
6037 }
6038 p->mark = _mark;
6039 D(fprintf(stderr, "%*c%s literal_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6040 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "strings"));
6041 }
6042 { // 'None'
6043 if (p->error_indicator) {
6044 D(p->level--);
6045 return NULL;
6046 }
6047 D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'None'"));
6048 Token * _keyword;
6049 if (
6050 (_keyword = _PyPegen_expect_token(p, 523)) // token='None'
6051 )
6052 {
6053 D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'"));
6054 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6055 if (_token == NULL) {
6056 D(p->level--);
6057 return NULL;
6058 }
6059 int _end_lineno = _token->end_lineno;
6060 UNUSED(_end_lineno); // Only used by EXTRA macro
6061 int _end_col_offset = _token->end_col_offset;
6062 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006063 _res = _PyAST_MatchSingleton ( Py_None , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08006064 if (_res == NULL && PyErr_Occurred()) {
6065 p->error_indicator = 1;
6066 D(p->level--);
6067 return NULL;
6068 }
6069 goto done;
6070 }
6071 p->mark = _mark;
6072 D(fprintf(stderr, "%*c%s literal_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6073 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'None'"));
6074 }
6075 { // 'True'
6076 if (p->error_indicator) {
6077 D(p->level--);
6078 return NULL;
6079 }
6080 D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'True'"));
6081 Token * _keyword;
6082 if (
6083 (_keyword = _PyPegen_expect_token(p, 524)) // token='True'
6084 )
6085 {
6086 D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'"));
6087 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6088 if (_token == NULL) {
6089 D(p->level--);
6090 return NULL;
6091 }
6092 int _end_lineno = _token->end_lineno;
6093 UNUSED(_end_lineno); // Only used by EXTRA macro
6094 int _end_col_offset = _token->end_col_offset;
6095 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006096 _res = _PyAST_MatchSingleton ( Py_True , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08006097 if (_res == NULL && PyErr_Occurred()) {
6098 p->error_indicator = 1;
6099 D(p->level--);
6100 return NULL;
6101 }
6102 goto done;
6103 }
6104 p->mark = _mark;
6105 D(fprintf(stderr, "%*c%s literal_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6106 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'True'"));
6107 }
6108 { // 'False'
6109 if (p->error_indicator) {
6110 D(p->level--);
6111 return NULL;
6112 }
6113 D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False'"));
6114 Token * _keyword;
6115 if (
6116 (_keyword = _PyPegen_expect_token(p, 525)) // token='False'
6117 )
6118 {
6119 D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'"));
6120 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6121 if (_token == NULL) {
6122 D(p->level--);
6123 return NULL;
6124 }
6125 int _end_lineno = _token->end_lineno;
6126 UNUSED(_end_lineno); // Only used by EXTRA macro
6127 int _end_col_offset = _token->end_col_offset;
6128 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006129 _res = _PyAST_MatchSingleton ( Py_False , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08006130 if (_res == NULL && PyErr_Occurred()) {
6131 p->error_indicator = 1;
6132 D(p->level--);
6133 return NULL;
6134 }
6135 goto done;
6136 }
6137 p->mark = _mark;
6138 D(fprintf(stderr, "%*c%s literal_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6139 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'False'"));
6140 }
6141 _res = NULL;
6142 done:
6143 D(p->level--);
6144 return _res;
6145}
6146
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006147// literal_expr:
6148// | signed_number !('+' | '-')
6149// | complex_number
6150// | strings
6151// | 'None'
6152// | 'True'
6153// | 'False'
6154static expr_ty
6155literal_expr_rule(Parser *p)
6156{
6157 D(p->level++);
6158 if (p->error_indicator) {
6159 D(p->level--);
6160 return NULL;
6161 }
6162 expr_ty _res = NULL;
6163 int _mark = p->mark;
6164 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6165 p->error_indicator = 1;
6166 D(p->level--);
6167 return NULL;
6168 }
6169 int _start_lineno = p->tokens[_mark]->lineno;
6170 UNUSED(_start_lineno); // Only used by EXTRA macro
6171 int _start_col_offset = p->tokens[_mark]->col_offset;
6172 UNUSED(_start_col_offset); // Only used by EXTRA macro
6173 { // signed_number !('+' | '-')
6174 if (p->error_indicator) {
6175 D(p->level--);
6176 return NULL;
6177 }
6178 D(fprintf(stderr, "%*c> literal_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "signed_number !('+' | '-')"));
6179 expr_ty signed_number_var;
6180 if (
6181 (signed_number_var = signed_number_rule(p)) // signed_number
6182 &&
6183 _PyPegen_lookahead(0, _tmp_54_rule, p)
6184 )
6185 {
6186 D(fprintf(stderr, "%*c+ literal_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "signed_number !('+' | '-')"));
6187 _res = signed_number_var;
6188 goto done;
6189 }
6190 p->mark = _mark;
6191 D(fprintf(stderr, "%*c%s literal_expr[%d-%d]: %s failed!\n", p->level, ' ',
6192 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "signed_number !('+' | '-')"));
6193 }
6194 { // complex_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, "complex_number"));
6200 expr_ty complex_number_var;
6201 if (
6202 (complex_number_var = complex_number_rule(p)) // complex_number
6203 )
6204 {
6205 D(fprintf(stderr, "%*c+ literal_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "complex_number"));
6206 _res = complex_number_var;
6207 goto done;
6208 }
6209 p->mark = _mark;
6210 D(fprintf(stderr, "%*c%s literal_expr[%d-%d]: %s failed!\n", p->level, ' ',
6211 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "complex_number"));
6212 }
6213 { // strings
6214 if (p->error_indicator) {
6215 D(p->level--);
6216 return NULL;
6217 }
6218 D(fprintf(stderr, "%*c> literal_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "strings"));
6219 expr_ty strings_var;
6220 if (
6221 (strings_var = strings_rule(p)) // strings
6222 )
6223 {
6224 D(fprintf(stderr, "%*c+ literal_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "strings"));
6225 _res = strings_var;
6226 goto done;
6227 }
6228 p->mark = _mark;
6229 D(fprintf(stderr, "%*c%s literal_expr[%d-%d]: %s failed!\n", p->level, ' ',
6230 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "strings"));
6231 }
6232 { // 'None'
6233 if (p->error_indicator) {
6234 D(p->level--);
6235 return NULL;
6236 }
6237 D(fprintf(stderr, "%*c> literal_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'None'"));
6238 Token * _keyword;
6239 if (
6240 (_keyword = _PyPegen_expect_token(p, 523)) // token='None'
6241 )
6242 {
6243 D(fprintf(stderr, "%*c+ literal_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'"));
6244 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6245 if (_token == NULL) {
6246 D(p->level--);
6247 return NULL;
6248 }
6249 int _end_lineno = _token->end_lineno;
6250 UNUSED(_end_lineno); // Only used by EXTRA macro
6251 int _end_col_offset = _token->end_col_offset;
6252 UNUSED(_end_col_offset); // Only used by EXTRA macro
6253 _res = _PyAST_Constant ( Py_None , NULL , EXTRA );
6254 if (_res == NULL && PyErr_Occurred()) {
6255 p->error_indicator = 1;
6256 D(p->level--);
6257 return NULL;
6258 }
6259 goto done;
6260 }
6261 p->mark = _mark;
6262 D(fprintf(stderr, "%*c%s literal_expr[%d-%d]: %s failed!\n", p->level, ' ',
6263 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'None'"));
6264 }
6265 { // 'True'
6266 if (p->error_indicator) {
6267 D(p->level--);
6268 return NULL;
6269 }
6270 D(fprintf(stderr, "%*c> literal_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'True'"));
6271 Token * _keyword;
6272 if (
6273 (_keyword = _PyPegen_expect_token(p, 524)) // token='True'
6274 )
6275 {
6276 D(fprintf(stderr, "%*c+ literal_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'"));
6277 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6278 if (_token == NULL) {
6279 D(p->level--);
6280 return NULL;
6281 }
6282 int _end_lineno = _token->end_lineno;
6283 UNUSED(_end_lineno); // Only used by EXTRA macro
6284 int _end_col_offset = _token->end_col_offset;
6285 UNUSED(_end_col_offset); // Only used by EXTRA macro
6286 _res = _PyAST_Constant ( Py_True , NULL , EXTRA );
6287 if (_res == NULL && PyErr_Occurred()) {
6288 p->error_indicator = 1;
6289 D(p->level--);
6290 return NULL;
6291 }
6292 goto done;
6293 }
6294 p->mark = _mark;
6295 D(fprintf(stderr, "%*c%s literal_expr[%d-%d]: %s failed!\n", p->level, ' ',
6296 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'True'"));
6297 }
6298 { // 'False'
6299 if (p->error_indicator) {
6300 D(p->level--);
6301 return NULL;
6302 }
6303 D(fprintf(stderr, "%*c> literal_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False'"));
6304 Token * _keyword;
6305 if (
6306 (_keyword = _PyPegen_expect_token(p, 525)) // token='False'
6307 )
6308 {
6309 D(fprintf(stderr, "%*c+ literal_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'"));
6310 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6311 if (_token == NULL) {
6312 D(p->level--);
6313 return NULL;
6314 }
6315 int _end_lineno = _token->end_lineno;
6316 UNUSED(_end_lineno); // Only used by EXTRA macro
6317 int _end_col_offset = _token->end_col_offset;
6318 UNUSED(_end_col_offset); // Only used by EXTRA macro
6319 _res = _PyAST_Constant ( Py_False , NULL , EXTRA );
6320 if (_res == NULL && PyErr_Occurred()) {
6321 p->error_indicator = 1;
6322 D(p->level--);
6323 return NULL;
6324 }
6325 goto done;
6326 }
6327 p->mark = _mark;
6328 D(fprintf(stderr, "%*c%s literal_expr[%d-%d]: %s failed!\n", p->level, ' ',
6329 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'False'"));
6330 }
6331 _res = NULL;
6332 done:
6333 D(p->level--);
6334 return _res;
6335}
6336
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07006337// complex_number:
6338// | signed_real_number '+' imaginary_number
6339// | signed_real_number '-' imaginary_number
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006340static expr_ty
6341complex_number_rule(Parser *p)
6342{
6343 D(p->level++);
6344 if (p->error_indicator) {
6345 D(p->level--);
6346 return NULL;
6347 }
6348 expr_ty _res = NULL;
6349 int _mark = p->mark;
6350 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6351 p->error_indicator = 1;
6352 D(p->level--);
6353 return NULL;
6354 }
6355 int _start_lineno = p->tokens[_mark]->lineno;
6356 UNUSED(_start_lineno); // Only used by EXTRA macro
6357 int _start_col_offset = p->tokens[_mark]->col_offset;
6358 UNUSED(_start_col_offset); // Only used by EXTRA macro
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07006359 { // signed_real_number '+' imaginary_number
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006360 if (p->error_indicator) {
6361 D(p->level--);
6362 return NULL;
6363 }
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07006364 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 +10006365 Token * _literal;
6366 expr_ty imag;
6367 expr_ty real;
6368 if (
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07006369 (real = signed_real_number_rule(p)) // signed_real_number
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006370 &&
6371 (_literal = _PyPegen_expect_token(p, 14)) // token='+'
6372 &&
6373 (imag = imaginary_number_rule(p)) // imaginary_number
6374 )
6375 {
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07006376 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 +10006377 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6378 if (_token == NULL) {
6379 D(p->level--);
6380 return NULL;
6381 }
6382 int _end_lineno = _token->end_lineno;
6383 UNUSED(_end_lineno); // Only used by EXTRA macro
6384 int _end_col_offset = _token->end_col_offset;
6385 UNUSED(_end_col_offset); // Only used by EXTRA macro
6386 _res = _PyAST_BinOp ( real , Add , imag , EXTRA );
6387 if (_res == NULL && PyErr_Occurred()) {
6388 p->error_indicator = 1;
6389 D(p->level--);
6390 return NULL;
6391 }
6392 goto done;
6393 }
6394 p->mark = _mark;
6395 D(fprintf(stderr, "%*c%s complex_number[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07006396 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "signed_real_number '+' imaginary_number"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006397 }
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07006398 { // signed_real_number '-' imaginary_number
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006399 if (p->error_indicator) {
6400 D(p->level--);
6401 return NULL;
6402 }
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07006403 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 +10006404 Token * _literal;
6405 expr_ty imag;
6406 expr_ty real;
6407 if (
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07006408 (real = signed_real_number_rule(p)) // signed_real_number
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006409 &&
6410 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
6411 &&
6412 (imag = imaginary_number_rule(p)) // imaginary_number
6413 )
6414 {
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07006415 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 +10006416 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6417 if (_token == NULL) {
6418 D(p->level--);
6419 return NULL;
6420 }
6421 int _end_lineno = _token->end_lineno;
6422 UNUSED(_end_lineno); // Only used by EXTRA macro
6423 int _end_col_offset = _token->end_col_offset;
6424 UNUSED(_end_col_offset); // Only used by EXTRA macro
6425 _res = _PyAST_BinOp ( real , Sub , imag , EXTRA );
6426 if (_res == NULL && PyErr_Occurred()) {
6427 p->error_indicator = 1;
6428 D(p->level--);
6429 return NULL;
6430 }
6431 goto done;
6432 }
6433 p->mark = _mark;
6434 D(fprintf(stderr, "%*c%s complex_number[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07006435 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "signed_real_number '-' imaginary_number"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006436 }
6437 _res = NULL;
6438 done:
6439 D(p->level--);
6440 return _res;
6441}
6442
Brandt Bucher145bf262021-02-26 14:51:55 -08006443// signed_number: NUMBER | '-' NUMBER
6444static expr_ty
6445signed_number_rule(Parser *p)
6446{
6447 D(p->level++);
6448 if (p->error_indicator) {
6449 D(p->level--);
6450 return NULL;
6451 }
6452 expr_ty _res = NULL;
6453 int _mark = p->mark;
6454 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6455 p->error_indicator = 1;
6456 D(p->level--);
6457 return NULL;
6458 }
6459 int _start_lineno = p->tokens[_mark]->lineno;
6460 UNUSED(_start_lineno); // Only used by EXTRA macro
6461 int _start_col_offset = p->tokens[_mark]->col_offset;
6462 UNUSED(_start_col_offset); // Only used by EXTRA macro
6463 { // NUMBER
6464 if (p->error_indicator) {
6465 D(p->level--);
6466 return NULL;
6467 }
6468 D(fprintf(stderr, "%*c> signed_number[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NUMBER"));
6469 expr_ty number_var;
6470 if (
6471 (number_var = _PyPegen_number_token(p)) // NUMBER
6472 )
6473 {
6474 D(fprintf(stderr, "%*c+ signed_number[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NUMBER"));
6475 _res = number_var;
6476 goto done;
6477 }
6478 p->mark = _mark;
6479 D(fprintf(stderr, "%*c%s signed_number[%d-%d]: %s failed!\n", p->level, ' ',
6480 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NUMBER"));
6481 }
6482 { // '-' NUMBER
6483 if (p->error_indicator) {
6484 D(p->level--);
6485 return NULL;
6486 }
6487 D(fprintf(stderr, "%*c> signed_number[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-' NUMBER"));
6488 Token * _literal;
6489 expr_ty number;
6490 if (
6491 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
6492 &&
6493 (number = _PyPegen_number_token(p)) // NUMBER
6494 )
6495 {
6496 D(fprintf(stderr, "%*c+ signed_number[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-' NUMBER"));
6497 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6498 if (_token == NULL) {
6499 D(p->level--);
6500 return NULL;
6501 }
6502 int _end_lineno = _token->end_lineno;
6503 UNUSED(_end_lineno); // Only used by EXTRA macro
6504 int _end_col_offset = _token->end_col_offset;
6505 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02006506 _res = _PyAST_UnaryOp ( USub , number , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08006507 if (_res == NULL && PyErr_Occurred()) {
6508 p->error_indicator = 1;
6509 D(p->level--);
6510 return NULL;
6511 }
6512 goto done;
6513 }
6514 p->mark = _mark;
6515 D(fprintf(stderr, "%*c%s signed_number[%d-%d]: %s failed!\n", p->level, ' ',
6516 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-' NUMBER"));
6517 }
6518 _res = NULL;
6519 done:
6520 D(p->level--);
6521 return _res;
6522}
6523
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07006524// signed_real_number: real_number | '-' real_number
6525static expr_ty
6526signed_real_number_rule(Parser *p)
6527{
6528 D(p->level++);
6529 if (p->error_indicator) {
6530 D(p->level--);
6531 return NULL;
6532 }
6533 expr_ty _res = NULL;
6534 int _mark = p->mark;
6535 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6536 p->error_indicator = 1;
6537 D(p->level--);
6538 return NULL;
6539 }
6540 int _start_lineno = p->tokens[_mark]->lineno;
6541 UNUSED(_start_lineno); // Only used by EXTRA macro
6542 int _start_col_offset = p->tokens[_mark]->col_offset;
6543 UNUSED(_start_col_offset); // Only used by EXTRA macro
6544 { // real_number
6545 if (p->error_indicator) {
6546 D(p->level--);
6547 return NULL;
6548 }
6549 D(fprintf(stderr, "%*c> signed_real_number[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "real_number"));
6550 expr_ty real_number_var;
6551 if (
6552 (real_number_var = real_number_rule(p)) // real_number
6553 )
6554 {
6555 D(fprintf(stderr, "%*c+ signed_real_number[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "real_number"));
6556 _res = real_number_var;
6557 goto done;
6558 }
6559 p->mark = _mark;
6560 D(fprintf(stderr, "%*c%s signed_real_number[%d-%d]: %s failed!\n", p->level, ' ',
6561 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "real_number"));
6562 }
6563 { // '-' real_number
6564 if (p->error_indicator) {
6565 D(p->level--);
6566 return NULL;
6567 }
6568 D(fprintf(stderr, "%*c> signed_real_number[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-' real_number"));
6569 Token * _literal;
6570 expr_ty real;
6571 if (
6572 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
6573 &&
6574 (real = real_number_rule(p)) // real_number
6575 )
6576 {
6577 D(fprintf(stderr, "%*c+ signed_real_number[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-' real_number"));
6578 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6579 if (_token == NULL) {
6580 D(p->level--);
6581 return NULL;
6582 }
6583 int _end_lineno = _token->end_lineno;
6584 UNUSED(_end_lineno); // Only used by EXTRA macro
6585 int _end_col_offset = _token->end_col_offset;
6586 UNUSED(_end_col_offset); // Only used by EXTRA macro
6587 _res = _PyAST_UnaryOp ( USub , real , EXTRA );
6588 if (_res == NULL && PyErr_Occurred()) {
6589 p->error_indicator = 1;
6590 D(p->level--);
6591 return NULL;
6592 }
6593 goto done;
6594 }
6595 p->mark = _mark;
6596 D(fprintf(stderr, "%*c%s signed_real_number[%d-%d]: %s failed!\n", p->level, ' ',
6597 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-' real_number"));
6598 }
6599 _res = NULL;
6600 done:
6601 D(p->level--);
6602 return _res;
6603}
6604
6605// real_number: NUMBER
6606static expr_ty
6607real_number_rule(Parser *p)
6608{
6609 D(p->level++);
6610 if (p->error_indicator) {
6611 D(p->level--);
6612 return NULL;
6613 }
6614 expr_ty _res = NULL;
6615 int _mark = p->mark;
6616 { // NUMBER
6617 if (p->error_indicator) {
6618 D(p->level--);
6619 return NULL;
6620 }
6621 D(fprintf(stderr, "%*c> real_number[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NUMBER"));
6622 expr_ty real;
6623 if (
6624 (real = _PyPegen_number_token(p)) // NUMBER
6625 )
6626 {
6627 D(fprintf(stderr, "%*c+ real_number[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NUMBER"));
6628 _res = _PyPegen_ensure_real ( p , real );
6629 if (_res == NULL && PyErr_Occurred()) {
6630 p->error_indicator = 1;
6631 D(p->level--);
6632 return NULL;
6633 }
6634 goto done;
6635 }
6636 p->mark = _mark;
6637 D(fprintf(stderr, "%*c%s real_number[%d-%d]: %s failed!\n", p->level, ' ',
6638 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NUMBER"));
6639 }
6640 _res = NULL;
6641 done:
6642 D(p->level--);
6643 return _res;
6644}
6645
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006646// imaginary_number: NUMBER
Brandt Bucher145bf262021-02-26 14:51:55 -08006647static expr_ty
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006648imaginary_number_rule(Parser *p)
6649{
6650 D(p->level++);
6651 if (p->error_indicator) {
6652 D(p->level--);
6653 return NULL;
6654 }
6655 expr_ty _res = NULL;
6656 int _mark = p->mark;
6657 { // NUMBER
6658 if (p->error_indicator) {
6659 D(p->level--);
6660 return NULL;
6661 }
6662 D(fprintf(stderr, "%*c> imaginary_number[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NUMBER"));
6663 expr_ty imag;
6664 if (
6665 (imag = _PyPegen_number_token(p)) // NUMBER
6666 )
6667 {
6668 D(fprintf(stderr, "%*c+ imaginary_number[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NUMBER"));
6669 _res = _PyPegen_ensure_imaginary ( p , imag );
6670 if (_res == NULL && PyErr_Occurred()) {
6671 p->error_indicator = 1;
6672 D(p->level--);
6673 return NULL;
6674 }
6675 goto done;
6676 }
6677 p->mark = _mark;
6678 D(fprintf(stderr, "%*c%s imaginary_number[%d-%d]: %s failed!\n", p->level, ' ',
6679 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NUMBER"));
6680 }
6681 _res = NULL;
6682 done:
6683 D(p->level--);
6684 return _res;
6685}
6686
6687// capture_pattern: pattern_capture_target
6688static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08006689capture_pattern_rule(Parser *p)
6690{
6691 D(p->level++);
6692 if (p->error_indicator) {
6693 D(p->level--);
6694 return NULL;
6695 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006696 pattern_ty _res = NULL;
6697 int _mark = p->mark;
6698 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6699 p->error_indicator = 1;
6700 D(p->level--);
6701 return NULL;
6702 }
6703 int _start_lineno = p->tokens[_mark]->lineno;
6704 UNUSED(_start_lineno); // Only used by EXTRA macro
6705 int _start_col_offset = p->tokens[_mark]->col_offset;
6706 UNUSED(_start_col_offset); // Only used by EXTRA macro
6707 { // pattern_capture_target
6708 if (p->error_indicator) {
6709 D(p->level--);
6710 return NULL;
6711 }
6712 D(fprintf(stderr, "%*c> capture_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "pattern_capture_target"));
6713 expr_ty target;
6714 if (
6715 (target = pattern_capture_target_rule(p)) // pattern_capture_target
6716 )
6717 {
6718 D(fprintf(stderr, "%*c+ capture_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "pattern_capture_target"));
6719 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6720 if (_token == NULL) {
6721 D(p->level--);
6722 return NULL;
6723 }
6724 int _end_lineno = _token->end_lineno;
6725 UNUSED(_end_lineno); // Only used by EXTRA macro
6726 int _end_col_offset = _token->end_col_offset;
6727 UNUSED(_end_col_offset); // Only used by EXTRA macro
6728 _res = _PyAST_MatchAs ( NULL , target -> v . Name . id , EXTRA );
6729 if (_res == NULL && PyErr_Occurred()) {
6730 p->error_indicator = 1;
6731 D(p->level--);
6732 return NULL;
6733 }
6734 goto done;
6735 }
6736 p->mark = _mark;
6737 D(fprintf(stderr, "%*c%s capture_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6738 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "pattern_capture_target"));
6739 }
6740 _res = NULL;
6741 done:
6742 D(p->level--);
6743 return _res;
6744}
6745
6746// pattern_capture_target: !"_" NAME !('.' | '(' | '=')
6747static expr_ty
6748pattern_capture_target_rule(Parser *p)
6749{
6750 D(p->level++);
6751 if (p->error_indicator) {
6752 D(p->level--);
6753 return NULL;
6754 }
Brandt Bucher145bf262021-02-26 14:51:55 -08006755 expr_ty _res = NULL;
6756 int _mark = p->mark;
6757 { // !"_" NAME !('.' | '(' | '=')
6758 if (p->error_indicator) {
6759 D(p->level--);
6760 return NULL;
6761 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006762 D(fprintf(stderr, "%*c> pattern_capture_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "!\"_\" NAME !('.' | '(' | '=')"));
Brandt Bucher145bf262021-02-26 14:51:55 -08006763 expr_ty name;
6764 if (
6765 _PyPegen_lookahead_with_string(0, _PyPegen_expect_soft_keyword, p, "_")
6766 &&
6767 (name = _PyPegen_name_token(p)) // NAME
6768 &&
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006769 _PyPegen_lookahead(0, _tmp_55_rule, p)
Brandt Bucher145bf262021-02-26 14:51:55 -08006770 )
6771 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006772 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 -08006773 _res = _PyPegen_set_expr_context ( p , name , Store );
6774 if (_res == NULL && PyErr_Occurred()) {
6775 p->error_indicator = 1;
6776 D(p->level--);
6777 return NULL;
6778 }
6779 goto done;
6780 }
6781 p->mark = _mark;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006782 D(fprintf(stderr, "%*c%s pattern_capture_target[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -08006783 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "!\"_\" NAME !('.' | '(' | '=')"));
6784 }
6785 _res = NULL;
6786 done:
6787 D(p->level--);
6788 return _res;
6789}
6790
6791// wildcard_pattern: "_"
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006792static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08006793wildcard_pattern_rule(Parser *p)
6794{
6795 D(p->level++);
6796 if (p->error_indicator) {
6797 D(p->level--);
6798 return NULL;
6799 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006800 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08006801 int _mark = p->mark;
6802 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6803 p->error_indicator = 1;
6804 D(p->level--);
6805 return NULL;
6806 }
6807 int _start_lineno = p->tokens[_mark]->lineno;
6808 UNUSED(_start_lineno); // Only used by EXTRA macro
6809 int _start_col_offset = p->tokens[_mark]->col_offset;
6810 UNUSED(_start_col_offset); // Only used by EXTRA macro
6811 { // "_"
6812 if (p->error_indicator) {
6813 D(p->level--);
6814 return NULL;
6815 }
6816 D(fprintf(stderr, "%*c> wildcard_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"_\""));
6817 expr_ty _keyword;
6818 if (
6819 (_keyword = _PyPegen_expect_soft_keyword(p, "_")) // soft_keyword='"_"'
6820 )
6821 {
6822 D(fprintf(stderr, "%*c+ wildcard_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"_\""));
6823 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6824 if (_token == NULL) {
6825 D(p->level--);
6826 return NULL;
6827 }
6828 int _end_lineno = _token->end_lineno;
6829 UNUSED(_end_lineno); // Only used by EXTRA macro
6830 int _end_col_offset = _token->end_col_offset;
6831 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006832 _res = _PyAST_MatchAs ( NULL , NULL , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08006833 if (_res == NULL && PyErr_Occurred()) {
6834 p->error_indicator = 1;
6835 D(p->level--);
6836 return NULL;
6837 }
6838 goto done;
6839 }
6840 p->mark = _mark;
6841 D(fprintf(stderr, "%*c%s wildcard_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6842 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"_\""));
6843 }
6844 _res = NULL;
6845 done:
6846 D(p->level--);
6847 return _res;
6848}
6849
6850// value_pattern: attr !('.' | '(' | '=')
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006851static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08006852value_pattern_rule(Parser *p)
6853{
6854 D(p->level++);
6855 if (p->error_indicator) {
6856 D(p->level--);
6857 return NULL;
6858 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006859 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08006860 int _mark = p->mark;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006861 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6862 p->error_indicator = 1;
6863 D(p->level--);
6864 return NULL;
6865 }
6866 int _start_lineno = p->tokens[_mark]->lineno;
6867 UNUSED(_start_lineno); // Only used by EXTRA macro
6868 int _start_col_offset = p->tokens[_mark]->col_offset;
6869 UNUSED(_start_col_offset); // Only used by EXTRA macro
Brandt Bucher145bf262021-02-26 14:51:55 -08006870 { // attr !('.' | '(' | '=')
6871 if (p->error_indicator) {
6872 D(p->level--);
6873 return NULL;
6874 }
6875 D(fprintf(stderr, "%*c> value_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "attr !('.' | '(' | '=')"));
6876 expr_ty attr;
6877 if (
6878 (attr = attr_rule(p)) // attr
6879 &&
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006880 _PyPegen_lookahead(0, _tmp_56_rule, p)
Brandt Bucher145bf262021-02-26 14:51:55 -08006881 )
6882 {
6883 D(fprintf(stderr, "%*c+ value_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "attr !('.' | '(' | '=')"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006884 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6885 if (_token == NULL) {
6886 D(p->level--);
6887 return NULL;
6888 }
6889 int _end_lineno = _token->end_lineno;
6890 UNUSED(_end_lineno); // Only used by EXTRA macro
6891 int _end_col_offset = _token->end_col_offset;
6892 UNUSED(_end_col_offset); // Only used by EXTRA macro
6893 _res = _PyAST_MatchValue ( attr , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08006894 if (_res == NULL && PyErr_Occurred()) {
6895 p->error_indicator = 1;
6896 D(p->level--);
6897 return NULL;
6898 }
6899 goto done;
6900 }
6901 p->mark = _mark;
6902 D(fprintf(stderr, "%*c%s value_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6903 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "attr !('.' | '(' | '=')"));
6904 }
6905 _res = NULL;
6906 done:
6907 D(p->level--);
6908 return _res;
6909}
6910
6911// Left-recursive
6912// attr: name_or_attr '.' NAME
6913static expr_ty attr_raw(Parser *);
6914static expr_ty
6915attr_rule(Parser *p)
6916{
6917 D(p->level++);
6918 expr_ty _res = NULL;
6919 if (_PyPegen_is_memoized(p, attr_type, &_res)) {
6920 D(p->level--);
6921 return _res;
6922 }
6923 int _mark = p->mark;
6924 int _resmark = p->mark;
6925 while (1) {
6926 int tmpvar_1 = _PyPegen_update_memo(p, _mark, attr_type, _res);
6927 if (tmpvar_1) {
6928 D(p->level--);
6929 return _res;
6930 }
6931 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -07006932 p->in_raw_rule++;
Brandt Bucher145bf262021-02-26 14:51:55 -08006933 void *_raw = attr_raw(p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -07006934 p->in_raw_rule--;
Brandt Bucher145bf262021-02-26 14:51:55 -08006935 if (p->error_indicator)
6936 return NULL;
6937 if (_raw == NULL || p->mark <= _resmark)
6938 break;
6939 _resmark = p->mark;
6940 _res = _raw;
6941 }
6942 p->mark = _resmark;
6943 D(p->level--);
6944 return _res;
6945}
6946static expr_ty
6947attr_raw(Parser *p)
6948{
6949 D(p->level++);
6950 if (p->error_indicator) {
6951 D(p->level--);
6952 return NULL;
6953 }
6954 expr_ty _res = NULL;
6955 int _mark = p->mark;
6956 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6957 p->error_indicator = 1;
6958 D(p->level--);
6959 return NULL;
6960 }
6961 int _start_lineno = p->tokens[_mark]->lineno;
6962 UNUSED(_start_lineno); // Only used by EXTRA macro
6963 int _start_col_offset = p->tokens[_mark]->col_offset;
6964 UNUSED(_start_col_offset); // Only used by EXTRA macro
6965 { // name_or_attr '.' NAME
6966 if (p->error_indicator) {
6967 D(p->level--);
6968 return NULL;
6969 }
6970 D(fprintf(stderr, "%*c> attr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "name_or_attr '.' NAME"));
6971 Token * _literal;
6972 expr_ty attr;
6973 expr_ty value;
6974 if (
6975 (value = name_or_attr_rule(p)) // name_or_attr
6976 &&
6977 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
6978 &&
6979 (attr = _PyPegen_name_token(p)) // NAME
6980 )
6981 {
6982 D(fprintf(stderr, "%*c+ attr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "name_or_attr '.' NAME"));
6983 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6984 if (_token == NULL) {
6985 D(p->level--);
6986 return NULL;
6987 }
6988 int _end_lineno = _token->end_lineno;
6989 UNUSED(_end_lineno); // Only used by EXTRA macro
6990 int _end_col_offset = _token->end_col_offset;
6991 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02006992 _res = _PyAST_Attribute ( value , attr -> v . Name . id , Load , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08006993 if (_res == NULL && PyErr_Occurred()) {
6994 p->error_indicator = 1;
6995 D(p->level--);
6996 return NULL;
6997 }
6998 goto done;
6999 }
7000 p->mark = _mark;
7001 D(fprintf(stderr, "%*c%s attr[%d-%d]: %s failed!\n", p->level, ' ',
7002 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "name_or_attr '.' NAME"));
7003 }
7004 _res = NULL;
7005 done:
7006 D(p->level--);
7007 return _res;
7008}
7009
7010// Left-recursive
7011// name_or_attr: attr | NAME
7012static expr_ty
7013name_or_attr_rule(Parser *p)
7014{
7015 D(p->level++);
7016 if (p->error_indicator) {
7017 D(p->level--);
7018 return NULL;
7019 }
7020 expr_ty _res = NULL;
7021 int _mark = p->mark;
7022 { // attr
7023 if (p->error_indicator) {
7024 D(p->level--);
7025 return NULL;
7026 }
7027 D(fprintf(stderr, "%*c> name_or_attr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "attr"));
7028 expr_ty attr_var;
7029 if (
7030 (attr_var = attr_rule(p)) // attr
7031 )
7032 {
7033 D(fprintf(stderr, "%*c+ name_or_attr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "attr"));
7034 _res = attr_var;
7035 goto done;
7036 }
7037 p->mark = _mark;
7038 D(fprintf(stderr, "%*c%s name_or_attr[%d-%d]: %s failed!\n", p->level, ' ',
7039 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "attr"));
7040 }
7041 { // NAME
7042 if (p->error_indicator) {
7043 D(p->level--);
7044 return NULL;
7045 }
7046 D(fprintf(stderr, "%*c> name_or_attr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
7047 expr_ty name_var;
7048 if (
7049 (name_var = _PyPegen_name_token(p)) // NAME
7050 )
7051 {
7052 D(fprintf(stderr, "%*c+ name_or_attr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
7053 _res = name_var;
7054 goto done;
7055 }
7056 p->mark = _mark;
7057 D(fprintf(stderr, "%*c%s name_or_attr[%d-%d]: %s failed!\n", p->level, ' ',
7058 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
7059 }
7060 _res = NULL;
7061 done:
7062 D(p->level--);
7063 return _res;
7064}
7065
7066// group_pattern: '(' pattern ')'
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007067static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08007068group_pattern_rule(Parser *p)
7069{
7070 D(p->level++);
7071 if (p->error_indicator) {
7072 D(p->level--);
7073 return NULL;
7074 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007075 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08007076 int _mark = p->mark;
7077 { // '(' pattern ')'
7078 if (p->error_indicator) {
7079 D(p->level--);
7080 return NULL;
7081 }
7082 D(fprintf(stderr, "%*c> group_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' pattern ')'"));
7083 Token * _literal;
7084 Token * _literal_1;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007085 pattern_ty pattern;
Brandt Bucher145bf262021-02-26 14:51:55 -08007086 if (
7087 (_literal = _PyPegen_expect_token(p, 7)) // token='('
7088 &&
7089 (pattern = pattern_rule(p)) // pattern
7090 &&
7091 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
7092 )
7093 {
7094 D(fprintf(stderr, "%*c+ group_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' pattern ')'"));
7095 _res = pattern;
7096 if (_res == NULL && PyErr_Occurred()) {
7097 p->error_indicator = 1;
7098 D(p->level--);
7099 return NULL;
7100 }
7101 goto done;
7102 }
7103 p->mark = _mark;
7104 D(fprintf(stderr, "%*c%s group_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7105 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' pattern ')'"));
7106 }
7107 _res = NULL;
7108 done:
7109 D(p->level--);
7110 return _res;
7111}
7112
7113// sequence_pattern: '[' maybe_sequence_pattern? ']' | '(' open_sequence_pattern? ')'
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007114static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08007115sequence_pattern_rule(Parser *p)
7116{
7117 D(p->level++);
7118 if (p->error_indicator) {
7119 D(p->level--);
7120 return NULL;
7121 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007122 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08007123 int _mark = p->mark;
7124 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
7125 p->error_indicator = 1;
7126 D(p->level--);
7127 return NULL;
7128 }
7129 int _start_lineno = p->tokens[_mark]->lineno;
7130 UNUSED(_start_lineno); // Only used by EXTRA macro
7131 int _start_col_offset = p->tokens[_mark]->col_offset;
7132 UNUSED(_start_col_offset); // Only used by EXTRA macro
7133 { // '[' maybe_sequence_pattern? ']'
7134 if (p->error_indicator) {
7135 D(p->level--);
7136 return NULL;
7137 }
7138 D(fprintf(stderr, "%*c> sequence_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' maybe_sequence_pattern? ']'"));
7139 Token * _literal;
7140 Token * _literal_1;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007141 void *patterns;
Brandt Bucher145bf262021-02-26 14:51:55 -08007142 if (
7143 (_literal = _PyPegen_expect_token(p, 9)) // token='['
7144 &&
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007145 (patterns = maybe_sequence_pattern_rule(p), 1) // maybe_sequence_pattern?
Brandt Bucher145bf262021-02-26 14:51:55 -08007146 &&
7147 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
7148 )
7149 {
7150 D(fprintf(stderr, "%*c+ sequence_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'[' maybe_sequence_pattern? ']'"));
7151 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7152 if (_token == NULL) {
7153 D(p->level--);
7154 return NULL;
7155 }
7156 int _end_lineno = _token->end_lineno;
7157 UNUSED(_end_lineno); // Only used by EXTRA macro
7158 int _end_col_offset = _token->end_col_offset;
7159 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007160 _res = _PyAST_MatchSequence ( patterns , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08007161 if (_res == NULL && PyErr_Occurred()) {
7162 p->error_indicator = 1;
7163 D(p->level--);
7164 return NULL;
7165 }
7166 goto done;
7167 }
7168 p->mark = _mark;
7169 D(fprintf(stderr, "%*c%s sequence_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7170 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' maybe_sequence_pattern? ']'"));
7171 }
7172 { // '(' open_sequence_pattern? ')'
7173 if (p->error_indicator) {
7174 D(p->level--);
7175 return NULL;
7176 }
7177 D(fprintf(stderr, "%*c> sequence_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' open_sequence_pattern? ')'"));
7178 Token * _literal;
7179 Token * _literal_1;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007180 void *patterns;
Brandt Bucher145bf262021-02-26 14:51:55 -08007181 if (
7182 (_literal = _PyPegen_expect_token(p, 7)) // token='('
7183 &&
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007184 (patterns = open_sequence_pattern_rule(p), 1) // open_sequence_pattern?
Brandt Bucher145bf262021-02-26 14:51:55 -08007185 &&
7186 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
7187 )
7188 {
7189 D(fprintf(stderr, "%*c+ sequence_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' open_sequence_pattern? ')'"));
7190 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7191 if (_token == NULL) {
7192 D(p->level--);
7193 return NULL;
7194 }
7195 int _end_lineno = _token->end_lineno;
7196 UNUSED(_end_lineno); // Only used by EXTRA macro
7197 int _end_col_offset = _token->end_col_offset;
7198 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007199 _res = _PyAST_MatchSequence ( patterns , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08007200 if (_res == NULL && PyErr_Occurred()) {
7201 p->error_indicator = 1;
7202 D(p->level--);
7203 return NULL;
7204 }
7205 goto done;
7206 }
7207 p->mark = _mark;
7208 D(fprintf(stderr, "%*c%s sequence_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7209 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' open_sequence_pattern? ')'"));
7210 }
7211 _res = NULL;
7212 done:
7213 D(p->level--);
7214 return _res;
7215}
7216
7217// open_sequence_pattern: maybe_star_pattern ',' maybe_sequence_pattern?
7218static asdl_seq*
7219open_sequence_pattern_rule(Parser *p)
7220{
7221 D(p->level++);
7222 if (p->error_indicator) {
7223 D(p->level--);
7224 return NULL;
7225 }
7226 asdl_seq* _res = NULL;
7227 int _mark = p->mark;
7228 { // maybe_star_pattern ',' maybe_sequence_pattern?
7229 if (p->error_indicator) {
7230 D(p->level--);
7231 return NULL;
7232 }
7233 D(fprintf(stderr, "%*c> open_sequence_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "maybe_star_pattern ',' maybe_sequence_pattern?"));
7234 Token * _literal;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007235 pattern_ty pattern;
7236 void *patterns;
Brandt Bucher145bf262021-02-26 14:51:55 -08007237 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007238 (pattern = maybe_star_pattern_rule(p)) // maybe_star_pattern
Brandt Bucher145bf262021-02-26 14:51:55 -08007239 &&
7240 (_literal = _PyPegen_expect_token(p, 12)) // token=','
7241 &&
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007242 (patterns = maybe_sequence_pattern_rule(p), 1) // maybe_sequence_pattern?
Brandt Bucher145bf262021-02-26 14:51:55 -08007243 )
7244 {
7245 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 +10007246 _res = _PyPegen_seq_insert_in_front ( p , pattern , patterns );
Brandt Bucher145bf262021-02-26 14:51:55 -08007247 if (_res == NULL && PyErr_Occurred()) {
7248 p->error_indicator = 1;
7249 D(p->level--);
7250 return NULL;
7251 }
7252 goto done;
7253 }
7254 p->mark = _mark;
7255 D(fprintf(stderr, "%*c%s open_sequence_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7256 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "maybe_star_pattern ',' maybe_sequence_pattern?"));
7257 }
7258 _res = NULL;
7259 done:
7260 D(p->level--);
7261 return _res;
7262}
7263
7264// maybe_sequence_pattern: ','.maybe_star_pattern+ ','?
7265static asdl_seq*
7266maybe_sequence_pattern_rule(Parser *p)
7267{
7268 D(p->level++);
7269 if (p->error_indicator) {
7270 D(p->level--);
7271 return NULL;
7272 }
7273 asdl_seq* _res = NULL;
7274 int _mark = p->mark;
7275 { // ','.maybe_star_pattern+ ','?
7276 if (p->error_indicator) {
7277 D(p->level--);
7278 return NULL;
7279 }
7280 D(fprintf(stderr, "%*c> maybe_sequence_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.maybe_star_pattern+ ','?"));
7281 void *_opt_var;
7282 UNUSED(_opt_var); // Silence compiler warnings
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007283 asdl_seq * patterns;
Brandt Bucher145bf262021-02-26 14:51:55 -08007284 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007285 (patterns = _gather_57_rule(p)) // ','.maybe_star_pattern+
Brandt Bucher145bf262021-02-26 14:51:55 -08007286 &&
7287 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
7288 )
7289 {
7290 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 +10007291 _res = patterns;
Brandt Bucher145bf262021-02-26 14:51:55 -08007292 if (_res == NULL && PyErr_Occurred()) {
7293 p->error_indicator = 1;
7294 D(p->level--);
7295 return NULL;
7296 }
7297 goto done;
7298 }
7299 p->mark = _mark;
7300 D(fprintf(stderr, "%*c%s maybe_sequence_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7301 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.maybe_star_pattern+ ','?"));
7302 }
7303 _res = NULL;
7304 done:
7305 D(p->level--);
7306 return _res;
7307}
7308
7309// maybe_star_pattern: star_pattern | pattern
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007310static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08007311maybe_star_pattern_rule(Parser *p)
7312{
7313 D(p->level++);
7314 if (p->error_indicator) {
7315 D(p->level--);
7316 return NULL;
7317 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007318 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08007319 int _mark = p->mark;
7320 { // star_pattern
7321 if (p->error_indicator) {
7322 D(p->level--);
7323 return NULL;
7324 }
7325 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 +10007326 pattern_ty star_pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08007327 if (
7328 (star_pattern_var = star_pattern_rule(p)) // star_pattern
7329 )
7330 {
7331 D(fprintf(stderr, "%*c+ maybe_star_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_pattern"));
7332 _res = star_pattern_var;
7333 goto done;
7334 }
7335 p->mark = _mark;
7336 D(fprintf(stderr, "%*c%s maybe_star_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7337 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_pattern"));
7338 }
7339 { // pattern
7340 if (p->error_indicator) {
7341 D(p->level--);
7342 return NULL;
7343 }
7344 D(fprintf(stderr, "%*c> maybe_star_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007345 pattern_ty pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08007346 if (
7347 (pattern_var = pattern_rule(p)) // pattern
7348 )
7349 {
7350 D(fprintf(stderr, "%*c+ maybe_star_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "pattern"));
7351 _res = pattern_var;
7352 goto done;
7353 }
7354 p->mark = _mark;
7355 D(fprintf(stderr, "%*c%s maybe_star_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7356 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "pattern"));
7357 }
7358 _res = NULL;
7359 done:
7360 D(p->level--);
7361 return _res;
7362}
7363
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007364// star_pattern: '*' pattern_capture_target | '*' wildcard_pattern
7365static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08007366star_pattern_rule(Parser *p)
7367{
7368 D(p->level++);
7369 if (p->error_indicator) {
7370 D(p->level--);
7371 return NULL;
7372 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007373 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08007374 int _mark = p->mark;
7375 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
7376 p->error_indicator = 1;
7377 D(p->level--);
7378 return NULL;
7379 }
7380 int _start_lineno = p->tokens[_mark]->lineno;
7381 UNUSED(_start_lineno); // Only used by EXTRA macro
7382 int _start_col_offset = p->tokens[_mark]->col_offset;
7383 UNUSED(_start_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007384 { // '*' pattern_capture_target
Brandt Bucher145bf262021-02-26 14:51:55 -08007385 if (p->error_indicator) {
7386 D(p->level--);
7387 return NULL;
7388 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007389 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 -08007390 Token * _literal;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007391 expr_ty target;
Brandt Bucher145bf262021-02-26 14:51:55 -08007392 if (
7393 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
7394 &&
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007395 (target = pattern_capture_target_rule(p)) // pattern_capture_target
Brandt Bucher145bf262021-02-26 14:51:55 -08007396 )
7397 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007398 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 -08007399 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7400 if (_token == NULL) {
7401 D(p->level--);
7402 return NULL;
7403 }
7404 int _end_lineno = _token->end_lineno;
7405 UNUSED(_end_lineno); // Only used by EXTRA macro
7406 int _end_col_offset = _token->end_col_offset;
7407 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007408 _res = _PyAST_MatchStar ( target -> v . Name . id , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08007409 if (_res == NULL && PyErr_Occurred()) {
7410 p->error_indicator = 1;
7411 D(p->level--);
7412 return NULL;
7413 }
7414 goto done;
7415 }
7416 p->mark = _mark;
7417 D(fprintf(stderr, "%*c%s star_pattern[%d-%d]: %s failed!\n", p->level, ' ',
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007418 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' pattern_capture_target"));
7419 }
7420 { // '*' wildcard_pattern
7421 if (p->error_indicator) {
7422 D(p->level--);
7423 return NULL;
7424 }
7425 D(fprintf(stderr, "%*c> star_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' wildcard_pattern"));
7426 Token * _literal;
7427 pattern_ty wildcard_pattern_var;
7428 if (
7429 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
7430 &&
7431 (wildcard_pattern_var = wildcard_pattern_rule(p)) // wildcard_pattern
7432 )
7433 {
7434 D(fprintf(stderr, "%*c+ star_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' wildcard_pattern"));
7435 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7436 if (_token == NULL) {
7437 D(p->level--);
7438 return NULL;
7439 }
7440 int _end_lineno = _token->end_lineno;
7441 UNUSED(_end_lineno); // Only used by EXTRA macro
7442 int _end_col_offset = _token->end_col_offset;
7443 UNUSED(_end_col_offset); // Only used by EXTRA macro
7444 _res = _PyAST_MatchStar ( NULL , EXTRA );
7445 if (_res == NULL && PyErr_Occurred()) {
7446 p->error_indicator = 1;
7447 D(p->level--);
7448 return NULL;
7449 }
7450 goto done;
7451 }
7452 p->mark = _mark;
7453 D(fprintf(stderr, "%*c%s star_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7454 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' wildcard_pattern"));
Brandt Bucher145bf262021-02-26 14:51:55 -08007455 }
7456 _res = NULL;
7457 done:
7458 D(p->level--);
7459 return _res;
7460}
7461
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007462// mapping_pattern:
7463// | '{' '}'
7464// | '{' double_star_pattern ','? '}'
7465// | '{' items_pattern ',' double_star_pattern ','? '}'
7466// | '{' items_pattern ','? '}'
7467static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08007468mapping_pattern_rule(Parser *p)
7469{
7470 D(p->level++);
7471 if (p->error_indicator) {
7472 D(p->level--);
7473 return NULL;
7474 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007475 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08007476 int _mark = p->mark;
7477 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
7478 p->error_indicator = 1;
7479 D(p->level--);
7480 return NULL;
7481 }
7482 int _start_lineno = p->tokens[_mark]->lineno;
7483 UNUSED(_start_lineno); // Only used by EXTRA macro
7484 int _start_col_offset = p->tokens[_mark]->col_offset;
7485 UNUSED(_start_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007486 { // '{' '}'
Brandt Bucher145bf262021-02-26 14:51:55 -08007487 if (p->error_indicator) {
7488 D(p->level--);
7489 return NULL;
7490 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007491 D(fprintf(stderr, "%*c> mapping_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' '}'"));
Brandt Bucher145bf262021-02-26 14:51:55 -08007492 Token * _literal;
7493 Token * _literal_1;
Brandt Bucher145bf262021-02-26 14:51:55 -08007494 if (
7495 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
7496 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08007497 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
7498 )
7499 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007500 D(fprintf(stderr, "%*c+ mapping_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' '}'"));
Brandt Bucher145bf262021-02-26 14:51:55 -08007501 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7502 if (_token == NULL) {
7503 D(p->level--);
7504 return NULL;
7505 }
7506 int _end_lineno = _token->end_lineno;
7507 UNUSED(_end_lineno); // Only used by EXTRA macro
7508 int _end_col_offset = _token->end_col_offset;
7509 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007510 _res = _PyAST_MatchMapping ( NULL , NULL , NULL , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08007511 if (_res == NULL && PyErr_Occurred()) {
7512 p->error_indicator = 1;
7513 D(p->level--);
7514 return NULL;
7515 }
7516 goto done;
7517 }
7518 p->mark = _mark;
7519 D(fprintf(stderr, "%*c%s mapping_pattern[%d-%d]: %s failed!\n", p->level, ' ',
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007520 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' '}'"));
7521 }
7522 { // '{' double_star_pattern ','? '}'
7523 if (p->error_indicator) {
7524 D(p->level--);
7525 return NULL;
7526 }
7527 D(fprintf(stderr, "%*c> mapping_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' double_star_pattern ','? '}'"));
7528 Token * _literal;
7529 Token * _literal_1;
7530 void *_opt_var;
7531 UNUSED(_opt_var); // Silence compiler warnings
7532 expr_ty rest;
7533 if (
7534 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
7535 &&
7536 (rest = double_star_pattern_rule(p)) // double_star_pattern
7537 &&
7538 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
7539 &&
7540 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
7541 )
7542 {
7543 D(fprintf(stderr, "%*c+ mapping_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' double_star_pattern ','? '}'"));
7544 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7545 if (_token == NULL) {
7546 D(p->level--);
7547 return NULL;
7548 }
7549 int _end_lineno = _token->end_lineno;
7550 UNUSED(_end_lineno); // Only used by EXTRA macro
7551 int _end_col_offset = _token->end_col_offset;
7552 UNUSED(_end_col_offset); // Only used by EXTRA macro
7553 _res = _PyAST_MatchMapping ( NULL , NULL , rest -> v . Name . id , EXTRA );
7554 if (_res == NULL && PyErr_Occurred()) {
7555 p->error_indicator = 1;
7556 D(p->level--);
7557 return NULL;
7558 }
7559 goto done;
7560 }
7561 p->mark = _mark;
7562 D(fprintf(stderr, "%*c%s mapping_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7563 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' double_star_pattern ','? '}'"));
7564 }
7565 { // '{' items_pattern ',' double_star_pattern ','? '}'
7566 if (p->error_indicator) {
7567 D(p->level--);
7568 return NULL;
7569 }
7570 D(fprintf(stderr, "%*c> mapping_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' items_pattern ',' double_star_pattern ','? '}'"));
7571 Token * _literal;
7572 Token * _literal_1;
7573 Token * _literal_2;
7574 void *_opt_var;
7575 UNUSED(_opt_var); // Silence compiler warnings
7576 asdl_seq* items;
7577 expr_ty rest;
7578 if (
7579 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
7580 &&
7581 (items = items_pattern_rule(p)) // items_pattern
7582 &&
7583 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
7584 &&
7585 (rest = double_star_pattern_rule(p)) // double_star_pattern
7586 &&
7587 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
7588 &&
7589 (_literal_2 = _PyPegen_expect_token(p, 26)) // token='}'
7590 )
7591 {
7592 D(fprintf(stderr, "%*c+ mapping_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' items_pattern ',' double_star_pattern ','? '}'"));
7593 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7594 if (_token == NULL) {
7595 D(p->level--);
7596 return NULL;
7597 }
7598 int _end_lineno = _token->end_lineno;
7599 UNUSED(_end_lineno); // Only used by EXTRA macro
7600 int _end_col_offset = _token->end_col_offset;
7601 UNUSED(_end_col_offset); // Only used by EXTRA macro
7602 _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 );
7603 if (_res == NULL && PyErr_Occurred()) {
7604 p->error_indicator = 1;
7605 D(p->level--);
7606 return NULL;
7607 }
7608 goto done;
7609 }
7610 p->mark = _mark;
7611 D(fprintf(stderr, "%*c%s mapping_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7612 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' items_pattern ',' double_star_pattern ','? '}'"));
7613 }
7614 { // '{' items_pattern ','? '}'
7615 if (p->error_indicator) {
7616 D(p->level--);
7617 return NULL;
7618 }
7619 D(fprintf(stderr, "%*c> mapping_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' items_pattern ','? '}'"));
7620 Token * _literal;
7621 Token * _literal_1;
7622 void *_opt_var;
7623 UNUSED(_opt_var); // Silence compiler warnings
7624 asdl_seq* items;
7625 if (
7626 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
7627 &&
7628 (items = items_pattern_rule(p)) // items_pattern
7629 &&
7630 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
7631 &&
7632 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
7633 )
7634 {
7635 D(fprintf(stderr, "%*c+ mapping_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' items_pattern ','? '}'"));
7636 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7637 if (_token == NULL) {
7638 D(p->level--);
7639 return NULL;
7640 }
7641 int _end_lineno = _token->end_lineno;
7642 UNUSED(_end_lineno); // Only used by EXTRA macro
7643 int _end_col_offset = _token->end_col_offset;
7644 UNUSED(_end_col_offset); // Only used by EXTRA macro
7645 _res = _PyAST_MatchMapping ( CHECK ( asdl_expr_seq * , _PyPegen_get_pattern_keys ( p , items ) ) , CHECK ( asdl_pattern_seq * , _PyPegen_get_patterns ( p , items ) ) , NULL , EXTRA );
7646 if (_res == NULL && PyErr_Occurred()) {
7647 p->error_indicator = 1;
7648 D(p->level--);
7649 return NULL;
7650 }
7651 goto done;
7652 }
7653 p->mark = _mark;
7654 D(fprintf(stderr, "%*c%s mapping_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7655 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' items_pattern ','? '}'"));
Brandt Bucher145bf262021-02-26 14:51:55 -08007656 }
7657 _res = NULL;
7658 done:
7659 D(p->level--);
7660 return _res;
7661}
7662
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007663// items_pattern: ','.key_value_pattern+
Brandt Bucher145bf262021-02-26 14:51:55 -08007664static asdl_seq*
7665items_pattern_rule(Parser *p)
7666{
7667 D(p->level++);
7668 if (p->error_indicator) {
7669 D(p->level--);
7670 return NULL;
7671 }
7672 asdl_seq* _res = NULL;
7673 int _mark = p->mark;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007674 { // ','.key_value_pattern+
Brandt Bucher145bf262021-02-26 14:51:55 -08007675 if (p->error_indicator) {
7676 D(p->level--);
7677 return NULL;
7678 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007679 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 -07007680 asdl_seq * _gather_59_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08007681 if (
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07007682 (_gather_59_var = _gather_59_rule(p)) // ','.key_value_pattern+
Brandt Bucher145bf262021-02-26 14:51:55 -08007683 )
7684 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007685 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 -07007686 _res = _gather_59_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08007687 goto done;
7688 }
7689 p->mark = _mark;
7690 D(fprintf(stderr, "%*c%s items_pattern[%d-%d]: %s failed!\n", p->level, ' ',
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007691 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.key_value_pattern+"));
Brandt Bucher145bf262021-02-26 14:51:55 -08007692 }
7693 _res = NULL;
7694 done:
7695 D(p->level--);
7696 return _res;
7697}
7698
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007699// key_value_pattern: (literal_expr | attr) ':' pattern
7700static KeyPatternPair*
Brandt Bucher145bf262021-02-26 14:51:55 -08007701key_value_pattern_rule(Parser *p)
7702{
7703 D(p->level++);
7704 if (p->error_indicator) {
7705 D(p->level--);
7706 return NULL;
7707 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007708 KeyPatternPair* _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08007709 int _mark = p->mark;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007710 { // (literal_expr | attr) ':' pattern
Brandt Bucher145bf262021-02-26 14:51:55 -08007711 if (p->error_indicator) {
7712 D(p->level--);
7713 return NULL;
7714 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007715 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 -08007716 Token * _literal;
7717 void *key;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007718 pattern_ty pattern;
Brandt Bucher145bf262021-02-26 14:51:55 -08007719 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007720 (key = _tmp_61_rule(p)) // literal_expr | attr
Brandt Bucher145bf262021-02-26 14:51:55 -08007721 &&
7722 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
7723 &&
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007724 (pattern = pattern_rule(p)) // pattern
Brandt Bucher145bf262021-02-26 14:51:55 -08007725 )
7726 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007727 D(fprintf(stderr, "%*c+ key_value_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(literal_expr | attr) ':' pattern"));
7728 _res = _PyPegen_key_pattern_pair ( p , key , pattern );
Brandt Bucher145bf262021-02-26 14:51:55 -08007729 if (_res == NULL && PyErr_Occurred()) {
7730 p->error_indicator = 1;
7731 D(p->level--);
7732 return NULL;
7733 }
7734 goto done;
7735 }
7736 p->mark = _mark;
7737 D(fprintf(stderr, "%*c%s key_value_pattern[%d-%d]: %s failed!\n", p->level, ' ',
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007738 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(literal_expr | attr) ':' pattern"));
Brandt Bucher145bf262021-02-26 14:51:55 -08007739 }
7740 _res = NULL;
7741 done:
7742 D(p->level--);
7743 return _res;
7744}
7745
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007746// double_star_pattern: '**' pattern_capture_target
7747static expr_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08007748double_star_pattern_rule(Parser *p)
7749{
7750 D(p->level++);
7751 if (p->error_indicator) {
7752 D(p->level--);
7753 return NULL;
7754 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007755 expr_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08007756 int _mark = p->mark;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007757 { // '**' pattern_capture_target
Brandt Bucher145bf262021-02-26 14:51:55 -08007758 if (p->error_indicator) {
7759 D(p->level--);
7760 return NULL;
7761 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007762 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 -08007763 Token * _literal;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007764 expr_ty target;
Brandt Bucher145bf262021-02-26 14:51:55 -08007765 if (
7766 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
7767 &&
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007768 (target = pattern_capture_target_rule(p)) // pattern_capture_target
Brandt Bucher145bf262021-02-26 14:51:55 -08007769 )
7770 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007771 D(fprintf(stderr, "%*c+ double_star_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' pattern_capture_target"));
7772 _res = target;
Brandt Bucher145bf262021-02-26 14:51:55 -08007773 if (_res == NULL && PyErr_Occurred()) {
7774 p->error_indicator = 1;
7775 D(p->level--);
7776 return NULL;
7777 }
7778 goto done;
7779 }
7780 p->mark = _mark;
7781 D(fprintf(stderr, "%*c%s double_star_pattern[%d-%d]: %s failed!\n", p->level, ' ',
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007782 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' pattern_capture_target"));
Brandt Bucher145bf262021-02-26 14:51:55 -08007783 }
7784 _res = NULL;
7785 done:
7786 D(p->level--);
7787 return _res;
7788}
7789
7790// class_pattern:
7791// | name_or_attr '(' ')'
7792// | name_or_attr '(' positional_patterns ','? ')'
7793// | name_or_attr '(' keyword_patterns ','? ')'
7794// | name_or_attr '(' positional_patterns ',' keyword_patterns ','? ')'
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007795static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08007796class_pattern_rule(Parser *p)
7797{
7798 D(p->level++);
7799 if (p->error_indicator) {
7800 D(p->level--);
7801 return NULL;
7802 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007803 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08007804 int _mark = p->mark;
7805 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
7806 p->error_indicator = 1;
7807 D(p->level--);
7808 return NULL;
7809 }
7810 int _start_lineno = p->tokens[_mark]->lineno;
7811 UNUSED(_start_lineno); // Only used by EXTRA macro
7812 int _start_col_offset = p->tokens[_mark]->col_offset;
7813 UNUSED(_start_col_offset); // Only used by EXTRA macro
7814 { // name_or_attr '(' ')'
7815 if (p->error_indicator) {
7816 D(p->level--);
7817 return NULL;
7818 }
7819 D(fprintf(stderr, "%*c> class_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' ')'"));
7820 Token * _literal;
7821 Token * _literal_1;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007822 expr_ty cls;
Brandt Bucher145bf262021-02-26 14:51:55 -08007823 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007824 (cls = name_or_attr_rule(p)) // name_or_attr
Brandt Bucher145bf262021-02-26 14:51:55 -08007825 &&
7826 (_literal = _PyPegen_expect_token(p, 7)) // token='('
7827 &&
7828 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
7829 )
7830 {
7831 D(fprintf(stderr, "%*c+ class_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' ')'"));
7832 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7833 if (_token == NULL) {
7834 D(p->level--);
7835 return NULL;
7836 }
7837 int _end_lineno = _token->end_lineno;
7838 UNUSED(_end_lineno); // Only used by EXTRA macro
7839 int _end_col_offset = _token->end_col_offset;
7840 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007841 _res = _PyAST_MatchClass ( cls , NULL , NULL , NULL , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08007842 if (_res == NULL && PyErr_Occurred()) {
7843 p->error_indicator = 1;
7844 D(p->level--);
7845 return NULL;
7846 }
7847 goto done;
7848 }
7849 p->mark = _mark;
7850 D(fprintf(stderr, "%*c%s class_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7851 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "name_or_attr '(' ')'"));
7852 }
7853 { // name_or_attr '(' positional_patterns ','? ')'
7854 if (p->error_indicator) {
7855 D(p->level--);
7856 return NULL;
7857 }
7858 D(fprintf(stderr, "%*c> class_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' positional_patterns ','? ')'"));
7859 Token * _literal;
7860 Token * _literal_1;
7861 void *_opt_var;
7862 UNUSED(_opt_var); // Silence compiler warnings
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007863 expr_ty cls;
7864 asdl_pattern_seq* patterns;
Brandt Bucher145bf262021-02-26 14:51:55 -08007865 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007866 (cls = name_or_attr_rule(p)) // name_or_attr
Brandt Bucher145bf262021-02-26 14:51:55 -08007867 &&
7868 (_literal = _PyPegen_expect_token(p, 7)) // token='('
7869 &&
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007870 (patterns = positional_patterns_rule(p)) // positional_patterns
Brandt Bucher145bf262021-02-26 14:51:55 -08007871 &&
7872 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
7873 &&
7874 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
7875 )
7876 {
7877 D(fprintf(stderr, "%*c+ class_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' positional_patterns ','? ')'"));
7878 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7879 if (_token == NULL) {
7880 D(p->level--);
7881 return NULL;
7882 }
7883 int _end_lineno = _token->end_lineno;
7884 UNUSED(_end_lineno); // Only used by EXTRA macro
7885 int _end_col_offset = _token->end_col_offset;
7886 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007887 _res = _PyAST_MatchClass ( cls , patterns , NULL , NULL , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08007888 if (_res == NULL && PyErr_Occurred()) {
7889 p->error_indicator = 1;
7890 D(p->level--);
7891 return NULL;
7892 }
7893 goto done;
7894 }
7895 p->mark = _mark;
7896 D(fprintf(stderr, "%*c%s class_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7897 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "name_or_attr '(' positional_patterns ','? ')'"));
7898 }
7899 { // name_or_attr '(' keyword_patterns ','? ')'
7900 if (p->error_indicator) {
7901 D(p->level--);
7902 return NULL;
7903 }
7904 D(fprintf(stderr, "%*c> class_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' keyword_patterns ','? ')'"));
7905 Token * _literal;
7906 Token * _literal_1;
7907 void *_opt_var;
7908 UNUSED(_opt_var); // Silence compiler warnings
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007909 expr_ty cls;
7910 asdl_seq* keywords;
Brandt Bucher145bf262021-02-26 14:51:55 -08007911 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007912 (cls = name_or_attr_rule(p)) // name_or_attr
Brandt Bucher145bf262021-02-26 14:51:55 -08007913 &&
7914 (_literal = _PyPegen_expect_token(p, 7)) // token='('
7915 &&
7916 (keywords = keyword_patterns_rule(p)) // keyword_patterns
7917 &&
7918 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
7919 &&
7920 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
7921 )
7922 {
7923 D(fprintf(stderr, "%*c+ class_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' keyword_patterns ','? ')'"));
7924 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7925 if (_token == NULL) {
7926 D(p->level--);
7927 return NULL;
7928 }
7929 int _end_lineno = _token->end_lineno;
7930 UNUSED(_end_lineno); // Only used by EXTRA macro
7931 int _end_col_offset = _token->end_col_offset;
7932 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007933 _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 -08007934 if (_res == NULL && PyErr_Occurred()) {
7935 p->error_indicator = 1;
7936 D(p->level--);
7937 return NULL;
7938 }
7939 goto done;
7940 }
7941 p->mark = _mark;
7942 D(fprintf(stderr, "%*c%s class_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7943 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "name_or_attr '(' keyword_patterns ','? ')'"));
7944 }
7945 { // name_or_attr '(' positional_patterns ',' keyword_patterns ','? ')'
7946 if (p->error_indicator) {
7947 D(p->level--);
7948 return NULL;
7949 }
7950 D(fprintf(stderr, "%*c> class_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' positional_patterns ',' keyword_patterns ','? ')'"));
7951 Token * _literal;
7952 Token * _literal_1;
7953 Token * _literal_2;
7954 void *_opt_var;
7955 UNUSED(_opt_var); // Silence compiler warnings
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007956 expr_ty cls;
7957 asdl_seq* keywords;
7958 asdl_pattern_seq* patterns;
Brandt Bucher145bf262021-02-26 14:51:55 -08007959 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007960 (cls = name_or_attr_rule(p)) // name_or_attr
Brandt Bucher145bf262021-02-26 14:51:55 -08007961 &&
7962 (_literal = _PyPegen_expect_token(p, 7)) // token='('
7963 &&
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007964 (patterns = positional_patterns_rule(p)) // positional_patterns
Brandt Bucher145bf262021-02-26 14:51:55 -08007965 &&
7966 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
7967 &&
7968 (keywords = keyword_patterns_rule(p)) // keyword_patterns
7969 &&
7970 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
7971 &&
7972 (_literal_2 = _PyPegen_expect_token(p, 8)) // token=')'
7973 )
7974 {
7975 D(fprintf(stderr, "%*c+ class_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' positional_patterns ',' keyword_patterns ','? ')'"));
7976 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7977 if (_token == NULL) {
7978 D(p->level--);
7979 return NULL;
7980 }
7981 int _end_lineno = _token->end_lineno;
7982 UNUSED(_end_lineno); // Only used by EXTRA macro
7983 int _end_col_offset = _token->end_col_offset;
7984 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007985 _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 -08007986 if (_res == NULL && PyErr_Occurred()) {
7987 p->error_indicator = 1;
7988 D(p->level--);
7989 return NULL;
7990 }
7991 goto done;
7992 }
7993 p->mark = _mark;
7994 D(fprintf(stderr, "%*c%s class_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7995 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "name_or_attr '(' positional_patterns ',' keyword_patterns ','? ')'"));
7996 }
7997 _res = NULL;
7998 done:
7999 D(p->level--);
8000 return _res;
8001}
8002
8003// positional_patterns: ','.pattern+
Nick Coghlan1e7b8582021-04-29 15:58:44 +10008004static asdl_pattern_seq*
Brandt Bucher145bf262021-02-26 14:51:55 -08008005positional_patterns_rule(Parser *p)
8006{
8007 D(p->level++);
8008 if (p->error_indicator) {
8009 D(p->level--);
8010 return NULL;
8011 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10008012 asdl_pattern_seq* _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08008013 int _mark = p->mark;
8014 { // ','.pattern+
8015 if (p->error_indicator) {
8016 D(p->level--);
8017 return NULL;
8018 }
8019 D(fprintf(stderr, "%*c> positional_patterns[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.pattern+"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10008020 asdl_pattern_seq* args;
Brandt Bucher145bf262021-02-26 14:51:55 -08008021 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10008022 (args = (asdl_pattern_seq*)_gather_62_rule(p)) // ','.pattern+
Brandt Bucher145bf262021-02-26 14:51:55 -08008023 )
8024 {
8025 D(fprintf(stderr, "%*c+ positional_patterns[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.pattern+"));
8026 _res = args;
8027 if (_res == NULL && PyErr_Occurred()) {
8028 p->error_indicator = 1;
8029 D(p->level--);
8030 return NULL;
8031 }
8032 goto done;
8033 }
8034 p->mark = _mark;
8035 D(fprintf(stderr, "%*c%s positional_patterns[%d-%d]: %s failed!\n", p->level, ' ',
8036 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.pattern+"));
8037 }
8038 _res = NULL;
8039 done:
8040 D(p->level--);
8041 return _res;
8042}
8043
8044// keyword_patterns: ','.keyword_pattern+
Nick Coghlan1e7b8582021-04-29 15:58:44 +10008045static asdl_seq*
Brandt Bucher145bf262021-02-26 14:51:55 -08008046keyword_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_seq* _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08008054 int _mark = p->mark;
8055 { // ','.keyword_pattern+
8056 if (p->error_indicator) {
8057 D(p->level--);
8058 return NULL;
8059 }
8060 D(fprintf(stderr, "%*c> keyword_patterns[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.keyword_pattern+"));
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07008061 asdl_seq * _gather_64_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08008062 if (
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07008063 (_gather_64_var = _gather_64_rule(p)) // ','.keyword_pattern+
Brandt Bucher145bf262021-02-26 14:51:55 -08008064 )
8065 {
8066 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 -07008067 _res = _gather_64_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08008068 goto done;
8069 }
8070 p->mark = _mark;
8071 D(fprintf(stderr, "%*c%s keyword_patterns[%d-%d]: %s failed!\n", p->level, ' ',
8072 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.keyword_pattern+"));
8073 }
8074 _res = NULL;
8075 done:
8076 D(p->level--);
8077 return _res;
8078}
8079
8080// keyword_pattern: NAME '=' pattern
Nick Coghlan1e7b8582021-04-29 15:58:44 +10008081static KeyPatternPair*
Brandt Bucher145bf262021-02-26 14:51:55 -08008082keyword_pattern_rule(Parser *p)
8083{
8084 D(p->level++);
8085 if (p->error_indicator) {
8086 D(p->level--);
8087 return NULL;
8088 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10008089 KeyPatternPair* _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08008090 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -08008091 { // NAME '=' pattern
8092 if (p->error_indicator) {
8093 D(p->level--);
8094 return NULL;
8095 }
8096 D(fprintf(stderr, "%*c> keyword_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME '=' pattern"));
8097 Token * _literal;
8098 expr_ty arg;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10008099 pattern_ty value;
Brandt Bucher145bf262021-02-26 14:51:55 -08008100 if (
8101 (arg = _PyPegen_name_token(p)) // NAME
8102 &&
8103 (_literal = _PyPegen_expect_token(p, 22)) // token='='
8104 &&
8105 (value = pattern_rule(p)) // pattern
8106 )
8107 {
8108 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 +10008109 _res = _PyPegen_key_pattern_pair ( p , arg , value );
Brandt Bucher145bf262021-02-26 14:51:55 -08008110 if (_res == NULL && PyErr_Occurred()) {
8111 p->error_indicator = 1;
8112 D(p->level--);
8113 return NULL;
8114 }
8115 goto done;
8116 }
8117 p->mark = _mark;
8118 D(fprintf(stderr, "%*c%s keyword_pattern[%d-%d]: %s failed!\n", p->level, ' ',
8119 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' pattern"));
8120 }
8121 _res = NULL;
8122 done:
8123 D(p->level--);
8124 return _res;
8125}
8126
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008127// return_stmt: 'return' star_expressions?
8128static stmt_ty
8129return_stmt_rule(Parser *p)
8130{
8131 D(p->level++);
8132 if (p->error_indicator) {
8133 D(p->level--);
8134 return NULL;
8135 }
8136 stmt_ty _res = NULL;
8137 int _mark = p->mark;
8138 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
8139 p->error_indicator = 1;
8140 D(p->level--);
8141 return NULL;
8142 }
8143 int _start_lineno = p->tokens[_mark]->lineno;
8144 UNUSED(_start_lineno); // Only used by EXTRA macro
8145 int _start_col_offset = p->tokens[_mark]->col_offset;
8146 UNUSED(_start_col_offset); // Only used by EXTRA macro
8147 { // 'return' star_expressions?
8148 if (p->error_indicator) {
8149 D(p->level--);
8150 return NULL;
8151 }
8152 D(fprintf(stderr, "%*c> return_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'return' star_expressions?"));
8153 Token * _keyword;
8154 void *a;
8155 if (
8156 (_keyword = _PyPegen_expect_token(p, 500)) // token='return'
8157 &&
8158 (a = star_expressions_rule(p), 1) // star_expressions?
8159 )
8160 {
8161 D(fprintf(stderr, "%*c+ return_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'return' star_expressions?"));
8162 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8163 if (_token == NULL) {
8164 D(p->level--);
8165 return NULL;
8166 }
8167 int _end_lineno = _token->end_lineno;
8168 UNUSED(_end_lineno); // Only used by EXTRA macro
8169 int _end_col_offset = _token->end_col_offset;
8170 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02008171 _res = _PyAST_Return ( a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008172 if (_res == NULL && PyErr_Occurred()) {
8173 p->error_indicator = 1;
8174 D(p->level--);
8175 return NULL;
8176 }
8177 goto done;
8178 }
8179 p->mark = _mark;
8180 D(fprintf(stderr, "%*c%s return_stmt[%d-%d]: %s failed!\n", p->level, ' ',
8181 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'return' star_expressions?"));
8182 }
8183 _res = NULL;
8184 done:
8185 D(p->level--);
8186 return _res;
8187}
8188
8189// raise_stmt: 'raise' expression ['from' expression] | 'raise'
8190static stmt_ty
8191raise_stmt_rule(Parser *p)
8192{
8193 D(p->level++);
8194 if (p->error_indicator) {
8195 D(p->level--);
8196 return NULL;
8197 }
8198 stmt_ty _res = NULL;
8199 int _mark = p->mark;
8200 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
8201 p->error_indicator = 1;
8202 D(p->level--);
8203 return NULL;
8204 }
8205 int _start_lineno = p->tokens[_mark]->lineno;
8206 UNUSED(_start_lineno); // Only used by EXTRA macro
8207 int _start_col_offset = p->tokens[_mark]->col_offset;
8208 UNUSED(_start_col_offset); // Only used by EXTRA macro
8209 { // 'raise' expression ['from' expression]
8210 if (p->error_indicator) {
8211 D(p->level--);
8212 return NULL;
8213 }
8214 D(fprintf(stderr, "%*c> raise_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'raise' expression ['from' expression]"));
8215 Token * _keyword;
8216 expr_ty a;
8217 void *b;
8218 if (
8219 (_keyword = _PyPegen_expect_token(p, 501)) // token='raise'
8220 &&
8221 (a = expression_rule(p)) // expression
8222 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008223 (b = _tmp_66_rule(p), 1) // ['from' expression]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008224 )
8225 {
8226 D(fprintf(stderr, "%*c+ raise_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'raise' expression ['from' expression]"));
8227 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8228 if (_token == NULL) {
8229 D(p->level--);
8230 return NULL;
8231 }
8232 int _end_lineno = _token->end_lineno;
8233 UNUSED(_end_lineno); // Only used by EXTRA macro
8234 int _end_col_offset = _token->end_col_offset;
8235 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02008236 _res = _PyAST_Raise ( a , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008237 if (_res == NULL && PyErr_Occurred()) {
8238 p->error_indicator = 1;
8239 D(p->level--);
8240 return NULL;
8241 }
8242 goto done;
8243 }
8244 p->mark = _mark;
8245 D(fprintf(stderr, "%*c%s raise_stmt[%d-%d]: %s failed!\n", p->level, ' ',
8246 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'raise' expression ['from' expression]"));
8247 }
8248 { // 'raise'
8249 if (p->error_indicator) {
8250 D(p->level--);
8251 return NULL;
8252 }
8253 D(fprintf(stderr, "%*c> raise_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'raise'"));
8254 Token * _keyword;
8255 if (
8256 (_keyword = _PyPegen_expect_token(p, 501)) // token='raise'
8257 )
8258 {
8259 D(fprintf(stderr, "%*c+ raise_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'raise'"));
8260 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8261 if (_token == NULL) {
8262 D(p->level--);
8263 return NULL;
8264 }
8265 int _end_lineno = _token->end_lineno;
8266 UNUSED(_end_lineno); // Only used by EXTRA macro
8267 int _end_col_offset = _token->end_col_offset;
8268 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02008269 _res = _PyAST_Raise ( NULL , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008270 if (_res == NULL && PyErr_Occurred()) {
8271 p->error_indicator = 1;
8272 D(p->level--);
8273 return NULL;
8274 }
8275 goto done;
8276 }
8277 p->mark = _mark;
8278 D(fprintf(stderr, "%*c%s raise_stmt[%d-%d]: %s failed!\n", p->level, ' ',
8279 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'raise'"));
8280 }
8281 _res = NULL;
8282 done:
8283 D(p->level--);
8284 return _res;
8285}
8286
8287// function_def: decorators function_def_raw | function_def_raw
8288static stmt_ty
8289function_def_rule(Parser *p)
8290{
8291 D(p->level++);
8292 if (p->error_indicator) {
8293 D(p->level--);
8294 return NULL;
8295 }
8296 stmt_ty _res = NULL;
8297 int _mark = p->mark;
8298 { // decorators function_def_raw
8299 if (p->error_indicator) {
8300 D(p->level--);
8301 return NULL;
8302 }
8303 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 +01008304 asdl_expr_seq* d;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008305 stmt_ty f;
8306 if (
8307 (d = decorators_rule(p)) // decorators
8308 &&
8309 (f = function_def_raw_rule(p)) // function_def_raw
8310 )
8311 {
8312 D(fprintf(stderr, "%*c+ function_def[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "decorators function_def_raw"));
8313 _res = _PyPegen_function_def_decorators ( p , d , f );
8314 if (_res == NULL && PyErr_Occurred()) {
8315 p->error_indicator = 1;
8316 D(p->level--);
8317 return NULL;
8318 }
8319 goto done;
8320 }
8321 p->mark = _mark;
8322 D(fprintf(stderr, "%*c%s function_def[%d-%d]: %s failed!\n", p->level, ' ',
8323 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "decorators function_def_raw"));
8324 }
8325 { // function_def_raw
8326 if (p->error_indicator) {
8327 D(p->level--);
8328 return NULL;
8329 }
8330 D(fprintf(stderr, "%*c> function_def[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "function_def_raw"));
8331 stmt_ty function_def_raw_var;
8332 if (
8333 (function_def_raw_var = function_def_raw_rule(p)) // function_def_raw
8334 )
8335 {
8336 D(fprintf(stderr, "%*c+ function_def[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "function_def_raw"));
8337 _res = function_def_raw_var;
8338 goto done;
8339 }
8340 p->mark = _mark;
8341 D(fprintf(stderr, "%*c%s function_def[%d-%d]: %s failed!\n", p->level, ' ',
8342 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "function_def_raw"));
8343 }
8344 _res = NULL;
8345 done:
8346 D(p->level--);
8347 return _res;
8348}
8349
8350// function_def_raw:
Pablo Galindo56c95df2021-04-21 15:28:21 +01008351// | invalid_def_raw
Pablo Galindo58fb1562021-02-02 19:54:22 +00008352// | 'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block
8353// | ASYNC 'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008354static stmt_ty
8355function_def_raw_rule(Parser *p)
8356{
8357 D(p->level++);
8358 if (p->error_indicator) {
8359 D(p->level--);
8360 return NULL;
8361 }
8362 stmt_ty _res = NULL;
8363 int _mark = p->mark;
8364 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
8365 p->error_indicator = 1;
8366 D(p->level--);
8367 return NULL;
8368 }
8369 int _start_lineno = p->tokens[_mark]->lineno;
8370 UNUSED(_start_lineno); // Only used by EXTRA macro
8371 int _start_col_offset = p->tokens[_mark]->col_offset;
8372 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo56c95df2021-04-21 15:28:21 +01008373 if (p->call_invalid_rules) { // invalid_def_raw
8374 if (p->error_indicator) {
8375 D(p->level--);
8376 return NULL;
8377 }
8378 D(fprintf(stderr, "%*c> function_def_raw[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_def_raw"));
8379 void *invalid_def_raw_var;
8380 if (
8381 (invalid_def_raw_var = invalid_def_raw_rule(p)) // invalid_def_raw
8382 )
8383 {
8384 D(fprintf(stderr, "%*c+ function_def_raw[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_def_raw"));
8385 _res = invalid_def_raw_var;
8386 goto done;
8387 }
8388 p->mark = _mark;
8389 D(fprintf(stderr, "%*c%s function_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
8390 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_def_raw"));
8391 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00008392 { // 'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008393 if (p->error_indicator) {
8394 D(p->level--);
8395 return NULL;
8396 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00008397 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 +01008398 Token * _keyword;
8399 Token * _literal;
8400 Token * _literal_1;
8401 Token * _literal_2;
8402 void *a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01008403 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008404 expr_ty n;
8405 void *params;
8406 void *tc;
8407 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08008408 (_keyword = _PyPegen_expect_token(p, 526)) // token='def'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008409 &&
8410 (n = _PyPegen_name_token(p)) // NAME
8411 &&
8412 (_literal = _PyPegen_expect_token(p, 7)) // token='('
8413 &&
8414 (params = params_rule(p), 1) // params?
8415 &&
8416 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
8417 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008418 (a = _tmp_67_rule(p), 1) // ['->' expression]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008419 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00008420 (_literal_2 = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008421 &&
8422 (tc = func_type_comment_rule(p), 1) // func_type_comment?
8423 &&
8424 (b = block_rule(p)) // block
8425 )
8426 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00008427 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 +01008428 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8429 if (_token == NULL) {
8430 D(p->level--);
8431 return NULL;
8432 }
8433 int _end_lineno = _token->end_lineno;
8434 UNUSED(_end_lineno); // Only used by EXTRA macro
8435 int _end_col_offset = _token->end_col_offset;
8436 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02008437 _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 +01008438 if (_res == NULL && PyErr_Occurred()) {
8439 p->error_indicator = 1;
8440 D(p->level--);
8441 return NULL;
8442 }
8443 goto done;
8444 }
8445 p->mark = _mark;
8446 D(fprintf(stderr, "%*c%s function_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00008447 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008448 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00008449 { // ASYNC 'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008450 if (p->error_indicator) {
8451 D(p->level--);
8452 return NULL;
8453 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00008454 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 +01008455 Token * _keyword;
8456 Token * _literal;
8457 Token * _literal_1;
8458 Token * _literal_2;
8459 void *a;
8460 Token * async_var;
Pablo Galindoa5634c42020-09-16 19:42:00 +01008461 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008462 expr_ty n;
8463 void *params;
8464 void *tc;
8465 if (
8466 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
8467 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008468 (_keyword = _PyPegen_expect_token(p, 526)) // token='def'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008469 &&
8470 (n = _PyPegen_name_token(p)) // NAME
8471 &&
8472 (_literal = _PyPegen_expect_token(p, 7)) // token='('
8473 &&
8474 (params = params_rule(p), 1) // params?
8475 &&
8476 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
8477 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008478 (a = _tmp_68_rule(p), 1) // ['->' expression]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008479 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00008480 (_literal_2 = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008481 &&
8482 (tc = func_type_comment_rule(p), 1) // func_type_comment?
8483 &&
8484 (b = block_rule(p)) // block
8485 )
8486 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00008487 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 +01008488 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8489 if (_token == NULL) {
8490 D(p->level--);
8491 return NULL;
8492 }
8493 int _end_lineno = _token->end_lineno;
8494 UNUSED(_end_lineno); // Only used by EXTRA macro
8495 int _end_col_offset = _token->end_col_offset;
8496 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02008497 _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 +01008498 if (_res == NULL && PyErr_Occurred()) {
8499 p->error_indicator = 1;
8500 D(p->level--);
8501 return NULL;
8502 }
8503 goto done;
8504 }
8505 p->mark = _mark;
8506 D(fprintf(stderr, "%*c%s function_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00008507 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008508 }
8509 _res = NULL;
8510 done:
8511 D(p->level--);
8512 return _res;
8513}
8514
8515// func_type_comment:
8516// | NEWLINE TYPE_COMMENT &(NEWLINE INDENT)
8517// | invalid_double_type_comments
8518// | TYPE_COMMENT
8519static Token*
8520func_type_comment_rule(Parser *p)
8521{
8522 D(p->level++);
8523 if (p->error_indicator) {
8524 D(p->level--);
8525 return NULL;
8526 }
8527 Token* _res = NULL;
8528 int _mark = p->mark;
8529 { // NEWLINE TYPE_COMMENT &(NEWLINE INDENT)
8530 if (p->error_indicator) {
8531 D(p->level--);
8532 return NULL;
8533 }
8534 D(fprintf(stderr, "%*c> func_type_comment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE TYPE_COMMENT &(NEWLINE INDENT)"));
8535 Token * newline_var;
8536 Token * t;
8537 if (
8538 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
8539 &&
8540 (t = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
8541 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008542 _PyPegen_lookahead(1, _tmp_69_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008543 )
8544 {
8545 D(fprintf(stderr, "%*c+ func_type_comment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE TYPE_COMMENT &(NEWLINE INDENT)"));
8546 _res = t;
8547 if (_res == NULL && PyErr_Occurred()) {
8548 p->error_indicator = 1;
8549 D(p->level--);
8550 return NULL;
8551 }
8552 goto done;
8553 }
8554 p->mark = _mark;
8555 D(fprintf(stderr, "%*c%s func_type_comment[%d-%d]: %s failed!\n", p->level, ' ',
8556 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE TYPE_COMMENT &(NEWLINE INDENT)"));
8557 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02008558 if (p->call_invalid_rules) { // invalid_double_type_comments
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008559 if (p->error_indicator) {
8560 D(p->level--);
8561 return NULL;
8562 }
8563 D(fprintf(stderr, "%*c> func_type_comment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_double_type_comments"));
8564 void *invalid_double_type_comments_var;
8565 if (
8566 (invalid_double_type_comments_var = invalid_double_type_comments_rule(p)) // invalid_double_type_comments
8567 )
8568 {
8569 D(fprintf(stderr, "%*c+ func_type_comment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_double_type_comments"));
8570 _res = invalid_double_type_comments_var;
8571 goto done;
8572 }
8573 p->mark = _mark;
8574 D(fprintf(stderr, "%*c%s func_type_comment[%d-%d]: %s failed!\n", p->level, ' ',
8575 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_double_type_comments"));
8576 }
8577 { // TYPE_COMMENT
8578 if (p->error_indicator) {
8579 D(p->level--);
8580 return NULL;
8581 }
8582 D(fprintf(stderr, "%*c> func_type_comment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "TYPE_COMMENT"));
8583 Token * type_comment_var;
8584 if (
8585 (type_comment_var = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
8586 )
8587 {
8588 D(fprintf(stderr, "%*c+ func_type_comment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "TYPE_COMMENT"));
8589 _res = type_comment_var;
8590 goto done;
8591 }
8592 p->mark = _mark;
8593 D(fprintf(stderr, "%*c%s func_type_comment[%d-%d]: %s failed!\n", p->level, ' ',
8594 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "TYPE_COMMENT"));
8595 }
8596 _res = NULL;
8597 done:
8598 D(p->level--);
8599 return _res;
8600}
8601
8602// params: invalid_parameters | parameters
8603static arguments_ty
8604params_rule(Parser *p)
8605{
8606 D(p->level++);
8607 if (p->error_indicator) {
8608 D(p->level--);
8609 return NULL;
8610 }
8611 arguments_ty _res = NULL;
8612 int _mark = p->mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02008613 if (p->call_invalid_rules) { // invalid_parameters
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008614 if (p->error_indicator) {
8615 D(p->level--);
8616 return NULL;
8617 }
8618 D(fprintf(stderr, "%*c> params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_parameters"));
8619 void *invalid_parameters_var;
8620 if (
8621 (invalid_parameters_var = invalid_parameters_rule(p)) // invalid_parameters
8622 )
8623 {
8624 D(fprintf(stderr, "%*c+ params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_parameters"));
8625 _res = invalid_parameters_var;
8626 goto done;
8627 }
8628 p->mark = _mark;
8629 D(fprintf(stderr, "%*c%s params[%d-%d]: %s failed!\n", p->level, ' ',
8630 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_parameters"));
8631 }
8632 { // parameters
8633 if (p->error_indicator) {
8634 D(p->level--);
8635 return NULL;
8636 }
8637 D(fprintf(stderr, "%*c> params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "parameters"));
8638 arguments_ty parameters_var;
8639 if (
8640 (parameters_var = parameters_rule(p)) // parameters
8641 )
8642 {
8643 D(fprintf(stderr, "%*c+ params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "parameters"));
8644 _res = parameters_var;
8645 goto done;
8646 }
8647 p->mark = _mark;
8648 D(fprintf(stderr, "%*c%s params[%d-%d]: %s failed!\n", p->level, ' ',
8649 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "parameters"));
8650 }
8651 _res = NULL;
8652 done:
8653 D(p->level--);
8654 return _res;
8655}
8656
8657// parameters:
8658// | slash_no_default param_no_default* param_with_default* star_etc?
8659// | slash_with_default param_with_default* star_etc?
8660// | param_no_default+ param_with_default* star_etc?
8661// | param_with_default+ star_etc?
8662// | star_etc
8663static arguments_ty
8664parameters_rule(Parser *p)
8665{
8666 D(p->level++);
8667 if (p->error_indicator) {
8668 D(p->level--);
8669 return NULL;
8670 }
8671 arguments_ty _res = NULL;
8672 int _mark = p->mark;
8673 { // slash_no_default param_no_default* param_with_default* star_etc?
8674 if (p->error_indicator) {
8675 D(p->level--);
8676 return NULL;
8677 }
8678 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 +01008679 asdl_arg_seq* a;
8680 asdl_arg_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008681 asdl_seq * c;
8682 void *d;
8683 if (
8684 (a = slash_no_default_rule(p)) // slash_no_default
8685 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008686 (b = (asdl_arg_seq*)_loop0_70_rule(p)) // param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008687 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008688 (c = _loop0_71_rule(p)) // param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008689 &&
8690 (d = star_etc_rule(p), 1) // star_etc?
8691 )
8692 {
8693 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?"));
8694 _res = _PyPegen_make_arguments ( p , a , NULL , b , c , d );
8695 if (_res == NULL && PyErr_Occurred()) {
8696 p->error_indicator = 1;
8697 D(p->level--);
8698 return NULL;
8699 }
8700 goto done;
8701 }
8702 p->mark = _mark;
8703 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
8704 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slash_no_default param_no_default* param_with_default* star_etc?"));
8705 }
8706 { // slash_with_default param_with_default* star_etc?
8707 if (p->error_indicator) {
8708 D(p->level--);
8709 return NULL;
8710 }
8711 D(fprintf(stderr, "%*c> parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slash_with_default param_with_default* star_etc?"));
8712 SlashWithDefault* a;
8713 asdl_seq * b;
8714 void *c;
8715 if (
8716 (a = slash_with_default_rule(p)) // slash_with_default
8717 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008718 (b = _loop0_72_rule(p)) // param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008719 &&
8720 (c = star_etc_rule(p), 1) // star_etc?
8721 )
8722 {
8723 D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slash_with_default param_with_default* star_etc?"));
8724 _res = _PyPegen_make_arguments ( p , NULL , a , NULL , b , c );
8725 if (_res == NULL && PyErr_Occurred()) {
8726 p->error_indicator = 1;
8727 D(p->level--);
8728 return NULL;
8729 }
8730 goto done;
8731 }
8732 p->mark = _mark;
8733 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
8734 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slash_with_default param_with_default* star_etc?"));
8735 }
8736 { // param_no_default+ param_with_default* star_etc?
8737 if (p->error_indicator) {
8738 D(p->level--);
8739 return NULL;
8740 }
8741 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 +01008742 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008743 asdl_seq * b;
8744 void *c;
8745 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08008746 (a = (asdl_arg_seq*)_loop1_73_rule(p)) // param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008747 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008748 (b = _loop0_74_rule(p)) // param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008749 &&
8750 (c = star_etc_rule(p), 1) // star_etc?
8751 )
8752 {
8753 D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default+ param_with_default* star_etc?"));
8754 _res = _PyPegen_make_arguments ( p , NULL , NULL , a , b , c );
8755 if (_res == NULL && PyErr_Occurred()) {
8756 p->error_indicator = 1;
8757 D(p->level--);
8758 return NULL;
8759 }
8760 goto done;
8761 }
8762 p->mark = _mark;
8763 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
8764 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default+ param_with_default* star_etc?"));
8765 }
8766 { // param_with_default+ star_etc?
8767 if (p->error_indicator) {
8768 D(p->level--);
8769 return NULL;
8770 }
8771 D(fprintf(stderr, "%*c> parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default+ star_etc?"));
8772 asdl_seq * a;
8773 void *b;
8774 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08008775 (a = _loop1_75_rule(p)) // param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008776 &&
8777 (b = star_etc_rule(p), 1) // star_etc?
8778 )
8779 {
8780 D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_with_default+ star_etc?"));
8781 _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , a , b );
8782 if (_res == NULL && PyErr_Occurred()) {
8783 p->error_indicator = 1;
8784 D(p->level--);
8785 return NULL;
8786 }
8787 goto done;
8788 }
8789 p->mark = _mark;
8790 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
8791 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default+ star_etc?"));
8792 }
8793 { // star_etc
8794 if (p->error_indicator) {
8795 D(p->level--);
8796 return NULL;
8797 }
8798 D(fprintf(stderr, "%*c> parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_etc"));
8799 StarEtc* a;
8800 if (
8801 (a = star_etc_rule(p)) // star_etc
8802 )
8803 {
8804 D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_etc"));
8805 _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , NULL , a );
8806 if (_res == NULL && PyErr_Occurred()) {
8807 p->error_indicator = 1;
8808 D(p->level--);
8809 return NULL;
8810 }
8811 goto done;
8812 }
8813 p->mark = _mark;
8814 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
8815 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_etc"));
8816 }
8817 _res = NULL;
8818 done:
8819 D(p->level--);
8820 return _res;
8821}
8822
8823// slash_no_default: param_no_default+ '/' ',' | param_no_default+ '/' &')'
Pablo Galindoa5634c42020-09-16 19:42:00 +01008824static asdl_arg_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008825slash_no_default_rule(Parser *p)
8826{
8827 D(p->level++);
8828 if (p->error_indicator) {
8829 D(p->level--);
8830 return NULL;
8831 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01008832 asdl_arg_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008833 int _mark = p->mark;
8834 { // param_no_default+ '/' ','
8835 if (p->error_indicator) {
8836 D(p->level--);
8837 return NULL;
8838 }
8839 D(fprintf(stderr, "%*c> slash_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default+ '/' ','"));
8840 Token * _literal;
8841 Token * _literal_1;
Pablo Galindoa5634c42020-09-16 19:42:00 +01008842 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008843 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08008844 (a = (asdl_arg_seq*)_loop1_76_rule(p)) // param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008845 &&
8846 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
8847 &&
8848 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
8849 )
8850 {
8851 D(fprintf(stderr, "%*c+ slash_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default+ '/' ','"));
8852 _res = a;
8853 if (_res == NULL && PyErr_Occurred()) {
8854 p->error_indicator = 1;
8855 D(p->level--);
8856 return NULL;
8857 }
8858 goto done;
8859 }
8860 p->mark = _mark;
8861 D(fprintf(stderr, "%*c%s slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
8862 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default+ '/' ','"));
8863 }
8864 { // param_no_default+ '/' &')'
8865 if (p->error_indicator) {
8866 D(p->level--);
8867 return NULL;
8868 }
8869 D(fprintf(stderr, "%*c> slash_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default+ '/' &')'"));
8870 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01008871 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008872 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08008873 (a = (asdl_arg_seq*)_loop1_77_rule(p)) // param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008874 &&
8875 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
8876 &&
8877 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
8878 )
8879 {
8880 D(fprintf(stderr, "%*c+ slash_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default+ '/' &')'"));
8881 _res = a;
8882 if (_res == NULL && PyErr_Occurred()) {
8883 p->error_indicator = 1;
8884 D(p->level--);
8885 return NULL;
8886 }
8887 goto done;
8888 }
8889 p->mark = _mark;
8890 D(fprintf(stderr, "%*c%s slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
8891 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default+ '/' &')'"));
8892 }
8893 _res = NULL;
8894 done:
8895 D(p->level--);
8896 return _res;
8897}
8898
8899// slash_with_default:
8900// | param_no_default* param_with_default+ '/' ','
8901// | param_no_default* param_with_default+ '/' &')'
8902static SlashWithDefault*
8903slash_with_default_rule(Parser *p)
8904{
8905 D(p->level++);
8906 if (p->error_indicator) {
8907 D(p->level--);
8908 return NULL;
8909 }
8910 SlashWithDefault* _res = NULL;
8911 int _mark = p->mark;
8912 { // param_no_default* param_with_default+ '/' ','
8913 if (p->error_indicator) {
8914 D(p->level--);
8915 return NULL;
8916 }
8917 D(fprintf(stderr, "%*c> slash_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default* param_with_default+ '/' ','"));
8918 Token * _literal;
8919 Token * _literal_1;
8920 asdl_seq * a;
8921 asdl_seq * b;
8922 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08008923 (a = _loop0_78_rule(p)) // param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008924 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008925 (b = _loop1_79_rule(p)) // param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008926 &&
8927 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
8928 &&
8929 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
8930 )
8931 {
8932 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 +01008933 _res = _PyPegen_slash_with_default ( p , ( asdl_arg_seq * ) a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008934 if (_res == NULL && PyErr_Occurred()) {
8935 p->error_indicator = 1;
8936 D(p->level--);
8937 return NULL;
8938 }
8939 goto done;
8940 }
8941 p->mark = _mark;
8942 D(fprintf(stderr, "%*c%s slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
8943 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default* param_with_default+ '/' ','"));
8944 }
8945 { // param_no_default* param_with_default+ '/' &')'
8946 if (p->error_indicator) {
8947 D(p->level--);
8948 return NULL;
8949 }
8950 D(fprintf(stderr, "%*c> slash_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default* param_with_default+ '/' &')'"));
8951 Token * _literal;
8952 asdl_seq * a;
8953 asdl_seq * b;
8954 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08008955 (a = _loop0_80_rule(p)) // param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008956 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008957 (b = _loop1_81_rule(p)) // param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008958 &&
8959 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
8960 &&
8961 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
8962 )
8963 {
8964 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 +01008965 _res = _PyPegen_slash_with_default ( p , ( asdl_arg_seq * ) a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008966 if (_res == NULL && PyErr_Occurred()) {
8967 p->error_indicator = 1;
8968 D(p->level--);
8969 return NULL;
8970 }
8971 goto done;
8972 }
8973 p->mark = _mark;
8974 D(fprintf(stderr, "%*c%s slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
8975 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default* param_with_default+ '/' &')'"));
8976 }
8977 _res = NULL;
8978 done:
8979 D(p->level--);
8980 return _res;
8981}
8982
8983// star_etc:
8984// | '*' param_no_default param_maybe_default* kwds?
8985// | '*' ',' param_maybe_default+ kwds?
8986// | kwds
8987// | invalid_star_etc
8988static StarEtc*
8989star_etc_rule(Parser *p)
8990{
8991 D(p->level++);
8992 if (p->error_indicator) {
8993 D(p->level--);
8994 return NULL;
8995 }
8996 StarEtc* _res = NULL;
8997 int _mark = p->mark;
8998 { // '*' param_no_default param_maybe_default* kwds?
8999 if (p->error_indicator) {
9000 D(p->level--);
9001 return NULL;
9002 }
9003 D(fprintf(stderr, "%*c> star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' param_no_default param_maybe_default* kwds?"));
9004 Token * _literal;
9005 arg_ty a;
9006 asdl_seq * b;
9007 void *c;
9008 if (
9009 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
9010 &&
9011 (a = param_no_default_rule(p)) // param_no_default
9012 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08009013 (b = _loop0_82_rule(p)) // param_maybe_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009014 &&
9015 (c = kwds_rule(p), 1) // kwds?
9016 )
9017 {
9018 D(fprintf(stderr, "%*c+ star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' param_no_default param_maybe_default* kwds?"));
9019 _res = _PyPegen_star_etc ( p , a , b , c );
9020 if (_res == NULL && PyErr_Occurred()) {
9021 p->error_indicator = 1;
9022 D(p->level--);
9023 return NULL;
9024 }
9025 goto done;
9026 }
9027 p->mark = _mark;
9028 D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
9029 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' param_no_default param_maybe_default* kwds?"));
9030 }
9031 { // '*' ',' param_maybe_default+ kwds?
9032 if (p->error_indicator) {
9033 D(p->level--);
9034 return NULL;
9035 }
9036 D(fprintf(stderr, "%*c> star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' ',' param_maybe_default+ kwds?"));
9037 Token * _literal;
9038 Token * _literal_1;
9039 asdl_seq * b;
9040 void *c;
9041 if (
9042 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
9043 &&
9044 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
9045 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08009046 (b = _loop1_83_rule(p)) // param_maybe_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009047 &&
9048 (c = kwds_rule(p), 1) // kwds?
9049 )
9050 {
9051 D(fprintf(stderr, "%*c+ star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' ',' param_maybe_default+ kwds?"));
9052 _res = _PyPegen_star_etc ( p , NULL , b , c );
9053 if (_res == NULL && PyErr_Occurred()) {
9054 p->error_indicator = 1;
9055 D(p->level--);
9056 return NULL;
9057 }
9058 goto done;
9059 }
9060 p->mark = _mark;
9061 D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
9062 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' ',' param_maybe_default+ kwds?"));
9063 }
9064 { // kwds
9065 if (p->error_indicator) {
9066 D(p->level--);
9067 return NULL;
9068 }
9069 D(fprintf(stderr, "%*c> star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwds"));
9070 arg_ty a;
9071 if (
9072 (a = kwds_rule(p)) // kwds
9073 )
9074 {
9075 D(fprintf(stderr, "%*c+ star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwds"));
9076 _res = _PyPegen_star_etc ( p , NULL , NULL , a );
9077 if (_res == NULL && PyErr_Occurred()) {
9078 p->error_indicator = 1;
9079 D(p->level--);
9080 return NULL;
9081 }
9082 goto done;
9083 }
9084 p->mark = _mark;
9085 D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
9086 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwds"));
9087 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02009088 if (p->call_invalid_rules) { // invalid_star_etc
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009089 if (p->error_indicator) {
9090 D(p->level--);
9091 return NULL;
9092 }
9093 D(fprintf(stderr, "%*c> star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_star_etc"));
9094 void *invalid_star_etc_var;
9095 if (
9096 (invalid_star_etc_var = invalid_star_etc_rule(p)) // invalid_star_etc
9097 )
9098 {
9099 D(fprintf(stderr, "%*c+ star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_star_etc"));
9100 _res = invalid_star_etc_var;
9101 goto done;
9102 }
9103 p->mark = _mark;
9104 D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
9105 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_star_etc"));
9106 }
9107 _res = NULL;
9108 done:
9109 D(p->level--);
9110 return _res;
9111}
9112
9113// kwds: '**' param_no_default
9114static arg_ty
9115kwds_rule(Parser *p)
9116{
9117 D(p->level++);
9118 if (p->error_indicator) {
9119 D(p->level--);
9120 return NULL;
9121 }
9122 arg_ty _res = NULL;
9123 int _mark = p->mark;
9124 { // '**' param_no_default
9125 if (p->error_indicator) {
9126 D(p->level--);
9127 return NULL;
9128 }
9129 D(fprintf(stderr, "%*c> kwds[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' param_no_default"));
9130 Token * _literal;
9131 arg_ty a;
9132 if (
9133 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
9134 &&
9135 (a = param_no_default_rule(p)) // param_no_default
9136 )
9137 {
9138 D(fprintf(stderr, "%*c+ kwds[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' param_no_default"));
9139 _res = a;
9140 if (_res == NULL && PyErr_Occurred()) {
9141 p->error_indicator = 1;
9142 D(p->level--);
9143 return NULL;
9144 }
9145 goto done;
9146 }
9147 p->mark = _mark;
9148 D(fprintf(stderr, "%*c%s kwds[%d-%d]: %s failed!\n", p->level, ' ',
9149 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' param_no_default"));
9150 }
9151 _res = NULL;
9152 done:
9153 D(p->level--);
9154 return _res;
9155}
9156
9157// param_no_default: param ',' TYPE_COMMENT? | param TYPE_COMMENT? &')'
9158static arg_ty
9159param_no_default_rule(Parser *p)
9160{
9161 D(p->level++);
9162 if (p->error_indicator) {
9163 D(p->level--);
9164 return NULL;
9165 }
9166 arg_ty _res = NULL;
9167 int _mark = p->mark;
9168 { // param ',' TYPE_COMMENT?
9169 if (p->error_indicator) {
9170 D(p->level--);
9171 return NULL;
9172 }
9173 D(fprintf(stderr, "%*c> param_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param ',' TYPE_COMMENT?"));
9174 Token * _literal;
9175 arg_ty a;
9176 void *tc;
9177 if (
9178 (a = param_rule(p)) // param
9179 &&
9180 (_literal = _PyPegen_expect_token(p, 12)) // token=','
9181 &&
9182 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
9183 )
9184 {
9185 D(fprintf(stderr, "%*c+ param_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param ',' TYPE_COMMENT?"));
9186 _res = _PyPegen_add_type_comment_to_arg ( p , a , tc );
9187 if (_res == NULL && PyErr_Occurred()) {
9188 p->error_indicator = 1;
9189 D(p->level--);
9190 return NULL;
9191 }
9192 goto done;
9193 }
9194 p->mark = _mark;
9195 D(fprintf(stderr, "%*c%s param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
9196 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param ',' TYPE_COMMENT?"));
9197 }
9198 { // param TYPE_COMMENT? &')'
9199 if (p->error_indicator) {
9200 D(p->level--);
9201 return NULL;
9202 }
9203 D(fprintf(stderr, "%*c> param_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param TYPE_COMMENT? &')'"));
9204 arg_ty a;
9205 void *tc;
9206 if (
9207 (a = param_rule(p)) // param
9208 &&
9209 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
9210 &&
9211 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
9212 )
9213 {
9214 D(fprintf(stderr, "%*c+ param_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param TYPE_COMMENT? &')'"));
9215 _res = _PyPegen_add_type_comment_to_arg ( p , a , tc );
9216 if (_res == NULL && PyErr_Occurred()) {
9217 p->error_indicator = 1;
9218 D(p->level--);
9219 return NULL;
9220 }
9221 goto done;
9222 }
9223 p->mark = _mark;
9224 D(fprintf(stderr, "%*c%s param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
9225 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param TYPE_COMMENT? &')'"));
9226 }
9227 _res = NULL;
9228 done:
9229 D(p->level--);
9230 return _res;
9231}
9232
9233// param_with_default: param default ',' TYPE_COMMENT? | param default TYPE_COMMENT? &')'
9234static NameDefaultPair*
9235param_with_default_rule(Parser *p)
9236{
9237 D(p->level++);
9238 if (p->error_indicator) {
9239 D(p->level--);
9240 return NULL;
9241 }
9242 NameDefaultPair* _res = NULL;
9243 int _mark = p->mark;
9244 { // param default ',' TYPE_COMMENT?
9245 if (p->error_indicator) {
9246 D(p->level--);
9247 return NULL;
9248 }
9249 D(fprintf(stderr, "%*c> param_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param default ',' TYPE_COMMENT?"));
9250 Token * _literal;
9251 arg_ty a;
9252 expr_ty c;
9253 void *tc;
9254 if (
9255 (a = param_rule(p)) // param
9256 &&
9257 (c = default_rule(p)) // default
9258 &&
9259 (_literal = _PyPegen_expect_token(p, 12)) // token=','
9260 &&
9261 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
9262 )
9263 {
9264 D(fprintf(stderr, "%*c+ param_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param default ',' TYPE_COMMENT?"));
9265 _res = _PyPegen_name_default_pair ( p , a , c , tc );
9266 if (_res == NULL && PyErr_Occurred()) {
9267 p->error_indicator = 1;
9268 D(p->level--);
9269 return NULL;
9270 }
9271 goto done;
9272 }
9273 p->mark = _mark;
9274 D(fprintf(stderr, "%*c%s param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
9275 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default ',' TYPE_COMMENT?"));
9276 }
9277 { // param default TYPE_COMMENT? &')'
9278 if (p->error_indicator) {
9279 D(p->level--);
9280 return NULL;
9281 }
9282 D(fprintf(stderr, "%*c> param_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param default TYPE_COMMENT? &')'"));
9283 arg_ty a;
9284 expr_ty c;
9285 void *tc;
9286 if (
9287 (a = param_rule(p)) // param
9288 &&
9289 (c = default_rule(p)) // default
9290 &&
9291 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
9292 &&
9293 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
9294 )
9295 {
9296 D(fprintf(stderr, "%*c+ param_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param default TYPE_COMMENT? &')'"));
9297 _res = _PyPegen_name_default_pair ( p , a , c , tc );
9298 if (_res == NULL && PyErr_Occurred()) {
9299 p->error_indicator = 1;
9300 D(p->level--);
9301 return NULL;
9302 }
9303 goto done;
9304 }
9305 p->mark = _mark;
9306 D(fprintf(stderr, "%*c%s param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
9307 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default TYPE_COMMENT? &')'"));
9308 }
9309 _res = NULL;
9310 done:
9311 D(p->level--);
9312 return _res;
9313}
9314
9315// param_maybe_default:
9316// | param default? ',' TYPE_COMMENT?
9317// | param default? TYPE_COMMENT? &')'
9318static NameDefaultPair*
9319param_maybe_default_rule(Parser *p)
9320{
9321 D(p->level++);
9322 if (p->error_indicator) {
9323 D(p->level--);
9324 return NULL;
9325 }
9326 NameDefaultPair* _res = NULL;
9327 int _mark = p->mark;
9328 { // param default? ',' TYPE_COMMENT?
9329 if (p->error_indicator) {
9330 D(p->level--);
9331 return NULL;
9332 }
9333 D(fprintf(stderr, "%*c> param_maybe_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param default? ',' TYPE_COMMENT?"));
9334 Token * _literal;
9335 arg_ty a;
9336 void *c;
9337 void *tc;
9338 if (
9339 (a = param_rule(p)) // param
9340 &&
9341 (c = default_rule(p), 1) // default?
9342 &&
9343 (_literal = _PyPegen_expect_token(p, 12)) // token=','
9344 &&
9345 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
9346 )
9347 {
9348 D(fprintf(stderr, "%*c+ param_maybe_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param default? ',' TYPE_COMMENT?"));
9349 _res = _PyPegen_name_default_pair ( p , a , c , tc );
9350 if (_res == NULL && PyErr_Occurred()) {
9351 p->error_indicator = 1;
9352 D(p->level--);
9353 return NULL;
9354 }
9355 goto done;
9356 }
9357 p->mark = _mark;
9358 D(fprintf(stderr, "%*c%s param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
9359 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default? ',' TYPE_COMMENT?"));
9360 }
9361 { // param default? TYPE_COMMENT? &')'
9362 if (p->error_indicator) {
9363 D(p->level--);
9364 return NULL;
9365 }
9366 D(fprintf(stderr, "%*c> param_maybe_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param default? TYPE_COMMENT? &')'"));
9367 arg_ty a;
9368 void *c;
9369 void *tc;
9370 if (
9371 (a = param_rule(p)) // param
9372 &&
9373 (c = default_rule(p), 1) // default?
9374 &&
9375 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
9376 &&
9377 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
9378 )
9379 {
9380 D(fprintf(stderr, "%*c+ param_maybe_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param default? TYPE_COMMENT? &')'"));
9381 _res = _PyPegen_name_default_pair ( p , a , c , tc );
9382 if (_res == NULL && PyErr_Occurred()) {
9383 p->error_indicator = 1;
9384 D(p->level--);
9385 return NULL;
9386 }
9387 goto done;
9388 }
9389 p->mark = _mark;
9390 D(fprintf(stderr, "%*c%s param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
9391 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default? TYPE_COMMENT? &')'"));
9392 }
9393 _res = NULL;
9394 done:
9395 D(p->level--);
9396 return _res;
9397}
9398
9399// param: NAME annotation?
9400static arg_ty
9401param_rule(Parser *p)
9402{
9403 D(p->level++);
9404 if (p->error_indicator) {
9405 D(p->level--);
9406 return NULL;
9407 }
9408 arg_ty _res = NULL;
9409 int _mark = p->mark;
9410 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9411 p->error_indicator = 1;
9412 D(p->level--);
9413 return NULL;
9414 }
9415 int _start_lineno = p->tokens[_mark]->lineno;
9416 UNUSED(_start_lineno); // Only used by EXTRA macro
9417 int _start_col_offset = p->tokens[_mark]->col_offset;
9418 UNUSED(_start_col_offset); // Only used by EXTRA macro
9419 { // NAME annotation?
9420 if (p->error_indicator) {
9421 D(p->level--);
9422 return NULL;
9423 }
9424 D(fprintf(stderr, "%*c> param[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME annotation?"));
9425 expr_ty a;
9426 void *b;
9427 if (
9428 (a = _PyPegen_name_token(p)) // NAME
9429 &&
9430 (b = annotation_rule(p), 1) // annotation?
9431 )
9432 {
9433 D(fprintf(stderr, "%*c+ param[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME annotation?"));
9434 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9435 if (_token == NULL) {
9436 D(p->level--);
9437 return NULL;
9438 }
9439 int _end_lineno = _token->end_lineno;
9440 UNUSED(_end_lineno); // Only used by EXTRA macro
9441 int _end_col_offset = _token->end_col_offset;
9442 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02009443 _res = _PyAST_arg ( a -> v . Name . id , b , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009444 if (_res == NULL && PyErr_Occurred()) {
9445 p->error_indicator = 1;
9446 D(p->level--);
9447 return NULL;
9448 }
9449 goto done;
9450 }
9451 p->mark = _mark;
9452 D(fprintf(stderr, "%*c%s param[%d-%d]: %s failed!\n", p->level, ' ',
9453 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME annotation?"));
9454 }
9455 _res = NULL;
9456 done:
9457 D(p->level--);
9458 return _res;
9459}
9460
9461// annotation: ':' expression
9462static expr_ty
9463annotation_rule(Parser *p)
9464{
9465 D(p->level++);
9466 if (p->error_indicator) {
9467 D(p->level--);
9468 return NULL;
9469 }
9470 expr_ty _res = NULL;
9471 int _mark = p->mark;
9472 { // ':' expression
9473 if (p->error_indicator) {
9474 D(p->level--);
9475 return NULL;
9476 }
9477 D(fprintf(stderr, "%*c> annotation[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':' expression"));
9478 Token * _literal;
9479 expr_ty a;
9480 if (
9481 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
9482 &&
9483 (a = expression_rule(p)) // expression
9484 )
9485 {
9486 D(fprintf(stderr, "%*c+ annotation[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':' expression"));
9487 _res = a;
9488 if (_res == NULL && PyErr_Occurred()) {
9489 p->error_indicator = 1;
9490 D(p->level--);
9491 return NULL;
9492 }
9493 goto done;
9494 }
9495 p->mark = _mark;
9496 D(fprintf(stderr, "%*c%s annotation[%d-%d]: %s failed!\n", p->level, ' ',
9497 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':' expression"));
9498 }
9499 _res = NULL;
9500 done:
9501 D(p->level--);
9502 return _res;
9503}
9504
9505// default: '=' expression
9506static expr_ty
9507default_rule(Parser *p)
9508{
9509 D(p->level++);
9510 if (p->error_indicator) {
9511 D(p->level--);
9512 return NULL;
9513 }
9514 expr_ty _res = NULL;
9515 int _mark = p->mark;
9516 { // '=' expression
9517 if (p->error_indicator) {
9518 D(p->level--);
9519 return NULL;
9520 }
9521 D(fprintf(stderr, "%*c> default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'=' expression"));
9522 Token * _literal;
9523 expr_ty a;
9524 if (
9525 (_literal = _PyPegen_expect_token(p, 22)) // token='='
9526 &&
9527 (a = expression_rule(p)) // expression
9528 )
9529 {
9530 D(fprintf(stderr, "%*c+ default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'=' expression"));
9531 _res = a;
9532 if (_res == NULL && PyErr_Occurred()) {
9533 p->error_indicator = 1;
9534 D(p->level--);
9535 return NULL;
9536 }
9537 goto done;
9538 }
9539 p->mark = _mark;
9540 D(fprintf(stderr, "%*c%s default[%d-%d]: %s failed!\n", p->level, ' ',
9541 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'=' expression"));
9542 }
9543 _res = NULL;
9544 done:
9545 D(p->level--);
9546 return _res;
9547}
9548
9549// decorators: (('@' named_expression NEWLINE))+
Pablo Galindoa5634c42020-09-16 19:42:00 +01009550static asdl_expr_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009551decorators_rule(Parser *p)
9552{
9553 D(p->level++);
9554 if (p->error_indicator) {
9555 D(p->level--);
9556 return NULL;
9557 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01009558 asdl_expr_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009559 int _mark = p->mark;
9560 { // (('@' named_expression NEWLINE))+
9561 if (p->error_indicator) {
9562 D(p->level--);
9563 return NULL;
9564 }
9565 D(fprintf(stderr, "%*c> decorators[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(('@' named_expression NEWLINE))+"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01009566 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009567 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08009568 (a = (asdl_expr_seq*)_loop1_84_rule(p)) // (('@' named_expression NEWLINE))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009569 )
9570 {
9571 D(fprintf(stderr, "%*c+ decorators[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(('@' named_expression NEWLINE))+"));
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 decorators[%d-%d]: %s failed!\n", p->level, ' ',
9582 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(('@' named_expression NEWLINE))+"));
9583 }
9584 _res = NULL;
9585 done:
9586 D(p->level--);
9587 return _res;
9588}
9589
9590// class_def: decorators class_def_raw | class_def_raw
9591static stmt_ty
9592class_def_rule(Parser *p)
9593{
9594 D(p->level++);
9595 if (p->error_indicator) {
9596 D(p->level--);
9597 return NULL;
9598 }
9599 stmt_ty _res = NULL;
9600 int _mark = p->mark;
9601 { // decorators class_def_raw
9602 if (p->error_indicator) {
9603 D(p->level--);
9604 return NULL;
9605 }
9606 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 +01009607 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009608 stmt_ty b;
9609 if (
9610 (a = decorators_rule(p)) // decorators
9611 &&
9612 (b = class_def_raw_rule(p)) // class_def_raw
9613 )
9614 {
9615 D(fprintf(stderr, "%*c+ class_def[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "decorators class_def_raw"));
9616 _res = _PyPegen_class_def_decorators ( p , a , b );
9617 if (_res == NULL && PyErr_Occurred()) {
9618 p->error_indicator = 1;
9619 D(p->level--);
9620 return NULL;
9621 }
9622 goto done;
9623 }
9624 p->mark = _mark;
9625 D(fprintf(stderr, "%*c%s class_def[%d-%d]: %s failed!\n", p->level, ' ',
9626 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "decorators class_def_raw"));
9627 }
9628 { // class_def_raw
9629 if (p->error_indicator) {
9630 D(p->level--);
9631 return NULL;
9632 }
9633 D(fprintf(stderr, "%*c> class_def[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "class_def_raw"));
9634 stmt_ty class_def_raw_var;
9635 if (
9636 (class_def_raw_var = class_def_raw_rule(p)) // class_def_raw
9637 )
9638 {
9639 D(fprintf(stderr, "%*c+ class_def[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "class_def_raw"));
9640 _res = class_def_raw_var;
9641 goto done;
9642 }
9643 p->mark = _mark;
9644 D(fprintf(stderr, "%*c%s class_def[%d-%d]: %s failed!\n", p->level, ' ',
9645 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "class_def_raw"));
9646 }
9647 _res = NULL;
9648 done:
9649 D(p->level--);
9650 return _res;
9651}
9652
Pablo Galindo56c95df2021-04-21 15:28:21 +01009653// class_def_raw: invalid_class_def_raw | 'class' NAME ['(' arguments? ')'] &&':' block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009654static stmt_ty
9655class_def_raw_rule(Parser *p)
9656{
9657 D(p->level++);
9658 if (p->error_indicator) {
9659 D(p->level--);
9660 return NULL;
9661 }
9662 stmt_ty _res = NULL;
9663 int _mark = p->mark;
9664 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9665 p->error_indicator = 1;
9666 D(p->level--);
9667 return NULL;
9668 }
9669 int _start_lineno = p->tokens[_mark]->lineno;
9670 UNUSED(_start_lineno); // Only used by EXTRA macro
9671 int _start_col_offset = p->tokens[_mark]->col_offset;
9672 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo56c95df2021-04-21 15:28:21 +01009673 if (p->call_invalid_rules) { // invalid_class_def_raw
9674 if (p->error_indicator) {
9675 D(p->level--);
9676 return NULL;
9677 }
9678 D(fprintf(stderr, "%*c> class_def_raw[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_class_def_raw"));
9679 void *invalid_class_def_raw_var;
9680 if (
9681 (invalid_class_def_raw_var = invalid_class_def_raw_rule(p)) // invalid_class_def_raw
9682 )
9683 {
9684 D(fprintf(stderr, "%*c+ class_def_raw[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_class_def_raw"));
9685 _res = invalid_class_def_raw_var;
9686 goto done;
9687 }
9688 p->mark = _mark;
9689 D(fprintf(stderr, "%*c%s class_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
9690 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_class_def_raw"));
9691 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00009692 { // 'class' NAME ['(' arguments? ')'] &&':' block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009693 if (p->error_indicator) {
9694 D(p->level--);
9695 return NULL;
9696 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00009697 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 +01009698 Token * _keyword;
9699 Token * _literal;
9700 expr_ty a;
9701 void *b;
Pablo Galindoa5634c42020-09-16 19:42:00 +01009702 asdl_stmt_seq* c;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009703 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08009704 (_keyword = _PyPegen_expect_token(p, 527)) // token='class'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009705 &&
9706 (a = _PyPegen_name_token(p)) // NAME
9707 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08009708 (b = _tmp_85_rule(p), 1) // ['(' arguments? ')']
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009709 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00009710 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009711 &&
9712 (c = block_rule(p)) // block
9713 )
9714 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00009715 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 +01009716 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9717 if (_token == NULL) {
9718 D(p->level--);
9719 return NULL;
9720 }
9721 int _end_lineno = _token->end_lineno;
9722 UNUSED(_end_lineno); // Only used by EXTRA macro
9723 int _end_col_offset = _token->end_col_offset;
9724 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02009725 _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 +01009726 if (_res == NULL && PyErr_Occurred()) {
9727 p->error_indicator = 1;
9728 D(p->level--);
9729 return NULL;
9730 }
9731 goto done;
9732 }
9733 p->mark = _mark;
9734 D(fprintf(stderr, "%*c%s class_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00009735 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'class' NAME ['(' arguments? ')'] &&':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009736 }
9737 _res = NULL;
9738 done:
9739 D(p->level--);
9740 return _res;
9741}
9742
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00009743// block: NEWLINE INDENT statements DEDENT | simple_stmts | invalid_block
Pablo Galindoa5634c42020-09-16 19:42:00 +01009744static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009745block_rule(Parser *p)
9746{
9747 D(p->level++);
9748 if (p->error_indicator) {
9749 D(p->level--);
9750 return NULL;
9751 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01009752 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009753 if (_PyPegen_is_memoized(p, block_type, &_res)) {
9754 D(p->level--);
9755 return _res;
9756 }
9757 int _mark = p->mark;
9758 { // NEWLINE INDENT statements DEDENT
9759 if (p->error_indicator) {
9760 D(p->level--);
9761 return NULL;
9762 }
9763 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 +01009764 asdl_stmt_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009765 Token * dedent_var;
9766 Token * indent_var;
9767 Token * newline_var;
9768 if (
9769 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
9770 &&
9771 (indent_var = _PyPegen_expect_token(p, INDENT)) // token='INDENT'
9772 &&
9773 (a = statements_rule(p)) // statements
9774 &&
9775 (dedent_var = _PyPegen_expect_token(p, DEDENT)) // token='DEDENT'
9776 )
9777 {
9778 D(fprintf(stderr, "%*c+ block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE INDENT statements DEDENT"));
9779 _res = a;
9780 if (_res == NULL && PyErr_Occurred()) {
9781 p->error_indicator = 1;
9782 D(p->level--);
9783 return NULL;
9784 }
9785 goto done;
9786 }
9787 p->mark = _mark;
9788 D(fprintf(stderr, "%*c%s block[%d-%d]: %s failed!\n", p->level, ' ',
9789 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE INDENT statements DEDENT"));
9790 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00009791 { // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009792 if (p->error_indicator) {
9793 D(p->level--);
9794 return NULL;
9795 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00009796 D(fprintf(stderr, "%*c> block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
9797 asdl_stmt_seq* simple_stmts_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009798 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00009799 (simple_stmts_var = simple_stmts_rule(p)) // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009800 )
9801 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00009802 D(fprintf(stderr, "%*c+ block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
9803 _res = simple_stmts_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009804 goto done;
9805 }
9806 p->mark = _mark;
9807 D(fprintf(stderr, "%*c%s block[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00009808 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmts"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009809 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02009810 if (p->call_invalid_rules) { // invalid_block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009811 if (p->error_indicator) {
9812 D(p->level--);
9813 return NULL;
9814 }
9815 D(fprintf(stderr, "%*c> block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_block"));
9816 void *invalid_block_var;
9817 if (
9818 (invalid_block_var = invalid_block_rule(p)) // invalid_block
9819 )
9820 {
9821 D(fprintf(stderr, "%*c+ block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_block"));
9822 _res = invalid_block_var;
9823 goto done;
9824 }
9825 p->mark = _mark;
9826 D(fprintf(stderr, "%*c%s block[%d-%d]: %s failed!\n", p->level, ' ',
9827 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_block"));
9828 }
9829 _res = NULL;
9830 done:
9831 _PyPegen_insert_memo(p, _mark, block_type, _res);
9832 D(p->level--);
9833 return _res;
9834}
9835
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009836// star_expressions:
9837// | star_expression ((',' star_expression))+ ','?
9838// | star_expression ','
9839// | star_expression
9840static expr_ty
9841star_expressions_rule(Parser *p)
9842{
9843 D(p->level++);
9844 if (p->error_indicator) {
9845 D(p->level--);
9846 return NULL;
9847 }
9848 expr_ty _res = NULL;
9849 int _mark = p->mark;
9850 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9851 p->error_indicator = 1;
9852 D(p->level--);
9853 return NULL;
9854 }
9855 int _start_lineno = p->tokens[_mark]->lineno;
9856 UNUSED(_start_lineno); // Only used by EXTRA macro
9857 int _start_col_offset = p->tokens[_mark]->col_offset;
9858 UNUSED(_start_col_offset); // Only used by EXTRA macro
9859 { // star_expression ((',' star_expression))+ ','?
9860 if (p->error_indicator) {
9861 D(p->level--);
9862 return NULL;
9863 }
9864 D(fprintf(stderr, "%*c> star_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expression ((',' star_expression))+ ','?"));
9865 void *_opt_var;
9866 UNUSED(_opt_var); // Silence compiler warnings
9867 expr_ty a;
9868 asdl_seq * b;
9869 if (
9870 (a = star_expression_rule(p)) // star_expression
9871 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08009872 (b = _loop1_86_rule(p)) // ((',' star_expression))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009873 &&
9874 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
9875 )
9876 {
9877 D(fprintf(stderr, "%*c+ star_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expression ((',' star_expression))+ ','?"));
9878 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9879 if (_token == NULL) {
9880 D(p->level--);
9881 return NULL;
9882 }
9883 int _end_lineno = _token->end_lineno;
9884 UNUSED(_end_lineno); // Only used by EXTRA macro
9885 int _end_col_offset = _token->end_col_offset;
9886 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02009887 _res = _PyAST_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , a , b ) ) , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009888 if (_res == NULL && PyErr_Occurred()) {
9889 p->error_indicator = 1;
9890 D(p->level--);
9891 return NULL;
9892 }
9893 goto done;
9894 }
9895 p->mark = _mark;
9896 D(fprintf(stderr, "%*c%s star_expressions[%d-%d]: %s failed!\n", p->level, ' ',
9897 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expression ((',' star_expression))+ ','?"));
9898 }
9899 { // star_expression ','
9900 if (p->error_indicator) {
9901 D(p->level--);
9902 return NULL;
9903 }
9904 D(fprintf(stderr, "%*c> star_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expression ','"));
9905 Token * _literal;
9906 expr_ty a;
9907 if (
9908 (a = star_expression_rule(p)) // star_expression
9909 &&
9910 (_literal = _PyPegen_expect_token(p, 12)) // token=','
9911 )
9912 {
9913 D(fprintf(stderr, "%*c+ star_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expression ','"));
9914 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9915 if (_token == NULL) {
9916 D(p->level--);
9917 return NULL;
9918 }
9919 int _end_lineno = _token->end_lineno;
9920 UNUSED(_end_lineno); // Only used by EXTRA macro
9921 int _end_col_offset = _token->end_col_offset;
9922 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02009923 _res = _PyAST_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_singleton_seq ( p , a ) ) , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009924 if (_res == NULL && PyErr_Occurred()) {
9925 p->error_indicator = 1;
9926 D(p->level--);
9927 return NULL;
9928 }
9929 goto done;
9930 }
9931 p->mark = _mark;
9932 D(fprintf(stderr, "%*c%s star_expressions[%d-%d]: %s failed!\n", p->level, ' ',
9933 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expression ','"));
9934 }
9935 { // star_expression
9936 if (p->error_indicator) {
9937 D(p->level--);
9938 return NULL;
9939 }
9940 D(fprintf(stderr, "%*c> star_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expression"));
9941 expr_ty star_expression_var;
9942 if (
9943 (star_expression_var = star_expression_rule(p)) // star_expression
9944 )
9945 {
9946 D(fprintf(stderr, "%*c+ star_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expression"));
9947 _res = star_expression_var;
9948 goto done;
9949 }
9950 p->mark = _mark;
9951 D(fprintf(stderr, "%*c%s star_expressions[%d-%d]: %s failed!\n", p->level, ' ',
9952 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expression"));
9953 }
9954 _res = NULL;
9955 done:
9956 D(p->level--);
9957 return _res;
9958}
9959
9960// star_expression: '*' bitwise_or | expression
9961static expr_ty
9962star_expression_rule(Parser *p)
9963{
9964 D(p->level++);
9965 if (p->error_indicator) {
9966 D(p->level--);
9967 return NULL;
9968 }
9969 expr_ty _res = NULL;
9970 if (_PyPegen_is_memoized(p, star_expression_type, &_res)) {
9971 D(p->level--);
9972 return _res;
9973 }
9974 int _mark = p->mark;
9975 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9976 p->error_indicator = 1;
9977 D(p->level--);
9978 return NULL;
9979 }
9980 int _start_lineno = p->tokens[_mark]->lineno;
9981 UNUSED(_start_lineno); // Only used by EXTRA macro
9982 int _start_col_offset = p->tokens[_mark]->col_offset;
9983 UNUSED(_start_col_offset); // Only used by EXTRA macro
9984 { // '*' bitwise_or
9985 if (p->error_indicator) {
9986 D(p->level--);
9987 return NULL;
9988 }
9989 D(fprintf(stderr, "%*c> star_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' bitwise_or"));
9990 Token * _literal;
9991 expr_ty a;
9992 if (
9993 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
9994 &&
9995 (a = bitwise_or_rule(p)) // bitwise_or
9996 )
9997 {
9998 D(fprintf(stderr, "%*c+ star_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' bitwise_or"));
9999 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10000 if (_token == NULL) {
10001 D(p->level--);
10002 return NULL;
10003 }
10004 int _end_lineno = _token->end_lineno;
10005 UNUSED(_end_lineno); // Only used by EXTRA macro
10006 int _end_col_offset = _token->end_col_offset;
10007 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020010008 _res = _PyAST_Starred ( a , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010009 if (_res == NULL && PyErr_Occurred()) {
10010 p->error_indicator = 1;
10011 D(p->level--);
10012 return NULL;
10013 }
10014 goto done;
10015 }
10016 p->mark = _mark;
10017 D(fprintf(stderr, "%*c%s star_expression[%d-%d]: %s failed!\n", p->level, ' ',
10018 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' bitwise_or"));
10019 }
10020 { // expression
10021 if (p->error_indicator) {
10022 D(p->level--);
10023 return NULL;
10024 }
10025 D(fprintf(stderr, "%*c> star_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression"));
10026 expr_ty expression_var;
10027 if (
10028 (expression_var = expression_rule(p)) // expression
10029 )
10030 {
10031 D(fprintf(stderr, "%*c+ star_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression"));
10032 _res = expression_var;
10033 goto done;
10034 }
10035 p->mark = _mark;
10036 D(fprintf(stderr, "%*c%s star_expression[%d-%d]: %s failed!\n", p->level, ' ',
10037 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression"));
10038 }
10039 _res = NULL;
10040 done:
10041 _PyPegen_insert_memo(p, _mark, star_expression_type, _res);
10042 D(p->level--);
10043 return _res;
10044}
10045
10046// star_named_expressions: ','.star_named_expression+ ','?
Pablo Galindoa5634c42020-09-16 19:42:00 +010010047static asdl_expr_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010048star_named_expressions_rule(Parser *p)
10049{
10050 D(p->level++);
10051 if (p->error_indicator) {
10052 D(p->level--);
10053 return NULL;
10054 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010010055 asdl_expr_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010056 int _mark = p->mark;
10057 { // ','.star_named_expression+ ','?
10058 if (p->error_indicator) {
10059 D(p->level--);
10060 return NULL;
10061 }
10062 D(fprintf(stderr, "%*c> star_named_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.star_named_expression+ ','?"));
10063 void *_opt_var;
10064 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +010010065 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010066 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080010067 (a = (asdl_expr_seq*)_gather_87_rule(p)) // ','.star_named_expression+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010068 &&
10069 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
10070 )
10071 {
10072 D(fprintf(stderr, "%*c+ star_named_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.star_named_expression+ ','?"));
10073 _res = a;
10074 if (_res == NULL && PyErr_Occurred()) {
10075 p->error_indicator = 1;
10076 D(p->level--);
10077 return NULL;
10078 }
10079 goto done;
10080 }
10081 p->mark = _mark;
10082 D(fprintf(stderr, "%*c%s star_named_expressions[%d-%d]: %s failed!\n", p->level, ' ',
10083 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.star_named_expression+ ','?"));
10084 }
10085 _res = NULL;
10086 done:
10087 D(p->level--);
10088 return _res;
10089}
10090
10091// star_named_expression: '*' bitwise_or | named_expression
10092static expr_ty
10093star_named_expression_rule(Parser *p)
10094{
10095 D(p->level++);
10096 if (p->error_indicator) {
10097 D(p->level--);
10098 return NULL;
10099 }
10100 expr_ty _res = NULL;
10101 int _mark = p->mark;
10102 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10103 p->error_indicator = 1;
10104 D(p->level--);
10105 return NULL;
10106 }
10107 int _start_lineno = p->tokens[_mark]->lineno;
10108 UNUSED(_start_lineno); // Only used by EXTRA macro
10109 int _start_col_offset = p->tokens[_mark]->col_offset;
10110 UNUSED(_start_col_offset); // Only used by EXTRA macro
10111 { // '*' bitwise_or
10112 if (p->error_indicator) {
10113 D(p->level--);
10114 return NULL;
10115 }
10116 D(fprintf(stderr, "%*c> star_named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' bitwise_or"));
10117 Token * _literal;
10118 expr_ty a;
10119 if (
10120 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
10121 &&
10122 (a = bitwise_or_rule(p)) // bitwise_or
10123 )
10124 {
10125 D(fprintf(stderr, "%*c+ star_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' bitwise_or"));
10126 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10127 if (_token == NULL) {
10128 D(p->level--);
10129 return NULL;
10130 }
10131 int _end_lineno = _token->end_lineno;
10132 UNUSED(_end_lineno); // Only used by EXTRA macro
10133 int _end_col_offset = _token->end_col_offset;
10134 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020010135 _res = _PyAST_Starred ( a , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010136 if (_res == NULL && PyErr_Occurred()) {
10137 p->error_indicator = 1;
10138 D(p->level--);
10139 return NULL;
10140 }
10141 goto done;
10142 }
10143 p->mark = _mark;
10144 D(fprintf(stderr, "%*c%s star_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
10145 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' bitwise_or"));
10146 }
10147 { // named_expression
10148 if (p->error_indicator) {
10149 D(p->level--);
10150 return NULL;
10151 }
10152 D(fprintf(stderr, "%*c> star_named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression"));
10153 expr_ty named_expression_var;
10154 if (
10155 (named_expression_var = named_expression_rule(p)) // named_expression
10156 )
10157 {
10158 D(fprintf(stderr, "%*c+ star_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "named_expression"));
10159 _res = named_expression_var;
10160 goto done;
10161 }
10162 p->mark = _mark;
10163 D(fprintf(stderr, "%*c%s star_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
10164 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression"));
10165 }
10166 _res = NULL;
10167 done:
10168 D(p->level--);
10169 return _res;
10170}
10171
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070010172// assigment_expression: NAME ':=' ~ expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010173static expr_ty
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070010174assigment_expression_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010175{
10176 D(p->level++);
10177 if (p->error_indicator) {
10178 D(p->level--);
10179 return NULL;
10180 }
10181 expr_ty _res = NULL;
10182 int _mark = p->mark;
10183 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10184 p->error_indicator = 1;
10185 D(p->level--);
10186 return NULL;
10187 }
10188 int _start_lineno = p->tokens[_mark]->lineno;
10189 UNUSED(_start_lineno); // Only used by EXTRA macro
10190 int _start_col_offset = p->tokens[_mark]->col_offset;
10191 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030010192 { // NAME ':=' ~ expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010193 if (p->error_indicator) {
10194 D(p->level--);
10195 return NULL;
10196 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070010197 D(fprintf(stderr, "%*c> assigment_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME ':=' ~ expression"));
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030010198 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010199 Token * _literal;
10200 expr_ty a;
10201 expr_ty b;
10202 if (
10203 (a = _PyPegen_name_token(p)) // NAME
10204 &&
10205 (_literal = _PyPegen_expect_token(p, 53)) // token=':='
10206 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030010207 (_cut_var = 1)
10208 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010209 (b = expression_rule(p)) // expression
10210 )
10211 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070010212 D(fprintf(stderr, "%*c+ assigment_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME ':=' ~ expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010213 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10214 if (_token == NULL) {
10215 D(p->level--);
10216 return NULL;
10217 }
10218 int _end_lineno = _token->end_lineno;
10219 UNUSED(_end_lineno); // Only used by EXTRA macro
10220 int _end_col_offset = _token->end_col_offset;
10221 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020010222 _res = _PyAST_NamedExpr ( CHECK ( expr_ty , _PyPegen_set_expr_context ( p , a , Store ) ) , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010223 if (_res == NULL && PyErr_Occurred()) {
10224 p->error_indicator = 1;
10225 D(p->level--);
10226 return NULL;
10227 }
10228 goto done;
10229 }
10230 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070010231 D(fprintf(stderr, "%*c%s assigment_expression[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030010232 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME ':=' ~ expression"));
10233 if (_cut_var) {
10234 D(p->level--);
10235 return NULL;
10236 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010237 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070010238 _res = NULL;
10239 done:
10240 D(p->level--);
10241 return _res;
10242}
10243
10244// named_expression: assigment_expression | invalid_named_expression | expression !':='
10245static expr_ty
10246named_expression_rule(Parser *p)
10247{
10248 D(p->level++);
10249 if (p->error_indicator) {
10250 D(p->level--);
10251 return NULL;
10252 }
10253 expr_ty _res = NULL;
10254 int _mark = p->mark;
10255 { // assigment_expression
10256 if (p->error_indicator) {
10257 D(p->level--);
10258 return NULL;
10259 }
10260 D(fprintf(stderr, "%*c> named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "assigment_expression"));
10261 expr_ty assigment_expression_var;
10262 if (
10263 (assigment_expression_var = assigment_expression_rule(p)) // assigment_expression
10264 )
10265 {
10266 D(fprintf(stderr, "%*c+ named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "assigment_expression"));
10267 _res = assigment_expression_var;
10268 goto done;
10269 }
10270 p->mark = _mark;
10271 D(fprintf(stderr, "%*c%s named_expression[%d-%d]: %s failed!\n", p->level, ' ',
10272 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "assigment_expression"));
10273 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010010274 if (p->call_invalid_rules) { // invalid_named_expression
10275 if (p->error_indicator) {
10276 D(p->level--);
10277 return NULL;
10278 }
10279 D(fprintf(stderr, "%*c> named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_named_expression"));
10280 void *invalid_named_expression_var;
10281 if (
10282 (invalid_named_expression_var = invalid_named_expression_rule(p)) // invalid_named_expression
10283 )
10284 {
10285 D(fprintf(stderr, "%*c+ named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_named_expression"));
10286 _res = invalid_named_expression_var;
10287 goto done;
10288 }
10289 p->mark = _mark;
10290 D(fprintf(stderr, "%*c%s named_expression[%d-%d]: %s failed!\n", p->level, ' ',
10291 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_named_expression"));
10292 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010293 { // expression !':='
10294 if (p->error_indicator) {
10295 D(p->level--);
10296 return NULL;
10297 }
10298 D(fprintf(stderr, "%*c> named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression !':='"));
10299 expr_ty expression_var;
10300 if (
10301 (expression_var = expression_rule(p)) // expression
10302 &&
10303 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 53) // token=':='
10304 )
10305 {
10306 D(fprintf(stderr, "%*c+ named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression !':='"));
10307 _res = expression_var;
10308 goto done;
10309 }
10310 p->mark = _mark;
10311 D(fprintf(stderr, "%*c%s named_expression[%d-%d]: %s failed!\n", p->level, ' ',
10312 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression !':='"));
10313 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010314 _res = NULL;
10315 done:
10316 D(p->level--);
10317 return _res;
10318}
10319
10320// annotated_rhs: yield_expr | star_expressions
10321static expr_ty
10322annotated_rhs_rule(Parser *p)
10323{
10324 D(p->level++);
10325 if (p->error_indicator) {
10326 D(p->level--);
10327 return NULL;
10328 }
10329 expr_ty _res = NULL;
10330 int _mark = p->mark;
10331 { // yield_expr
10332 if (p->error_indicator) {
10333 D(p->level--);
10334 return NULL;
10335 }
10336 D(fprintf(stderr, "%*c> annotated_rhs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
10337 expr_ty yield_expr_var;
10338 if (
10339 (yield_expr_var = yield_expr_rule(p)) // yield_expr
10340 )
10341 {
10342 D(fprintf(stderr, "%*c+ annotated_rhs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
10343 _res = yield_expr_var;
10344 goto done;
10345 }
10346 p->mark = _mark;
10347 D(fprintf(stderr, "%*c%s annotated_rhs[%d-%d]: %s failed!\n", p->level, ' ',
10348 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
10349 }
10350 { // star_expressions
10351 if (p->error_indicator) {
10352 D(p->level--);
10353 return NULL;
10354 }
10355 D(fprintf(stderr, "%*c> annotated_rhs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
10356 expr_ty star_expressions_var;
10357 if (
10358 (star_expressions_var = star_expressions_rule(p)) // star_expressions
10359 )
10360 {
10361 D(fprintf(stderr, "%*c+ annotated_rhs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
10362 _res = star_expressions_var;
10363 goto done;
10364 }
10365 p->mark = _mark;
10366 D(fprintf(stderr, "%*c%s annotated_rhs[%d-%d]: %s failed!\n", p->level, ' ',
10367 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
10368 }
10369 _res = NULL;
10370 done:
10371 D(p->level--);
10372 return _res;
10373}
10374
10375// expressions: expression ((',' expression))+ ','? | expression ',' | expression
10376static expr_ty
10377expressions_rule(Parser *p)
10378{
10379 D(p->level++);
10380 if (p->error_indicator) {
10381 D(p->level--);
10382 return NULL;
10383 }
10384 expr_ty _res = NULL;
10385 int _mark = p->mark;
10386 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10387 p->error_indicator = 1;
10388 D(p->level--);
10389 return NULL;
10390 }
10391 int _start_lineno = p->tokens[_mark]->lineno;
10392 UNUSED(_start_lineno); // Only used by EXTRA macro
10393 int _start_col_offset = p->tokens[_mark]->col_offset;
10394 UNUSED(_start_col_offset); // Only used by EXTRA macro
10395 { // expression ((',' expression))+ ','?
10396 if (p->error_indicator) {
10397 D(p->level--);
10398 return NULL;
10399 }
10400 D(fprintf(stderr, "%*c> expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ((',' expression))+ ','?"));
10401 void *_opt_var;
10402 UNUSED(_opt_var); // Silence compiler warnings
10403 expr_ty a;
10404 asdl_seq * b;
10405 if (
10406 (a = expression_rule(p)) // expression
10407 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080010408 (b = _loop1_89_rule(p)) // ((',' expression))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010409 &&
10410 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
10411 )
10412 {
10413 D(fprintf(stderr, "%*c+ expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ((',' expression))+ ','?"));
10414 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10415 if (_token == NULL) {
10416 D(p->level--);
10417 return NULL;
10418 }
10419 int _end_lineno = _token->end_lineno;
10420 UNUSED(_end_lineno); // Only used by EXTRA macro
10421 int _end_col_offset = _token->end_col_offset;
10422 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020010423 _res = _PyAST_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , a , b ) ) , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010424 if (_res == NULL && PyErr_Occurred()) {
10425 p->error_indicator = 1;
10426 D(p->level--);
10427 return NULL;
10428 }
10429 goto done;
10430 }
10431 p->mark = _mark;
10432 D(fprintf(stderr, "%*c%s expressions[%d-%d]: %s failed!\n", p->level, ' ',
10433 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ((',' expression))+ ','?"));
10434 }
10435 { // expression ','
10436 if (p->error_indicator) {
10437 D(p->level--);
10438 return NULL;
10439 }
10440 D(fprintf(stderr, "%*c> expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ','"));
10441 Token * _literal;
10442 expr_ty a;
10443 if (
10444 (a = expression_rule(p)) // expression
10445 &&
10446 (_literal = _PyPegen_expect_token(p, 12)) // token=','
10447 )
10448 {
10449 D(fprintf(stderr, "%*c+ expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ','"));
10450 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10451 if (_token == NULL) {
10452 D(p->level--);
10453 return NULL;
10454 }
10455 int _end_lineno = _token->end_lineno;
10456 UNUSED(_end_lineno); // Only used by EXTRA macro
10457 int _end_col_offset = _token->end_col_offset;
10458 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020010459 _res = _PyAST_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_singleton_seq ( p , a ) ) , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010460 if (_res == NULL && PyErr_Occurred()) {
10461 p->error_indicator = 1;
10462 D(p->level--);
10463 return NULL;
10464 }
10465 goto done;
10466 }
10467 p->mark = _mark;
10468 D(fprintf(stderr, "%*c%s expressions[%d-%d]: %s failed!\n", p->level, ' ',
10469 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ','"));
10470 }
10471 { // expression
10472 if (p->error_indicator) {
10473 D(p->level--);
10474 return NULL;
10475 }
10476 D(fprintf(stderr, "%*c> expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression"));
10477 expr_ty expression_var;
10478 if (
10479 (expression_var = expression_rule(p)) // expression
10480 )
10481 {
10482 D(fprintf(stderr, "%*c+ expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression"));
10483 _res = expression_var;
10484 goto done;
10485 }
10486 p->mark = _mark;
10487 D(fprintf(stderr, "%*c%s expressions[%d-%d]: %s failed!\n", p->level, ' ',
10488 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression"));
10489 }
10490 _res = NULL;
10491 done:
10492 D(p->level--);
10493 return _res;
10494}
10495
Pablo Galindob2802482021-04-15 21:38:45 +010010496// expression:
10497// | invalid_expression
10498// | disjunction 'if' disjunction 'else' expression
10499// | disjunction
10500// | lambdef
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010501static expr_ty
10502expression_rule(Parser *p)
10503{
10504 D(p->level++);
10505 if (p->error_indicator) {
10506 D(p->level--);
10507 return NULL;
10508 }
10509 expr_ty _res = NULL;
10510 if (_PyPegen_is_memoized(p, expression_type, &_res)) {
10511 D(p->level--);
10512 return _res;
10513 }
10514 int _mark = p->mark;
10515 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10516 p->error_indicator = 1;
10517 D(p->level--);
10518 return NULL;
10519 }
10520 int _start_lineno = p->tokens[_mark]->lineno;
10521 UNUSED(_start_lineno); // Only used by EXTRA macro
10522 int _start_col_offset = p->tokens[_mark]->col_offset;
10523 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindob2802482021-04-15 21:38:45 +010010524 if (p->call_invalid_rules) { // invalid_expression
10525 if (p->error_indicator) {
10526 D(p->level--);
10527 return NULL;
10528 }
10529 D(fprintf(stderr, "%*c> expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_expression"));
10530 void *invalid_expression_var;
10531 if (
10532 (invalid_expression_var = invalid_expression_rule(p)) // invalid_expression
10533 )
10534 {
10535 D(fprintf(stderr, "%*c+ expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_expression"));
10536 _res = invalid_expression_var;
10537 goto done;
10538 }
10539 p->mark = _mark;
10540 D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ',
10541 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_expression"));
10542 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010543 { // disjunction 'if' disjunction 'else' expression
10544 if (p->error_indicator) {
10545 D(p->level--);
10546 return NULL;
10547 }
10548 D(fprintf(stderr, "%*c> expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "disjunction 'if' disjunction 'else' expression"));
10549 Token * _keyword;
10550 Token * _keyword_1;
10551 expr_ty a;
10552 expr_ty b;
10553 expr_ty c;
10554 if (
10555 (a = disjunction_rule(p)) // disjunction
10556 &&
10557 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
10558 &&
10559 (b = disjunction_rule(p)) // disjunction
10560 &&
10561 (_keyword_1 = _PyPegen_expect_token(p, 516)) // token='else'
10562 &&
10563 (c = expression_rule(p)) // expression
10564 )
10565 {
10566 D(fprintf(stderr, "%*c+ expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "disjunction 'if' disjunction 'else' expression"));
10567 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10568 if (_token == NULL) {
10569 D(p->level--);
10570 return NULL;
10571 }
10572 int _end_lineno = _token->end_lineno;
10573 UNUSED(_end_lineno); // Only used by EXTRA macro
10574 int _end_col_offset = _token->end_col_offset;
10575 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020010576 _res = _PyAST_IfExp ( b , a , c , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010577 if (_res == NULL && PyErr_Occurred()) {
10578 p->error_indicator = 1;
10579 D(p->level--);
10580 return NULL;
10581 }
10582 goto done;
10583 }
10584 p->mark = _mark;
10585 D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ',
10586 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "disjunction 'if' disjunction 'else' expression"));
10587 }
10588 { // disjunction
10589 if (p->error_indicator) {
10590 D(p->level--);
10591 return NULL;
10592 }
10593 D(fprintf(stderr, "%*c> expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "disjunction"));
10594 expr_ty disjunction_var;
10595 if (
10596 (disjunction_var = disjunction_rule(p)) // disjunction
10597 )
10598 {
10599 D(fprintf(stderr, "%*c+ expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "disjunction"));
10600 _res = disjunction_var;
10601 goto done;
10602 }
10603 p->mark = _mark;
10604 D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ',
10605 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "disjunction"));
10606 }
10607 { // lambdef
10608 if (p->error_indicator) {
10609 D(p->level--);
10610 return NULL;
10611 }
10612 D(fprintf(stderr, "%*c> expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambdef"));
10613 expr_ty lambdef_var;
10614 if (
10615 (lambdef_var = lambdef_rule(p)) // lambdef
10616 )
10617 {
10618 D(fprintf(stderr, "%*c+ expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambdef"));
10619 _res = lambdef_var;
10620 goto done;
10621 }
10622 p->mark = _mark;
10623 D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ',
10624 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambdef"));
10625 }
10626 _res = NULL;
10627 done:
10628 _PyPegen_insert_memo(p, _mark, expression_type, _res);
10629 D(p->level--);
10630 return _res;
10631}
10632
10633// lambdef: 'lambda' lambda_params? ':' expression
10634static expr_ty
10635lambdef_rule(Parser *p)
10636{
10637 D(p->level++);
10638 if (p->error_indicator) {
10639 D(p->level--);
10640 return NULL;
10641 }
10642 expr_ty _res = NULL;
10643 int _mark = p->mark;
10644 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10645 p->error_indicator = 1;
10646 D(p->level--);
10647 return NULL;
10648 }
10649 int _start_lineno = p->tokens[_mark]->lineno;
10650 UNUSED(_start_lineno); // Only used by EXTRA macro
10651 int _start_col_offset = p->tokens[_mark]->col_offset;
10652 UNUSED(_start_col_offset); // Only used by EXTRA macro
10653 { // 'lambda' lambda_params? ':' expression
10654 if (p->error_indicator) {
10655 D(p->level--);
10656 return NULL;
10657 }
10658 D(fprintf(stderr, "%*c> lambdef[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'lambda' lambda_params? ':' expression"));
10659 Token * _keyword;
10660 Token * _literal;
10661 void *a;
10662 expr_ty b;
10663 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080010664 (_keyword = _PyPegen_expect_token(p, 528)) // token='lambda'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010665 &&
10666 (a = lambda_params_rule(p), 1) // lambda_params?
10667 &&
10668 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
10669 &&
10670 (b = expression_rule(p)) // expression
10671 )
10672 {
10673 D(fprintf(stderr, "%*c+ lambdef[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'lambda' lambda_params? ':' expression"));
10674 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10675 if (_token == NULL) {
10676 D(p->level--);
10677 return NULL;
10678 }
10679 int _end_lineno = _token->end_lineno;
10680 UNUSED(_end_lineno); // Only used by EXTRA macro
10681 int _end_col_offset = _token->end_col_offset;
10682 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020010683 _res = _PyAST_Lambda ( ( a ) ? a : CHECK ( arguments_ty , _PyPegen_empty_arguments ( p ) ) , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010684 if (_res == NULL && PyErr_Occurred()) {
10685 p->error_indicator = 1;
10686 D(p->level--);
10687 return NULL;
10688 }
10689 goto done;
10690 }
10691 p->mark = _mark;
10692 D(fprintf(stderr, "%*c%s lambdef[%d-%d]: %s failed!\n", p->level, ' ',
10693 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'lambda' lambda_params? ':' expression"));
10694 }
10695 _res = NULL;
10696 done:
10697 D(p->level--);
10698 return _res;
10699}
10700
10701// lambda_params: invalid_lambda_parameters | lambda_parameters
10702static arguments_ty
10703lambda_params_rule(Parser *p)
10704{
10705 D(p->level++);
10706 if (p->error_indicator) {
10707 D(p->level--);
10708 return NULL;
10709 }
10710 arguments_ty _res = NULL;
10711 int _mark = p->mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020010712 if (p->call_invalid_rules) { // invalid_lambda_parameters
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010713 if (p->error_indicator) {
10714 D(p->level--);
10715 return NULL;
10716 }
10717 D(fprintf(stderr, "%*c> lambda_params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_lambda_parameters"));
10718 void *invalid_lambda_parameters_var;
10719 if (
10720 (invalid_lambda_parameters_var = invalid_lambda_parameters_rule(p)) // invalid_lambda_parameters
10721 )
10722 {
10723 D(fprintf(stderr, "%*c+ lambda_params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_lambda_parameters"));
10724 _res = invalid_lambda_parameters_var;
10725 goto done;
10726 }
10727 p->mark = _mark;
10728 D(fprintf(stderr, "%*c%s lambda_params[%d-%d]: %s failed!\n", p->level, ' ',
10729 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_lambda_parameters"));
10730 }
10731 { // lambda_parameters
10732 if (p->error_indicator) {
10733 D(p->level--);
10734 return NULL;
10735 }
10736 D(fprintf(stderr, "%*c> lambda_params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_parameters"));
10737 arguments_ty lambda_parameters_var;
10738 if (
10739 (lambda_parameters_var = lambda_parameters_rule(p)) // lambda_parameters
10740 )
10741 {
10742 D(fprintf(stderr, "%*c+ lambda_params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_parameters"));
10743 _res = lambda_parameters_var;
10744 goto done;
10745 }
10746 p->mark = _mark;
10747 D(fprintf(stderr, "%*c%s lambda_params[%d-%d]: %s failed!\n", p->level, ' ',
10748 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_parameters"));
10749 }
10750 _res = NULL;
10751 done:
10752 D(p->level--);
10753 return _res;
10754}
10755
10756// lambda_parameters:
10757// | lambda_slash_no_default lambda_param_no_default* lambda_param_with_default* lambda_star_etc?
10758// | lambda_slash_with_default lambda_param_with_default* lambda_star_etc?
10759// | lambda_param_no_default+ lambda_param_with_default* lambda_star_etc?
10760// | lambda_param_with_default+ lambda_star_etc?
10761// | lambda_star_etc
10762static arguments_ty
10763lambda_parameters_rule(Parser *p)
10764{
10765 D(p->level++);
10766 if (p->error_indicator) {
10767 D(p->level--);
10768 return NULL;
10769 }
10770 arguments_ty _res = NULL;
10771 int _mark = p->mark;
10772 { // lambda_slash_no_default lambda_param_no_default* lambda_param_with_default* lambda_star_etc?
10773 if (p->error_indicator) {
10774 D(p->level--);
10775 return NULL;
10776 }
10777 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 +010010778 asdl_arg_seq* a;
10779 asdl_arg_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010780 asdl_seq * c;
10781 void *d;
10782 if (
10783 (a = lambda_slash_no_default_rule(p)) // lambda_slash_no_default
10784 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080010785 (b = (asdl_arg_seq*)_loop0_90_rule(p)) // lambda_param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010786 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080010787 (c = _loop0_91_rule(p)) // lambda_param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010788 &&
10789 (d = lambda_star_etc_rule(p), 1) // lambda_star_etc?
10790 )
10791 {
10792 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?"));
10793 _res = _PyPegen_make_arguments ( p , a , NULL , b , c , d );
10794 if (_res == NULL && PyErr_Occurred()) {
10795 p->error_indicator = 1;
10796 D(p->level--);
10797 return NULL;
10798 }
10799 goto done;
10800 }
10801 p->mark = _mark;
10802 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
10803 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_slash_no_default lambda_param_no_default* lambda_param_with_default* lambda_star_etc?"));
10804 }
10805 { // lambda_slash_with_default lambda_param_with_default* lambda_star_etc?
10806 if (p->error_indicator) {
10807 D(p->level--);
10808 return NULL;
10809 }
10810 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?"));
10811 SlashWithDefault* a;
10812 asdl_seq * b;
10813 void *c;
10814 if (
10815 (a = lambda_slash_with_default_rule(p)) // lambda_slash_with_default
10816 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080010817 (b = _loop0_92_rule(p)) // lambda_param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010818 &&
10819 (c = lambda_star_etc_rule(p), 1) // lambda_star_etc?
10820 )
10821 {
10822 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?"));
10823 _res = _PyPegen_make_arguments ( p , NULL , a , NULL , b , c );
10824 if (_res == NULL && PyErr_Occurred()) {
10825 p->error_indicator = 1;
10826 D(p->level--);
10827 return NULL;
10828 }
10829 goto done;
10830 }
10831 p->mark = _mark;
10832 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
10833 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_slash_with_default lambda_param_with_default* lambda_star_etc?"));
10834 }
10835 { // lambda_param_no_default+ lambda_param_with_default* lambda_star_etc?
10836 if (p->error_indicator) {
10837 D(p->level--);
10838 return NULL;
10839 }
10840 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 +010010841 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010842 asdl_seq * b;
10843 void *c;
10844 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080010845 (a = (asdl_arg_seq*)_loop1_93_rule(p)) // lambda_param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010846 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080010847 (b = _loop0_94_rule(p)) // lambda_param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010848 &&
10849 (c = lambda_star_etc_rule(p), 1) // lambda_star_etc?
10850 )
10851 {
10852 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?"));
10853 _res = _PyPegen_make_arguments ( p , NULL , NULL , a , b , c );
10854 if (_res == NULL && PyErr_Occurred()) {
10855 p->error_indicator = 1;
10856 D(p->level--);
10857 return NULL;
10858 }
10859 goto done;
10860 }
10861 p->mark = _mark;
10862 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
10863 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default+ lambda_param_with_default* lambda_star_etc?"));
10864 }
10865 { // lambda_param_with_default+ lambda_star_etc?
10866 if (p->error_indicator) {
10867 D(p->level--);
10868 return NULL;
10869 }
10870 D(fprintf(stderr, "%*c> lambda_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default+ lambda_star_etc?"));
10871 asdl_seq * a;
10872 void *b;
10873 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080010874 (a = _loop1_95_rule(p)) // lambda_param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010875 &&
10876 (b = lambda_star_etc_rule(p), 1) // lambda_star_etc?
10877 )
10878 {
10879 D(fprintf(stderr, "%*c+ lambda_parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default+ lambda_star_etc?"));
10880 _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , a , b );
10881 if (_res == NULL && PyErr_Occurred()) {
10882 p->error_indicator = 1;
10883 D(p->level--);
10884 return NULL;
10885 }
10886 goto done;
10887 }
10888 p->mark = _mark;
10889 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
10890 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default+ lambda_star_etc?"));
10891 }
10892 { // lambda_star_etc
10893 if (p->error_indicator) {
10894 D(p->level--);
10895 return NULL;
10896 }
10897 D(fprintf(stderr, "%*c> lambda_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_star_etc"));
10898 StarEtc* a;
10899 if (
10900 (a = lambda_star_etc_rule(p)) // lambda_star_etc
10901 )
10902 {
10903 D(fprintf(stderr, "%*c+ lambda_parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_star_etc"));
10904 _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , NULL , a );
10905 if (_res == NULL && PyErr_Occurred()) {
10906 p->error_indicator = 1;
10907 D(p->level--);
10908 return NULL;
10909 }
10910 goto done;
10911 }
10912 p->mark = _mark;
10913 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
10914 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_star_etc"));
10915 }
10916 _res = NULL;
10917 done:
10918 D(p->level--);
10919 return _res;
10920}
10921
10922// lambda_slash_no_default:
10923// | lambda_param_no_default+ '/' ','
10924// | lambda_param_no_default+ '/' &':'
Pablo Galindoa5634c42020-09-16 19:42:00 +010010925static asdl_arg_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010926lambda_slash_no_default_rule(Parser *p)
10927{
10928 D(p->level++);
10929 if (p->error_indicator) {
10930 D(p->level--);
10931 return NULL;
10932 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010010933 asdl_arg_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010934 int _mark = p->mark;
10935 { // lambda_param_no_default+ '/' ','
10936 if (p->error_indicator) {
10937 D(p->level--);
10938 return NULL;
10939 }
10940 D(fprintf(stderr, "%*c> lambda_slash_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default+ '/' ','"));
10941 Token * _literal;
10942 Token * _literal_1;
Pablo Galindoa5634c42020-09-16 19:42:00 +010010943 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010944 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080010945 (a = (asdl_arg_seq*)_loop1_96_rule(p)) // lambda_param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010946 &&
10947 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
10948 &&
10949 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
10950 )
10951 {
10952 D(fprintf(stderr, "%*c+ lambda_slash_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default+ '/' ','"));
10953 _res = a;
10954 if (_res == NULL && PyErr_Occurred()) {
10955 p->error_indicator = 1;
10956 D(p->level--);
10957 return NULL;
10958 }
10959 goto done;
10960 }
10961 p->mark = _mark;
10962 D(fprintf(stderr, "%*c%s lambda_slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
10963 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default+ '/' ','"));
10964 }
10965 { // lambda_param_no_default+ '/' &':'
10966 if (p->error_indicator) {
10967 D(p->level--);
10968 return NULL;
10969 }
10970 D(fprintf(stderr, "%*c> lambda_slash_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default+ '/' &':'"));
10971 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +010010972 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010973 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080010974 (a = (asdl_arg_seq*)_loop1_97_rule(p)) // lambda_param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010975 &&
10976 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
10977 &&
10978 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
10979 )
10980 {
10981 D(fprintf(stderr, "%*c+ lambda_slash_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default+ '/' &':'"));
10982 _res = a;
10983 if (_res == NULL && PyErr_Occurred()) {
10984 p->error_indicator = 1;
10985 D(p->level--);
10986 return NULL;
10987 }
10988 goto done;
10989 }
10990 p->mark = _mark;
10991 D(fprintf(stderr, "%*c%s lambda_slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
10992 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default+ '/' &':'"));
10993 }
10994 _res = NULL;
10995 done:
10996 D(p->level--);
10997 return _res;
10998}
10999
11000// lambda_slash_with_default:
11001// | lambda_param_no_default* lambda_param_with_default+ '/' ','
11002// | lambda_param_no_default* lambda_param_with_default+ '/' &':'
11003static SlashWithDefault*
11004lambda_slash_with_default_rule(Parser *p)
11005{
11006 D(p->level++);
11007 if (p->error_indicator) {
11008 D(p->level--);
11009 return NULL;
11010 }
11011 SlashWithDefault* _res = NULL;
11012 int _mark = p->mark;
11013 { // lambda_param_no_default* lambda_param_with_default+ '/' ','
11014 if (p->error_indicator) {
11015 D(p->level--);
11016 return NULL;
11017 }
11018 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+ '/' ','"));
11019 Token * _literal;
11020 Token * _literal_1;
11021 asdl_seq * a;
11022 asdl_seq * b;
11023 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080011024 (a = _loop0_98_rule(p)) // lambda_param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011025 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080011026 (b = _loop1_99_rule(p)) // lambda_param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011027 &&
11028 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
11029 &&
11030 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
11031 )
11032 {
11033 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 +010011034 _res = _PyPegen_slash_with_default ( p , ( asdl_arg_seq * ) a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011035 if (_res == NULL && PyErr_Occurred()) {
11036 p->error_indicator = 1;
11037 D(p->level--);
11038 return NULL;
11039 }
11040 goto done;
11041 }
11042 p->mark = _mark;
11043 D(fprintf(stderr, "%*c%s lambda_slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
11044 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default* lambda_param_with_default+ '/' ','"));
11045 }
11046 { // lambda_param_no_default* lambda_param_with_default+ '/' &':'
11047 if (p->error_indicator) {
11048 D(p->level--);
11049 return NULL;
11050 }
11051 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+ '/' &':'"));
11052 Token * _literal;
11053 asdl_seq * a;
11054 asdl_seq * b;
11055 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080011056 (a = _loop0_100_rule(p)) // lambda_param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011057 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080011058 (b = _loop1_101_rule(p)) // lambda_param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011059 &&
11060 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
11061 &&
11062 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
11063 )
11064 {
11065 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 +010011066 _res = _PyPegen_slash_with_default ( p , ( asdl_arg_seq * ) a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011067 if (_res == NULL && PyErr_Occurred()) {
11068 p->error_indicator = 1;
11069 D(p->level--);
11070 return NULL;
11071 }
11072 goto done;
11073 }
11074 p->mark = _mark;
11075 D(fprintf(stderr, "%*c%s lambda_slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
11076 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default* lambda_param_with_default+ '/' &':'"));
11077 }
11078 _res = NULL;
11079 done:
11080 D(p->level--);
11081 return _res;
11082}
11083
11084// lambda_star_etc:
11085// | '*' lambda_param_no_default lambda_param_maybe_default* lambda_kwds?
11086// | '*' ',' lambda_param_maybe_default+ lambda_kwds?
11087// | lambda_kwds
11088// | invalid_lambda_star_etc
11089static StarEtc*
11090lambda_star_etc_rule(Parser *p)
11091{
11092 D(p->level++);
11093 if (p->error_indicator) {
11094 D(p->level--);
11095 return NULL;
11096 }
11097 StarEtc* _res = NULL;
11098 int _mark = p->mark;
11099 { // '*' lambda_param_no_default lambda_param_maybe_default* lambda_kwds?
11100 if (p->error_indicator) {
11101 D(p->level--);
11102 return NULL;
11103 }
11104 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?"));
11105 Token * _literal;
11106 arg_ty a;
11107 asdl_seq * b;
11108 void *c;
11109 if (
11110 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
11111 &&
11112 (a = lambda_param_no_default_rule(p)) // lambda_param_no_default
11113 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080011114 (b = _loop0_102_rule(p)) // lambda_param_maybe_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011115 &&
11116 (c = lambda_kwds_rule(p), 1) // lambda_kwds?
11117 )
11118 {
11119 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?"));
11120 _res = _PyPegen_star_etc ( p , a , b , c );
11121 if (_res == NULL && PyErr_Occurred()) {
11122 p->error_indicator = 1;
11123 D(p->level--);
11124 return NULL;
11125 }
11126 goto done;
11127 }
11128 p->mark = _mark;
11129 D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
11130 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' lambda_param_no_default lambda_param_maybe_default* lambda_kwds?"));
11131 }
11132 { // '*' ',' lambda_param_maybe_default+ lambda_kwds?
11133 if (p->error_indicator) {
11134 D(p->level--);
11135 return NULL;
11136 }
11137 D(fprintf(stderr, "%*c> lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' ',' lambda_param_maybe_default+ lambda_kwds?"));
11138 Token * _literal;
11139 Token * _literal_1;
11140 asdl_seq * b;
11141 void *c;
11142 if (
11143 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
11144 &&
11145 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
11146 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080011147 (b = _loop1_103_rule(p)) // lambda_param_maybe_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011148 &&
11149 (c = lambda_kwds_rule(p), 1) // lambda_kwds?
11150 )
11151 {
11152 D(fprintf(stderr, "%*c+ lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' ',' lambda_param_maybe_default+ lambda_kwds?"));
11153 _res = _PyPegen_star_etc ( p , NULL , b , c );
11154 if (_res == NULL && PyErr_Occurred()) {
11155 p->error_indicator = 1;
11156 D(p->level--);
11157 return NULL;
11158 }
11159 goto done;
11160 }
11161 p->mark = _mark;
11162 D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
11163 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' ',' lambda_param_maybe_default+ lambda_kwds?"));
11164 }
11165 { // lambda_kwds
11166 if (p->error_indicator) {
11167 D(p->level--);
11168 return NULL;
11169 }
11170 D(fprintf(stderr, "%*c> lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_kwds"));
11171 arg_ty a;
11172 if (
11173 (a = lambda_kwds_rule(p)) // lambda_kwds
11174 )
11175 {
11176 D(fprintf(stderr, "%*c+ lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_kwds"));
11177 _res = _PyPegen_star_etc ( p , NULL , NULL , a );
11178 if (_res == NULL && PyErr_Occurred()) {
11179 p->error_indicator = 1;
11180 D(p->level--);
11181 return NULL;
11182 }
11183 goto done;
11184 }
11185 p->mark = _mark;
11186 D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
11187 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_kwds"));
11188 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020011189 if (p->call_invalid_rules) { // invalid_lambda_star_etc
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011190 if (p->error_indicator) {
11191 D(p->level--);
11192 return NULL;
11193 }
11194 D(fprintf(stderr, "%*c> lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_lambda_star_etc"));
11195 void *invalid_lambda_star_etc_var;
11196 if (
11197 (invalid_lambda_star_etc_var = invalid_lambda_star_etc_rule(p)) // invalid_lambda_star_etc
11198 )
11199 {
11200 D(fprintf(stderr, "%*c+ lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_lambda_star_etc"));
11201 _res = invalid_lambda_star_etc_var;
11202 goto done;
11203 }
11204 p->mark = _mark;
11205 D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
11206 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_lambda_star_etc"));
11207 }
11208 _res = NULL;
11209 done:
11210 D(p->level--);
11211 return _res;
11212}
11213
11214// lambda_kwds: '**' lambda_param_no_default
11215static arg_ty
11216lambda_kwds_rule(Parser *p)
11217{
11218 D(p->level++);
11219 if (p->error_indicator) {
11220 D(p->level--);
11221 return NULL;
11222 }
11223 arg_ty _res = NULL;
11224 int _mark = p->mark;
11225 { // '**' lambda_param_no_default
11226 if (p->error_indicator) {
11227 D(p->level--);
11228 return NULL;
11229 }
11230 D(fprintf(stderr, "%*c> lambda_kwds[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' lambda_param_no_default"));
11231 Token * _literal;
11232 arg_ty a;
11233 if (
11234 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
11235 &&
11236 (a = lambda_param_no_default_rule(p)) // lambda_param_no_default
11237 )
11238 {
11239 D(fprintf(stderr, "%*c+ lambda_kwds[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' lambda_param_no_default"));
11240 _res = a;
11241 if (_res == NULL && PyErr_Occurred()) {
11242 p->error_indicator = 1;
11243 D(p->level--);
11244 return NULL;
11245 }
11246 goto done;
11247 }
11248 p->mark = _mark;
11249 D(fprintf(stderr, "%*c%s lambda_kwds[%d-%d]: %s failed!\n", p->level, ' ',
11250 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' lambda_param_no_default"));
11251 }
11252 _res = NULL;
11253 done:
11254 D(p->level--);
11255 return _res;
11256}
11257
11258// lambda_param_no_default: lambda_param ',' | lambda_param &':'
11259static arg_ty
11260lambda_param_no_default_rule(Parser *p)
11261{
11262 D(p->level++);
11263 if (p->error_indicator) {
11264 D(p->level--);
11265 return NULL;
11266 }
11267 arg_ty _res = NULL;
11268 int _mark = p->mark;
11269 { // lambda_param ','
11270 if (p->error_indicator) {
11271 D(p->level--);
11272 return NULL;
11273 }
11274 D(fprintf(stderr, "%*c> lambda_param_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param ','"));
11275 Token * _literal;
11276 arg_ty a;
11277 if (
11278 (a = lambda_param_rule(p)) // lambda_param
11279 &&
11280 (_literal = _PyPegen_expect_token(p, 12)) // token=','
11281 )
11282 {
11283 D(fprintf(stderr, "%*c+ lambda_param_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param ','"));
11284 _res = a;
11285 if (_res == NULL && PyErr_Occurred()) {
11286 p->error_indicator = 1;
11287 D(p->level--);
11288 return NULL;
11289 }
11290 goto done;
11291 }
11292 p->mark = _mark;
11293 D(fprintf(stderr, "%*c%s lambda_param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
11294 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param ','"));
11295 }
11296 { // lambda_param &':'
11297 if (p->error_indicator) {
11298 D(p->level--);
11299 return NULL;
11300 }
11301 D(fprintf(stderr, "%*c> lambda_param_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param &':'"));
11302 arg_ty a;
11303 if (
11304 (a = lambda_param_rule(p)) // lambda_param
11305 &&
11306 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
11307 )
11308 {
11309 D(fprintf(stderr, "%*c+ lambda_param_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param &':'"));
11310 _res = a;
11311 if (_res == NULL && PyErr_Occurred()) {
11312 p->error_indicator = 1;
11313 D(p->level--);
11314 return NULL;
11315 }
11316 goto done;
11317 }
11318 p->mark = _mark;
11319 D(fprintf(stderr, "%*c%s lambda_param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
11320 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param &':'"));
11321 }
11322 _res = NULL;
11323 done:
11324 D(p->level--);
11325 return _res;
11326}
11327
11328// lambda_param_with_default: lambda_param default ',' | lambda_param default &':'
11329static NameDefaultPair*
11330lambda_param_with_default_rule(Parser *p)
11331{
11332 D(p->level++);
11333 if (p->error_indicator) {
11334 D(p->level--);
11335 return NULL;
11336 }
11337 NameDefaultPair* _res = NULL;
11338 int _mark = p->mark;
11339 { // lambda_param default ','
11340 if (p->error_indicator) {
11341 D(p->level--);
11342 return NULL;
11343 }
11344 D(fprintf(stderr, "%*c> lambda_param_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param default ','"));
11345 Token * _literal;
11346 arg_ty a;
11347 expr_ty c;
11348 if (
11349 (a = lambda_param_rule(p)) // lambda_param
11350 &&
11351 (c = default_rule(p)) // default
11352 &&
11353 (_literal = _PyPegen_expect_token(p, 12)) // token=','
11354 )
11355 {
11356 D(fprintf(stderr, "%*c+ lambda_param_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param default ','"));
11357 _res = _PyPegen_name_default_pair ( p , a , c , NULL );
11358 if (_res == NULL && PyErr_Occurred()) {
11359 p->error_indicator = 1;
11360 D(p->level--);
11361 return NULL;
11362 }
11363 goto done;
11364 }
11365 p->mark = _mark;
11366 D(fprintf(stderr, "%*c%s lambda_param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
11367 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default ','"));
11368 }
11369 { // lambda_param default &':'
11370 if (p->error_indicator) {
11371 D(p->level--);
11372 return NULL;
11373 }
11374 D(fprintf(stderr, "%*c> lambda_param_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param default &':'"));
11375 arg_ty a;
11376 expr_ty c;
11377 if (
11378 (a = lambda_param_rule(p)) // lambda_param
11379 &&
11380 (c = default_rule(p)) // default
11381 &&
11382 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
11383 )
11384 {
11385 D(fprintf(stderr, "%*c+ lambda_param_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param default &':'"));
11386 _res = _PyPegen_name_default_pair ( p , a , c , NULL );
11387 if (_res == NULL && PyErr_Occurred()) {
11388 p->error_indicator = 1;
11389 D(p->level--);
11390 return NULL;
11391 }
11392 goto done;
11393 }
11394 p->mark = _mark;
11395 D(fprintf(stderr, "%*c%s lambda_param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
11396 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default &':'"));
11397 }
11398 _res = NULL;
11399 done:
11400 D(p->level--);
11401 return _res;
11402}
11403
11404// lambda_param_maybe_default: lambda_param default? ',' | lambda_param default? &':'
11405static NameDefaultPair*
11406lambda_param_maybe_default_rule(Parser *p)
11407{
11408 D(p->level++);
11409 if (p->error_indicator) {
11410 D(p->level--);
11411 return NULL;
11412 }
11413 NameDefaultPair* _res = NULL;
11414 int _mark = p->mark;
11415 { // lambda_param default? ','
11416 if (p->error_indicator) {
11417 D(p->level--);
11418 return NULL;
11419 }
11420 D(fprintf(stderr, "%*c> lambda_param_maybe_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param default? ','"));
11421 Token * _literal;
11422 arg_ty a;
11423 void *c;
11424 if (
11425 (a = lambda_param_rule(p)) // lambda_param
11426 &&
11427 (c = default_rule(p), 1) // default?
11428 &&
11429 (_literal = _PyPegen_expect_token(p, 12)) // token=','
11430 )
11431 {
11432 D(fprintf(stderr, "%*c+ lambda_param_maybe_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param default? ','"));
11433 _res = _PyPegen_name_default_pair ( p , a , c , NULL );
11434 if (_res == NULL && PyErr_Occurred()) {
11435 p->error_indicator = 1;
11436 D(p->level--);
11437 return NULL;
11438 }
11439 goto done;
11440 }
11441 p->mark = _mark;
11442 D(fprintf(stderr, "%*c%s lambda_param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
11443 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default? ','"));
11444 }
11445 { // lambda_param default? &':'
11446 if (p->error_indicator) {
11447 D(p->level--);
11448 return NULL;
11449 }
11450 D(fprintf(stderr, "%*c> lambda_param_maybe_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param default? &':'"));
11451 arg_ty a;
11452 void *c;
11453 if (
11454 (a = lambda_param_rule(p)) // lambda_param
11455 &&
11456 (c = default_rule(p), 1) // default?
11457 &&
11458 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
11459 )
11460 {
11461 D(fprintf(stderr, "%*c+ lambda_param_maybe_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param default? &':'"));
11462 _res = _PyPegen_name_default_pair ( p , a , c , NULL );
11463 if (_res == NULL && PyErr_Occurred()) {
11464 p->error_indicator = 1;
11465 D(p->level--);
11466 return NULL;
11467 }
11468 goto done;
11469 }
11470 p->mark = _mark;
11471 D(fprintf(stderr, "%*c%s lambda_param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
11472 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default? &':'"));
11473 }
11474 _res = NULL;
11475 done:
11476 D(p->level--);
11477 return _res;
11478}
11479
11480// lambda_param: NAME
11481static arg_ty
11482lambda_param_rule(Parser *p)
11483{
11484 D(p->level++);
11485 if (p->error_indicator) {
11486 D(p->level--);
11487 return NULL;
11488 }
11489 arg_ty _res = NULL;
11490 int _mark = p->mark;
11491 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11492 p->error_indicator = 1;
11493 D(p->level--);
11494 return NULL;
11495 }
11496 int _start_lineno = p->tokens[_mark]->lineno;
11497 UNUSED(_start_lineno); // Only used by EXTRA macro
11498 int _start_col_offset = p->tokens[_mark]->col_offset;
11499 UNUSED(_start_col_offset); // Only used by EXTRA macro
11500 { // NAME
11501 if (p->error_indicator) {
11502 D(p->level--);
11503 return NULL;
11504 }
11505 D(fprintf(stderr, "%*c> lambda_param[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
11506 expr_ty a;
11507 if (
11508 (a = _PyPegen_name_token(p)) // NAME
11509 )
11510 {
11511 D(fprintf(stderr, "%*c+ lambda_param[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
11512 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11513 if (_token == NULL) {
11514 D(p->level--);
11515 return NULL;
11516 }
11517 int _end_lineno = _token->end_lineno;
11518 UNUSED(_end_lineno); // Only used by EXTRA macro
11519 int _end_col_offset = _token->end_col_offset;
11520 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020011521 _res = _PyAST_arg ( a -> v . Name . id , NULL , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011522 if (_res == NULL && PyErr_Occurred()) {
11523 p->error_indicator = 1;
11524 D(p->level--);
11525 return NULL;
11526 }
11527 goto done;
11528 }
11529 p->mark = _mark;
11530 D(fprintf(stderr, "%*c%s lambda_param[%d-%d]: %s failed!\n", p->level, ' ',
11531 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
11532 }
11533 _res = NULL;
11534 done:
11535 D(p->level--);
11536 return _res;
11537}
11538
11539// disjunction: conjunction (('or' conjunction))+ | conjunction
11540static expr_ty
11541disjunction_rule(Parser *p)
11542{
11543 D(p->level++);
11544 if (p->error_indicator) {
11545 D(p->level--);
11546 return NULL;
11547 }
11548 expr_ty _res = NULL;
11549 if (_PyPegen_is_memoized(p, disjunction_type, &_res)) {
11550 D(p->level--);
11551 return _res;
11552 }
11553 int _mark = p->mark;
11554 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11555 p->error_indicator = 1;
11556 D(p->level--);
11557 return NULL;
11558 }
11559 int _start_lineno = p->tokens[_mark]->lineno;
11560 UNUSED(_start_lineno); // Only used by EXTRA macro
11561 int _start_col_offset = p->tokens[_mark]->col_offset;
11562 UNUSED(_start_col_offset); // Only used by EXTRA macro
11563 { // conjunction (('or' conjunction))+
11564 if (p->error_indicator) {
11565 D(p->level--);
11566 return NULL;
11567 }
11568 D(fprintf(stderr, "%*c> disjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "conjunction (('or' conjunction))+"));
11569 expr_ty a;
11570 asdl_seq * b;
11571 if (
11572 (a = conjunction_rule(p)) // conjunction
11573 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080011574 (b = _loop1_104_rule(p)) // (('or' conjunction))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011575 )
11576 {
11577 D(fprintf(stderr, "%*c+ disjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "conjunction (('or' conjunction))+"));
11578 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11579 if (_token == NULL) {
11580 D(p->level--);
11581 return NULL;
11582 }
11583 int _end_lineno = _token->end_lineno;
11584 UNUSED(_end_lineno); // Only used by EXTRA macro
11585 int _end_col_offset = _token->end_col_offset;
11586 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020011587 _res = _PyAST_BoolOp ( Or , CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , a , b ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011588 if (_res == NULL && PyErr_Occurred()) {
11589 p->error_indicator = 1;
11590 D(p->level--);
11591 return NULL;
11592 }
11593 goto done;
11594 }
11595 p->mark = _mark;
11596 D(fprintf(stderr, "%*c%s disjunction[%d-%d]: %s failed!\n", p->level, ' ',
11597 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "conjunction (('or' conjunction))+"));
11598 }
11599 { // conjunction
11600 if (p->error_indicator) {
11601 D(p->level--);
11602 return NULL;
11603 }
11604 D(fprintf(stderr, "%*c> disjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "conjunction"));
11605 expr_ty conjunction_var;
11606 if (
11607 (conjunction_var = conjunction_rule(p)) // conjunction
11608 )
11609 {
11610 D(fprintf(stderr, "%*c+ disjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "conjunction"));
11611 _res = conjunction_var;
11612 goto done;
11613 }
11614 p->mark = _mark;
11615 D(fprintf(stderr, "%*c%s disjunction[%d-%d]: %s failed!\n", p->level, ' ',
11616 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "conjunction"));
11617 }
11618 _res = NULL;
11619 done:
11620 _PyPegen_insert_memo(p, _mark, disjunction_type, _res);
11621 D(p->level--);
11622 return _res;
11623}
11624
11625// conjunction: inversion (('and' inversion))+ | inversion
11626static expr_ty
11627conjunction_rule(Parser *p)
11628{
11629 D(p->level++);
11630 if (p->error_indicator) {
11631 D(p->level--);
11632 return NULL;
11633 }
11634 expr_ty _res = NULL;
11635 if (_PyPegen_is_memoized(p, conjunction_type, &_res)) {
11636 D(p->level--);
11637 return _res;
11638 }
11639 int _mark = p->mark;
11640 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11641 p->error_indicator = 1;
11642 D(p->level--);
11643 return NULL;
11644 }
11645 int _start_lineno = p->tokens[_mark]->lineno;
11646 UNUSED(_start_lineno); // Only used by EXTRA macro
11647 int _start_col_offset = p->tokens[_mark]->col_offset;
11648 UNUSED(_start_col_offset); // Only used by EXTRA macro
11649 { // inversion (('and' inversion))+
11650 if (p->error_indicator) {
11651 D(p->level--);
11652 return NULL;
11653 }
11654 D(fprintf(stderr, "%*c> conjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "inversion (('and' inversion))+"));
11655 expr_ty a;
11656 asdl_seq * b;
11657 if (
11658 (a = inversion_rule(p)) // inversion
11659 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080011660 (b = _loop1_105_rule(p)) // (('and' inversion))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011661 )
11662 {
11663 D(fprintf(stderr, "%*c+ conjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "inversion (('and' inversion))+"));
11664 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11665 if (_token == NULL) {
11666 D(p->level--);
11667 return NULL;
11668 }
11669 int _end_lineno = _token->end_lineno;
11670 UNUSED(_end_lineno); // Only used by EXTRA macro
11671 int _end_col_offset = _token->end_col_offset;
11672 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020011673 _res = _PyAST_BoolOp ( And , CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , a , b ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011674 if (_res == NULL && PyErr_Occurred()) {
11675 p->error_indicator = 1;
11676 D(p->level--);
11677 return NULL;
11678 }
11679 goto done;
11680 }
11681 p->mark = _mark;
11682 D(fprintf(stderr, "%*c%s conjunction[%d-%d]: %s failed!\n", p->level, ' ',
11683 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "inversion (('and' inversion))+"));
11684 }
11685 { // inversion
11686 if (p->error_indicator) {
11687 D(p->level--);
11688 return NULL;
11689 }
11690 D(fprintf(stderr, "%*c> conjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "inversion"));
11691 expr_ty inversion_var;
11692 if (
11693 (inversion_var = inversion_rule(p)) // inversion
11694 )
11695 {
11696 D(fprintf(stderr, "%*c+ conjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "inversion"));
11697 _res = inversion_var;
11698 goto done;
11699 }
11700 p->mark = _mark;
11701 D(fprintf(stderr, "%*c%s conjunction[%d-%d]: %s failed!\n", p->level, ' ',
11702 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "inversion"));
11703 }
11704 _res = NULL;
11705 done:
11706 _PyPegen_insert_memo(p, _mark, conjunction_type, _res);
11707 D(p->level--);
11708 return _res;
11709}
11710
11711// inversion: 'not' inversion | comparison
11712static expr_ty
11713inversion_rule(Parser *p)
11714{
11715 D(p->level++);
11716 if (p->error_indicator) {
11717 D(p->level--);
11718 return NULL;
11719 }
11720 expr_ty _res = NULL;
11721 if (_PyPegen_is_memoized(p, inversion_type, &_res)) {
11722 D(p->level--);
11723 return _res;
11724 }
11725 int _mark = p->mark;
11726 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11727 p->error_indicator = 1;
11728 D(p->level--);
11729 return NULL;
11730 }
11731 int _start_lineno = p->tokens[_mark]->lineno;
11732 UNUSED(_start_lineno); // Only used by EXTRA macro
11733 int _start_col_offset = p->tokens[_mark]->col_offset;
11734 UNUSED(_start_col_offset); // Only used by EXTRA macro
11735 { // 'not' inversion
11736 if (p->error_indicator) {
11737 D(p->level--);
11738 return NULL;
11739 }
11740 D(fprintf(stderr, "%*c> inversion[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'not' inversion"));
11741 Token * _keyword;
11742 expr_ty a;
11743 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080011744 (_keyword = _PyPegen_expect_token(p, 529)) // token='not'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011745 &&
11746 (a = inversion_rule(p)) // inversion
11747 )
11748 {
11749 D(fprintf(stderr, "%*c+ inversion[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'not' inversion"));
11750 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11751 if (_token == NULL) {
11752 D(p->level--);
11753 return NULL;
11754 }
11755 int _end_lineno = _token->end_lineno;
11756 UNUSED(_end_lineno); // Only used by EXTRA macro
11757 int _end_col_offset = _token->end_col_offset;
11758 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020011759 _res = _PyAST_UnaryOp ( Not , a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011760 if (_res == NULL && PyErr_Occurred()) {
11761 p->error_indicator = 1;
11762 D(p->level--);
11763 return NULL;
11764 }
11765 goto done;
11766 }
11767 p->mark = _mark;
11768 D(fprintf(stderr, "%*c%s inversion[%d-%d]: %s failed!\n", p->level, ' ',
11769 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'not' inversion"));
11770 }
11771 { // comparison
11772 if (p->error_indicator) {
11773 D(p->level--);
11774 return NULL;
11775 }
11776 D(fprintf(stderr, "%*c> inversion[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "comparison"));
11777 expr_ty comparison_var;
11778 if (
11779 (comparison_var = comparison_rule(p)) // comparison
11780 )
11781 {
11782 D(fprintf(stderr, "%*c+ inversion[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "comparison"));
11783 _res = comparison_var;
11784 goto done;
11785 }
11786 p->mark = _mark;
11787 D(fprintf(stderr, "%*c%s inversion[%d-%d]: %s failed!\n", p->level, ' ',
11788 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "comparison"));
11789 }
11790 _res = NULL;
11791 done:
11792 _PyPegen_insert_memo(p, _mark, inversion_type, _res);
11793 D(p->level--);
11794 return _res;
11795}
11796
11797// comparison: bitwise_or compare_op_bitwise_or_pair+ | bitwise_or
11798static expr_ty
11799comparison_rule(Parser *p)
11800{
11801 D(p->level++);
11802 if (p->error_indicator) {
11803 D(p->level--);
11804 return NULL;
11805 }
11806 expr_ty _res = NULL;
11807 int _mark = p->mark;
11808 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11809 p->error_indicator = 1;
11810 D(p->level--);
11811 return NULL;
11812 }
11813 int _start_lineno = p->tokens[_mark]->lineno;
11814 UNUSED(_start_lineno); // Only used by EXTRA macro
11815 int _start_col_offset = p->tokens[_mark]->col_offset;
11816 UNUSED(_start_col_offset); // Only used by EXTRA macro
11817 { // bitwise_or compare_op_bitwise_or_pair+
11818 if (p->error_indicator) {
11819 D(p->level--);
11820 return NULL;
11821 }
11822 D(fprintf(stderr, "%*c> comparison[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_or compare_op_bitwise_or_pair+"));
11823 expr_ty a;
11824 asdl_seq * b;
11825 if (
11826 (a = bitwise_or_rule(p)) // bitwise_or
11827 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080011828 (b = _loop1_106_rule(p)) // compare_op_bitwise_or_pair+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011829 )
11830 {
11831 D(fprintf(stderr, "%*c+ comparison[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_or compare_op_bitwise_or_pair+"));
11832 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11833 if (_token == NULL) {
11834 D(p->level--);
11835 return NULL;
11836 }
11837 int _end_lineno = _token->end_lineno;
11838 UNUSED(_end_lineno); // Only used by EXTRA macro
11839 int _end_col_offset = _token->end_col_offset;
11840 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020011841 _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 +010011842 if (_res == NULL && PyErr_Occurred()) {
11843 p->error_indicator = 1;
11844 D(p->level--);
11845 return NULL;
11846 }
11847 goto done;
11848 }
11849 p->mark = _mark;
11850 D(fprintf(stderr, "%*c%s comparison[%d-%d]: %s failed!\n", p->level, ' ',
11851 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_or compare_op_bitwise_or_pair+"));
11852 }
11853 { // bitwise_or
11854 if (p->error_indicator) {
11855 D(p->level--);
11856 return NULL;
11857 }
11858 D(fprintf(stderr, "%*c> comparison[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_or"));
11859 expr_ty bitwise_or_var;
11860 if (
11861 (bitwise_or_var = bitwise_or_rule(p)) // bitwise_or
11862 )
11863 {
11864 D(fprintf(stderr, "%*c+ comparison[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_or"));
11865 _res = bitwise_or_var;
11866 goto done;
11867 }
11868 p->mark = _mark;
11869 D(fprintf(stderr, "%*c%s comparison[%d-%d]: %s failed!\n", p->level, ' ',
11870 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_or"));
11871 }
11872 _res = NULL;
11873 done:
11874 D(p->level--);
11875 return _res;
11876}
11877
11878// compare_op_bitwise_or_pair:
11879// | eq_bitwise_or
11880// | noteq_bitwise_or
11881// | lte_bitwise_or
11882// | lt_bitwise_or
11883// | gte_bitwise_or
11884// | gt_bitwise_or
11885// | notin_bitwise_or
11886// | in_bitwise_or
11887// | isnot_bitwise_or
11888// | is_bitwise_or
11889static CmpopExprPair*
11890compare_op_bitwise_or_pair_rule(Parser *p)
11891{
11892 D(p->level++);
11893 if (p->error_indicator) {
11894 D(p->level--);
11895 return NULL;
11896 }
11897 CmpopExprPair* _res = NULL;
11898 int _mark = p->mark;
11899 { // eq_bitwise_or
11900 if (p->error_indicator) {
11901 D(p->level--);
11902 return NULL;
11903 }
11904 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "eq_bitwise_or"));
11905 CmpopExprPair* eq_bitwise_or_var;
11906 if (
11907 (eq_bitwise_or_var = eq_bitwise_or_rule(p)) // eq_bitwise_or
11908 )
11909 {
11910 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "eq_bitwise_or"));
11911 _res = eq_bitwise_or_var;
11912 goto done;
11913 }
11914 p->mark = _mark;
11915 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
11916 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "eq_bitwise_or"));
11917 }
11918 { // noteq_bitwise_or
11919 if (p->error_indicator) {
11920 D(p->level--);
11921 return NULL;
11922 }
11923 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "noteq_bitwise_or"));
11924 CmpopExprPair* noteq_bitwise_or_var;
11925 if (
11926 (noteq_bitwise_or_var = noteq_bitwise_or_rule(p)) // noteq_bitwise_or
11927 )
11928 {
11929 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "noteq_bitwise_or"));
11930 _res = noteq_bitwise_or_var;
11931 goto done;
11932 }
11933 p->mark = _mark;
11934 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
11935 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "noteq_bitwise_or"));
11936 }
11937 { // lte_bitwise_or
11938 if (p->error_indicator) {
11939 D(p->level--);
11940 return NULL;
11941 }
11942 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lte_bitwise_or"));
11943 CmpopExprPair* lte_bitwise_or_var;
11944 if (
11945 (lte_bitwise_or_var = lte_bitwise_or_rule(p)) // lte_bitwise_or
11946 )
11947 {
11948 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lte_bitwise_or"));
11949 _res = lte_bitwise_or_var;
11950 goto done;
11951 }
11952 p->mark = _mark;
11953 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
11954 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lte_bitwise_or"));
11955 }
11956 { // lt_bitwise_or
11957 if (p->error_indicator) {
11958 D(p->level--);
11959 return NULL;
11960 }
11961 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lt_bitwise_or"));
11962 CmpopExprPair* lt_bitwise_or_var;
11963 if (
11964 (lt_bitwise_or_var = lt_bitwise_or_rule(p)) // lt_bitwise_or
11965 )
11966 {
11967 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lt_bitwise_or"));
11968 _res = lt_bitwise_or_var;
11969 goto done;
11970 }
11971 p->mark = _mark;
11972 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
11973 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lt_bitwise_or"));
11974 }
11975 { // gte_bitwise_or
11976 if (p->error_indicator) {
11977 D(p->level--);
11978 return NULL;
11979 }
11980 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "gte_bitwise_or"));
11981 CmpopExprPair* gte_bitwise_or_var;
11982 if (
11983 (gte_bitwise_or_var = gte_bitwise_or_rule(p)) // gte_bitwise_or
11984 )
11985 {
11986 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "gte_bitwise_or"));
11987 _res = gte_bitwise_or_var;
11988 goto done;
11989 }
11990 p->mark = _mark;
11991 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
11992 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "gte_bitwise_or"));
11993 }
11994 { // gt_bitwise_or
11995 if (p->error_indicator) {
11996 D(p->level--);
11997 return NULL;
11998 }
11999 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "gt_bitwise_or"));
12000 CmpopExprPair* gt_bitwise_or_var;
12001 if (
12002 (gt_bitwise_or_var = gt_bitwise_or_rule(p)) // gt_bitwise_or
12003 )
12004 {
12005 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "gt_bitwise_or"));
12006 _res = gt_bitwise_or_var;
12007 goto done;
12008 }
12009 p->mark = _mark;
12010 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
12011 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "gt_bitwise_or"));
12012 }
12013 { // notin_bitwise_or
12014 if (p->error_indicator) {
12015 D(p->level--);
12016 return NULL;
12017 }
12018 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "notin_bitwise_or"));
12019 CmpopExprPair* notin_bitwise_or_var;
12020 if (
12021 (notin_bitwise_or_var = notin_bitwise_or_rule(p)) // notin_bitwise_or
12022 )
12023 {
12024 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "notin_bitwise_or"));
12025 _res = notin_bitwise_or_var;
12026 goto done;
12027 }
12028 p->mark = _mark;
12029 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
12030 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "notin_bitwise_or"));
12031 }
12032 { // in_bitwise_or
12033 if (p->error_indicator) {
12034 D(p->level--);
12035 return NULL;
12036 }
12037 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "in_bitwise_or"));
12038 CmpopExprPair* in_bitwise_or_var;
12039 if (
12040 (in_bitwise_or_var = in_bitwise_or_rule(p)) // in_bitwise_or
12041 )
12042 {
12043 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "in_bitwise_or"));
12044 _res = in_bitwise_or_var;
12045 goto done;
12046 }
12047 p->mark = _mark;
12048 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
12049 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "in_bitwise_or"));
12050 }
12051 { // isnot_bitwise_or
12052 if (p->error_indicator) {
12053 D(p->level--);
12054 return NULL;
12055 }
12056 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "isnot_bitwise_or"));
12057 CmpopExprPair* isnot_bitwise_or_var;
12058 if (
12059 (isnot_bitwise_or_var = isnot_bitwise_or_rule(p)) // isnot_bitwise_or
12060 )
12061 {
12062 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "isnot_bitwise_or"));
12063 _res = isnot_bitwise_or_var;
12064 goto done;
12065 }
12066 p->mark = _mark;
12067 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
12068 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "isnot_bitwise_or"));
12069 }
12070 { // is_bitwise_or
12071 if (p->error_indicator) {
12072 D(p->level--);
12073 return NULL;
12074 }
12075 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "is_bitwise_or"));
12076 CmpopExprPair* is_bitwise_or_var;
12077 if (
12078 (is_bitwise_or_var = is_bitwise_or_rule(p)) // is_bitwise_or
12079 )
12080 {
12081 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "is_bitwise_or"));
12082 _res = is_bitwise_or_var;
12083 goto done;
12084 }
12085 p->mark = _mark;
12086 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
12087 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "is_bitwise_or"));
12088 }
12089 _res = NULL;
12090 done:
12091 D(p->level--);
12092 return _res;
12093}
12094
12095// eq_bitwise_or: '==' bitwise_or
12096static CmpopExprPair*
12097eq_bitwise_or_rule(Parser *p)
12098{
12099 D(p->level++);
12100 if (p->error_indicator) {
12101 D(p->level--);
12102 return NULL;
12103 }
12104 CmpopExprPair* _res = NULL;
12105 int _mark = p->mark;
12106 { // '==' bitwise_or
12107 if (p->error_indicator) {
12108 D(p->level--);
12109 return NULL;
12110 }
12111 D(fprintf(stderr, "%*c> eq_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'==' bitwise_or"));
12112 Token * _literal;
12113 expr_ty a;
12114 if (
12115 (_literal = _PyPegen_expect_token(p, 27)) // token='=='
12116 &&
12117 (a = bitwise_or_rule(p)) // bitwise_or
12118 )
12119 {
12120 D(fprintf(stderr, "%*c+ eq_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'==' bitwise_or"));
12121 _res = _PyPegen_cmpop_expr_pair ( p , Eq , a );
12122 if (_res == NULL && PyErr_Occurred()) {
12123 p->error_indicator = 1;
12124 D(p->level--);
12125 return NULL;
12126 }
12127 goto done;
12128 }
12129 p->mark = _mark;
12130 D(fprintf(stderr, "%*c%s eq_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12131 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'==' bitwise_or"));
12132 }
12133 _res = NULL;
12134 done:
12135 D(p->level--);
12136 return _res;
12137}
12138
12139// noteq_bitwise_or: ('!=') bitwise_or
12140static CmpopExprPair*
12141noteq_bitwise_or_rule(Parser *p)
12142{
12143 D(p->level++);
12144 if (p->error_indicator) {
12145 D(p->level--);
12146 return NULL;
12147 }
12148 CmpopExprPair* _res = NULL;
12149 int _mark = p->mark;
12150 { // ('!=') bitwise_or
12151 if (p->error_indicator) {
12152 D(p->level--);
12153 return NULL;
12154 }
12155 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 -080012156 void *_tmp_107_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012157 expr_ty a;
12158 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080012159 (_tmp_107_var = _tmp_107_rule(p)) // '!='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012160 &&
12161 (a = bitwise_or_rule(p)) // bitwise_or
12162 )
12163 {
12164 D(fprintf(stderr, "%*c+ noteq_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "('!=') bitwise_or"));
12165 _res = _PyPegen_cmpop_expr_pair ( p , NotEq , a );
12166 if (_res == NULL && PyErr_Occurred()) {
12167 p->error_indicator = 1;
12168 D(p->level--);
12169 return NULL;
12170 }
12171 goto done;
12172 }
12173 p->mark = _mark;
12174 D(fprintf(stderr, "%*c%s noteq_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12175 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('!=') bitwise_or"));
12176 }
12177 _res = NULL;
12178 done:
12179 D(p->level--);
12180 return _res;
12181}
12182
12183// lte_bitwise_or: '<=' bitwise_or
12184static CmpopExprPair*
12185lte_bitwise_or_rule(Parser *p)
12186{
12187 D(p->level++);
12188 if (p->error_indicator) {
12189 D(p->level--);
12190 return NULL;
12191 }
12192 CmpopExprPair* _res = NULL;
12193 int _mark = p->mark;
12194 { // '<=' bitwise_or
12195 if (p->error_indicator) {
12196 D(p->level--);
12197 return NULL;
12198 }
12199 D(fprintf(stderr, "%*c> lte_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'<=' bitwise_or"));
12200 Token * _literal;
12201 expr_ty a;
12202 if (
12203 (_literal = _PyPegen_expect_token(p, 29)) // token='<='
12204 &&
12205 (a = bitwise_or_rule(p)) // bitwise_or
12206 )
12207 {
12208 D(fprintf(stderr, "%*c+ lte_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'<=' bitwise_or"));
12209 _res = _PyPegen_cmpop_expr_pair ( p , LtE , a );
12210 if (_res == NULL && PyErr_Occurred()) {
12211 p->error_indicator = 1;
12212 D(p->level--);
12213 return NULL;
12214 }
12215 goto done;
12216 }
12217 p->mark = _mark;
12218 D(fprintf(stderr, "%*c%s lte_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12219 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'<=' bitwise_or"));
12220 }
12221 _res = NULL;
12222 done:
12223 D(p->level--);
12224 return _res;
12225}
12226
12227// lt_bitwise_or: '<' bitwise_or
12228static CmpopExprPair*
12229lt_bitwise_or_rule(Parser *p)
12230{
12231 D(p->level++);
12232 if (p->error_indicator) {
12233 D(p->level--);
12234 return NULL;
12235 }
12236 CmpopExprPair* _res = NULL;
12237 int _mark = p->mark;
12238 { // '<' bitwise_or
12239 if (p->error_indicator) {
12240 D(p->level--);
12241 return NULL;
12242 }
12243 D(fprintf(stderr, "%*c> lt_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'<' bitwise_or"));
12244 Token * _literal;
12245 expr_ty a;
12246 if (
12247 (_literal = _PyPegen_expect_token(p, 20)) // token='<'
12248 &&
12249 (a = bitwise_or_rule(p)) // bitwise_or
12250 )
12251 {
12252 D(fprintf(stderr, "%*c+ lt_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'<' bitwise_or"));
12253 _res = _PyPegen_cmpop_expr_pair ( p , Lt , a );
12254 if (_res == NULL && PyErr_Occurred()) {
12255 p->error_indicator = 1;
12256 D(p->level--);
12257 return NULL;
12258 }
12259 goto done;
12260 }
12261 p->mark = _mark;
12262 D(fprintf(stderr, "%*c%s lt_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12263 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'<' bitwise_or"));
12264 }
12265 _res = NULL;
12266 done:
12267 D(p->level--);
12268 return _res;
12269}
12270
12271// gte_bitwise_or: '>=' bitwise_or
12272static CmpopExprPair*
12273gte_bitwise_or_rule(Parser *p)
12274{
12275 D(p->level++);
12276 if (p->error_indicator) {
12277 D(p->level--);
12278 return NULL;
12279 }
12280 CmpopExprPair* _res = NULL;
12281 int _mark = p->mark;
12282 { // '>=' bitwise_or
12283 if (p->error_indicator) {
12284 D(p->level--);
12285 return NULL;
12286 }
12287 D(fprintf(stderr, "%*c> gte_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'>=' bitwise_or"));
12288 Token * _literal;
12289 expr_ty a;
12290 if (
12291 (_literal = _PyPegen_expect_token(p, 30)) // token='>='
12292 &&
12293 (a = bitwise_or_rule(p)) // bitwise_or
12294 )
12295 {
12296 D(fprintf(stderr, "%*c+ gte_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'>=' bitwise_or"));
12297 _res = _PyPegen_cmpop_expr_pair ( p , GtE , a );
12298 if (_res == NULL && PyErr_Occurred()) {
12299 p->error_indicator = 1;
12300 D(p->level--);
12301 return NULL;
12302 }
12303 goto done;
12304 }
12305 p->mark = _mark;
12306 D(fprintf(stderr, "%*c%s gte_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12307 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'>=' bitwise_or"));
12308 }
12309 _res = NULL;
12310 done:
12311 D(p->level--);
12312 return _res;
12313}
12314
12315// gt_bitwise_or: '>' bitwise_or
12316static CmpopExprPair*
12317gt_bitwise_or_rule(Parser *p)
12318{
12319 D(p->level++);
12320 if (p->error_indicator) {
12321 D(p->level--);
12322 return NULL;
12323 }
12324 CmpopExprPair* _res = NULL;
12325 int _mark = p->mark;
12326 { // '>' bitwise_or
12327 if (p->error_indicator) {
12328 D(p->level--);
12329 return NULL;
12330 }
12331 D(fprintf(stderr, "%*c> gt_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'>' bitwise_or"));
12332 Token * _literal;
12333 expr_ty a;
12334 if (
12335 (_literal = _PyPegen_expect_token(p, 21)) // token='>'
12336 &&
12337 (a = bitwise_or_rule(p)) // bitwise_or
12338 )
12339 {
12340 D(fprintf(stderr, "%*c+ gt_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'>' bitwise_or"));
12341 _res = _PyPegen_cmpop_expr_pair ( p , Gt , a );
12342 if (_res == NULL && PyErr_Occurred()) {
12343 p->error_indicator = 1;
12344 D(p->level--);
12345 return NULL;
12346 }
12347 goto done;
12348 }
12349 p->mark = _mark;
12350 D(fprintf(stderr, "%*c%s gt_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12351 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'>' bitwise_or"));
12352 }
12353 _res = NULL;
12354 done:
12355 D(p->level--);
12356 return _res;
12357}
12358
12359// notin_bitwise_or: 'not' 'in' bitwise_or
12360static CmpopExprPair*
12361notin_bitwise_or_rule(Parser *p)
12362{
12363 D(p->level++);
12364 if (p->error_indicator) {
12365 D(p->level--);
12366 return NULL;
12367 }
12368 CmpopExprPair* _res = NULL;
12369 int _mark = p->mark;
12370 { // 'not' 'in' bitwise_or
12371 if (p->error_indicator) {
12372 D(p->level--);
12373 return NULL;
12374 }
12375 D(fprintf(stderr, "%*c> notin_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'not' 'in' bitwise_or"));
12376 Token * _keyword;
12377 Token * _keyword_1;
12378 expr_ty a;
12379 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080012380 (_keyword = _PyPegen_expect_token(p, 529)) // token='not'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012381 &&
12382 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
12383 &&
12384 (a = bitwise_or_rule(p)) // bitwise_or
12385 )
12386 {
12387 D(fprintf(stderr, "%*c+ notin_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'not' 'in' bitwise_or"));
12388 _res = _PyPegen_cmpop_expr_pair ( p , NotIn , a );
12389 if (_res == NULL && PyErr_Occurred()) {
12390 p->error_indicator = 1;
12391 D(p->level--);
12392 return NULL;
12393 }
12394 goto done;
12395 }
12396 p->mark = _mark;
12397 D(fprintf(stderr, "%*c%s notin_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12398 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'not' 'in' bitwise_or"));
12399 }
12400 _res = NULL;
12401 done:
12402 D(p->level--);
12403 return _res;
12404}
12405
12406// in_bitwise_or: 'in' bitwise_or
12407static CmpopExprPair*
12408in_bitwise_or_rule(Parser *p)
12409{
12410 D(p->level++);
12411 if (p->error_indicator) {
12412 D(p->level--);
12413 return NULL;
12414 }
12415 CmpopExprPair* _res = NULL;
12416 int _mark = p->mark;
12417 { // 'in' bitwise_or
12418 if (p->error_indicator) {
12419 D(p->level--);
12420 return NULL;
12421 }
12422 D(fprintf(stderr, "%*c> in_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'in' bitwise_or"));
12423 Token * _keyword;
12424 expr_ty a;
12425 if (
12426 (_keyword = _PyPegen_expect_token(p, 518)) // token='in'
12427 &&
12428 (a = bitwise_or_rule(p)) // bitwise_or
12429 )
12430 {
12431 D(fprintf(stderr, "%*c+ in_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'in' bitwise_or"));
12432 _res = _PyPegen_cmpop_expr_pair ( p , In , a );
12433 if (_res == NULL && PyErr_Occurred()) {
12434 p->error_indicator = 1;
12435 D(p->level--);
12436 return NULL;
12437 }
12438 goto done;
12439 }
12440 p->mark = _mark;
12441 D(fprintf(stderr, "%*c%s in_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12442 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'in' bitwise_or"));
12443 }
12444 _res = NULL;
12445 done:
12446 D(p->level--);
12447 return _res;
12448}
12449
12450// isnot_bitwise_or: 'is' 'not' bitwise_or
12451static CmpopExprPair*
12452isnot_bitwise_or_rule(Parser *p)
12453{
12454 D(p->level++);
12455 if (p->error_indicator) {
12456 D(p->level--);
12457 return NULL;
12458 }
12459 CmpopExprPair* _res = NULL;
12460 int _mark = p->mark;
12461 { // 'is' 'not' bitwise_or
12462 if (p->error_indicator) {
12463 D(p->level--);
12464 return NULL;
12465 }
12466 D(fprintf(stderr, "%*c> isnot_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'is' 'not' bitwise_or"));
12467 Token * _keyword;
12468 Token * _keyword_1;
12469 expr_ty a;
12470 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080012471 (_keyword = _PyPegen_expect_token(p, 530)) // token='is'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012472 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080012473 (_keyword_1 = _PyPegen_expect_token(p, 529)) // token='not'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012474 &&
12475 (a = bitwise_or_rule(p)) // bitwise_or
12476 )
12477 {
12478 D(fprintf(stderr, "%*c+ isnot_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'is' 'not' bitwise_or"));
12479 _res = _PyPegen_cmpop_expr_pair ( p , IsNot , a );
12480 if (_res == NULL && PyErr_Occurred()) {
12481 p->error_indicator = 1;
12482 D(p->level--);
12483 return NULL;
12484 }
12485 goto done;
12486 }
12487 p->mark = _mark;
12488 D(fprintf(stderr, "%*c%s isnot_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12489 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'is' 'not' bitwise_or"));
12490 }
12491 _res = NULL;
12492 done:
12493 D(p->level--);
12494 return _res;
12495}
12496
12497// is_bitwise_or: 'is' bitwise_or
12498static CmpopExprPair*
12499is_bitwise_or_rule(Parser *p)
12500{
12501 D(p->level++);
12502 if (p->error_indicator) {
12503 D(p->level--);
12504 return NULL;
12505 }
12506 CmpopExprPair* _res = NULL;
12507 int _mark = p->mark;
12508 { // 'is' bitwise_or
12509 if (p->error_indicator) {
12510 D(p->level--);
12511 return NULL;
12512 }
12513 D(fprintf(stderr, "%*c> is_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'is' bitwise_or"));
12514 Token * _keyword;
12515 expr_ty a;
12516 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080012517 (_keyword = _PyPegen_expect_token(p, 530)) // token='is'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012518 &&
12519 (a = bitwise_or_rule(p)) // bitwise_or
12520 )
12521 {
12522 D(fprintf(stderr, "%*c+ is_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'is' bitwise_or"));
12523 _res = _PyPegen_cmpop_expr_pair ( p , Is , a );
12524 if (_res == NULL && PyErr_Occurred()) {
12525 p->error_indicator = 1;
12526 D(p->level--);
12527 return NULL;
12528 }
12529 goto done;
12530 }
12531 p->mark = _mark;
12532 D(fprintf(stderr, "%*c%s is_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12533 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'is' bitwise_or"));
12534 }
12535 _res = NULL;
12536 done:
12537 D(p->level--);
12538 return _res;
12539}
12540
12541// Left-recursive
12542// bitwise_or: bitwise_or '|' bitwise_xor | bitwise_xor
12543static expr_ty bitwise_or_raw(Parser *);
12544static expr_ty
12545bitwise_or_rule(Parser *p)
12546{
12547 D(p->level++);
12548 expr_ty _res = NULL;
12549 if (_PyPegen_is_memoized(p, bitwise_or_type, &_res)) {
12550 D(p->level--);
12551 return _res;
12552 }
12553 int _mark = p->mark;
12554 int _resmark = p->mark;
12555 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080012556 int tmpvar_2 = _PyPegen_update_memo(p, _mark, bitwise_or_type, _res);
12557 if (tmpvar_2) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012558 D(p->level--);
12559 return _res;
12560 }
12561 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070012562 p->in_raw_rule++;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012563 void *_raw = bitwise_or_raw(p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070012564 p->in_raw_rule--;
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020012565 if (p->error_indicator)
12566 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012567 if (_raw == NULL || p->mark <= _resmark)
12568 break;
12569 _resmark = p->mark;
12570 _res = _raw;
12571 }
12572 p->mark = _resmark;
12573 D(p->level--);
12574 return _res;
12575}
12576static expr_ty
12577bitwise_or_raw(Parser *p)
12578{
12579 D(p->level++);
12580 if (p->error_indicator) {
12581 D(p->level--);
12582 return NULL;
12583 }
12584 expr_ty _res = NULL;
12585 int _mark = p->mark;
12586 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12587 p->error_indicator = 1;
12588 D(p->level--);
12589 return NULL;
12590 }
12591 int _start_lineno = p->tokens[_mark]->lineno;
12592 UNUSED(_start_lineno); // Only used by EXTRA macro
12593 int _start_col_offset = p->tokens[_mark]->col_offset;
12594 UNUSED(_start_col_offset); // Only used by EXTRA macro
12595 { // bitwise_or '|' bitwise_xor
12596 if (p->error_indicator) {
12597 D(p->level--);
12598 return NULL;
12599 }
12600 D(fprintf(stderr, "%*c> bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_or '|' bitwise_xor"));
12601 Token * _literal;
12602 expr_ty a;
12603 expr_ty b;
12604 if (
12605 (a = bitwise_or_rule(p)) // bitwise_or
12606 &&
12607 (_literal = _PyPegen_expect_token(p, 18)) // token='|'
12608 &&
12609 (b = bitwise_xor_rule(p)) // bitwise_xor
12610 )
12611 {
12612 D(fprintf(stderr, "%*c+ bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_or '|' bitwise_xor"));
12613 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12614 if (_token == NULL) {
12615 D(p->level--);
12616 return NULL;
12617 }
12618 int _end_lineno = _token->end_lineno;
12619 UNUSED(_end_lineno); // Only used by EXTRA macro
12620 int _end_col_offset = _token->end_col_offset;
12621 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020012622 _res = _PyAST_BinOp ( a , BitOr , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012623 if (_res == NULL && PyErr_Occurred()) {
12624 p->error_indicator = 1;
12625 D(p->level--);
12626 return NULL;
12627 }
12628 goto done;
12629 }
12630 p->mark = _mark;
12631 D(fprintf(stderr, "%*c%s bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12632 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_or '|' bitwise_xor"));
12633 }
12634 { // bitwise_xor
12635 if (p->error_indicator) {
12636 D(p->level--);
12637 return NULL;
12638 }
12639 D(fprintf(stderr, "%*c> bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_xor"));
12640 expr_ty bitwise_xor_var;
12641 if (
12642 (bitwise_xor_var = bitwise_xor_rule(p)) // bitwise_xor
12643 )
12644 {
12645 D(fprintf(stderr, "%*c+ bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_xor"));
12646 _res = bitwise_xor_var;
12647 goto done;
12648 }
12649 p->mark = _mark;
12650 D(fprintf(stderr, "%*c%s bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12651 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_xor"));
12652 }
12653 _res = NULL;
12654 done:
12655 D(p->level--);
12656 return _res;
12657}
12658
12659// Left-recursive
12660// bitwise_xor: bitwise_xor '^' bitwise_and | bitwise_and
12661static expr_ty bitwise_xor_raw(Parser *);
12662static expr_ty
12663bitwise_xor_rule(Parser *p)
12664{
12665 D(p->level++);
12666 expr_ty _res = NULL;
12667 if (_PyPegen_is_memoized(p, bitwise_xor_type, &_res)) {
12668 D(p->level--);
12669 return _res;
12670 }
12671 int _mark = p->mark;
12672 int _resmark = p->mark;
12673 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080012674 int tmpvar_3 = _PyPegen_update_memo(p, _mark, bitwise_xor_type, _res);
12675 if (tmpvar_3) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012676 D(p->level--);
12677 return _res;
12678 }
12679 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070012680 p->in_raw_rule++;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012681 void *_raw = bitwise_xor_raw(p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070012682 p->in_raw_rule--;
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020012683 if (p->error_indicator)
12684 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012685 if (_raw == NULL || p->mark <= _resmark)
12686 break;
12687 _resmark = p->mark;
12688 _res = _raw;
12689 }
12690 p->mark = _resmark;
12691 D(p->level--);
12692 return _res;
12693}
12694static expr_ty
12695bitwise_xor_raw(Parser *p)
12696{
12697 D(p->level++);
12698 if (p->error_indicator) {
12699 D(p->level--);
12700 return NULL;
12701 }
12702 expr_ty _res = NULL;
12703 int _mark = p->mark;
12704 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12705 p->error_indicator = 1;
12706 D(p->level--);
12707 return NULL;
12708 }
12709 int _start_lineno = p->tokens[_mark]->lineno;
12710 UNUSED(_start_lineno); // Only used by EXTRA macro
12711 int _start_col_offset = p->tokens[_mark]->col_offset;
12712 UNUSED(_start_col_offset); // Only used by EXTRA macro
12713 { // bitwise_xor '^' bitwise_and
12714 if (p->error_indicator) {
12715 D(p->level--);
12716 return NULL;
12717 }
12718 D(fprintf(stderr, "%*c> bitwise_xor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_xor '^' bitwise_and"));
12719 Token * _literal;
12720 expr_ty a;
12721 expr_ty b;
12722 if (
12723 (a = bitwise_xor_rule(p)) // bitwise_xor
12724 &&
12725 (_literal = _PyPegen_expect_token(p, 32)) // token='^'
12726 &&
12727 (b = bitwise_and_rule(p)) // bitwise_and
12728 )
12729 {
12730 D(fprintf(stderr, "%*c+ bitwise_xor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_xor '^' bitwise_and"));
12731 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12732 if (_token == NULL) {
12733 D(p->level--);
12734 return NULL;
12735 }
12736 int _end_lineno = _token->end_lineno;
12737 UNUSED(_end_lineno); // Only used by EXTRA macro
12738 int _end_col_offset = _token->end_col_offset;
12739 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020012740 _res = _PyAST_BinOp ( a , BitXor , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012741 if (_res == NULL && PyErr_Occurred()) {
12742 p->error_indicator = 1;
12743 D(p->level--);
12744 return NULL;
12745 }
12746 goto done;
12747 }
12748 p->mark = _mark;
12749 D(fprintf(stderr, "%*c%s bitwise_xor[%d-%d]: %s failed!\n", p->level, ' ',
12750 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_xor '^' bitwise_and"));
12751 }
12752 { // bitwise_and
12753 if (p->error_indicator) {
12754 D(p->level--);
12755 return NULL;
12756 }
12757 D(fprintf(stderr, "%*c> bitwise_xor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_and"));
12758 expr_ty bitwise_and_var;
12759 if (
12760 (bitwise_and_var = bitwise_and_rule(p)) // bitwise_and
12761 )
12762 {
12763 D(fprintf(stderr, "%*c+ bitwise_xor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_and"));
12764 _res = bitwise_and_var;
12765 goto done;
12766 }
12767 p->mark = _mark;
12768 D(fprintf(stderr, "%*c%s bitwise_xor[%d-%d]: %s failed!\n", p->level, ' ',
12769 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_and"));
12770 }
12771 _res = NULL;
12772 done:
12773 D(p->level--);
12774 return _res;
12775}
12776
12777// Left-recursive
12778// bitwise_and: bitwise_and '&' shift_expr | shift_expr
12779static expr_ty bitwise_and_raw(Parser *);
12780static expr_ty
12781bitwise_and_rule(Parser *p)
12782{
12783 D(p->level++);
12784 expr_ty _res = NULL;
12785 if (_PyPegen_is_memoized(p, bitwise_and_type, &_res)) {
12786 D(p->level--);
12787 return _res;
12788 }
12789 int _mark = p->mark;
12790 int _resmark = p->mark;
12791 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080012792 int tmpvar_4 = _PyPegen_update_memo(p, _mark, bitwise_and_type, _res);
12793 if (tmpvar_4) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012794 D(p->level--);
12795 return _res;
12796 }
12797 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070012798 p->in_raw_rule++;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012799 void *_raw = bitwise_and_raw(p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070012800 p->in_raw_rule--;
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020012801 if (p->error_indicator)
12802 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012803 if (_raw == NULL || p->mark <= _resmark)
12804 break;
12805 _resmark = p->mark;
12806 _res = _raw;
12807 }
12808 p->mark = _resmark;
12809 D(p->level--);
12810 return _res;
12811}
12812static expr_ty
12813bitwise_and_raw(Parser *p)
12814{
12815 D(p->level++);
12816 if (p->error_indicator) {
12817 D(p->level--);
12818 return NULL;
12819 }
12820 expr_ty _res = NULL;
12821 int _mark = p->mark;
12822 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12823 p->error_indicator = 1;
12824 D(p->level--);
12825 return NULL;
12826 }
12827 int _start_lineno = p->tokens[_mark]->lineno;
12828 UNUSED(_start_lineno); // Only used by EXTRA macro
12829 int _start_col_offset = p->tokens[_mark]->col_offset;
12830 UNUSED(_start_col_offset); // Only used by EXTRA macro
12831 { // bitwise_and '&' shift_expr
12832 if (p->error_indicator) {
12833 D(p->level--);
12834 return NULL;
12835 }
12836 D(fprintf(stderr, "%*c> bitwise_and[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_and '&' shift_expr"));
12837 Token * _literal;
12838 expr_ty a;
12839 expr_ty b;
12840 if (
12841 (a = bitwise_and_rule(p)) // bitwise_and
12842 &&
12843 (_literal = _PyPegen_expect_token(p, 19)) // token='&'
12844 &&
12845 (b = shift_expr_rule(p)) // shift_expr
12846 )
12847 {
12848 D(fprintf(stderr, "%*c+ bitwise_and[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_and '&' shift_expr"));
12849 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12850 if (_token == NULL) {
12851 D(p->level--);
12852 return NULL;
12853 }
12854 int _end_lineno = _token->end_lineno;
12855 UNUSED(_end_lineno); // Only used by EXTRA macro
12856 int _end_col_offset = _token->end_col_offset;
12857 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020012858 _res = _PyAST_BinOp ( a , BitAnd , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012859 if (_res == NULL && PyErr_Occurred()) {
12860 p->error_indicator = 1;
12861 D(p->level--);
12862 return NULL;
12863 }
12864 goto done;
12865 }
12866 p->mark = _mark;
12867 D(fprintf(stderr, "%*c%s bitwise_and[%d-%d]: %s failed!\n", p->level, ' ',
12868 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_and '&' shift_expr"));
12869 }
12870 { // shift_expr
12871 if (p->error_indicator) {
12872 D(p->level--);
12873 return NULL;
12874 }
12875 D(fprintf(stderr, "%*c> bitwise_and[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "shift_expr"));
12876 expr_ty shift_expr_var;
12877 if (
12878 (shift_expr_var = shift_expr_rule(p)) // shift_expr
12879 )
12880 {
12881 D(fprintf(stderr, "%*c+ bitwise_and[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "shift_expr"));
12882 _res = shift_expr_var;
12883 goto done;
12884 }
12885 p->mark = _mark;
12886 D(fprintf(stderr, "%*c%s bitwise_and[%d-%d]: %s failed!\n", p->level, ' ',
12887 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "shift_expr"));
12888 }
12889 _res = NULL;
12890 done:
12891 D(p->level--);
12892 return _res;
12893}
12894
12895// Left-recursive
12896// shift_expr: shift_expr '<<' sum | shift_expr '>>' sum | sum
12897static expr_ty shift_expr_raw(Parser *);
12898static expr_ty
12899shift_expr_rule(Parser *p)
12900{
12901 D(p->level++);
12902 expr_ty _res = NULL;
12903 if (_PyPegen_is_memoized(p, shift_expr_type, &_res)) {
12904 D(p->level--);
12905 return _res;
12906 }
12907 int _mark = p->mark;
12908 int _resmark = p->mark;
12909 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080012910 int tmpvar_5 = _PyPegen_update_memo(p, _mark, shift_expr_type, _res);
12911 if (tmpvar_5) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012912 D(p->level--);
12913 return _res;
12914 }
12915 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070012916 p->in_raw_rule++;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012917 void *_raw = shift_expr_raw(p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070012918 p->in_raw_rule--;
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020012919 if (p->error_indicator)
12920 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012921 if (_raw == NULL || p->mark <= _resmark)
12922 break;
12923 _resmark = p->mark;
12924 _res = _raw;
12925 }
12926 p->mark = _resmark;
12927 D(p->level--);
12928 return _res;
12929}
12930static expr_ty
12931shift_expr_raw(Parser *p)
12932{
12933 D(p->level++);
12934 if (p->error_indicator) {
12935 D(p->level--);
12936 return NULL;
12937 }
12938 expr_ty _res = NULL;
12939 int _mark = p->mark;
12940 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12941 p->error_indicator = 1;
12942 D(p->level--);
12943 return NULL;
12944 }
12945 int _start_lineno = p->tokens[_mark]->lineno;
12946 UNUSED(_start_lineno); // Only used by EXTRA macro
12947 int _start_col_offset = p->tokens[_mark]->col_offset;
12948 UNUSED(_start_col_offset); // Only used by EXTRA macro
12949 { // shift_expr '<<' sum
12950 if (p->error_indicator) {
12951 D(p->level--);
12952 return NULL;
12953 }
12954 D(fprintf(stderr, "%*c> shift_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "shift_expr '<<' sum"));
12955 Token * _literal;
12956 expr_ty a;
12957 expr_ty b;
12958 if (
12959 (a = shift_expr_rule(p)) // shift_expr
12960 &&
12961 (_literal = _PyPegen_expect_token(p, 33)) // token='<<'
12962 &&
12963 (b = sum_rule(p)) // sum
12964 )
12965 {
12966 D(fprintf(stderr, "%*c+ shift_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "shift_expr '<<' sum"));
12967 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12968 if (_token == NULL) {
12969 D(p->level--);
12970 return NULL;
12971 }
12972 int _end_lineno = _token->end_lineno;
12973 UNUSED(_end_lineno); // Only used by EXTRA macro
12974 int _end_col_offset = _token->end_col_offset;
12975 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020012976 _res = _PyAST_BinOp ( a , LShift , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012977 if (_res == NULL && PyErr_Occurred()) {
12978 p->error_indicator = 1;
12979 D(p->level--);
12980 return NULL;
12981 }
12982 goto done;
12983 }
12984 p->mark = _mark;
12985 D(fprintf(stderr, "%*c%s shift_expr[%d-%d]: %s failed!\n", p->level, ' ',
12986 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "shift_expr '<<' sum"));
12987 }
12988 { // shift_expr '>>' sum
12989 if (p->error_indicator) {
12990 D(p->level--);
12991 return NULL;
12992 }
12993 D(fprintf(stderr, "%*c> shift_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "shift_expr '>>' sum"));
12994 Token * _literal;
12995 expr_ty a;
12996 expr_ty b;
12997 if (
12998 (a = shift_expr_rule(p)) // shift_expr
12999 &&
13000 (_literal = _PyPegen_expect_token(p, 34)) // token='>>'
13001 &&
13002 (b = sum_rule(p)) // sum
13003 )
13004 {
13005 D(fprintf(stderr, "%*c+ shift_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "shift_expr '>>' sum"));
13006 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13007 if (_token == NULL) {
13008 D(p->level--);
13009 return NULL;
13010 }
13011 int _end_lineno = _token->end_lineno;
13012 UNUSED(_end_lineno); // Only used by EXTRA macro
13013 int _end_col_offset = _token->end_col_offset;
13014 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013015 _res = _PyAST_BinOp ( a , RShift , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013016 if (_res == NULL && PyErr_Occurred()) {
13017 p->error_indicator = 1;
13018 D(p->level--);
13019 return NULL;
13020 }
13021 goto done;
13022 }
13023 p->mark = _mark;
13024 D(fprintf(stderr, "%*c%s shift_expr[%d-%d]: %s failed!\n", p->level, ' ',
13025 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "shift_expr '>>' sum"));
13026 }
13027 { // sum
13028 if (p->error_indicator) {
13029 D(p->level--);
13030 return NULL;
13031 }
13032 D(fprintf(stderr, "%*c> shift_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "sum"));
13033 expr_ty sum_var;
13034 if (
13035 (sum_var = sum_rule(p)) // sum
13036 )
13037 {
13038 D(fprintf(stderr, "%*c+ shift_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "sum"));
13039 _res = sum_var;
13040 goto done;
13041 }
13042 p->mark = _mark;
13043 D(fprintf(stderr, "%*c%s shift_expr[%d-%d]: %s failed!\n", p->level, ' ',
13044 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "sum"));
13045 }
13046 _res = NULL;
13047 done:
13048 D(p->level--);
13049 return _res;
13050}
13051
13052// Left-recursive
13053// sum: sum '+' term | sum '-' term | term
13054static expr_ty sum_raw(Parser *);
13055static expr_ty
13056sum_rule(Parser *p)
13057{
13058 D(p->level++);
13059 expr_ty _res = NULL;
13060 if (_PyPegen_is_memoized(p, sum_type, &_res)) {
13061 D(p->level--);
13062 return _res;
13063 }
13064 int _mark = p->mark;
13065 int _resmark = p->mark;
13066 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080013067 int tmpvar_6 = _PyPegen_update_memo(p, _mark, sum_type, _res);
13068 if (tmpvar_6) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013069 D(p->level--);
13070 return _res;
13071 }
13072 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070013073 p->in_raw_rule++;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013074 void *_raw = sum_raw(p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070013075 p->in_raw_rule--;
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020013076 if (p->error_indicator)
13077 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013078 if (_raw == NULL || p->mark <= _resmark)
13079 break;
13080 _resmark = p->mark;
13081 _res = _raw;
13082 }
13083 p->mark = _resmark;
13084 D(p->level--);
13085 return _res;
13086}
13087static expr_ty
13088sum_raw(Parser *p)
13089{
13090 D(p->level++);
13091 if (p->error_indicator) {
13092 D(p->level--);
13093 return NULL;
13094 }
13095 expr_ty _res = NULL;
13096 int _mark = p->mark;
13097 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13098 p->error_indicator = 1;
13099 D(p->level--);
13100 return NULL;
13101 }
13102 int _start_lineno = p->tokens[_mark]->lineno;
13103 UNUSED(_start_lineno); // Only used by EXTRA macro
13104 int _start_col_offset = p->tokens[_mark]->col_offset;
13105 UNUSED(_start_col_offset); // Only used by EXTRA macro
13106 { // sum '+' term
13107 if (p->error_indicator) {
13108 D(p->level--);
13109 return NULL;
13110 }
13111 D(fprintf(stderr, "%*c> sum[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "sum '+' term"));
13112 Token * _literal;
13113 expr_ty a;
13114 expr_ty b;
13115 if (
13116 (a = sum_rule(p)) // sum
13117 &&
13118 (_literal = _PyPegen_expect_token(p, 14)) // token='+'
13119 &&
13120 (b = term_rule(p)) // term
13121 )
13122 {
13123 D(fprintf(stderr, "%*c+ sum[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "sum '+' term"));
13124 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13125 if (_token == NULL) {
13126 D(p->level--);
13127 return NULL;
13128 }
13129 int _end_lineno = _token->end_lineno;
13130 UNUSED(_end_lineno); // Only used by EXTRA macro
13131 int _end_col_offset = _token->end_col_offset;
13132 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013133 _res = _PyAST_BinOp ( a , Add , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013134 if (_res == NULL && PyErr_Occurred()) {
13135 p->error_indicator = 1;
13136 D(p->level--);
13137 return NULL;
13138 }
13139 goto done;
13140 }
13141 p->mark = _mark;
13142 D(fprintf(stderr, "%*c%s sum[%d-%d]: %s failed!\n", p->level, ' ',
13143 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "sum '+' term"));
13144 }
13145 { // sum '-' term
13146 if (p->error_indicator) {
13147 D(p->level--);
13148 return NULL;
13149 }
13150 D(fprintf(stderr, "%*c> sum[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "sum '-' term"));
13151 Token * _literal;
13152 expr_ty a;
13153 expr_ty b;
13154 if (
13155 (a = sum_rule(p)) // sum
13156 &&
13157 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
13158 &&
13159 (b = term_rule(p)) // term
13160 )
13161 {
13162 D(fprintf(stderr, "%*c+ sum[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "sum '-' term"));
13163 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13164 if (_token == NULL) {
13165 D(p->level--);
13166 return NULL;
13167 }
13168 int _end_lineno = _token->end_lineno;
13169 UNUSED(_end_lineno); // Only used by EXTRA macro
13170 int _end_col_offset = _token->end_col_offset;
13171 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013172 _res = _PyAST_BinOp ( a , Sub , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013173 if (_res == NULL && PyErr_Occurred()) {
13174 p->error_indicator = 1;
13175 D(p->level--);
13176 return NULL;
13177 }
13178 goto done;
13179 }
13180 p->mark = _mark;
13181 D(fprintf(stderr, "%*c%s sum[%d-%d]: %s failed!\n", p->level, ' ',
13182 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "sum '-' term"));
13183 }
13184 { // term
13185 if (p->error_indicator) {
13186 D(p->level--);
13187 return NULL;
13188 }
13189 D(fprintf(stderr, "%*c> sum[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term"));
13190 expr_ty term_var;
13191 if (
13192 (term_var = term_rule(p)) // term
13193 )
13194 {
13195 D(fprintf(stderr, "%*c+ sum[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term"));
13196 _res = term_var;
13197 goto done;
13198 }
13199 p->mark = _mark;
13200 D(fprintf(stderr, "%*c%s sum[%d-%d]: %s failed!\n", p->level, ' ',
13201 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term"));
13202 }
13203 _res = NULL;
13204 done:
13205 D(p->level--);
13206 return _res;
13207}
13208
13209// Left-recursive
13210// term:
13211// | term '*' factor
13212// | term '/' factor
13213// | term '//' factor
13214// | term '%' factor
13215// | term '@' factor
13216// | factor
13217static expr_ty term_raw(Parser *);
13218static expr_ty
13219term_rule(Parser *p)
13220{
13221 D(p->level++);
13222 expr_ty _res = NULL;
13223 if (_PyPegen_is_memoized(p, term_type, &_res)) {
13224 D(p->level--);
13225 return _res;
13226 }
13227 int _mark = p->mark;
13228 int _resmark = p->mark;
13229 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080013230 int tmpvar_7 = _PyPegen_update_memo(p, _mark, term_type, _res);
13231 if (tmpvar_7) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013232 D(p->level--);
13233 return _res;
13234 }
13235 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070013236 p->in_raw_rule++;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013237 void *_raw = term_raw(p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070013238 p->in_raw_rule--;
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020013239 if (p->error_indicator)
13240 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013241 if (_raw == NULL || p->mark <= _resmark)
13242 break;
13243 _resmark = p->mark;
13244 _res = _raw;
13245 }
13246 p->mark = _resmark;
13247 D(p->level--);
13248 return _res;
13249}
13250static expr_ty
13251term_raw(Parser *p)
13252{
13253 D(p->level++);
13254 if (p->error_indicator) {
13255 D(p->level--);
13256 return NULL;
13257 }
13258 expr_ty _res = NULL;
13259 int _mark = p->mark;
13260 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13261 p->error_indicator = 1;
13262 D(p->level--);
13263 return NULL;
13264 }
13265 int _start_lineno = p->tokens[_mark]->lineno;
13266 UNUSED(_start_lineno); // Only used by EXTRA macro
13267 int _start_col_offset = p->tokens[_mark]->col_offset;
13268 UNUSED(_start_col_offset); // Only used by EXTRA macro
13269 { // term '*' factor
13270 if (p->error_indicator) {
13271 D(p->level--);
13272 return NULL;
13273 }
13274 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '*' factor"));
13275 Token * _literal;
13276 expr_ty a;
13277 expr_ty b;
13278 if (
13279 (a = term_rule(p)) // term
13280 &&
13281 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
13282 &&
13283 (b = factor_rule(p)) // factor
13284 )
13285 {
13286 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '*' factor"));
13287 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13288 if (_token == NULL) {
13289 D(p->level--);
13290 return NULL;
13291 }
13292 int _end_lineno = _token->end_lineno;
13293 UNUSED(_end_lineno); // Only used by EXTRA macro
13294 int _end_col_offset = _token->end_col_offset;
13295 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013296 _res = _PyAST_BinOp ( a , Mult , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013297 if (_res == NULL && PyErr_Occurred()) {
13298 p->error_indicator = 1;
13299 D(p->level--);
13300 return NULL;
13301 }
13302 goto done;
13303 }
13304 p->mark = _mark;
13305 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
13306 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '*' factor"));
13307 }
13308 { // term '/' factor
13309 if (p->error_indicator) {
13310 D(p->level--);
13311 return NULL;
13312 }
13313 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '/' factor"));
13314 Token * _literal;
13315 expr_ty a;
13316 expr_ty b;
13317 if (
13318 (a = term_rule(p)) // term
13319 &&
13320 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
13321 &&
13322 (b = factor_rule(p)) // factor
13323 )
13324 {
13325 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '/' factor"));
13326 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13327 if (_token == NULL) {
13328 D(p->level--);
13329 return NULL;
13330 }
13331 int _end_lineno = _token->end_lineno;
13332 UNUSED(_end_lineno); // Only used by EXTRA macro
13333 int _end_col_offset = _token->end_col_offset;
13334 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013335 _res = _PyAST_BinOp ( a , Div , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013336 if (_res == NULL && PyErr_Occurred()) {
13337 p->error_indicator = 1;
13338 D(p->level--);
13339 return NULL;
13340 }
13341 goto done;
13342 }
13343 p->mark = _mark;
13344 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
13345 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '/' factor"));
13346 }
13347 { // term '//' factor
13348 if (p->error_indicator) {
13349 D(p->level--);
13350 return NULL;
13351 }
13352 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '//' factor"));
13353 Token * _literal;
13354 expr_ty a;
13355 expr_ty b;
13356 if (
13357 (a = term_rule(p)) // term
13358 &&
13359 (_literal = _PyPegen_expect_token(p, 47)) // token='//'
13360 &&
13361 (b = factor_rule(p)) // factor
13362 )
13363 {
13364 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '//' factor"));
13365 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13366 if (_token == NULL) {
13367 D(p->level--);
13368 return NULL;
13369 }
13370 int _end_lineno = _token->end_lineno;
13371 UNUSED(_end_lineno); // Only used by EXTRA macro
13372 int _end_col_offset = _token->end_col_offset;
13373 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013374 _res = _PyAST_BinOp ( a , FloorDiv , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013375 if (_res == NULL && PyErr_Occurred()) {
13376 p->error_indicator = 1;
13377 D(p->level--);
13378 return NULL;
13379 }
13380 goto done;
13381 }
13382 p->mark = _mark;
13383 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
13384 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '//' factor"));
13385 }
13386 { // term '%' factor
13387 if (p->error_indicator) {
13388 D(p->level--);
13389 return NULL;
13390 }
13391 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '%' factor"));
13392 Token * _literal;
13393 expr_ty a;
13394 expr_ty b;
13395 if (
13396 (a = term_rule(p)) // term
13397 &&
13398 (_literal = _PyPegen_expect_token(p, 24)) // token='%'
13399 &&
13400 (b = factor_rule(p)) // factor
13401 )
13402 {
13403 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '%' factor"));
13404 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13405 if (_token == NULL) {
13406 D(p->level--);
13407 return NULL;
13408 }
13409 int _end_lineno = _token->end_lineno;
13410 UNUSED(_end_lineno); // Only used by EXTRA macro
13411 int _end_col_offset = _token->end_col_offset;
13412 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013413 _res = _PyAST_BinOp ( a , Mod , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013414 if (_res == NULL && PyErr_Occurred()) {
13415 p->error_indicator = 1;
13416 D(p->level--);
13417 return NULL;
13418 }
13419 goto done;
13420 }
13421 p->mark = _mark;
13422 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
13423 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '%' factor"));
13424 }
13425 { // term '@' factor
13426 if (p->error_indicator) {
13427 D(p->level--);
13428 return NULL;
13429 }
13430 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '@' factor"));
13431 Token * _literal;
13432 expr_ty a;
13433 expr_ty b;
13434 if (
13435 (a = term_rule(p)) // term
13436 &&
13437 (_literal = _PyPegen_expect_token(p, 49)) // token='@'
13438 &&
13439 (b = factor_rule(p)) // factor
13440 )
13441 {
13442 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '@' factor"));
13443 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13444 if (_token == NULL) {
13445 D(p->level--);
13446 return NULL;
13447 }
13448 int _end_lineno = _token->end_lineno;
13449 UNUSED(_end_lineno); // Only used by EXTRA macro
13450 int _end_col_offset = _token->end_col_offset;
13451 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013452 _res = CHECK_VERSION ( expr_ty , 5 , "The '@' operator is" , _PyAST_BinOp ( a , MatMult , b , EXTRA ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013453 if (_res == NULL && PyErr_Occurred()) {
13454 p->error_indicator = 1;
13455 D(p->level--);
13456 return NULL;
13457 }
13458 goto done;
13459 }
13460 p->mark = _mark;
13461 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
13462 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '@' factor"));
13463 }
13464 { // factor
13465 if (p->error_indicator) {
13466 D(p->level--);
13467 return NULL;
13468 }
13469 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "factor"));
13470 expr_ty factor_var;
13471 if (
13472 (factor_var = factor_rule(p)) // factor
13473 )
13474 {
13475 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "factor"));
13476 _res = factor_var;
13477 goto done;
13478 }
13479 p->mark = _mark;
13480 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
13481 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "factor"));
13482 }
13483 _res = NULL;
13484 done:
13485 D(p->level--);
13486 return _res;
13487}
13488
13489// factor: '+' factor | '-' factor | '~' factor | power
13490static expr_ty
13491factor_rule(Parser *p)
13492{
13493 D(p->level++);
13494 if (p->error_indicator) {
13495 D(p->level--);
13496 return NULL;
13497 }
13498 expr_ty _res = NULL;
13499 if (_PyPegen_is_memoized(p, factor_type, &_res)) {
13500 D(p->level--);
13501 return _res;
13502 }
13503 int _mark = p->mark;
13504 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13505 p->error_indicator = 1;
13506 D(p->level--);
13507 return NULL;
13508 }
13509 int _start_lineno = p->tokens[_mark]->lineno;
13510 UNUSED(_start_lineno); // Only used by EXTRA macro
13511 int _start_col_offset = p->tokens[_mark]->col_offset;
13512 UNUSED(_start_col_offset); // Only used by EXTRA macro
13513 { // '+' factor
13514 if (p->error_indicator) {
13515 D(p->level--);
13516 return NULL;
13517 }
13518 D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'+' factor"));
13519 Token * _literal;
13520 expr_ty a;
13521 if (
13522 (_literal = _PyPegen_expect_token(p, 14)) // token='+'
13523 &&
13524 (a = factor_rule(p)) // factor
13525 )
13526 {
13527 D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'+' factor"));
13528 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13529 if (_token == NULL) {
13530 D(p->level--);
13531 return NULL;
13532 }
13533 int _end_lineno = _token->end_lineno;
13534 UNUSED(_end_lineno); // Only used by EXTRA macro
13535 int _end_col_offset = _token->end_col_offset;
13536 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013537 _res = _PyAST_UnaryOp ( UAdd , a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013538 if (_res == NULL && PyErr_Occurred()) {
13539 p->error_indicator = 1;
13540 D(p->level--);
13541 return NULL;
13542 }
13543 goto done;
13544 }
13545 p->mark = _mark;
13546 D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
13547 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'+' factor"));
13548 }
13549 { // '-' factor
13550 if (p->error_indicator) {
13551 D(p->level--);
13552 return NULL;
13553 }
13554 D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-' factor"));
13555 Token * _literal;
13556 expr_ty a;
13557 if (
13558 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
13559 &&
13560 (a = factor_rule(p)) // factor
13561 )
13562 {
13563 D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-' factor"));
13564 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13565 if (_token == NULL) {
13566 D(p->level--);
13567 return NULL;
13568 }
13569 int _end_lineno = _token->end_lineno;
13570 UNUSED(_end_lineno); // Only used by EXTRA macro
13571 int _end_col_offset = _token->end_col_offset;
13572 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013573 _res = _PyAST_UnaryOp ( USub , a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013574 if (_res == NULL && PyErr_Occurred()) {
13575 p->error_indicator = 1;
13576 D(p->level--);
13577 return NULL;
13578 }
13579 goto done;
13580 }
13581 p->mark = _mark;
13582 D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
13583 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-' factor"));
13584 }
13585 { // '~' factor
13586 if (p->error_indicator) {
13587 D(p->level--);
13588 return NULL;
13589 }
13590 D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'~' factor"));
13591 Token * _literal;
13592 expr_ty a;
13593 if (
13594 (_literal = _PyPegen_expect_token(p, 31)) // token='~'
13595 &&
13596 (a = factor_rule(p)) // factor
13597 )
13598 {
13599 D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'~' factor"));
13600 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13601 if (_token == NULL) {
13602 D(p->level--);
13603 return NULL;
13604 }
13605 int _end_lineno = _token->end_lineno;
13606 UNUSED(_end_lineno); // Only used by EXTRA macro
13607 int _end_col_offset = _token->end_col_offset;
13608 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013609 _res = _PyAST_UnaryOp ( Invert , a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013610 if (_res == NULL && PyErr_Occurred()) {
13611 p->error_indicator = 1;
13612 D(p->level--);
13613 return NULL;
13614 }
13615 goto done;
13616 }
13617 p->mark = _mark;
13618 D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
13619 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'~' factor"));
13620 }
13621 { // power
13622 if (p->error_indicator) {
13623 D(p->level--);
13624 return NULL;
13625 }
13626 D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "power"));
13627 expr_ty power_var;
13628 if (
13629 (power_var = power_rule(p)) // power
13630 )
13631 {
13632 D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "power"));
13633 _res = power_var;
13634 goto done;
13635 }
13636 p->mark = _mark;
13637 D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
13638 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "power"));
13639 }
13640 _res = NULL;
13641 done:
13642 _PyPegen_insert_memo(p, _mark, factor_type, _res);
13643 D(p->level--);
13644 return _res;
13645}
13646
13647// power: await_primary '**' factor | await_primary
13648static expr_ty
13649power_rule(Parser *p)
13650{
13651 D(p->level++);
13652 if (p->error_indicator) {
13653 D(p->level--);
13654 return NULL;
13655 }
13656 expr_ty _res = NULL;
13657 int _mark = p->mark;
13658 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13659 p->error_indicator = 1;
13660 D(p->level--);
13661 return NULL;
13662 }
13663 int _start_lineno = p->tokens[_mark]->lineno;
13664 UNUSED(_start_lineno); // Only used by EXTRA macro
13665 int _start_col_offset = p->tokens[_mark]->col_offset;
13666 UNUSED(_start_col_offset); // Only used by EXTRA macro
13667 { // await_primary '**' factor
13668 if (p->error_indicator) {
13669 D(p->level--);
13670 return NULL;
13671 }
13672 D(fprintf(stderr, "%*c> power[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "await_primary '**' factor"));
13673 Token * _literal;
13674 expr_ty a;
13675 expr_ty b;
13676 if (
13677 (a = await_primary_rule(p)) // await_primary
13678 &&
13679 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
13680 &&
13681 (b = factor_rule(p)) // factor
13682 )
13683 {
13684 D(fprintf(stderr, "%*c+ power[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "await_primary '**' factor"));
13685 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13686 if (_token == NULL) {
13687 D(p->level--);
13688 return NULL;
13689 }
13690 int _end_lineno = _token->end_lineno;
13691 UNUSED(_end_lineno); // Only used by EXTRA macro
13692 int _end_col_offset = _token->end_col_offset;
13693 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013694 _res = _PyAST_BinOp ( a , Pow , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013695 if (_res == NULL && PyErr_Occurred()) {
13696 p->error_indicator = 1;
13697 D(p->level--);
13698 return NULL;
13699 }
13700 goto done;
13701 }
13702 p->mark = _mark;
13703 D(fprintf(stderr, "%*c%s power[%d-%d]: %s failed!\n", p->level, ' ',
13704 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "await_primary '**' factor"));
13705 }
13706 { // await_primary
13707 if (p->error_indicator) {
13708 D(p->level--);
13709 return NULL;
13710 }
13711 D(fprintf(stderr, "%*c> power[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "await_primary"));
13712 expr_ty await_primary_var;
13713 if (
13714 (await_primary_var = await_primary_rule(p)) // await_primary
13715 )
13716 {
13717 D(fprintf(stderr, "%*c+ power[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "await_primary"));
13718 _res = await_primary_var;
13719 goto done;
13720 }
13721 p->mark = _mark;
13722 D(fprintf(stderr, "%*c%s power[%d-%d]: %s failed!\n", p->level, ' ',
13723 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "await_primary"));
13724 }
13725 _res = NULL;
13726 done:
13727 D(p->level--);
13728 return _res;
13729}
13730
13731// await_primary: AWAIT primary | primary
13732static expr_ty
13733await_primary_rule(Parser *p)
13734{
13735 D(p->level++);
13736 if (p->error_indicator) {
13737 D(p->level--);
13738 return NULL;
13739 }
13740 expr_ty _res = NULL;
13741 if (_PyPegen_is_memoized(p, await_primary_type, &_res)) {
13742 D(p->level--);
13743 return _res;
13744 }
13745 int _mark = p->mark;
13746 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13747 p->error_indicator = 1;
13748 D(p->level--);
13749 return NULL;
13750 }
13751 int _start_lineno = p->tokens[_mark]->lineno;
13752 UNUSED(_start_lineno); // Only used by EXTRA macro
13753 int _start_col_offset = p->tokens[_mark]->col_offset;
13754 UNUSED(_start_col_offset); // Only used by EXTRA macro
13755 { // AWAIT primary
13756 if (p->error_indicator) {
13757 D(p->level--);
13758 return NULL;
13759 }
13760 D(fprintf(stderr, "%*c> await_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "AWAIT primary"));
13761 expr_ty a;
13762 Token * await_var;
13763 if (
13764 (await_var = _PyPegen_expect_token(p, AWAIT)) // token='AWAIT'
13765 &&
13766 (a = primary_rule(p)) // primary
13767 )
13768 {
13769 D(fprintf(stderr, "%*c+ await_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "AWAIT primary"));
13770 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13771 if (_token == NULL) {
13772 D(p->level--);
13773 return NULL;
13774 }
13775 int _end_lineno = _token->end_lineno;
13776 UNUSED(_end_lineno); // Only used by EXTRA macro
13777 int _end_col_offset = _token->end_col_offset;
13778 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013779 _res = CHECK_VERSION ( expr_ty , 5 , "Await expressions are" , _PyAST_Await ( a , EXTRA ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013780 if (_res == NULL && PyErr_Occurred()) {
13781 p->error_indicator = 1;
13782 D(p->level--);
13783 return NULL;
13784 }
13785 goto done;
13786 }
13787 p->mark = _mark;
13788 D(fprintf(stderr, "%*c%s await_primary[%d-%d]: %s failed!\n", p->level, ' ',
13789 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "AWAIT primary"));
13790 }
13791 { // primary
13792 if (p->error_indicator) {
13793 D(p->level--);
13794 return NULL;
13795 }
13796 D(fprintf(stderr, "%*c> await_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary"));
13797 expr_ty primary_var;
13798 if (
13799 (primary_var = primary_rule(p)) // primary
13800 )
13801 {
13802 D(fprintf(stderr, "%*c+ await_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary"));
13803 _res = primary_var;
13804 goto done;
13805 }
13806 p->mark = _mark;
13807 D(fprintf(stderr, "%*c%s await_primary[%d-%d]: %s failed!\n", p->level, ' ',
13808 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary"));
13809 }
13810 _res = NULL;
13811 done:
13812 _PyPegen_insert_memo(p, _mark, await_primary_type, _res);
13813 D(p->level--);
13814 return _res;
13815}
13816
13817// Left-recursive
13818// primary:
Lysandros Nikolaou15acc4e2020-10-27 20:54:20 +020013819// | invalid_primary
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013820// | primary '.' NAME
13821// | primary genexp
13822// | primary '(' arguments? ')'
13823// | primary '[' slices ']'
13824// | atom
13825static expr_ty primary_raw(Parser *);
13826static expr_ty
13827primary_rule(Parser *p)
13828{
13829 D(p->level++);
13830 expr_ty _res = NULL;
13831 if (_PyPegen_is_memoized(p, primary_type, &_res)) {
13832 D(p->level--);
13833 return _res;
13834 }
13835 int _mark = p->mark;
13836 int _resmark = p->mark;
13837 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080013838 int tmpvar_8 = _PyPegen_update_memo(p, _mark, primary_type, _res);
13839 if (tmpvar_8) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013840 D(p->level--);
13841 return _res;
13842 }
13843 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070013844 p->in_raw_rule++;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013845 void *_raw = primary_raw(p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070013846 p->in_raw_rule--;
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020013847 if (p->error_indicator)
13848 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013849 if (_raw == NULL || p->mark <= _resmark)
13850 break;
13851 _resmark = p->mark;
13852 _res = _raw;
13853 }
13854 p->mark = _resmark;
13855 D(p->level--);
13856 return _res;
13857}
13858static expr_ty
13859primary_raw(Parser *p)
13860{
13861 D(p->level++);
13862 if (p->error_indicator) {
13863 D(p->level--);
13864 return NULL;
13865 }
13866 expr_ty _res = NULL;
13867 int _mark = p->mark;
13868 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13869 p->error_indicator = 1;
13870 D(p->level--);
13871 return NULL;
13872 }
13873 int _start_lineno = p->tokens[_mark]->lineno;
13874 UNUSED(_start_lineno); // Only used by EXTRA macro
13875 int _start_col_offset = p->tokens[_mark]->col_offset;
13876 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou15acc4e2020-10-27 20:54:20 +020013877 if (p->call_invalid_rules) { // invalid_primary
13878 if (p->error_indicator) {
13879 D(p->level--);
13880 return NULL;
13881 }
13882 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_primary"));
13883 void *invalid_primary_var;
13884 if (
13885 (invalid_primary_var = invalid_primary_rule(p)) // invalid_primary
13886 )
13887 {
13888 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_primary"));
13889 _res = invalid_primary_var;
13890 goto done;
13891 }
13892 p->mark = _mark;
13893 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
13894 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_primary"));
13895 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013896 { // primary '.' NAME
13897 if (p->error_indicator) {
13898 D(p->level--);
13899 return NULL;
13900 }
13901 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '.' NAME"));
13902 Token * _literal;
13903 expr_ty a;
13904 expr_ty b;
13905 if (
13906 (a = primary_rule(p)) // primary
13907 &&
13908 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
13909 &&
13910 (b = _PyPegen_name_token(p)) // NAME
13911 )
13912 {
13913 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '.' NAME"));
13914 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13915 if (_token == NULL) {
13916 D(p->level--);
13917 return NULL;
13918 }
13919 int _end_lineno = _token->end_lineno;
13920 UNUSED(_end_lineno); // Only used by EXTRA macro
13921 int _end_col_offset = _token->end_col_offset;
13922 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013923 _res = _PyAST_Attribute ( a , b -> v . Name . id , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013924 if (_res == NULL && PyErr_Occurred()) {
13925 p->error_indicator = 1;
13926 D(p->level--);
13927 return NULL;
13928 }
13929 goto done;
13930 }
13931 p->mark = _mark;
13932 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
13933 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '.' NAME"));
13934 }
13935 { // primary genexp
13936 if (p->error_indicator) {
13937 D(p->level--);
13938 return NULL;
13939 }
13940 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary genexp"));
13941 expr_ty a;
13942 expr_ty b;
13943 if (
13944 (a = primary_rule(p)) // primary
13945 &&
13946 (b = genexp_rule(p)) // genexp
13947 )
13948 {
13949 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary genexp"));
13950 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13951 if (_token == NULL) {
13952 D(p->level--);
13953 return NULL;
13954 }
13955 int _end_lineno = _token->end_lineno;
13956 UNUSED(_end_lineno); // Only used by EXTRA macro
13957 int _end_col_offset = _token->end_col_offset;
13958 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013959 _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 +010013960 if (_res == NULL && PyErr_Occurred()) {
13961 p->error_indicator = 1;
13962 D(p->level--);
13963 return NULL;
13964 }
13965 goto done;
13966 }
13967 p->mark = _mark;
13968 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
13969 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary genexp"));
13970 }
13971 { // primary '(' arguments? ')'
13972 if (p->error_indicator) {
13973 D(p->level--);
13974 return NULL;
13975 }
13976 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '(' arguments? ')'"));
13977 Token * _literal;
13978 Token * _literal_1;
13979 expr_ty a;
13980 void *b;
13981 if (
13982 (a = primary_rule(p)) // primary
13983 &&
13984 (_literal = _PyPegen_expect_token(p, 7)) // token='('
13985 &&
13986 (b = arguments_rule(p), 1) // arguments?
13987 &&
13988 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
13989 )
13990 {
13991 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '(' arguments? ')'"));
13992 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13993 if (_token == NULL) {
13994 D(p->level--);
13995 return NULL;
13996 }
13997 int _end_lineno = _token->end_lineno;
13998 UNUSED(_end_lineno); // Only used by EXTRA macro
13999 int _end_col_offset = _token->end_col_offset;
14000 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014001 _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 +010014002 if (_res == NULL && PyErr_Occurred()) {
14003 p->error_indicator = 1;
14004 D(p->level--);
14005 return NULL;
14006 }
14007 goto done;
14008 }
14009 p->mark = _mark;
14010 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
14011 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '(' arguments? ')'"));
14012 }
14013 { // primary '[' slices ']'
14014 if (p->error_indicator) {
14015 D(p->level--);
14016 return NULL;
14017 }
14018 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '[' slices ']'"));
14019 Token * _literal;
14020 Token * _literal_1;
14021 expr_ty a;
14022 expr_ty b;
14023 if (
14024 (a = primary_rule(p)) // primary
14025 &&
14026 (_literal = _PyPegen_expect_token(p, 9)) // token='['
14027 &&
14028 (b = slices_rule(p)) // slices
14029 &&
14030 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
14031 )
14032 {
14033 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '[' slices ']'"));
14034 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14035 if (_token == NULL) {
14036 D(p->level--);
14037 return NULL;
14038 }
14039 int _end_lineno = _token->end_lineno;
14040 UNUSED(_end_lineno); // Only used by EXTRA macro
14041 int _end_col_offset = _token->end_col_offset;
14042 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014043 _res = _PyAST_Subscript ( a , b , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014044 if (_res == NULL && PyErr_Occurred()) {
14045 p->error_indicator = 1;
14046 D(p->level--);
14047 return NULL;
14048 }
14049 goto done;
14050 }
14051 p->mark = _mark;
14052 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
14053 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '[' slices ']'"));
14054 }
14055 { // atom
14056 if (p->error_indicator) {
14057 D(p->level--);
14058 return NULL;
14059 }
14060 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "atom"));
14061 expr_ty atom_var;
14062 if (
14063 (atom_var = atom_rule(p)) // atom
14064 )
14065 {
14066 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "atom"));
14067 _res = atom_var;
14068 goto done;
14069 }
14070 p->mark = _mark;
14071 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
14072 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "atom"));
14073 }
14074 _res = NULL;
14075 done:
14076 D(p->level--);
14077 return _res;
14078}
14079
14080// slices: slice !',' | ','.slice+ ','?
14081static expr_ty
14082slices_rule(Parser *p)
14083{
14084 D(p->level++);
14085 if (p->error_indicator) {
14086 D(p->level--);
14087 return NULL;
14088 }
14089 expr_ty _res = NULL;
14090 int _mark = p->mark;
14091 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14092 p->error_indicator = 1;
14093 D(p->level--);
14094 return NULL;
14095 }
14096 int _start_lineno = p->tokens[_mark]->lineno;
14097 UNUSED(_start_lineno); // Only used by EXTRA macro
14098 int _start_col_offset = p->tokens[_mark]->col_offset;
14099 UNUSED(_start_col_offset); // Only used by EXTRA macro
14100 { // slice !','
14101 if (p->error_indicator) {
14102 D(p->level--);
14103 return NULL;
14104 }
14105 D(fprintf(stderr, "%*c> slices[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slice !','"));
14106 expr_ty a;
14107 if (
14108 (a = slice_rule(p)) // slice
14109 &&
14110 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 12) // token=','
14111 )
14112 {
14113 D(fprintf(stderr, "%*c+ slices[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slice !','"));
14114 _res = a;
14115 if (_res == NULL && PyErr_Occurred()) {
14116 p->error_indicator = 1;
14117 D(p->level--);
14118 return NULL;
14119 }
14120 goto done;
14121 }
14122 p->mark = _mark;
14123 D(fprintf(stderr, "%*c%s slices[%d-%d]: %s failed!\n", p->level, ' ',
14124 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slice !','"));
14125 }
14126 { // ','.slice+ ','?
14127 if (p->error_indicator) {
14128 D(p->level--);
14129 return NULL;
14130 }
14131 D(fprintf(stderr, "%*c> slices[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.slice+ ','?"));
14132 void *_opt_var;
14133 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +010014134 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014135 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080014136 (a = (asdl_expr_seq*)_gather_108_rule(p)) // ','.slice+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014137 &&
14138 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
14139 )
14140 {
14141 D(fprintf(stderr, "%*c+ slices[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.slice+ ','?"));
14142 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14143 if (_token == NULL) {
14144 D(p->level--);
14145 return NULL;
14146 }
14147 int _end_lineno = _token->end_lineno;
14148 UNUSED(_end_lineno); // Only used by EXTRA macro
14149 int _end_col_offset = _token->end_col_offset;
14150 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014151 _res = _PyAST_Tuple ( a , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014152 if (_res == NULL && PyErr_Occurred()) {
14153 p->error_indicator = 1;
14154 D(p->level--);
14155 return NULL;
14156 }
14157 goto done;
14158 }
14159 p->mark = _mark;
14160 D(fprintf(stderr, "%*c%s slices[%d-%d]: %s failed!\n", p->level, ' ',
14161 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.slice+ ','?"));
14162 }
14163 _res = NULL;
14164 done:
14165 D(p->level--);
14166 return _res;
14167}
14168
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020014169// slice: expression? ':' expression? [':' expression?] | named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014170static expr_ty
14171slice_rule(Parser *p)
14172{
14173 D(p->level++);
14174 if (p->error_indicator) {
14175 D(p->level--);
14176 return NULL;
14177 }
14178 expr_ty _res = NULL;
14179 int _mark = p->mark;
14180 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14181 p->error_indicator = 1;
14182 D(p->level--);
14183 return NULL;
14184 }
14185 int _start_lineno = p->tokens[_mark]->lineno;
14186 UNUSED(_start_lineno); // Only used by EXTRA macro
14187 int _start_col_offset = p->tokens[_mark]->col_offset;
14188 UNUSED(_start_col_offset); // Only used by EXTRA macro
14189 { // expression? ':' expression? [':' expression?]
14190 if (p->error_indicator) {
14191 D(p->level--);
14192 return NULL;
14193 }
14194 D(fprintf(stderr, "%*c> slice[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression? ':' expression? [':' expression?]"));
14195 Token * _literal;
14196 void *a;
14197 void *b;
14198 void *c;
14199 if (
14200 (a = expression_rule(p), 1) // expression?
14201 &&
14202 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
14203 &&
14204 (b = expression_rule(p), 1) // expression?
14205 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080014206 (c = _tmp_110_rule(p), 1) // [':' expression?]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014207 )
14208 {
14209 D(fprintf(stderr, "%*c+ slice[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression? ':' expression? [':' expression?]"));
14210 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14211 if (_token == NULL) {
14212 D(p->level--);
14213 return NULL;
14214 }
14215 int _end_lineno = _token->end_lineno;
14216 UNUSED(_end_lineno); // Only used by EXTRA macro
14217 int _end_col_offset = _token->end_col_offset;
14218 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014219 _res = _PyAST_Slice ( a , b , c , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014220 if (_res == NULL && PyErr_Occurred()) {
14221 p->error_indicator = 1;
14222 D(p->level--);
14223 return NULL;
14224 }
14225 goto done;
14226 }
14227 p->mark = _mark;
14228 D(fprintf(stderr, "%*c%s slice[%d-%d]: %s failed!\n", p->level, ' ',
14229 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression? ':' expression? [':' expression?]"));
14230 }
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020014231 { // named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014232 if (p->error_indicator) {
14233 D(p->level--);
14234 return NULL;
14235 }
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020014236 D(fprintf(stderr, "%*c> slice[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014237 expr_ty a;
14238 if (
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020014239 (a = named_expression_rule(p)) // named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014240 )
14241 {
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020014242 D(fprintf(stderr, "%*c+ slice[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "named_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014243 _res = a;
14244 if (_res == NULL && PyErr_Occurred()) {
14245 p->error_indicator = 1;
14246 D(p->level--);
14247 return NULL;
14248 }
14249 goto done;
14250 }
14251 p->mark = _mark;
14252 D(fprintf(stderr, "%*c%s slice[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020014253 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014254 }
14255 _res = NULL;
14256 done:
14257 D(p->level--);
14258 return _res;
14259}
14260
14261// atom:
14262// | NAME
14263// | 'True'
14264// | 'False'
14265// | 'None'
14266// | &STRING strings
14267// | NUMBER
14268// | &'(' (tuple | group | genexp)
14269// | &'[' (list | listcomp)
14270// | &'{' (dict | set | dictcomp | setcomp)
14271// | '...'
14272static expr_ty
14273atom_rule(Parser *p)
14274{
14275 D(p->level++);
14276 if (p->error_indicator) {
14277 D(p->level--);
14278 return NULL;
14279 }
14280 expr_ty _res = NULL;
14281 int _mark = p->mark;
14282 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14283 p->error_indicator = 1;
14284 D(p->level--);
14285 return NULL;
14286 }
14287 int _start_lineno = p->tokens[_mark]->lineno;
14288 UNUSED(_start_lineno); // Only used by EXTRA macro
14289 int _start_col_offset = p->tokens[_mark]->col_offset;
14290 UNUSED(_start_col_offset); // Only used by EXTRA macro
14291 { // NAME
14292 if (p->error_indicator) {
14293 D(p->level--);
14294 return NULL;
14295 }
14296 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
14297 expr_ty name_var;
14298 if (
14299 (name_var = _PyPegen_name_token(p)) // NAME
14300 )
14301 {
14302 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
14303 _res = name_var;
14304 goto done;
14305 }
14306 p->mark = _mark;
14307 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
14308 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
14309 }
14310 { // 'True'
14311 if (p->error_indicator) {
14312 D(p->level--);
14313 return NULL;
14314 }
14315 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'True'"));
14316 Token * _keyword;
14317 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080014318 (_keyword = _PyPegen_expect_token(p, 524)) // token='True'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014319 )
14320 {
14321 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'"));
14322 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14323 if (_token == NULL) {
14324 D(p->level--);
14325 return NULL;
14326 }
14327 int _end_lineno = _token->end_lineno;
14328 UNUSED(_end_lineno); // Only used by EXTRA macro
14329 int _end_col_offset = _token->end_col_offset;
14330 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014331 _res = _PyAST_Constant ( Py_True , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014332 if (_res == NULL && PyErr_Occurred()) {
14333 p->error_indicator = 1;
14334 D(p->level--);
14335 return NULL;
14336 }
14337 goto done;
14338 }
14339 p->mark = _mark;
14340 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
14341 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'True'"));
14342 }
14343 { // 'False'
14344 if (p->error_indicator) {
14345 D(p->level--);
14346 return NULL;
14347 }
14348 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False'"));
14349 Token * _keyword;
14350 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080014351 (_keyword = _PyPegen_expect_token(p, 525)) // token='False'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014352 )
14353 {
14354 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'"));
14355 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14356 if (_token == NULL) {
14357 D(p->level--);
14358 return NULL;
14359 }
14360 int _end_lineno = _token->end_lineno;
14361 UNUSED(_end_lineno); // Only used by EXTRA macro
14362 int _end_col_offset = _token->end_col_offset;
14363 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014364 _res = _PyAST_Constant ( Py_False , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014365 if (_res == NULL && PyErr_Occurred()) {
14366 p->error_indicator = 1;
14367 D(p->level--);
14368 return NULL;
14369 }
14370 goto done;
14371 }
14372 p->mark = _mark;
14373 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
14374 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'False'"));
14375 }
14376 { // 'None'
14377 if (p->error_indicator) {
14378 D(p->level--);
14379 return NULL;
14380 }
14381 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'None'"));
14382 Token * _keyword;
14383 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080014384 (_keyword = _PyPegen_expect_token(p, 523)) // token='None'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014385 )
14386 {
14387 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'"));
14388 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14389 if (_token == NULL) {
14390 D(p->level--);
14391 return NULL;
14392 }
14393 int _end_lineno = _token->end_lineno;
14394 UNUSED(_end_lineno); // Only used by EXTRA macro
14395 int _end_col_offset = _token->end_col_offset;
14396 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014397 _res = _PyAST_Constant ( Py_None , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014398 if (_res == NULL && PyErr_Occurred()) {
14399 p->error_indicator = 1;
14400 D(p->level--);
14401 return NULL;
14402 }
14403 goto done;
14404 }
14405 p->mark = _mark;
14406 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
14407 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'None'"));
14408 }
14409 { // &STRING strings
14410 if (p->error_indicator) {
14411 D(p->level--);
14412 return NULL;
14413 }
14414 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&STRING strings"));
14415 expr_ty strings_var;
14416 if (
14417 _PyPegen_lookahead(1, _PyPegen_string_token, p)
14418 &&
14419 (strings_var = strings_rule(p)) // strings
14420 )
14421 {
14422 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&STRING strings"));
14423 _res = strings_var;
14424 goto done;
14425 }
14426 p->mark = _mark;
14427 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
14428 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&STRING strings"));
14429 }
14430 { // NUMBER
14431 if (p->error_indicator) {
14432 D(p->level--);
14433 return NULL;
14434 }
14435 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NUMBER"));
14436 expr_ty number_var;
14437 if (
14438 (number_var = _PyPegen_number_token(p)) // NUMBER
14439 )
14440 {
14441 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NUMBER"));
14442 _res = number_var;
14443 goto done;
14444 }
14445 p->mark = _mark;
14446 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
14447 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NUMBER"));
14448 }
14449 { // &'(' (tuple | group | genexp)
14450 if (p->error_indicator) {
14451 D(p->level--);
14452 return NULL;
14453 }
14454 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'(' (tuple | group | genexp)"));
Brandt Bucher145bf262021-02-26 14:51:55 -080014455 void *_tmp_111_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014456 if (
14457 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 7) // token='('
14458 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080014459 (_tmp_111_var = _tmp_111_rule(p)) // tuple | group | genexp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014460 )
14461 {
14462 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 -080014463 _res = _tmp_111_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014464 goto done;
14465 }
14466 p->mark = _mark;
14467 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
14468 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'(' (tuple | group | genexp)"));
14469 }
14470 { // &'[' (list | listcomp)
14471 if (p->error_indicator) {
14472 D(p->level--);
14473 return NULL;
14474 }
14475 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'[' (list | listcomp)"));
Brandt Bucher145bf262021-02-26 14:51:55 -080014476 void *_tmp_112_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014477 if (
14478 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 9) // token='['
14479 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080014480 (_tmp_112_var = _tmp_112_rule(p)) // list | listcomp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014481 )
14482 {
14483 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'[' (list | listcomp)"));
Brandt Bucher145bf262021-02-26 14:51:55 -080014484 _res = _tmp_112_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014485 goto done;
14486 }
14487 p->mark = _mark;
14488 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
14489 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'[' (list | listcomp)"));
14490 }
14491 { // &'{' (dict | set | dictcomp | setcomp)
14492 if (p->error_indicator) {
14493 D(p->level--);
14494 return NULL;
14495 }
14496 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 -080014497 void *_tmp_113_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014498 if (
14499 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 25) // token='{'
14500 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080014501 (_tmp_113_var = _tmp_113_rule(p)) // dict | set | dictcomp | setcomp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014502 )
14503 {
14504 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 -080014505 _res = _tmp_113_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014506 goto done;
14507 }
14508 p->mark = _mark;
14509 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
14510 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'{' (dict | set | dictcomp | setcomp)"));
14511 }
14512 { // '...'
14513 if (p->error_indicator) {
14514 D(p->level--);
14515 return NULL;
14516 }
14517 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'"));
14518 Token * _literal;
14519 if (
14520 (_literal = _PyPegen_expect_token(p, 52)) // token='...'
14521 )
14522 {
14523 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'"));
14524 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14525 if (_token == NULL) {
14526 D(p->level--);
14527 return NULL;
14528 }
14529 int _end_lineno = _token->end_lineno;
14530 UNUSED(_end_lineno); // Only used by EXTRA macro
14531 int _end_col_offset = _token->end_col_offset;
14532 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014533 _res = _PyAST_Constant ( Py_Ellipsis , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014534 if (_res == NULL && PyErr_Occurred()) {
14535 p->error_indicator = 1;
14536 D(p->level--);
14537 return NULL;
14538 }
14539 goto done;
14540 }
14541 p->mark = _mark;
14542 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
14543 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'...'"));
14544 }
14545 _res = NULL;
14546 done:
14547 D(p->level--);
14548 return _res;
14549}
14550
14551// strings: STRING+
14552static expr_ty
14553strings_rule(Parser *p)
14554{
14555 D(p->level++);
14556 if (p->error_indicator) {
14557 D(p->level--);
14558 return NULL;
14559 }
14560 expr_ty _res = NULL;
14561 if (_PyPegen_is_memoized(p, strings_type, &_res)) {
14562 D(p->level--);
14563 return _res;
14564 }
14565 int _mark = p->mark;
14566 { // STRING+
14567 if (p->error_indicator) {
14568 D(p->level--);
14569 return NULL;
14570 }
14571 D(fprintf(stderr, "%*c> strings[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "STRING+"));
14572 asdl_seq * a;
14573 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080014574 (a = _loop1_114_rule(p)) // STRING+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014575 )
14576 {
14577 D(fprintf(stderr, "%*c+ strings[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "STRING+"));
14578 _res = _PyPegen_concatenate_strings ( p , a );
14579 if (_res == NULL && PyErr_Occurred()) {
14580 p->error_indicator = 1;
14581 D(p->level--);
14582 return NULL;
14583 }
14584 goto done;
14585 }
14586 p->mark = _mark;
14587 D(fprintf(stderr, "%*c%s strings[%d-%d]: %s failed!\n", p->level, ' ',
14588 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "STRING+"));
14589 }
14590 _res = NULL;
14591 done:
14592 _PyPegen_insert_memo(p, _mark, strings_type, _res);
14593 D(p->level--);
14594 return _res;
14595}
14596
14597// list: '[' star_named_expressions? ']'
14598static expr_ty
14599list_rule(Parser *p)
14600{
14601 D(p->level++);
14602 if (p->error_indicator) {
14603 D(p->level--);
14604 return NULL;
14605 }
14606 expr_ty _res = NULL;
14607 int _mark = p->mark;
14608 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14609 p->error_indicator = 1;
14610 D(p->level--);
14611 return NULL;
14612 }
14613 int _start_lineno = p->tokens[_mark]->lineno;
14614 UNUSED(_start_lineno); // Only used by EXTRA macro
14615 int _start_col_offset = p->tokens[_mark]->col_offset;
14616 UNUSED(_start_col_offset); // Only used by EXTRA macro
14617 { // '[' star_named_expressions? ']'
14618 if (p->error_indicator) {
14619 D(p->level--);
14620 return NULL;
14621 }
14622 D(fprintf(stderr, "%*c> list[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' star_named_expressions? ']'"));
14623 Token * _literal;
14624 Token * _literal_1;
14625 void *a;
14626 if (
14627 (_literal = _PyPegen_expect_token(p, 9)) // token='['
14628 &&
14629 (a = star_named_expressions_rule(p), 1) // star_named_expressions?
14630 &&
14631 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
14632 )
14633 {
14634 D(fprintf(stderr, "%*c+ list[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'[' star_named_expressions? ']'"));
14635 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14636 if (_token == NULL) {
14637 D(p->level--);
14638 return NULL;
14639 }
14640 int _end_lineno = _token->end_lineno;
14641 UNUSED(_end_lineno); // Only used by EXTRA macro
14642 int _end_col_offset = _token->end_col_offset;
14643 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014644 _res = _PyAST_List ( a , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014645 if (_res == NULL && PyErr_Occurred()) {
14646 p->error_indicator = 1;
14647 D(p->level--);
14648 return NULL;
14649 }
14650 goto done;
14651 }
14652 p->mark = _mark;
14653 D(fprintf(stderr, "%*c%s list[%d-%d]: %s failed!\n", p->level, ' ',
14654 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' star_named_expressions? ']'"));
14655 }
14656 _res = NULL;
14657 done:
14658 D(p->level--);
14659 return _res;
14660}
14661
Pablo Galindo835f14f2021-01-31 22:52:56 +000014662// listcomp: '[' named_expression for_if_clauses ']' | invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014663static expr_ty
14664listcomp_rule(Parser *p)
14665{
14666 D(p->level++);
14667 if (p->error_indicator) {
14668 D(p->level--);
14669 return NULL;
14670 }
14671 expr_ty _res = NULL;
14672 int _mark = p->mark;
14673 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14674 p->error_indicator = 1;
14675 D(p->level--);
14676 return NULL;
14677 }
14678 int _start_lineno = p->tokens[_mark]->lineno;
14679 UNUSED(_start_lineno); // Only used by EXTRA macro
14680 int _start_col_offset = p->tokens[_mark]->col_offset;
14681 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo835f14f2021-01-31 22:52:56 +000014682 { // '[' named_expression for_if_clauses ']'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014683 if (p->error_indicator) {
14684 D(p->level--);
14685 return NULL;
14686 }
Pablo Galindo835f14f2021-01-31 22:52:56 +000014687 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 +010014688 Token * _literal;
14689 Token * _literal_1;
14690 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010014691 asdl_comprehension_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014692 if (
14693 (_literal = _PyPegen_expect_token(p, 9)) // token='['
14694 &&
14695 (a = named_expression_rule(p)) // named_expression
14696 &&
14697 (b = for_if_clauses_rule(p)) // for_if_clauses
14698 &&
14699 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
14700 )
14701 {
Pablo Galindo835f14f2021-01-31 22:52:56 +000014702 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 +010014703 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14704 if (_token == NULL) {
14705 D(p->level--);
14706 return NULL;
14707 }
14708 int _end_lineno = _token->end_lineno;
14709 UNUSED(_end_lineno); // Only used by EXTRA macro
14710 int _end_col_offset = _token->end_col_offset;
14711 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014712 _res = _PyAST_ListComp ( a , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014713 if (_res == NULL && PyErr_Occurred()) {
14714 p->error_indicator = 1;
14715 D(p->level--);
14716 return NULL;
14717 }
14718 goto done;
14719 }
14720 p->mark = _mark;
14721 D(fprintf(stderr, "%*c%s listcomp[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo835f14f2021-01-31 22:52:56 +000014722 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' named_expression for_if_clauses ']'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014723 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014724 if (p->call_invalid_rules) { // invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014725 if (p->error_indicator) {
14726 D(p->level--);
14727 return NULL;
14728 }
14729 D(fprintf(stderr, "%*c> listcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
14730 void *invalid_comprehension_var;
14731 if (
14732 (invalid_comprehension_var = invalid_comprehension_rule(p)) // invalid_comprehension
14733 )
14734 {
14735 D(fprintf(stderr, "%*c+ listcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
14736 _res = invalid_comprehension_var;
14737 goto done;
14738 }
14739 p->mark = _mark;
14740 D(fprintf(stderr, "%*c%s listcomp[%d-%d]: %s failed!\n", p->level, ' ',
14741 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_comprehension"));
14742 }
14743 _res = NULL;
14744 done:
14745 D(p->level--);
14746 return _res;
14747}
14748
14749// tuple: '(' [star_named_expression ',' star_named_expressions?] ')'
14750static expr_ty
14751tuple_rule(Parser *p)
14752{
14753 D(p->level++);
14754 if (p->error_indicator) {
14755 D(p->level--);
14756 return NULL;
14757 }
14758 expr_ty _res = NULL;
14759 int _mark = p->mark;
14760 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14761 p->error_indicator = 1;
14762 D(p->level--);
14763 return NULL;
14764 }
14765 int _start_lineno = p->tokens[_mark]->lineno;
14766 UNUSED(_start_lineno); // Only used by EXTRA macro
14767 int _start_col_offset = p->tokens[_mark]->col_offset;
14768 UNUSED(_start_col_offset); // Only used by EXTRA macro
14769 { // '(' [star_named_expression ',' star_named_expressions?] ')'
14770 if (p->error_indicator) {
14771 D(p->level--);
14772 return NULL;
14773 }
14774 D(fprintf(stderr, "%*c> tuple[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' [star_named_expression ',' star_named_expressions?] ')'"));
14775 Token * _literal;
14776 Token * _literal_1;
14777 void *a;
14778 if (
14779 (_literal = _PyPegen_expect_token(p, 7)) // token='('
14780 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080014781 (a = _tmp_115_rule(p), 1) // [star_named_expression ',' star_named_expressions?]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014782 &&
14783 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
14784 )
14785 {
14786 D(fprintf(stderr, "%*c+ tuple[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' [star_named_expression ',' star_named_expressions?] ')'"));
14787 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14788 if (_token == NULL) {
14789 D(p->level--);
14790 return NULL;
14791 }
14792 int _end_lineno = _token->end_lineno;
14793 UNUSED(_end_lineno); // Only used by EXTRA macro
14794 int _end_col_offset = _token->end_col_offset;
14795 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014796 _res = _PyAST_Tuple ( a , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014797 if (_res == NULL && PyErr_Occurred()) {
14798 p->error_indicator = 1;
14799 D(p->level--);
14800 return NULL;
14801 }
14802 goto done;
14803 }
14804 p->mark = _mark;
14805 D(fprintf(stderr, "%*c%s tuple[%d-%d]: %s failed!\n", p->level, ' ',
14806 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' [star_named_expression ',' star_named_expressions?] ')'"));
14807 }
14808 _res = NULL;
14809 done:
14810 D(p->level--);
14811 return _res;
14812}
14813
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030014814// group: '(' (yield_expr | named_expression) ')' | invalid_group
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014815static expr_ty
14816group_rule(Parser *p)
14817{
14818 D(p->level++);
14819 if (p->error_indicator) {
14820 D(p->level--);
14821 return NULL;
14822 }
14823 expr_ty _res = NULL;
14824 int _mark = p->mark;
14825 { // '(' (yield_expr | named_expression) ')'
14826 if (p->error_indicator) {
14827 D(p->level--);
14828 return NULL;
14829 }
14830 D(fprintf(stderr, "%*c> group[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' (yield_expr | named_expression) ')'"));
14831 Token * _literal;
14832 Token * _literal_1;
14833 void *a;
14834 if (
14835 (_literal = _PyPegen_expect_token(p, 7)) // token='('
14836 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080014837 (a = _tmp_116_rule(p)) // yield_expr | named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014838 &&
14839 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
14840 )
14841 {
14842 D(fprintf(stderr, "%*c+ group[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' (yield_expr | named_expression) ')'"));
14843 _res = a;
14844 if (_res == NULL && PyErr_Occurred()) {
14845 p->error_indicator = 1;
14846 D(p->level--);
14847 return NULL;
14848 }
14849 goto done;
14850 }
14851 p->mark = _mark;
14852 D(fprintf(stderr, "%*c%s group[%d-%d]: %s failed!\n", p->level, ' ',
14853 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' (yield_expr | named_expression) ')'"));
14854 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014855 if (p->call_invalid_rules) { // invalid_group
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030014856 if (p->error_indicator) {
14857 D(p->level--);
14858 return NULL;
14859 }
14860 D(fprintf(stderr, "%*c> group[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_group"));
14861 void *invalid_group_var;
14862 if (
14863 (invalid_group_var = invalid_group_rule(p)) // invalid_group
14864 )
14865 {
14866 D(fprintf(stderr, "%*c+ group[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_group"));
14867 _res = invalid_group_var;
14868 goto done;
14869 }
14870 p->mark = _mark;
14871 D(fprintf(stderr, "%*c%s group[%d-%d]: %s failed!\n", p->level, ' ',
14872 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_group"));
14873 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014874 _res = NULL;
14875 done:
14876 D(p->level--);
14877 return _res;
14878}
14879
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070014880// genexp:
14881// | '(' (assigment_expression | expression !':=') for_if_clauses ')'
14882// | invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014883static expr_ty
14884genexp_rule(Parser *p)
14885{
14886 D(p->level++);
14887 if (p->error_indicator) {
14888 D(p->level--);
14889 return NULL;
14890 }
14891 expr_ty _res = NULL;
14892 int _mark = p->mark;
14893 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14894 p->error_indicator = 1;
14895 D(p->level--);
14896 return NULL;
14897 }
14898 int _start_lineno = p->tokens[_mark]->lineno;
14899 UNUSED(_start_lineno); // Only used by EXTRA macro
14900 int _start_col_offset = p->tokens[_mark]->col_offset;
14901 UNUSED(_start_col_offset); // Only used by EXTRA macro
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070014902 { // '(' (assigment_expression | expression !':=') for_if_clauses ')'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014903 if (p->error_indicator) {
14904 D(p->level--);
14905 return NULL;
14906 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070014907 D(fprintf(stderr, "%*c> genexp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' (assigment_expression | expression !':=') for_if_clauses ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014908 Token * _literal;
14909 Token * _literal_1;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070014910 void *a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010014911 asdl_comprehension_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014912 if (
14913 (_literal = _PyPegen_expect_token(p, 7)) // token='('
14914 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070014915 (a = _tmp_117_rule(p)) // assigment_expression | expression !':='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014916 &&
14917 (b = for_if_clauses_rule(p)) // for_if_clauses
14918 &&
14919 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
14920 )
14921 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070014922 D(fprintf(stderr, "%*c+ genexp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' (assigment_expression | expression !':=') for_if_clauses ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014923 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14924 if (_token == NULL) {
14925 D(p->level--);
14926 return NULL;
14927 }
14928 int _end_lineno = _token->end_lineno;
14929 UNUSED(_end_lineno); // Only used by EXTRA macro
14930 int _end_col_offset = _token->end_col_offset;
14931 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014932 _res = _PyAST_GeneratorExp ( a , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014933 if (_res == NULL && PyErr_Occurred()) {
14934 p->error_indicator = 1;
14935 D(p->level--);
14936 return NULL;
14937 }
14938 goto done;
14939 }
14940 p->mark = _mark;
14941 D(fprintf(stderr, "%*c%s genexp[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070014942 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' (assigment_expression | expression !':=') for_if_clauses ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014943 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014944 if (p->call_invalid_rules) { // invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014945 if (p->error_indicator) {
14946 D(p->level--);
14947 return NULL;
14948 }
14949 D(fprintf(stderr, "%*c> genexp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
14950 void *invalid_comprehension_var;
14951 if (
14952 (invalid_comprehension_var = invalid_comprehension_rule(p)) // invalid_comprehension
14953 )
14954 {
14955 D(fprintf(stderr, "%*c+ genexp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
14956 _res = invalid_comprehension_var;
14957 goto done;
14958 }
14959 p->mark = _mark;
14960 D(fprintf(stderr, "%*c%s genexp[%d-%d]: %s failed!\n", p->level, ' ',
14961 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_comprehension"));
14962 }
14963 _res = NULL;
14964 done:
14965 D(p->level--);
14966 return _res;
14967}
14968
Pablo Galindob0aba1f2020-11-17 01:17:12 +000014969// set: '{' star_named_expressions '}'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014970static expr_ty
14971set_rule(Parser *p)
14972{
14973 D(p->level++);
14974 if (p->error_indicator) {
14975 D(p->level--);
14976 return NULL;
14977 }
14978 expr_ty _res = NULL;
14979 int _mark = p->mark;
14980 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14981 p->error_indicator = 1;
14982 D(p->level--);
14983 return NULL;
14984 }
14985 int _start_lineno = p->tokens[_mark]->lineno;
14986 UNUSED(_start_lineno); // Only used by EXTRA macro
14987 int _start_col_offset = p->tokens[_mark]->col_offset;
14988 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindob0aba1f2020-11-17 01:17:12 +000014989 { // '{' star_named_expressions '}'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014990 if (p->error_indicator) {
14991 D(p->level--);
14992 return NULL;
14993 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000014994 D(fprintf(stderr, "%*c> set[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' star_named_expressions '}'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014995 Token * _literal;
14996 Token * _literal_1;
Pablo Galindoa5634c42020-09-16 19:42:00 +010014997 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014998 if (
14999 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
15000 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000015001 (a = star_named_expressions_rule(p)) // star_named_expressions
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015002 &&
15003 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
15004 )
15005 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000015006 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 +010015007 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15008 if (_token == NULL) {
15009 D(p->level--);
15010 return NULL;
15011 }
15012 int _end_lineno = _token->end_lineno;
15013 UNUSED(_end_lineno); // Only used by EXTRA macro
15014 int _end_col_offset = _token->end_col_offset;
15015 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015016 _res = _PyAST_Set ( a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015017 if (_res == NULL && PyErr_Occurred()) {
15018 p->error_indicator = 1;
15019 D(p->level--);
15020 return NULL;
15021 }
15022 goto done;
15023 }
15024 p->mark = _mark;
15025 D(fprintf(stderr, "%*c%s set[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000015026 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' star_named_expressions '}'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015027 }
15028 _res = NULL;
15029 done:
15030 D(p->level--);
15031 return _res;
15032}
15033
Pablo Galindo835f14f2021-01-31 22:52:56 +000015034// setcomp: '{' named_expression for_if_clauses '}' | invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015035static expr_ty
15036setcomp_rule(Parser *p)
15037{
15038 D(p->level++);
15039 if (p->error_indicator) {
15040 D(p->level--);
15041 return NULL;
15042 }
15043 expr_ty _res = NULL;
15044 int _mark = p->mark;
15045 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
15046 p->error_indicator = 1;
15047 D(p->level--);
15048 return NULL;
15049 }
15050 int _start_lineno = p->tokens[_mark]->lineno;
15051 UNUSED(_start_lineno); // Only used by EXTRA macro
15052 int _start_col_offset = p->tokens[_mark]->col_offset;
15053 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo835f14f2021-01-31 22:52:56 +000015054 { // '{' named_expression for_if_clauses '}'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015055 if (p->error_indicator) {
15056 D(p->level--);
15057 return NULL;
15058 }
Pablo Galindo835f14f2021-01-31 22:52:56 +000015059 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 +010015060 Token * _literal;
15061 Token * _literal_1;
15062 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010015063 asdl_comprehension_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015064 if (
15065 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
15066 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000015067 (a = named_expression_rule(p)) // named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015068 &&
15069 (b = for_if_clauses_rule(p)) // for_if_clauses
15070 &&
15071 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
15072 )
15073 {
Pablo Galindo835f14f2021-01-31 22:52:56 +000015074 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 +010015075 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15076 if (_token == NULL) {
15077 D(p->level--);
15078 return NULL;
15079 }
15080 int _end_lineno = _token->end_lineno;
15081 UNUSED(_end_lineno); // Only used by EXTRA macro
15082 int _end_col_offset = _token->end_col_offset;
15083 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015084 _res = _PyAST_SetComp ( a , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015085 if (_res == NULL && PyErr_Occurred()) {
15086 p->error_indicator = 1;
15087 D(p->level--);
15088 return NULL;
15089 }
15090 goto done;
15091 }
15092 p->mark = _mark;
15093 D(fprintf(stderr, "%*c%s setcomp[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo835f14f2021-01-31 22:52:56 +000015094 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' named_expression for_if_clauses '}'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015095 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020015096 if (p->call_invalid_rules) { // invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015097 if (p->error_indicator) {
15098 D(p->level--);
15099 return NULL;
15100 }
15101 D(fprintf(stderr, "%*c> setcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
15102 void *invalid_comprehension_var;
15103 if (
15104 (invalid_comprehension_var = invalid_comprehension_rule(p)) // invalid_comprehension
15105 )
15106 {
15107 D(fprintf(stderr, "%*c+ setcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
15108 _res = invalid_comprehension_var;
15109 goto done;
15110 }
15111 p->mark = _mark;
15112 D(fprintf(stderr, "%*c%s setcomp[%d-%d]: %s failed!\n", p->level, ' ',
15113 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_comprehension"));
15114 }
15115 _res = NULL;
15116 done:
15117 D(p->level--);
15118 return _res;
15119}
15120
Pablo Galindoda743502021-04-15 14:06:39 +010015121// dict: '{' double_starred_kvpairs? '}' | '{' invalid_double_starred_kvpairs '}'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015122static expr_ty
15123dict_rule(Parser *p)
15124{
15125 D(p->level++);
15126 if (p->error_indicator) {
15127 D(p->level--);
15128 return NULL;
15129 }
15130 expr_ty _res = NULL;
15131 int _mark = p->mark;
15132 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
15133 p->error_indicator = 1;
15134 D(p->level--);
15135 return NULL;
15136 }
15137 int _start_lineno = p->tokens[_mark]->lineno;
15138 UNUSED(_start_lineno); // Only used by EXTRA macro
15139 int _start_col_offset = p->tokens[_mark]->col_offset;
15140 UNUSED(_start_col_offset); // Only used by EXTRA macro
15141 { // '{' double_starred_kvpairs? '}'
15142 if (p->error_indicator) {
15143 D(p->level--);
15144 return NULL;
15145 }
15146 D(fprintf(stderr, "%*c> dict[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' double_starred_kvpairs? '}'"));
15147 Token * _literal;
15148 Token * _literal_1;
15149 void *a;
15150 if (
15151 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
15152 &&
15153 (a = double_starred_kvpairs_rule(p), 1) // double_starred_kvpairs?
15154 &&
15155 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
15156 )
15157 {
15158 D(fprintf(stderr, "%*c+ dict[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' double_starred_kvpairs? '}'"));
15159 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15160 if (_token == NULL) {
15161 D(p->level--);
15162 return NULL;
15163 }
15164 int _end_lineno = _token->end_lineno;
15165 UNUSED(_end_lineno); // Only used by EXTRA macro
15166 int _end_col_offset = _token->end_col_offset;
15167 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015168 _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 +010015169 if (_res == NULL && PyErr_Occurred()) {
15170 p->error_indicator = 1;
15171 D(p->level--);
15172 return NULL;
15173 }
15174 goto done;
15175 }
15176 p->mark = _mark;
15177 D(fprintf(stderr, "%*c%s dict[%d-%d]: %s failed!\n", p->level, ' ',
15178 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' double_starred_kvpairs? '}'"));
15179 }
Pablo Galindoda743502021-04-15 14:06:39 +010015180 { // '{' invalid_double_starred_kvpairs '}'
15181 if (p->error_indicator) {
15182 D(p->level--);
15183 return NULL;
15184 }
15185 D(fprintf(stderr, "%*c> dict[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' invalid_double_starred_kvpairs '}'"));
15186 Token * _literal;
15187 Token * _literal_1;
15188 void *invalid_double_starred_kvpairs_var;
15189 if (
15190 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
15191 &&
15192 (invalid_double_starred_kvpairs_var = invalid_double_starred_kvpairs_rule(p)) // invalid_double_starred_kvpairs
15193 &&
15194 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
15195 )
15196 {
15197 D(fprintf(stderr, "%*c+ dict[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' invalid_double_starred_kvpairs '}'"));
15198 _res = _PyPegen_dummy_name(p, _literal, invalid_double_starred_kvpairs_var, _literal_1);
15199 goto done;
15200 }
15201 p->mark = _mark;
15202 D(fprintf(stderr, "%*c%s dict[%d-%d]: %s failed!\n", p->level, ' ',
15203 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' invalid_double_starred_kvpairs '}'"));
15204 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015205 _res = NULL;
15206 done:
15207 D(p->level--);
15208 return _res;
15209}
15210
15211// dictcomp: '{' kvpair for_if_clauses '}' | invalid_dict_comprehension
15212static expr_ty
15213dictcomp_rule(Parser *p)
15214{
15215 D(p->level++);
15216 if (p->error_indicator) {
15217 D(p->level--);
15218 return NULL;
15219 }
15220 expr_ty _res = NULL;
15221 int _mark = p->mark;
15222 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
15223 p->error_indicator = 1;
15224 D(p->level--);
15225 return NULL;
15226 }
15227 int _start_lineno = p->tokens[_mark]->lineno;
15228 UNUSED(_start_lineno); // Only used by EXTRA macro
15229 int _start_col_offset = p->tokens[_mark]->col_offset;
15230 UNUSED(_start_col_offset); // Only used by EXTRA macro
15231 { // '{' kvpair for_if_clauses '}'
15232 if (p->error_indicator) {
15233 D(p->level--);
15234 return NULL;
15235 }
15236 D(fprintf(stderr, "%*c> dictcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' kvpair for_if_clauses '}'"));
15237 Token * _literal;
15238 Token * _literal_1;
15239 KeyValuePair* a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010015240 asdl_comprehension_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015241 if (
15242 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
15243 &&
15244 (a = kvpair_rule(p)) // kvpair
15245 &&
15246 (b = for_if_clauses_rule(p)) // for_if_clauses
15247 &&
15248 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
15249 )
15250 {
15251 D(fprintf(stderr, "%*c+ dictcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' kvpair for_if_clauses '}'"));
15252 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15253 if (_token == NULL) {
15254 D(p->level--);
15255 return NULL;
15256 }
15257 int _end_lineno = _token->end_lineno;
15258 UNUSED(_end_lineno); // Only used by EXTRA macro
15259 int _end_col_offset = _token->end_col_offset;
15260 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015261 _res = _PyAST_DictComp ( a -> key , a -> value , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015262 if (_res == NULL && PyErr_Occurred()) {
15263 p->error_indicator = 1;
15264 D(p->level--);
15265 return NULL;
15266 }
15267 goto done;
15268 }
15269 p->mark = _mark;
15270 D(fprintf(stderr, "%*c%s dictcomp[%d-%d]: %s failed!\n", p->level, ' ',
15271 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' kvpair for_if_clauses '}'"));
15272 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020015273 if (p->call_invalid_rules) { // invalid_dict_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015274 if (p->error_indicator) {
15275 D(p->level--);
15276 return NULL;
15277 }
15278 D(fprintf(stderr, "%*c> dictcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_dict_comprehension"));
15279 void *invalid_dict_comprehension_var;
15280 if (
15281 (invalid_dict_comprehension_var = invalid_dict_comprehension_rule(p)) // invalid_dict_comprehension
15282 )
15283 {
15284 D(fprintf(stderr, "%*c+ dictcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_dict_comprehension"));
15285 _res = invalid_dict_comprehension_var;
15286 goto done;
15287 }
15288 p->mark = _mark;
15289 D(fprintf(stderr, "%*c%s dictcomp[%d-%d]: %s failed!\n", p->level, ' ',
15290 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_dict_comprehension"));
15291 }
15292 _res = NULL;
15293 done:
15294 D(p->level--);
15295 return _res;
15296}
15297
15298// double_starred_kvpairs: ','.double_starred_kvpair+ ','?
15299static asdl_seq*
15300double_starred_kvpairs_rule(Parser *p)
15301{
15302 D(p->level++);
15303 if (p->error_indicator) {
15304 D(p->level--);
15305 return NULL;
15306 }
15307 asdl_seq* _res = NULL;
15308 int _mark = p->mark;
15309 { // ','.double_starred_kvpair+ ','?
15310 if (p->error_indicator) {
15311 D(p->level--);
15312 return NULL;
15313 }
15314 D(fprintf(stderr, "%*c> double_starred_kvpairs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.double_starred_kvpair+ ','?"));
15315 void *_opt_var;
15316 UNUSED(_opt_var); // Silence compiler warnings
15317 asdl_seq * a;
15318 if (
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070015319 (a = _gather_118_rule(p)) // ','.double_starred_kvpair+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015320 &&
15321 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
15322 )
15323 {
15324 D(fprintf(stderr, "%*c+ double_starred_kvpairs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.double_starred_kvpair+ ','?"));
15325 _res = a;
15326 if (_res == NULL && PyErr_Occurred()) {
15327 p->error_indicator = 1;
15328 D(p->level--);
15329 return NULL;
15330 }
15331 goto done;
15332 }
15333 p->mark = _mark;
15334 D(fprintf(stderr, "%*c%s double_starred_kvpairs[%d-%d]: %s failed!\n", p->level, ' ',
15335 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.double_starred_kvpair+ ','?"));
15336 }
15337 _res = NULL;
15338 done:
15339 D(p->level--);
15340 return _res;
15341}
15342
15343// double_starred_kvpair: '**' bitwise_or | kvpair
15344static KeyValuePair*
15345double_starred_kvpair_rule(Parser *p)
15346{
15347 D(p->level++);
15348 if (p->error_indicator) {
15349 D(p->level--);
15350 return NULL;
15351 }
15352 KeyValuePair* _res = NULL;
15353 int _mark = p->mark;
15354 { // '**' bitwise_or
15355 if (p->error_indicator) {
15356 D(p->level--);
15357 return NULL;
15358 }
15359 D(fprintf(stderr, "%*c> double_starred_kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' bitwise_or"));
15360 Token * _literal;
15361 expr_ty a;
15362 if (
15363 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
15364 &&
15365 (a = bitwise_or_rule(p)) // bitwise_or
15366 )
15367 {
15368 D(fprintf(stderr, "%*c+ double_starred_kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' bitwise_or"));
15369 _res = _PyPegen_key_value_pair ( p , NULL , a );
15370 if (_res == NULL && PyErr_Occurred()) {
15371 p->error_indicator = 1;
15372 D(p->level--);
15373 return NULL;
15374 }
15375 goto done;
15376 }
15377 p->mark = _mark;
15378 D(fprintf(stderr, "%*c%s double_starred_kvpair[%d-%d]: %s failed!\n", p->level, ' ',
15379 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' bitwise_or"));
15380 }
15381 { // kvpair
15382 if (p->error_indicator) {
15383 D(p->level--);
15384 return NULL;
15385 }
15386 D(fprintf(stderr, "%*c> double_starred_kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kvpair"));
15387 KeyValuePair* kvpair_var;
15388 if (
15389 (kvpair_var = kvpair_rule(p)) // kvpair
15390 )
15391 {
15392 D(fprintf(stderr, "%*c+ double_starred_kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kvpair"));
15393 _res = kvpair_var;
15394 goto done;
15395 }
15396 p->mark = _mark;
15397 D(fprintf(stderr, "%*c%s double_starred_kvpair[%d-%d]: %s failed!\n", p->level, ' ',
15398 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kvpair"));
15399 }
15400 _res = NULL;
15401 done:
15402 D(p->level--);
15403 return _res;
15404}
15405
15406// kvpair: expression ':' expression
15407static KeyValuePair*
15408kvpair_rule(Parser *p)
15409{
15410 D(p->level++);
15411 if (p->error_indicator) {
15412 D(p->level--);
15413 return NULL;
15414 }
15415 KeyValuePair* _res = NULL;
15416 int _mark = p->mark;
15417 { // expression ':' expression
15418 if (p->error_indicator) {
15419 D(p->level--);
15420 return NULL;
15421 }
15422 D(fprintf(stderr, "%*c> kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':' expression"));
15423 Token * _literal;
15424 expr_ty a;
15425 expr_ty b;
15426 if (
15427 (a = expression_rule(p)) // expression
15428 &&
15429 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
15430 &&
15431 (b = expression_rule(p)) // expression
15432 )
15433 {
15434 D(fprintf(stderr, "%*c+ kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':' expression"));
15435 _res = _PyPegen_key_value_pair ( p , a , b );
15436 if (_res == NULL && PyErr_Occurred()) {
15437 p->error_indicator = 1;
15438 D(p->level--);
15439 return NULL;
15440 }
15441 goto done;
15442 }
15443 p->mark = _mark;
15444 D(fprintf(stderr, "%*c%s kvpair[%d-%d]: %s failed!\n", p->level, ' ',
15445 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' expression"));
15446 }
15447 _res = NULL;
15448 done:
15449 D(p->level--);
15450 return _res;
15451}
15452
15453// for_if_clauses: for_if_clause+
Pablo Galindoa5634c42020-09-16 19:42:00 +010015454static asdl_comprehension_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015455for_if_clauses_rule(Parser *p)
15456{
15457 D(p->level++);
15458 if (p->error_indicator) {
15459 D(p->level--);
15460 return NULL;
15461 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010015462 asdl_comprehension_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015463 int _mark = p->mark;
15464 { // for_if_clause+
15465 if (p->error_indicator) {
15466 D(p->level--);
15467 return NULL;
15468 }
15469 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 +010015470 asdl_comprehension_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015471 if (
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070015472 (a = (asdl_comprehension_seq*)_loop1_120_rule(p)) // for_if_clause+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015473 )
15474 {
15475 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 +010015476 _res = a;
15477 if (_res == NULL && PyErr_Occurred()) {
15478 p->error_indicator = 1;
15479 D(p->level--);
15480 return NULL;
15481 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015482 goto done;
15483 }
15484 p->mark = _mark;
15485 D(fprintf(stderr, "%*c%s for_if_clauses[%d-%d]: %s failed!\n", p->level, ' ',
15486 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "for_if_clause+"));
15487 }
15488 _res = NULL;
15489 done:
15490 D(p->level--);
15491 return _res;
15492}
15493
15494// for_if_clause:
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015495// | ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*
15496// | 'for' star_targets 'in' ~ disjunction (('if' disjunction))*
15497// | invalid_for_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015498static comprehension_ty
15499for_if_clause_rule(Parser *p)
15500{
15501 D(p->level++);
15502 if (p->error_indicator) {
15503 D(p->level--);
15504 return NULL;
15505 }
15506 comprehension_ty _res = NULL;
15507 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015508 { // ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015509 if (p->error_indicator) {
15510 D(p->level--);
15511 return NULL;
15512 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015513 D(fprintf(stderr, "%*c> for_if_clause[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
15514 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015515 Token * _keyword;
15516 Token * _keyword_1;
15517 expr_ty a;
15518 Token * async_var;
15519 expr_ty b;
Pablo Galindoa5634c42020-09-16 19:42:00 +010015520 asdl_expr_seq* c;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015521 if (
15522 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
15523 &&
15524 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
15525 &&
15526 (a = star_targets_rule(p)) // star_targets
15527 &&
15528 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
15529 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015530 (_cut_var = 1)
15531 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015532 (b = disjunction_rule(p)) // disjunction
15533 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070015534 (c = (asdl_expr_seq*)_loop0_121_rule(p)) // (('if' disjunction))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015535 )
15536 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015537 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 +020015538 _res = CHECK_VERSION ( comprehension_ty , 6 , "Async comprehensions are" , _PyAST_comprehension ( a , b , c , 1 , p -> arena ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015539 if (_res == NULL && PyErr_Occurred()) {
15540 p->error_indicator = 1;
15541 D(p->level--);
15542 return NULL;
15543 }
15544 goto done;
15545 }
15546 p->mark = _mark;
15547 D(fprintf(stderr, "%*c%s for_if_clause[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015548 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
15549 if (_cut_var) {
15550 D(p->level--);
15551 return NULL;
15552 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015553 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015554 { // 'for' star_targets 'in' ~ disjunction (('if' disjunction))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015555 if (p->error_indicator) {
15556 D(p->level--);
15557 return NULL;
15558 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015559 D(fprintf(stderr, "%*c> for_if_clause[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
15560 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015561 Token * _keyword;
15562 Token * _keyword_1;
15563 expr_ty a;
15564 expr_ty b;
Pablo Galindoa5634c42020-09-16 19:42:00 +010015565 asdl_expr_seq* c;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015566 if (
15567 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
15568 &&
15569 (a = star_targets_rule(p)) // star_targets
15570 &&
15571 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
15572 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015573 (_cut_var = 1)
15574 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015575 (b = disjunction_rule(p)) // disjunction
15576 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070015577 (c = (asdl_expr_seq*)_loop0_122_rule(p)) // (('if' disjunction))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015578 )
15579 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015580 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 +020015581 _res = _PyAST_comprehension ( a , b , c , 0 , p -> arena );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015582 if (_res == NULL && PyErr_Occurred()) {
15583 p->error_indicator = 1;
15584 D(p->level--);
15585 return NULL;
15586 }
15587 goto done;
15588 }
15589 p->mark = _mark;
15590 D(fprintf(stderr, "%*c%s for_if_clause[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015591 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
15592 if (_cut_var) {
15593 D(p->level--);
15594 return NULL;
15595 }
15596 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020015597 if (p->call_invalid_rules) { // invalid_for_target
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015598 if (p->error_indicator) {
15599 D(p->level--);
15600 return NULL;
15601 }
15602 D(fprintf(stderr, "%*c> for_if_clause[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_for_target"));
15603 void *invalid_for_target_var;
15604 if (
15605 (invalid_for_target_var = invalid_for_target_rule(p)) // invalid_for_target
15606 )
15607 {
15608 D(fprintf(stderr, "%*c+ for_if_clause[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_for_target"));
15609 _res = invalid_for_target_var;
15610 goto done;
15611 }
15612 p->mark = _mark;
15613 D(fprintf(stderr, "%*c%s for_if_clause[%d-%d]: %s failed!\n", p->level, ' ',
15614 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_for_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015615 }
15616 _res = NULL;
15617 done:
15618 D(p->level--);
15619 return _res;
15620}
15621
15622// yield_expr: 'yield' 'from' expression | 'yield' star_expressions?
15623static expr_ty
15624yield_expr_rule(Parser *p)
15625{
15626 D(p->level++);
15627 if (p->error_indicator) {
15628 D(p->level--);
15629 return NULL;
15630 }
15631 expr_ty _res = NULL;
15632 int _mark = p->mark;
15633 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
15634 p->error_indicator = 1;
15635 D(p->level--);
15636 return NULL;
15637 }
15638 int _start_lineno = p->tokens[_mark]->lineno;
15639 UNUSED(_start_lineno); // Only used by EXTRA macro
15640 int _start_col_offset = p->tokens[_mark]->col_offset;
15641 UNUSED(_start_col_offset); // Only used by EXTRA macro
15642 { // 'yield' 'from' expression
15643 if (p->error_indicator) {
15644 D(p->level--);
15645 return NULL;
15646 }
15647 D(fprintf(stderr, "%*c> yield_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'yield' 'from' expression"));
15648 Token * _keyword;
15649 Token * _keyword_1;
15650 expr_ty a;
15651 if (
15652 (_keyword = _PyPegen_expect_token(p, 504)) // token='yield'
15653 &&
15654 (_keyword_1 = _PyPegen_expect_token(p, 514)) // token='from'
15655 &&
15656 (a = expression_rule(p)) // expression
15657 )
15658 {
15659 D(fprintf(stderr, "%*c+ yield_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'yield' 'from' expression"));
15660 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15661 if (_token == NULL) {
15662 D(p->level--);
15663 return NULL;
15664 }
15665 int _end_lineno = _token->end_lineno;
15666 UNUSED(_end_lineno); // Only used by EXTRA macro
15667 int _end_col_offset = _token->end_col_offset;
15668 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015669 _res = _PyAST_YieldFrom ( a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015670 if (_res == NULL && PyErr_Occurred()) {
15671 p->error_indicator = 1;
15672 D(p->level--);
15673 return NULL;
15674 }
15675 goto done;
15676 }
15677 p->mark = _mark;
15678 D(fprintf(stderr, "%*c%s yield_expr[%d-%d]: %s failed!\n", p->level, ' ',
15679 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'yield' 'from' expression"));
15680 }
15681 { // 'yield' star_expressions?
15682 if (p->error_indicator) {
15683 D(p->level--);
15684 return NULL;
15685 }
15686 D(fprintf(stderr, "%*c> yield_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'yield' star_expressions?"));
15687 Token * _keyword;
15688 void *a;
15689 if (
15690 (_keyword = _PyPegen_expect_token(p, 504)) // token='yield'
15691 &&
15692 (a = star_expressions_rule(p), 1) // star_expressions?
15693 )
15694 {
15695 D(fprintf(stderr, "%*c+ yield_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'yield' star_expressions?"));
15696 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15697 if (_token == NULL) {
15698 D(p->level--);
15699 return NULL;
15700 }
15701 int _end_lineno = _token->end_lineno;
15702 UNUSED(_end_lineno); // Only used by EXTRA macro
15703 int _end_col_offset = _token->end_col_offset;
15704 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015705 _res = _PyAST_Yield ( a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015706 if (_res == NULL && PyErr_Occurred()) {
15707 p->error_indicator = 1;
15708 D(p->level--);
15709 return NULL;
15710 }
15711 goto done;
15712 }
15713 p->mark = _mark;
15714 D(fprintf(stderr, "%*c%s yield_expr[%d-%d]: %s failed!\n", p->level, ' ',
15715 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'yield' star_expressions?"));
15716 }
15717 _res = NULL;
15718 done:
15719 D(p->level--);
15720 return _res;
15721}
15722
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020015723// arguments: args ','? &')' | invalid_arguments
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015724static expr_ty
15725arguments_rule(Parser *p)
15726{
15727 D(p->level++);
15728 if (p->error_indicator) {
15729 D(p->level--);
15730 return NULL;
15731 }
15732 expr_ty _res = NULL;
15733 if (_PyPegen_is_memoized(p, arguments_type, &_res)) {
15734 D(p->level--);
15735 return _res;
15736 }
15737 int _mark = p->mark;
15738 { // args ','? &')'
15739 if (p->error_indicator) {
15740 D(p->level--);
15741 return NULL;
15742 }
15743 D(fprintf(stderr, "%*c> arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args ','? &')'"));
15744 void *_opt_var;
15745 UNUSED(_opt_var); // Silence compiler warnings
15746 expr_ty a;
15747 if (
15748 (a = args_rule(p)) // args
15749 &&
15750 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
15751 &&
15752 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
15753 )
15754 {
15755 D(fprintf(stderr, "%*c+ arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args ','? &')'"));
15756 _res = a;
15757 if (_res == NULL && PyErr_Occurred()) {
15758 p->error_indicator = 1;
15759 D(p->level--);
15760 return NULL;
15761 }
15762 goto done;
15763 }
15764 p->mark = _mark;
15765 D(fprintf(stderr, "%*c%s arguments[%d-%d]: %s failed!\n", p->level, ' ',
15766 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ','? &')'"));
15767 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020015768 if (p->call_invalid_rules) { // invalid_arguments
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015769 if (p->error_indicator) {
15770 D(p->level--);
15771 return NULL;
15772 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020015773 D(fprintf(stderr, "%*c> arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_arguments"));
15774 void *invalid_arguments_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015775 if (
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020015776 (invalid_arguments_var = invalid_arguments_rule(p)) // invalid_arguments
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015777 )
15778 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020015779 D(fprintf(stderr, "%*c+ arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_arguments"));
15780 _res = invalid_arguments_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015781 goto done;
15782 }
15783 p->mark = _mark;
15784 D(fprintf(stderr, "%*c%s arguments[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020015785 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_arguments"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015786 }
15787 _res = NULL;
15788 done:
15789 _PyPegen_insert_memo(p, _mark, arguments_type, _res);
15790 D(p->level--);
15791 return _res;
15792}
15793
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070015794// args:
15795// | ','.(starred_expression | (assigment_expression | expression !':=') !'=')+ [',' kwargs]
15796// | kwargs
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015797static expr_ty
15798args_rule(Parser *p)
15799{
15800 D(p->level++);
15801 if (p->error_indicator) {
15802 D(p->level--);
15803 return NULL;
15804 }
15805 expr_ty _res = NULL;
15806 int _mark = p->mark;
15807 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
15808 p->error_indicator = 1;
15809 D(p->level--);
15810 return NULL;
15811 }
15812 int _start_lineno = p->tokens[_mark]->lineno;
15813 UNUSED(_start_lineno); // Only used by EXTRA macro
15814 int _start_col_offset = p->tokens[_mark]->col_offset;
15815 UNUSED(_start_col_offset); // Only used by EXTRA macro
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070015816 { // ','.(starred_expression | (assigment_expression | expression !':=') !'=')+ [',' kwargs]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015817 if (p->error_indicator) {
15818 D(p->level--);
15819 return NULL;
15820 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070015821 D(fprintf(stderr, "%*c> args[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.(starred_expression | (assigment_expression | expression !':=') !'=')+ [',' kwargs]"));
Pablo Galindoa5634c42020-09-16 19:42:00 +010015822 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015823 void *b;
15824 if (
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070015825 (a = (asdl_expr_seq*)_gather_123_rule(p)) // ','.(starred_expression | (assigment_expression | expression !':=') !'=')+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015826 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070015827 (b = _tmp_125_rule(p), 1) // [',' kwargs]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015828 )
15829 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070015830 D(fprintf(stderr, "%*c+ args[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.(starred_expression | (assigment_expression | expression !':=') !'=')+ [',' kwargs]"));
Pablo Galindo315a61f2020-09-03 15:29:32 +010015831 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15832 if (_token == NULL) {
15833 D(p->level--);
15834 return NULL;
15835 }
15836 int _end_lineno = _token->end_lineno;
15837 UNUSED(_end_lineno); // Only used by EXTRA macro
15838 int _end_col_offset = _token->end_col_offset;
15839 UNUSED(_end_col_offset); // Only used by EXTRA macro
15840 _res = _PyPegen_collect_call_seqs ( p , a , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015841 if (_res == NULL && PyErr_Occurred()) {
15842 p->error_indicator = 1;
15843 D(p->level--);
15844 return NULL;
15845 }
15846 goto done;
15847 }
15848 p->mark = _mark;
15849 D(fprintf(stderr, "%*c%s args[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070015850 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.(starred_expression | (assigment_expression | expression !':=') !'=')+ [',' kwargs]"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015851 }
15852 { // kwargs
15853 if (p->error_indicator) {
15854 D(p->level--);
15855 return NULL;
15856 }
15857 D(fprintf(stderr, "%*c> args[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwargs"));
15858 asdl_seq* a;
15859 if (
15860 (a = kwargs_rule(p)) // kwargs
15861 )
15862 {
15863 D(fprintf(stderr, "%*c+ args[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwargs"));
15864 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15865 if (_token == NULL) {
15866 D(p->level--);
15867 return NULL;
15868 }
15869 int _end_lineno = _token->end_lineno;
15870 UNUSED(_end_lineno); // Only used by EXTRA macro
15871 int _end_col_offset = _token->end_col_offset;
15872 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015873 _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 +010015874 if (_res == NULL && PyErr_Occurred()) {
15875 p->error_indicator = 1;
15876 D(p->level--);
15877 return NULL;
15878 }
15879 goto done;
15880 }
15881 p->mark = _mark;
15882 D(fprintf(stderr, "%*c%s args[%d-%d]: %s failed!\n", p->level, ' ',
15883 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwargs"));
15884 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015885 _res = NULL;
15886 done:
15887 D(p->level--);
15888 return _res;
15889}
15890
15891// kwargs:
15892// | ','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+
15893// | ','.kwarg_or_starred+
15894// | ','.kwarg_or_double_starred+
15895static asdl_seq*
15896kwargs_rule(Parser *p)
15897{
15898 D(p->level++);
15899 if (p->error_indicator) {
15900 D(p->level--);
15901 return NULL;
15902 }
15903 asdl_seq* _res = NULL;
15904 int _mark = p->mark;
15905 { // ','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+
15906 if (p->error_indicator) {
15907 D(p->level--);
15908 return NULL;
15909 }
15910 D(fprintf(stderr, "%*c> kwargs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+"));
15911 Token * _literal;
15912 asdl_seq * a;
15913 asdl_seq * b;
15914 if (
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070015915 (a = _gather_126_rule(p)) // ','.kwarg_or_starred+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015916 &&
15917 (_literal = _PyPegen_expect_token(p, 12)) // token=','
15918 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070015919 (b = _gather_128_rule(p)) // ','.kwarg_or_double_starred+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015920 )
15921 {
15922 D(fprintf(stderr, "%*c+ kwargs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+"));
15923 _res = _PyPegen_join_sequences ( p , a , b );
15924 if (_res == NULL && PyErr_Occurred()) {
15925 p->error_indicator = 1;
15926 D(p->level--);
15927 return NULL;
15928 }
15929 goto done;
15930 }
15931 p->mark = _mark;
15932 D(fprintf(stderr, "%*c%s kwargs[%d-%d]: %s failed!\n", p->level, ' ',
15933 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+"));
15934 }
15935 { // ','.kwarg_or_starred+
15936 if (p->error_indicator) {
15937 D(p->level--);
15938 return NULL;
15939 }
15940 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 -070015941 asdl_seq * _gather_130_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015942 if (
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070015943 (_gather_130_var = _gather_130_rule(p)) // ','.kwarg_or_starred+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015944 )
15945 {
15946 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 -070015947 _res = _gather_130_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015948 goto done;
15949 }
15950 p->mark = _mark;
15951 D(fprintf(stderr, "%*c%s kwargs[%d-%d]: %s failed!\n", p->level, ' ',
15952 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.kwarg_or_starred+"));
15953 }
15954 { // ','.kwarg_or_double_starred+
15955 if (p->error_indicator) {
15956 D(p->level--);
15957 return NULL;
15958 }
15959 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 -070015960 asdl_seq * _gather_132_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015961 if (
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070015962 (_gather_132_var = _gather_132_rule(p)) // ','.kwarg_or_double_starred+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015963 )
15964 {
15965 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 -070015966 _res = _gather_132_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015967 goto done;
15968 }
15969 p->mark = _mark;
15970 D(fprintf(stderr, "%*c%s kwargs[%d-%d]: %s failed!\n", p->level, ' ',
15971 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.kwarg_or_double_starred+"));
15972 }
15973 _res = NULL;
15974 done:
15975 D(p->level--);
15976 return _res;
15977}
15978
15979// starred_expression: '*' expression
15980static expr_ty
15981starred_expression_rule(Parser *p)
15982{
15983 D(p->level++);
15984 if (p->error_indicator) {
15985 D(p->level--);
15986 return NULL;
15987 }
15988 expr_ty _res = NULL;
15989 int _mark = p->mark;
15990 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
15991 p->error_indicator = 1;
15992 D(p->level--);
15993 return NULL;
15994 }
15995 int _start_lineno = p->tokens[_mark]->lineno;
15996 UNUSED(_start_lineno); // Only used by EXTRA macro
15997 int _start_col_offset = p->tokens[_mark]->col_offset;
15998 UNUSED(_start_col_offset); // Only used by EXTRA macro
15999 { // '*' expression
16000 if (p->error_indicator) {
16001 D(p->level--);
16002 return NULL;
16003 }
16004 D(fprintf(stderr, "%*c> starred_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' expression"));
16005 Token * _literal;
16006 expr_ty a;
16007 if (
16008 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
16009 &&
16010 (a = expression_rule(p)) // expression
16011 )
16012 {
16013 D(fprintf(stderr, "%*c+ starred_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' expression"));
16014 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16015 if (_token == NULL) {
16016 D(p->level--);
16017 return NULL;
16018 }
16019 int _end_lineno = _token->end_lineno;
16020 UNUSED(_end_lineno); // Only used by EXTRA macro
16021 int _end_col_offset = _token->end_col_offset;
16022 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016023 _res = _PyAST_Starred ( a , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016024 if (_res == NULL && PyErr_Occurred()) {
16025 p->error_indicator = 1;
16026 D(p->level--);
16027 return NULL;
16028 }
16029 goto done;
16030 }
16031 p->mark = _mark;
16032 D(fprintf(stderr, "%*c%s starred_expression[%d-%d]: %s failed!\n", p->level, ' ',
16033 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' expression"));
16034 }
16035 _res = NULL;
16036 done:
16037 D(p->level--);
16038 return _res;
16039}
16040
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070016041// kwarg_or_starred: invalid_kwarg | NAME '=' expression | starred_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016042static KeywordOrStarred*
16043kwarg_or_starred_rule(Parser *p)
16044{
16045 D(p->level++);
16046 if (p->error_indicator) {
16047 D(p->level--);
16048 return NULL;
16049 }
16050 KeywordOrStarred* _res = NULL;
16051 int _mark = p->mark;
16052 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
16053 p->error_indicator = 1;
16054 D(p->level--);
16055 return NULL;
16056 }
16057 int _start_lineno = p->tokens[_mark]->lineno;
16058 UNUSED(_start_lineno); // Only used by EXTRA macro
16059 int _start_col_offset = p->tokens[_mark]->col_offset;
16060 UNUSED(_start_col_offset); // Only used by EXTRA macro
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070016061 if (p->call_invalid_rules) { // invalid_kwarg
16062 if (p->error_indicator) {
16063 D(p->level--);
16064 return NULL;
16065 }
16066 D(fprintf(stderr, "%*c> kwarg_or_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_kwarg"));
16067 void *invalid_kwarg_var;
16068 if (
16069 (invalid_kwarg_var = invalid_kwarg_rule(p)) // invalid_kwarg
16070 )
16071 {
16072 D(fprintf(stderr, "%*c+ kwarg_or_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_kwarg"));
16073 _res = invalid_kwarg_var;
16074 goto done;
16075 }
16076 p->mark = _mark;
16077 D(fprintf(stderr, "%*c%s kwarg_or_starred[%d-%d]: %s failed!\n", p->level, ' ',
16078 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_kwarg"));
16079 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016080 { // NAME '=' expression
16081 if (p->error_indicator) {
16082 D(p->level--);
16083 return NULL;
16084 }
16085 D(fprintf(stderr, "%*c> kwarg_or_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME '=' expression"));
16086 Token * _literal;
16087 expr_ty a;
16088 expr_ty b;
16089 if (
16090 (a = _PyPegen_name_token(p)) // NAME
16091 &&
16092 (_literal = _PyPegen_expect_token(p, 22)) // token='='
16093 &&
16094 (b = expression_rule(p)) // expression
16095 )
16096 {
16097 D(fprintf(stderr, "%*c+ kwarg_or_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '=' expression"));
16098 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16099 if (_token == NULL) {
16100 D(p->level--);
16101 return NULL;
16102 }
16103 int _end_lineno = _token->end_lineno;
16104 UNUSED(_end_lineno); // Only used by EXTRA macro
16105 int _end_col_offset = _token->end_col_offset;
16106 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016107 _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 +010016108 if (_res == NULL && PyErr_Occurred()) {
16109 p->error_indicator = 1;
16110 D(p->level--);
16111 return NULL;
16112 }
16113 goto done;
16114 }
16115 p->mark = _mark;
16116 D(fprintf(stderr, "%*c%s kwarg_or_starred[%d-%d]: %s failed!\n", p->level, ' ',
16117 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' expression"));
16118 }
16119 { // starred_expression
16120 if (p->error_indicator) {
16121 D(p->level--);
16122 return NULL;
16123 }
16124 D(fprintf(stderr, "%*c> kwarg_or_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "starred_expression"));
16125 expr_ty a;
16126 if (
16127 (a = starred_expression_rule(p)) // starred_expression
16128 )
16129 {
16130 D(fprintf(stderr, "%*c+ kwarg_or_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "starred_expression"));
16131 _res = _PyPegen_keyword_or_starred ( p , a , 0 );
16132 if (_res == NULL && PyErr_Occurred()) {
16133 p->error_indicator = 1;
16134 D(p->level--);
16135 return NULL;
16136 }
16137 goto done;
16138 }
16139 p->mark = _mark;
16140 D(fprintf(stderr, "%*c%s kwarg_or_starred[%d-%d]: %s failed!\n", p->level, ' ',
16141 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "starred_expression"));
16142 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016143 _res = NULL;
16144 done:
16145 D(p->level--);
16146 return _res;
16147}
16148
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070016149// kwarg_or_double_starred: invalid_kwarg | NAME '=' expression | '**' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016150static KeywordOrStarred*
16151kwarg_or_double_starred_rule(Parser *p)
16152{
16153 D(p->level++);
16154 if (p->error_indicator) {
16155 D(p->level--);
16156 return NULL;
16157 }
16158 KeywordOrStarred* _res = NULL;
16159 int _mark = p->mark;
16160 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
16161 p->error_indicator = 1;
16162 D(p->level--);
16163 return NULL;
16164 }
16165 int _start_lineno = p->tokens[_mark]->lineno;
16166 UNUSED(_start_lineno); // Only used by EXTRA macro
16167 int _start_col_offset = p->tokens[_mark]->col_offset;
16168 UNUSED(_start_col_offset); // Only used by EXTRA macro
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070016169 if (p->call_invalid_rules) { // invalid_kwarg
16170 if (p->error_indicator) {
16171 D(p->level--);
16172 return NULL;
16173 }
16174 D(fprintf(stderr, "%*c> kwarg_or_double_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_kwarg"));
16175 void *invalid_kwarg_var;
16176 if (
16177 (invalid_kwarg_var = invalid_kwarg_rule(p)) // invalid_kwarg
16178 )
16179 {
16180 D(fprintf(stderr, "%*c+ kwarg_or_double_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_kwarg"));
16181 _res = invalid_kwarg_var;
16182 goto done;
16183 }
16184 p->mark = _mark;
16185 D(fprintf(stderr, "%*c%s kwarg_or_double_starred[%d-%d]: %s failed!\n", p->level, ' ',
16186 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_kwarg"));
16187 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016188 { // NAME '=' expression
16189 if (p->error_indicator) {
16190 D(p->level--);
16191 return NULL;
16192 }
16193 D(fprintf(stderr, "%*c> kwarg_or_double_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME '=' expression"));
16194 Token * _literal;
16195 expr_ty a;
16196 expr_ty b;
16197 if (
16198 (a = _PyPegen_name_token(p)) // NAME
16199 &&
16200 (_literal = _PyPegen_expect_token(p, 22)) // token='='
16201 &&
16202 (b = expression_rule(p)) // expression
16203 )
16204 {
16205 D(fprintf(stderr, "%*c+ kwarg_or_double_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '=' expression"));
16206 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16207 if (_token == NULL) {
16208 D(p->level--);
16209 return NULL;
16210 }
16211 int _end_lineno = _token->end_lineno;
16212 UNUSED(_end_lineno); // Only used by EXTRA macro
16213 int _end_col_offset = _token->end_col_offset;
16214 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016215 _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 +010016216 if (_res == NULL && PyErr_Occurred()) {
16217 p->error_indicator = 1;
16218 D(p->level--);
16219 return NULL;
16220 }
16221 goto done;
16222 }
16223 p->mark = _mark;
16224 D(fprintf(stderr, "%*c%s kwarg_or_double_starred[%d-%d]: %s failed!\n", p->level, ' ',
16225 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' expression"));
16226 }
16227 { // '**' expression
16228 if (p->error_indicator) {
16229 D(p->level--);
16230 return NULL;
16231 }
16232 D(fprintf(stderr, "%*c> kwarg_or_double_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' expression"));
16233 Token * _literal;
16234 expr_ty a;
16235 if (
16236 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
16237 &&
16238 (a = expression_rule(p)) // expression
16239 )
16240 {
16241 D(fprintf(stderr, "%*c+ kwarg_or_double_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' expression"));
16242 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16243 if (_token == NULL) {
16244 D(p->level--);
16245 return NULL;
16246 }
16247 int _end_lineno = _token->end_lineno;
16248 UNUSED(_end_lineno); // Only used by EXTRA macro
16249 int _end_col_offset = _token->end_col_offset;
16250 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016251 _res = _PyPegen_keyword_or_starred ( p , CHECK ( keyword_ty , _PyAST_keyword ( NULL , a , EXTRA ) ) , 1 );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016252 if (_res == NULL && PyErr_Occurred()) {
16253 p->error_indicator = 1;
16254 D(p->level--);
16255 return NULL;
16256 }
16257 goto done;
16258 }
16259 p->mark = _mark;
16260 D(fprintf(stderr, "%*c%s kwarg_or_double_starred[%d-%d]: %s failed!\n", p->level, ' ',
16261 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' expression"));
16262 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016263 _res = NULL;
16264 done:
16265 D(p->level--);
16266 return _res;
16267}
16268
16269// star_targets: star_target !',' | star_target ((',' star_target))* ','?
16270static expr_ty
16271star_targets_rule(Parser *p)
16272{
16273 D(p->level++);
16274 if (p->error_indicator) {
16275 D(p->level--);
16276 return NULL;
16277 }
16278 expr_ty _res = NULL;
16279 int _mark = p->mark;
16280 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
16281 p->error_indicator = 1;
16282 D(p->level--);
16283 return NULL;
16284 }
16285 int _start_lineno = p->tokens[_mark]->lineno;
16286 UNUSED(_start_lineno); // Only used by EXTRA macro
16287 int _start_col_offset = p->tokens[_mark]->col_offset;
16288 UNUSED(_start_col_offset); // Only used by EXTRA macro
16289 { // star_target !','
16290 if (p->error_indicator) {
16291 D(p->level--);
16292 return NULL;
16293 }
16294 D(fprintf(stderr, "%*c> star_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target !','"));
16295 expr_ty a;
16296 if (
16297 (a = star_target_rule(p)) // star_target
16298 &&
16299 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 12) // token=','
16300 )
16301 {
16302 D(fprintf(stderr, "%*c+ star_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target !','"));
16303 _res = a;
16304 if (_res == NULL && PyErr_Occurred()) {
16305 p->error_indicator = 1;
16306 D(p->level--);
16307 return NULL;
16308 }
16309 goto done;
16310 }
16311 p->mark = _mark;
16312 D(fprintf(stderr, "%*c%s star_targets[%d-%d]: %s failed!\n", p->level, ' ',
16313 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target !','"));
16314 }
16315 { // star_target ((',' star_target))* ','?
16316 if (p->error_indicator) {
16317 D(p->level--);
16318 return NULL;
16319 }
16320 D(fprintf(stderr, "%*c> star_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target ((',' star_target))* ','?"));
16321 void *_opt_var;
16322 UNUSED(_opt_var); // Silence compiler warnings
16323 expr_ty a;
16324 asdl_seq * b;
16325 if (
16326 (a = star_target_rule(p)) // star_target
16327 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070016328 (b = _loop0_134_rule(p)) // ((',' star_target))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016329 &&
16330 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
16331 )
16332 {
16333 D(fprintf(stderr, "%*c+ star_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target ((',' star_target))* ','?"));
16334 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16335 if (_token == NULL) {
16336 D(p->level--);
16337 return NULL;
16338 }
16339 int _end_lineno = _token->end_lineno;
16340 UNUSED(_end_lineno); // Only used by EXTRA macro
16341 int _end_col_offset = _token->end_col_offset;
16342 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016343 _res = _PyAST_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , a , b ) ) , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016344 if (_res == NULL && PyErr_Occurred()) {
16345 p->error_indicator = 1;
16346 D(p->level--);
16347 return NULL;
16348 }
16349 goto done;
16350 }
16351 p->mark = _mark;
16352 D(fprintf(stderr, "%*c%s star_targets[%d-%d]: %s failed!\n", p->level, ' ',
16353 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target ((',' star_target))* ','?"));
16354 }
16355 _res = NULL;
16356 done:
16357 D(p->level--);
16358 return _res;
16359}
16360
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016361// star_targets_list_seq: ','.star_target+ ','?
Pablo Galindoa5634c42020-09-16 19:42:00 +010016362static asdl_expr_seq*
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016363star_targets_list_seq_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016364{
16365 D(p->level++);
16366 if (p->error_indicator) {
16367 D(p->level--);
16368 return NULL;
16369 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010016370 asdl_expr_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016371 int _mark = p->mark;
16372 { // ','.star_target+ ','?
16373 if (p->error_indicator) {
16374 D(p->level--);
16375 return NULL;
16376 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016377 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 +010016378 void *_opt_var;
16379 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +010016380 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016381 if (
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070016382 (a = (asdl_expr_seq*)_gather_135_rule(p)) // ','.star_target+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016383 &&
16384 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
16385 )
16386 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016387 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 +010016388 _res = a;
16389 if (_res == NULL && PyErr_Occurred()) {
16390 p->error_indicator = 1;
16391 D(p->level--);
16392 return NULL;
16393 }
16394 goto done;
16395 }
16396 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016397 D(fprintf(stderr, "%*c%s star_targets_list_seq[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016398 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.star_target+ ','?"));
16399 }
16400 _res = NULL;
16401 done:
16402 D(p->level--);
16403 return _res;
16404}
16405
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016406// star_targets_tuple_seq: star_target ((',' star_target))+ ','? | star_target ','
16407static asdl_expr_seq*
16408star_targets_tuple_seq_rule(Parser *p)
16409{
16410 D(p->level++);
16411 if (p->error_indicator) {
16412 D(p->level--);
16413 return NULL;
16414 }
16415 asdl_expr_seq* _res = NULL;
16416 int _mark = p->mark;
16417 { // star_target ((',' star_target))+ ','?
16418 if (p->error_indicator) {
16419 D(p->level--);
16420 return NULL;
16421 }
16422 D(fprintf(stderr, "%*c> star_targets_tuple_seq[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target ((',' star_target))+ ','?"));
16423 void *_opt_var;
16424 UNUSED(_opt_var); // Silence compiler warnings
16425 expr_ty a;
16426 asdl_seq * b;
16427 if (
16428 (a = star_target_rule(p)) // star_target
16429 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070016430 (b = _loop1_137_rule(p)) // ((',' star_target))+
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016431 &&
16432 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
16433 )
16434 {
16435 D(fprintf(stderr, "%*c+ star_targets_tuple_seq[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target ((',' star_target))+ ','?"));
16436 _res = ( asdl_expr_seq * ) _PyPegen_seq_insert_in_front ( p , a , b );
16437 if (_res == NULL && PyErr_Occurred()) {
16438 p->error_indicator = 1;
16439 D(p->level--);
16440 return NULL;
16441 }
16442 goto done;
16443 }
16444 p->mark = _mark;
16445 D(fprintf(stderr, "%*c%s star_targets_tuple_seq[%d-%d]: %s failed!\n", p->level, ' ',
16446 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target ((',' star_target))+ ','?"));
16447 }
16448 { // star_target ','
16449 if (p->error_indicator) {
16450 D(p->level--);
16451 return NULL;
16452 }
16453 D(fprintf(stderr, "%*c> star_targets_tuple_seq[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target ','"));
16454 Token * _literal;
16455 expr_ty a;
16456 if (
16457 (a = star_target_rule(p)) // star_target
16458 &&
16459 (_literal = _PyPegen_expect_token(p, 12)) // token=','
16460 )
16461 {
16462 D(fprintf(stderr, "%*c+ star_targets_tuple_seq[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target ','"));
16463 _res = ( asdl_expr_seq * ) _PyPegen_singleton_seq ( p , a );
16464 if (_res == NULL && PyErr_Occurred()) {
16465 p->error_indicator = 1;
16466 D(p->level--);
16467 return NULL;
16468 }
16469 goto done;
16470 }
16471 p->mark = _mark;
16472 D(fprintf(stderr, "%*c%s star_targets_tuple_seq[%d-%d]: %s failed!\n", p->level, ' ',
16473 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target ','"));
16474 }
16475 _res = NULL;
16476 done:
16477 D(p->level--);
16478 return _res;
16479}
16480
16481// star_target: '*' (!'*' star_target) | target_with_star_atom
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016482static expr_ty
16483star_target_rule(Parser *p)
16484{
16485 D(p->level++);
16486 if (p->error_indicator) {
16487 D(p->level--);
16488 return NULL;
16489 }
16490 expr_ty _res = NULL;
16491 if (_PyPegen_is_memoized(p, star_target_type, &_res)) {
16492 D(p->level--);
16493 return _res;
16494 }
16495 int _mark = p->mark;
16496 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
16497 p->error_indicator = 1;
16498 D(p->level--);
16499 return NULL;
16500 }
16501 int _start_lineno = p->tokens[_mark]->lineno;
16502 UNUSED(_start_lineno); // Only used by EXTRA macro
16503 int _start_col_offset = p->tokens[_mark]->col_offset;
16504 UNUSED(_start_col_offset); // Only used by EXTRA macro
16505 { // '*' (!'*' star_target)
16506 if (p->error_indicator) {
16507 D(p->level--);
16508 return NULL;
16509 }
16510 D(fprintf(stderr, "%*c> star_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (!'*' star_target)"));
16511 Token * _literal;
16512 void *a;
16513 if (
16514 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
16515 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070016516 (a = _tmp_138_rule(p)) // !'*' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016517 )
16518 {
16519 D(fprintf(stderr, "%*c+ star_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' (!'*' star_target)"));
16520 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16521 if (_token == NULL) {
16522 D(p->level--);
16523 return NULL;
16524 }
16525 int _end_lineno = _token->end_lineno;
16526 UNUSED(_end_lineno); // Only used by EXTRA macro
16527 int _end_col_offset = _token->end_col_offset;
16528 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016529 _res = _PyAST_Starred ( CHECK ( expr_ty , _PyPegen_set_expr_context ( p , a , Store ) ) , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016530 if (_res == NULL && PyErr_Occurred()) {
16531 p->error_indicator = 1;
16532 D(p->level--);
16533 return NULL;
16534 }
16535 goto done;
16536 }
16537 p->mark = _mark;
16538 D(fprintf(stderr, "%*c%s star_target[%d-%d]: %s failed!\n", p->level, ' ',
16539 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' (!'*' star_target)"));
16540 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016541 { // target_with_star_atom
16542 if (p->error_indicator) {
16543 D(p->level--);
16544 return NULL;
16545 }
16546 D(fprintf(stderr, "%*c> star_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "target_with_star_atom"));
16547 expr_ty target_with_star_atom_var;
16548 if (
16549 (target_with_star_atom_var = target_with_star_atom_rule(p)) // target_with_star_atom
16550 )
16551 {
16552 D(fprintf(stderr, "%*c+ star_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "target_with_star_atom"));
16553 _res = target_with_star_atom_var;
16554 goto done;
16555 }
16556 p->mark = _mark;
16557 D(fprintf(stderr, "%*c%s star_target[%d-%d]: %s failed!\n", p->level, ' ',
16558 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "target_with_star_atom"));
16559 }
16560 _res = NULL;
16561 done:
16562 _PyPegen_insert_memo(p, _mark, star_target_type, _res);
16563 D(p->level--);
16564 return _res;
16565}
16566
16567// target_with_star_atom:
16568// | t_primary '.' NAME !t_lookahead
16569// | t_primary '[' slices ']' !t_lookahead
16570// | star_atom
16571static expr_ty
16572target_with_star_atom_rule(Parser *p)
16573{
16574 D(p->level++);
16575 if (p->error_indicator) {
16576 D(p->level--);
16577 return NULL;
16578 }
16579 expr_ty _res = NULL;
16580 if (_PyPegen_is_memoized(p, target_with_star_atom_type, &_res)) {
16581 D(p->level--);
16582 return _res;
16583 }
16584 int _mark = p->mark;
16585 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
16586 p->error_indicator = 1;
16587 D(p->level--);
16588 return NULL;
16589 }
16590 int _start_lineno = p->tokens[_mark]->lineno;
16591 UNUSED(_start_lineno); // Only used by EXTRA macro
16592 int _start_col_offset = p->tokens[_mark]->col_offset;
16593 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016594 { // t_primary '.' NAME !t_lookahead
16595 if (p->error_indicator) {
16596 D(p->level--);
16597 return NULL;
16598 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016599 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 +010016600 Token * _literal;
16601 expr_ty a;
16602 expr_ty b;
16603 if (
16604 (a = t_primary_rule(p)) // t_primary
16605 &&
16606 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
16607 &&
16608 (b = _PyPegen_name_token(p)) // NAME
16609 &&
16610 _PyPegen_lookahead(0, t_lookahead_rule, p)
16611 )
16612 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016613 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 +010016614 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16615 if (_token == NULL) {
16616 D(p->level--);
16617 return NULL;
16618 }
16619 int _end_lineno = _token->end_lineno;
16620 UNUSED(_end_lineno); // Only used by EXTRA macro
16621 int _end_col_offset = _token->end_col_offset;
16622 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016623 _res = _PyAST_Attribute ( a , b -> v . Name . id , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016624 if (_res == NULL && PyErr_Occurred()) {
16625 p->error_indicator = 1;
16626 D(p->level--);
16627 return NULL;
16628 }
16629 goto done;
16630 }
16631 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016632 D(fprintf(stderr, "%*c%s target_with_star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016633 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
16634 }
16635 { // t_primary '[' slices ']' !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 '[' slices ']' !t_lookahead"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016641 Token * _literal;
16642 Token * _literal_1;
16643 expr_ty a;
16644 expr_ty b;
16645 if (
16646 (a = t_primary_rule(p)) // t_primary
16647 &&
16648 (_literal = _PyPegen_expect_token(p, 9)) // token='['
16649 &&
16650 (b = slices_rule(p)) // slices
16651 &&
16652 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
16653 &&
16654 _PyPegen_lookahead(0, t_lookahead_rule, p)
16655 )
16656 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016657 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 +010016658 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16659 if (_token == NULL) {
16660 D(p->level--);
16661 return NULL;
16662 }
16663 int _end_lineno = _token->end_lineno;
16664 UNUSED(_end_lineno); // Only used by EXTRA macro
16665 int _end_col_offset = _token->end_col_offset;
16666 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016667 _res = _PyAST_Subscript ( a , b , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016668 if (_res == NULL && PyErr_Occurred()) {
16669 p->error_indicator = 1;
16670 D(p->level--);
16671 return NULL;
16672 }
16673 goto done;
16674 }
16675 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016676 D(fprintf(stderr, "%*c%s target_with_star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016677 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
16678 }
16679 { // star_atom
16680 if (p->error_indicator) {
16681 D(p->level--);
16682 return NULL;
16683 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016684 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 +010016685 expr_ty star_atom_var;
16686 if (
16687 (star_atom_var = star_atom_rule(p)) // star_atom
16688 )
16689 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016690 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 +010016691 _res = star_atom_var;
16692 goto done;
16693 }
16694 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016695 D(fprintf(stderr, "%*c%s target_with_star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016696 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_atom"));
16697 }
16698 _res = NULL;
16699 done:
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016700 _PyPegen_insert_memo(p, _mark, target_with_star_atom_type, _res);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016701 D(p->level--);
16702 return _res;
16703}
16704
16705// star_atom:
16706// | NAME
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016707// | '(' target_with_star_atom ')'
16708// | '(' star_targets_tuple_seq? ')'
16709// | '[' star_targets_list_seq? ']'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016710static expr_ty
16711star_atom_rule(Parser *p)
16712{
16713 D(p->level++);
16714 if (p->error_indicator) {
16715 D(p->level--);
16716 return NULL;
16717 }
16718 expr_ty _res = NULL;
16719 int _mark = p->mark;
16720 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
16721 p->error_indicator = 1;
16722 D(p->level--);
16723 return NULL;
16724 }
16725 int _start_lineno = p->tokens[_mark]->lineno;
16726 UNUSED(_start_lineno); // Only used by EXTRA macro
16727 int _start_col_offset = p->tokens[_mark]->col_offset;
16728 UNUSED(_start_col_offset); // Only used by EXTRA macro
16729 { // NAME
16730 if (p->error_indicator) {
16731 D(p->level--);
16732 return NULL;
16733 }
16734 D(fprintf(stderr, "%*c> star_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
16735 expr_ty a;
16736 if (
16737 (a = _PyPegen_name_token(p)) // NAME
16738 )
16739 {
16740 D(fprintf(stderr, "%*c+ star_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
16741 _res = _PyPegen_set_expr_context ( p , a , Store );
16742 if (_res == NULL && PyErr_Occurred()) {
16743 p->error_indicator = 1;
16744 D(p->level--);
16745 return NULL;
16746 }
16747 goto done;
16748 }
16749 p->mark = _mark;
16750 D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
16751 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
16752 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016753 { // '(' target_with_star_atom ')'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016754 if (p->error_indicator) {
16755 D(p->level--);
16756 return NULL;
16757 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016758 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 +010016759 Token * _literal;
16760 Token * _literal_1;
16761 expr_ty a;
16762 if (
16763 (_literal = _PyPegen_expect_token(p, 7)) // token='('
16764 &&
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016765 (a = target_with_star_atom_rule(p)) // target_with_star_atom
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016766 &&
16767 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
16768 )
16769 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016770 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 +010016771 _res = _PyPegen_set_expr_context ( p , a , Store );
16772 if (_res == NULL && PyErr_Occurred()) {
16773 p->error_indicator = 1;
16774 D(p->level--);
16775 return NULL;
16776 }
16777 goto done;
16778 }
16779 p->mark = _mark;
16780 D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016781 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' target_with_star_atom ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016782 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016783 { // '(' star_targets_tuple_seq? ')'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016784 if (p->error_indicator) {
16785 D(p->level--);
16786 return NULL;
16787 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016788 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 +010016789 Token * _literal;
16790 Token * _literal_1;
16791 void *a;
16792 if (
16793 (_literal = _PyPegen_expect_token(p, 7)) // token='('
16794 &&
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016795 (a = star_targets_tuple_seq_rule(p), 1) // star_targets_tuple_seq?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016796 &&
16797 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
16798 )
16799 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016800 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 +010016801 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16802 if (_token == NULL) {
16803 D(p->level--);
16804 return NULL;
16805 }
16806 int _end_lineno = _token->end_lineno;
16807 UNUSED(_end_lineno); // Only used by EXTRA macro
16808 int _end_col_offset = _token->end_col_offset;
16809 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016810 _res = _PyAST_Tuple ( a , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016811 if (_res == NULL && PyErr_Occurred()) {
16812 p->error_indicator = 1;
16813 D(p->level--);
16814 return NULL;
16815 }
16816 goto done;
16817 }
16818 p->mark = _mark;
16819 D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016820 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' star_targets_tuple_seq? ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016821 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016822 { // '[' star_targets_list_seq? ']'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016823 if (p->error_indicator) {
16824 D(p->level--);
16825 return NULL;
16826 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016827 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 +010016828 Token * _literal;
16829 Token * _literal_1;
16830 void *a;
16831 if (
16832 (_literal = _PyPegen_expect_token(p, 9)) // token='['
16833 &&
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016834 (a = star_targets_list_seq_rule(p), 1) // star_targets_list_seq?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016835 &&
16836 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
16837 )
16838 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016839 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 +010016840 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16841 if (_token == NULL) {
16842 D(p->level--);
16843 return NULL;
16844 }
16845 int _end_lineno = _token->end_lineno;
16846 UNUSED(_end_lineno); // Only used by EXTRA macro
16847 int _end_col_offset = _token->end_col_offset;
16848 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016849 _res = _PyAST_List ( a , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016850 if (_res == NULL && PyErr_Occurred()) {
16851 p->error_indicator = 1;
16852 D(p->level--);
16853 return NULL;
16854 }
16855 goto done;
16856 }
16857 p->mark = _mark;
16858 D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016859 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' star_targets_list_seq? ']'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016860 }
16861 _res = NULL;
16862 done:
16863 D(p->level--);
16864 return _res;
16865}
16866
16867// single_target: single_subscript_attribute_target | NAME | '(' single_target ')'
16868static expr_ty
16869single_target_rule(Parser *p)
16870{
16871 D(p->level++);
16872 if (p->error_indicator) {
16873 D(p->level--);
16874 return NULL;
16875 }
16876 expr_ty _res = NULL;
16877 int _mark = p->mark;
16878 { // single_subscript_attribute_target
16879 if (p->error_indicator) {
16880 D(p->level--);
16881 return NULL;
16882 }
16883 D(fprintf(stderr, "%*c> single_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "single_subscript_attribute_target"));
16884 expr_ty single_subscript_attribute_target_var;
16885 if (
16886 (single_subscript_attribute_target_var = single_subscript_attribute_target_rule(p)) // single_subscript_attribute_target
16887 )
16888 {
16889 D(fprintf(stderr, "%*c+ single_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "single_subscript_attribute_target"));
16890 _res = single_subscript_attribute_target_var;
16891 goto done;
16892 }
16893 p->mark = _mark;
16894 D(fprintf(stderr, "%*c%s single_target[%d-%d]: %s failed!\n", p->level, ' ',
16895 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "single_subscript_attribute_target"));
16896 }
16897 { // NAME
16898 if (p->error_indicator) {
16899 D(p->level--);
16900 return NULL;
16901 }
16902 D(fprintf(stderr, "%*c> single_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
16903 expr_ty a;
16904 if (
16905 (a = _PyPegen_name_token(p)) // NAME
16906 )
16907 {
16908 D(fprintf(stderr, "%*c+ single_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
16909 _res = _PyPegen_set_expr_context ( p , a , Store );
16910 if (_res == NULL && PyErr_Occurred()) {
16911 p->error_indicator = 1;
16912 D(p->level--);
16913 return NULL;
16914 }
16915 goto done;
16916 }
16917 p->mark = _mark;
16918 D(fprintf(stderr, "%*c%s single_target[%d-%d]: %s failed!\n", p->level, ' ',
16919 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
16920 }
16921 { // '(' single_target ')'
16922 if (p->error_indicator) {
16923 D(p->level--);
16924 return NULL;
16925 }
16926 D(fprintf(stderr, "%*c> single_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'"));
16927 Token * _literal;
16928 Token * _literal_1;
16929 expr_ty a;
16930 if (
16931 (_literal = _PyPegen_expect_token(p, 7)) // token='('
16932 &&
16933 (a = single_target_rule(p)) // single_target
16934 &&
16935 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
16936 )
16937 {
16938 D(fprintf(stderr, "%*c+ single_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'"));
16939 _res = a;
16940 if (_res == NULL && PyErr_Occurred()) {
16941 p->error_indicator = 1;
16942 D(p->level--);
16943 return NULL;
16944 }
16945 goto done;
16946 }
16947 p->mark = _mark;
16948 D(fprintf(stderr, "%*c%s single_target[%d-%d]: %s failed!\n", p->level, ' ',
16949 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' single_target ')'"));
16950 }
16951 _res = NULL;
16952 done:
16953 D(p->level--);
16954 return _res;
16955}
16956
16957// single_subscript_attribute_target:
16958// | t_primary '.' NAME !t_lookahead
16959// | t_primary '[' slices ']' !t_lookahead
16960static expr_ty
16961single_subscript_attribute_target_rule(Parser *p)
16962{
16963 D(p->level++);
16964 if (p->error_indicator) {
16965 D(p->level--);
16966 return NULL;
16967 }
16968 expr_ty _res = NULL;
16969 int _mark = p->mark;
16970 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
16971 p->error_indicator = 1;
16972 D(p->level--);
16973 return NULL;
16974 }
16975 int _start_lineno = p->tokens[_mark]->lineno;
16976 UNUSED(_start_lineno); // Only used by EXTRA macro
16977 int _start_col_offset = p->tokens[_mark]->col_offset;
16978 UNUSED(_start_col_offset); // Only used by EXTRA macro
16979 { // t_primary '.' NAME !t_lookahead
16980 if (p->error_indicator) {
16981 D(p->level--);
16982 return NULL;
16983 }
16984 D(fprintf(stderr, "%*c> single_subscript_attribute_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
16985 Token * _literal;
16986 expr_ty a;
16987 expr_ty b;
16988 if (
16989 (a = t_primary_rule(p)) // t_primary
16990 &&
16991 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
16992 &&
16993 (b = _PyPegen_name_token(p)) // NAME
16994 &&
16995 _PyPegen_lookahead(0, t_lookahead_rule, p)
16996 )
16997 {
16998 D(fprintf(stderr, "%*c+ single_subscript_attribute_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
16999 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17000 if (_token == NULL) {
17001 D(p->level--);
17002 return NULL;
17003 }
17004 int _end_lineno = _token->end_lineno;
17005 UNUSED(_end_lineno); // Only used by EXTRA macro
17006 int _end_col_offset = _token->end_col_offset;
17007 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017008 _res = _PyAST_Attribute ( a , b -> v . Name . id , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017009 if (_res == NULL && PyErr_Occurred()) {
17010 p->error_indicator = 1;
17011 D(p->level--);
17012 return NULL;
17013 }
17014 goto done;
17015 }
17016 p->mark = _mark;
17017 D(fprintf(stderr, "%*c%s single_subscript_attribute_target[%d-%d]: %s failed!\n", p->level, ' ',
17018 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
17019 }
17020 { // t_primary '[' slices ']' !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 '[' slices ']' !t_lookahead"));
17026 Token * _literal;
17027 Token * _literal_1;
17028 expr_ty a;
17029 expr_ty b;
17030 if (
17031 (a = t_primary_rule(p)) // t_primary
17032 &&
17033 (_literal = _PyPegen_expect_token(p, 9)) // token='['
17034 &&
17035 (b = slices_rule(p)) // slices
17036 &&
17037 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
17038 &&
17039 _PyPegen_lookahead(0, t_lookahead_rule, p)
17040 )
17041 {
17042 D(fprintf(stderr, "%*c+ single_subscript_attribute_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
17043 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17044 if (_token == NULL) {
17045 D(p->level--);
17046 return NULL;
17047 }
17048 int _end_lineno = _token->end_lineno;
17049 UNUSED(_end_lineno); // Only used by EXTRA macro
17050 int _end_col_offset = _token->end_col_offset;
17051 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017052 _res = _PyAST_Subscript ( a , b , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017053 if (_res == NULL && PyErr_Occurred()) {
17054 p->error_indicator = 1;
17055 D(p->level--);
17056 return NULL;
17057 }
17058 goto done;
17059 }
17060 p->mark = _mark;
17061 D(fprintf(stderr, "%*c%s single_subscript_attribute_target[%d-%d]: %s failed!\n", p->level, ' ',
17062 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
17063 }
17064 _res = NULL;
17065 done:
17066 D(p->level--);
17067 return _res;
17068}
17069
17070// del_targets: ','.del_target+ ','?
Pablo Galindoa5634c42020-09-16 19:42:00 +010017071static asdl_expr_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017072del_targets_rule(Parser *p)
17073{
17074 D(p->level++);
17075 if (p->error_indicator) {
17076 D(p->level--);
17077 return NULL;
17078 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010017079 asdl_expr_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017080 int _mark = p->mark;
17081 { // ','.del_target+ ','?
17082 if (p->error_indicator) {
17083 D(p->level--);
17084 return NULL;
17085 }
17086 D(fprintf(stderr, "%*c> del_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.del_target+ ','?"));
17087 void *_opt_var;
17088 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +010017089 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017090 if (
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070017091 (a = (asdl_expr_seq*)_gather_139_rule(p)) // ','.del_target+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017092 &&
17093 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
17094 )
17095 {
17096 D(fprintf(stderr, "%*c+ del_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.del_target+ ','?"));
17097 _res = a;
17098 if (_res == NULL && PyErr_Occurred()) {
17099 p->error_indicator = 1;
17100 D(p->level--);
17101 return NULL;
17102 }
17103 goto done;
17104 }
17105 p->mark = _mark;
17106 D(fprintf(stderr, "%*c%s del_targets[%d-%d]: %s failed!\n", p->level, ' ',
17107 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.del_target+ ','?"));
17108 }
17109 _res = NULL;
17110 done:
17111 D(p->level--);
17112 return _res;
17113}
17114
17115// del_target:
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017116// | t_primary '.' NAME !t_lookahead
17117// | t_primary '[' slices ']' !t_lookahead
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017118// | del_t_atom
17119static expr_ty
17120del_target_rule(Parser *p)
17121{
17122 D(p->level++);
17123 if (p->error_indicator) {
17124 D(p->level--);
17125 return NULL;
17126 }
17127 expr_ty _res = NULL;
17128 if (_PyPegen_is_memoized(p, del_target_type, &_res)) {
17129 D(p->level--);
17130 return _res;
17131 }
17132 int _mark = p->mark;
17133 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
17134 p->error_indicator = 1;
17135 D(p->level--);
17136 return NULL;
17137 }
17138 int _start_lineno = p->tokens[_mark]->lineno;
17139 UNUSED(_start_lineno); // Only used by EXTRA macro
17140 int _start_col_offset = p->tokens[_mark]->col_offset;
17141 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017142 { // t_primary '.' NAME !t_lookahead
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017143 if (p->error_indicator) {
17144 D(p->level--);
17145 return NULL;
17146 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017147 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 +010017148 Token * _literal;
17149 expr_ty a;
17150 expr_ty b;
17151 if (
17152 (a = t_primary_rule(p)) // t_primary
17153 &&
17154 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
17155 &&
17156 (b = _PyPegen_name_token(p)) // NAME
17157 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017158 _PyPegen_lookahead(0, t_lookahead_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017159 )
17160 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017161 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 +010017162 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17163 if (_token == NULL) {
17164 D(p->level--);
17165 return NULL;
17166 }
17167 int _end_lineno = _token->end_lineno;
17168 UNUSED(_end_lineno); // Only used by EXTRA macro
17169 int _end_col_offset = _token->end_col_offset;
17170 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017171 _res = _PyAST_Attribute ( a , b -> v . Name . id , Del , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017172 if (_res == NULL && PyErr_Occurred()) {
17173 p->error_indicator = 1;
17174 D(p->level--);
17175 return NULL;
17176 }
17177 goto done;
17178 }
17179 p->mark = _mark;
17180 D(fprintf(stderr, "%*c%s del_target[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017181 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017182 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017183 { // t_primary '[' slices ']' !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 '[' slices ']' !t_lookahead"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017189 Token * _literal;
17190 Token * _literal_1;
17191 expr_ty a;
17192 expr_ty b;
17193 if (
17194 (a = t_primary_rule(p)) // t_primary
17195 &&
17196 (_literal = _PyPegen_expect_token(p, 9)) // token='['
17197 &&
17198 (b = slices_rule(p)) // slices
17199 &&
17200 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
17201 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017202 _PyPegen_lookahead(0, t_lookahead_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017203 )
17204 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017205 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 +010017206 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17207 if (_token == NULL) {
17208 D(p->level--);
17209 return NULL;
17210 }
17211 int _end_lineno = _token->end_lineno;
17212 UNUSED(_end_lineno); // Only used by EXTRA macro
17213 int _end_col_offset = _token->end_col_offset;
17214 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017215 _res = _PyAST_Subscript ( a , b , Del , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017216 if (_res == NULL && PyErr_Occurred()) {
17217 p->error_indicator = 1;
17218 D(p->level--);
17219 return NULL;
17220 }
17221 goto done;
17222 }
17223 p->mark = _mark;
17224 D(fprintf(stderr, "%*c%s del_target[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017225 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017226 }
17227 { // del_t_atom
17228 if (p->error_indicator) {
17229 D(p->level--);
17230 return NULL;
17231 }
17232 D(fprintf(stderr, "%*c> del_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "del_t_atom"));
17233 expr_ty del_t_atom_var;
17234 if (
17235 (del_t_atom_var = del_t_atom_rule(p)) // del_t_atom
17236 )
17237 {
17238 D(fprintf(stderr, "%*c+ del_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "del_t_atom"));
17239 _res = del_t_atom_var;
17240 goto done;
17241 }
17242 p->mark = _mark;
17243 D(fprintf(stderr, "%*c%s del_target[%d-%d]: %s failed!\n", p->level, ' ',
17244 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "del_t_atom"));
17245 }
17246 _res = NULL;
17247 done:
17248 _PyPegen_insert_memo(p, _mark, del_target_type, _res);
17249 D(p->level--);
17250 return _res;
17251}
17252
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017253// del_t_atom: NAME | '(' del_target ')' | '(' del_targets? ')' | '[' del_targets? ']'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017254static expr_ty
17255del_t_atom_rule(Parser *p)
17256{
17257 D(p->level++);
17258 if (p->error_indicator) {
17259 D(p->level--);
17260 return NULL;
17261 }
17262 expr_ty _res = NULL;
17263 int _mark = p->mark;
17264 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
17265 p->error_indicator = 1;
17266 D(p->level--);
17267 return NULL;
17268 }
17269 int _start_lineno = p->tokens[_mark]->lineno;
17270 UNUSED(_start_lineno); // Only used by EXTRA macro
17271 int _start_col_offset = p->tokens[_mark]->col_offset;
17272 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017273 { // NAME
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017274 if (p->error_indicator) {
17275 D(p->level--);
17276 return NULL;
17277 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017278 D(fprintf(stderr, "%*c> del_t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017279 expr_ty a;
17280 if (
17281 (a = _PyPegen_name_token(p)) // NAME
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017282 )
17283 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017284 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 +010017285 _res = _PyPegen_set_expr_context ( p , a , Del );
17286 if (_res == NULL && PyErr_Occurred()) {
17287 p->error_indicator = 1;
17288 D(p->level--);
17289 return NULL;
17290 }
17291 goto done;
17292 }
17293 p->mark = _mark;
17294 D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017295 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017296 }
17297 { // '(' del_target ')'
17298 if (p->error_indicator) {
17299 D(p->level--);
17300 return NULL;
17301 }
17302 D(fprintf(stderr, "%*c> del_t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' del_target ')'"));
17303 Token * _literal;
17304 Token * _literal_1;
17305 expr_ty a;
17306 if (
17307 (_literal = _PyPegen_expect_token(p, 7)) // token='('
17308 &&
17309 (a = del_target_rule(p)) // del_target
17310 &&
17311 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
17312 )
17313 {
17314 D(fprintf(stderr, "%*c+ del_t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' del_target ')'"));
17315 _res = _PyPegen_set_expr_context ( p , a , Del );
17316 if (_res == NULL && PyErr_Occurred()) {
17317 p->error_indicator = 1;
17318 D(p->level--);
17319 return NULL;
17320 }
17321 goto done;
17322 }
17323 p->mark = _mark;
17324 D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
17325 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' del_target ')'"));
17326 }
17327 { // '(' del_targets? ')'
17328 if (p->error_indicator) {
17329 D(p->level--);
17330 return NULL;
17331 }
17332 D(fprintf(stderr, "%*c> del_t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' del_targets? ')'"));
17333 Token * _literal;
17334 Token * _literal_1;
17335 void *a;
17336 if (
17337 (_literal = _PyPegen_expect_token(p, 7)) // token='('
17338 &&
17339 (a = del_targets_rule(p), 1) // del_targets?
17340 &&
17341 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
17342 )
17343 {
17344 D(fprintf(stderr, "%*c+ del_t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' del_targets? ')'"));
17345 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17346 if (_token == NULL) {
17347 D(p->level--);
17348 return NULL;
17349 }
17350 int _end_lineno = _token->end_lineno;
17351 UNUSED(_end_lineno); // Only used by EXTRA macro
17352 int _end_col_offset = _token->end_col_offset;
17353 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017354 _res = _PyAST_Tuple ( a , Del , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017355 if (_res == NULL && PyErr_Occurred()) {
17356 p->error_indicator = 1;
17357 D(p->level--);
17358 return NULL;
17359 }
17360 goto done;
17361 }
17362 p->mark = _mark;
17363 D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
17364 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' del_targets? ')'"));
17365 }
17366 { // '[' del_targets? ']'
17367 if (p->error_indicator) {
17368 D(p->level--);
17369 return NULL;
17370 }
17371 D(fprintf(stderr, "%*c> del_t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' del_targets? ']'"));
17372 Token * _literal;
17373 Token * _literal_1;
17374 void *a;
17375 if (
17376 (_literal = _PyPegen_expect_token(p, 9)) // token='['
17377 &&
17378 (a = del_targets_rule(p), 1) // del_targets?
17379 &&
17380 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
17381 )
17382 {
17383 D(fprintf(stderr, "%*c+ del_t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'[' del_targets? ']'"));
17384 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17385 if (_token == NULL) {
17386 D(p->level--);
17387 return NULL;
17388 }
17389 int _end_lineno = _token->end_lineno;
17390 UNUSED(_end_lineno); // Only used by EXTRA macro
17391 int _end_col_offset = _token->end_col_offset;
17392 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017393 _res = _PyAST_List ( a , Del , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017394 if (_res == NULL && PyErr_Occurred()) {
17395 p->error_indicator = 1;
17396 D(p->level--);
17397 return NULL;
17398 }
17399 goto done;
17400 }
17401 p->mark = _mark;
17402 D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
17403 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' del_targets? ']'"));
17404 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017405 _res = NULL;
17406 done:
17407 D(p->level--);
17408 return _res;
17409}
17410
17411// targets: ','.target+ ','?
Pablo Galindoa5634c42020-09-16 19:42:00 +010017412static asdl_expr_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017413targets_rule(Parser *p)
17414{
17415 D(p->level++);
17416 if (p->error_indicator) {
17417 D(p->level--);
17418 return NULL;
17419 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010017420 asdl_expr_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017421 int _mark = p->mark;
17422 { // ','.target+ ','?
17423 if (p->error_indicator) {
17424 D(p->level--);
17425 return NULL;
17426 }
17427 D(fprintf(stderr, "%*c> targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.target+ ','?"));
17428 void *_opt_var;
17429 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +010017430 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017431 if (
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070017432 (a = (asdl_expr_seq*)_gather_141_rule(p)) // ','.target+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017433 &&
17434 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
17435 )
17436 {
17437 D(fprintf(stderr, "%*c+ targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.target+ ','?"));
17438 _res = a;
17439 if (_res == NULL && PyErr_Occurred()) {
17440 p->error_indicator = 1;
17441 D(p->level--);
17442 return NULL;
17443 }
17444 goto done;
17445 }
17446 p->mark = _mark;
17447 D(fprintf(stderr, "%*c%s targets[%d-%d]: %s failed!\n", p->level, ' ',
17448 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.target+ ','?"));
17449 }
17450 _res = NULL;
17451 done:
17452 D(p->level--);
17453 return _res;
17454}
17455
17456// target:
17457// | t_primary '.' NAME !t_lookahead
17458// | t_primary '[' slices ']' !t_lookahead
17459// | t_atom
17460static expr_ty
17461target_rule(Parser *p)
17462{
17463 D(p->level++);
17464 if (p->error_indicator) {
17465 D(p->level--);
17466 return NULL;
17467 }
17468 expr_ty _res = NULL;
17469 if (_PyPegen_is_memoized(p, target_type, &_res)) {
17470 D(p->level--);
17471 return _res;
17472 }
17473 int _mark = p->mark;
17474 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
17475 p->error_indicator = 1;
17476 D(p->level--);
17477 return NULL;
17478 }
17479 int _start_lineno = p->tokens[_mark]->lineno;
17480 UNUSED(_start_lineno); // Only used by EXTRA macro
17481 int _start_col_offset = p->tokens[_mark]->col_offset;
17482 UNUSED(_start_col_offset); // Only used by EXTRA macro
17483 { // t_primary '.' NAME !t_lookahead
17484 if (p->error_indicator) {
17485 D(p->level--);
17486 return NULL;
17487 }
17488 D(fprintf(stderr, "%*c> target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
17489 Token * _literal;
17490 expr_ty a;
17491 expr_ty b;
17492 if (
17493 (a = t_primary_rule(p)) // t_primary
17494 &&
17495 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
17496 &&
17497 (b = _PyPegen_name_token(p)) // NAME
17498 &&
17499 _PyPegen_lookahead(0, t_lookahead_rule, p)
17500 )
17501 {
17502 D(fprintf(stderr, "%*c+ target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
17503 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17504 if (_token == NULL) {
17505 D(p->level--);
17506 return NULL;
17507 }
17508 int _end_lineno = _token->end_lineno;
17509 UNUSED(_end_lineno); // Only used by EXTRA macro
17510 int _end_col_offset = _token->end_col_offset;
17511 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017512 _res = _PyAST_Attribute ( a , b -> v . Name . id , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017513 if (_res == NULL && PyErr_Occurred()) {
17514 p->error_indicator = 1;
17515 D(p->level--);
17516 return NULL;
17517 }
17518 goto done;
17519 }
17520 p->mark = _mark;
17521 D(fprintf(stderr, "%*c%s target[%d-%d]: %s failed!\n", p->level, ' ',
17522 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
17523 }
17524 { // t_primary '[' slices ']' !t_lookahead
17525 if (p->error_indicator) {
17526 D(p->level--);
17527 return NULL;
17528 }
17529 D(fprintf(stderr, "%*c> target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
17530 Token * _literal;
17531 Token * _literal_1;
17532 expr_ty a;
17533 expr_ty b;
17534 if (
17535 (a = t_primary_rule(p)) // t_primary
17536 &&
17537 (_literal = _PyPegen_expect_token(p, 9)) // token='['
17538 &&
17539 (b = slices_rule(p)) // slices
17540 &&
17541 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
17542 &&
17543 _PyPegen_lookahead(0, t_lookahead_rule, p)
17544 )
17545 {
17546 D(fprintf(stderr, "%*c+ target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
17547 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17548 if (_token == NULL) {
17549 D(p->level--);
17550 return NULL;
17551 }
17552 int _end_lineno = _token->end_lineno;
17553 UNUSED(_end_lineno); // Only used by EXTRA macro
17554 int _end_col_offset = _token->end_col_offset;
17555 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017556 _res = _PyAST_Subscript ( a , b , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017557 if (_res == NULL && PyErr_Occurred()) {
17558 p->error_indicator = 1;
17559 D(p->level--);
17560 return NULL;
17561 }
17562 goto done;
17563 }
17564 p->mark = _mark;
17565 D(fprintf(stderr, "%*c%s target[%d-%d]: %s failed!\n", p->level, ' ',
17566 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
17567 }
17568 { // t_atom
17569 if (p->error_indicator) {
17570 D(p->level--);
17571 return NULL;
17572 }
17573 D(fprintf(stderr, "%*c> target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_atom"));
17574 expr_ty t_atom_var;
17575 if (
17576 (t_atom_var = t_atom_rule(p)) // t_atom
17577 )
17578 {
17579 D(fprintf(stderr, "%*c+ target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_atom"));
17580 _res = t_atom_var;
17581 goto done;
17582 }
17583 p->mark = _mark;
17584 D(fprintf(stderr, "%*c%s target[%d-%d]: %s failed!\n", p->level, ' ',
17585 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_atom"));
17586 }
17587 _res = NULL;
17588 done:
17589 _PyPegen_insert_memo(p, _mark, target_type, _res);
17590 D(p->level--);
17591 return _res;
17592}
17593
17594// Left-recursive
17595// t_primary:
17596// | t_primary '.' NAME &t_lookahead
17597// | t_primary '[' slices ']' &t_lookahead
17598// | t_primary genexp &t_lookahead
17599// | t_primary '(' arguments? ')' &t_lookahead
17600// | atom &t_lookahead
17601static expr_ty t_primary_raw(Parser *);
17602static expr_ty
17603t_primary_rule(Parser *p)
17604{
17605 D(p->level++);
17606 expr_ty _res = NULL;
17607 if (_PyPegen_is_memoized(p, t_primary_type, &_res)) {
17608 D(p->level--);
17609 return _res;
17610 }
17611 int _mark = p->mark;
17612 int _resmark = p->mark;
17613 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080017614 int tmpvar_9 = _PyPegen_update_memo(p, _mark, t_primary_type, _res);
17615 if (tmpvar_9) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017616 D(p->level--);
17617 return _res;
17618 }
17619 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070017620 p->in_raw_rule++;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017621 void *_raw = t_primary_raw(p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070017622 p->in_raw_rule--;
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020017623 if (p->error_indicator)
17624 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017625 if (_raw == NULL || p->mark <= _resmark)
17626 break;
17627 _resmark = p->mark;
17628 _res = _raw;
17629 }
17630 p->mark = _resmark;
17631 D(p->level--);
17632 return _res;
17633}
17634static expr_ty
17635t_primary_raw(Parser *p)
17636{
17637 D(p->level++);
17638 if (p->error_indicator) {
17639 D(p->level--);
17640 return NULL;
17641 }
17642 expr_ty _res = NULL;
17643 int _mark = p->mark;
17644 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
17645 p->error_indicator = 1;
17646 D(p->level--);
17647 return NULL;
17648 }
17649 int _start_lineno = p->tokens[_mark]->lineno;
17650 UNUSED(_start_lineno); // Only used by EXTRA macro
17651 int _start_col_offset = p->tokens[_mark]->col_offset;
17652 UNUSED(_start_col_offset); // Only used by EXTRA macro
17653 { // t_primary '.' NAME &t_lookahead
17654 if (p->error_indicator) {
17655 D(p->level--);
17656 return NULL;
17657 }
17658 D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME &t_lookahead"));
17659 Token * _literal;
17660 expr_ty a;
17661 expr_ty b;
17662 if (
17663 (a = t_primary_rule(p)) // t_primary
17664 &&
17665 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
17666 &&
17667 (b = _PyPegen_name_token(p)) // NAME
17668 &&
17669 _PyPegen_lookahead(1, t_lookahead_rule, p)
17670 )
17671 {
17672 D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME &t_lookahead"));
17673 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17674 if (_token == NULL) {
17675 D(p->level--);
17676 return NULL;
17677 }
17678 int _end_lineno = _token->end_lineno;
17679 UNUSED(_end_lineno); // Only used by EXTRA macro
17680 int _end_col_offset = _token->end_col_offset;
17681 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017682 _res = _PyAST_Attribute ( a , b -> v . Name . id , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017683 if (_res == NULL && PyErr_Occurred()) {
17684 p->error_indicator = 1;
17685 D(p->level--);
17686 return NULL;
17687 }
17688 goto done;
17689 }
17690 p->mark = _mark;
17691 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
17692 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME &t_lookahead"));
17693 }
17694 { // t_primary '[' slices ']' &t_lookahead
17695 if (p->error_indicator) {
17696 D(p->level--);
17697 return NULL;
17698 }
17699 D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' &t_lookahead"));
17700 Token * _literal;
17701 Token * _literal_1;
17702 expr_ty a;
17703 expr_ty b;
17704 if (
17705 (a = t_primary_rule(p)) // t_primary
17706 &&
17707 (_literal = _PyPegen_expect_token(p, 9)) // token='['
17708 &&
17709 (b = slices_rule(p)) // slices
17710 &&
17711 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
17712 &&
17713 _PyPegen_lookahead(1, t_lookahead_rule, p)
17714 )
17715 {
17716 D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' &t_lookahead"));
17717 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17718 if (_token == NULL) {
17719 D(p->level--);
17720 return NULL;
17721 }
17722 int _end_lineno = _token->end_lineno;
17723 UNUSED(_end_lineno); // Only used by EXTRA macro
17724 int _end_col_offset = _token->end_col_offset;
17725 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017726 _res = _PyAST_Subscript ( a , b , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017727 if (_res == NULL && PyErr_Occurred()) {
17728 p->error_indicator = 1;
17729 D(p->level--);
17730 return NULL;
17731 }
17732 goto done;
17733 }
17734 p->mark = _mark;
17735 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
17736 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' &t_lookahead"));
17737 }
17738 { // t_primary genexp &t_lookahead
17739 if (p->error_indicator) {
17740 D(p->level--);
17741 return NULL;
17742 }
17743 D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary genexp &t_lookahead"));
17744 expr_ty a;
17745 expr_ty b;
17746 if (
17747 (a = t_primary_rule(p)) // t_primary
17748 &&
17749 (b = genexp_rule(p)) // genexp
17750 &&
17751 _PyPegen_lookahead(1, t_lookahead_rule, p)
17752 )
17753 {
17754 D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary genexp &t_lookahead"));
17755 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17756 if (_token == NULL) {
17757 D(p->level--);
17758 return NULL;
17759 }
17760 int _end_lineno = _token->end_lineno;
17761 UNUSED(_end_lineno); // Only used by EXTRA macro
17762 int _end_col_offset = _token->end_col_offset;
17763 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017764 _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 +010017765 if (_res == NULL && PyErr_Occurred()) {
17766 p->error_indicator = 1;
17767 D(p->level--);
17768 return NULL;
17769 }
17770 goto done;
17771 }
17772 p->mark = _mark;
17773 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
17774 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary genexp &t_lookahead"));
17775 }
17776 { // t_primary '(' arguments? ')' &t_lookahead
17777 if (p->error_indicator) {
17778 D(p->level--);
17779 return NULL;
17780 }
17781 D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '(' arguments? ')' &t_lookahead"));
17782 Token * _literal;
17783 Token * _literal_1;
17784 expr_ty a;
17785 void *b;
17786 if (
17787 (a = t_primary_rule(p)) // t_primary
17788 &&
17789 (_literal = _PyPegen_expect_token(p, 7)) // token='('
17790 &&
17791 (b = arguments_rule(p), 1) // arguments?
17792 &&
17793 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
17794 &&
17795 _PyPegen_lookahead(1, t_lookahead_rule, p)
17796 )
17797 {
17798 D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '(' arguments? ')' &t_lookahead"));
17799 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17800 if (_token == NULL) {
17801 D(p->level--);
17802 return NULL;
17803 }
17804 int _end_lineno = _token->end_lineno;
17805 UNUSED(_end_lineno); // Only used by EXTRA macro
17806 int _end_col_offset = _token->end_col_offset;
17807 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017808 _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 +010017809 if (_res == NULL && PyErr_Occurred()) {
17810 p->error_indicator = 1;
17811 D(p->level--);
17812 return NULL;
17813 }
17814 goto done;
17815 }
17816 p->mark = _mark;
17817 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
17818 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '(' arguments? ')' &t_lookahead"));
17819 }
17820 { // atom &t_lookahead
17821 if (p->error_indicator) {
17822 D(p->level--);
17823 return NULL;
17824 }
17825 D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "atom &t_lookahead"));
17826 expr_ty a;
17827 if (
17828 (a = atom_rule(p)) // atom
17829 &&
17830 _PyPegen_lookahead(1, t_lookahead_rule, p)
17831 )
17832 {
17833 D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "atom &t_lookahead"));
17834 _res = a;
17835 if (_res == NULL && PyErr_Occurred()) {
17836 p->error_indicator = 1;
17837 D(p->level--);
17838 return NULL;
17839 }
17840 goto done;
17841 }
17842 p->mark = _mark;
17843 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
17844 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "atom &t_lookahead"));
17845 }
17846 _res = NULL;
17847 done:
17848 D(p->level--);
17849 return _res;
17850}
17851
17852// t_lookahead: '(' | '[' | '.'
17853static void *
17854t_lookahead_rule(Parser *p)
17855{
17856 D(p->level++);
17857 if (p->error_indicator) {
17858 D(p->level--);
17859 return NULL;
17860 }
17861 void * _res = NULL;
17862 int _mark = p->mark;
17863 { // '('
17864 if (p->error_indicator) {
17865 D(p->level--);
17866 return NULL;
17867 }
17868 D(fprintf(stderr, "%*c> t_lookahead[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'('"));
17869 Token * _literal;
17870 if (
17871 (_literal = _PyPegen_expect_token(p, 7)) // token='('
17872 )
17873 {
17874 D(fprintf(stderr, "%*c+ t_lookahead[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'('"));
17875 _res = _literal;
17876 goto done;
17877 }
17878 p->mark = _mark;
17879 D(fprintf(stderr, "%*c%s t_lookahead[%d-%d]: %s failed!\n", p->level, ' ',
17880 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'('"));
17881 }
17882 { // '['
17883 if (p->error_indicator) {
17884 D(p->level--);
17885 return NULL;
17886 }
17887 D(fprintf(stderr, "%*c> t_lookahead[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['"));
17888 Token * _literal;
17889 if (
17890 (_literal = _PyPegen_expect_token(p, 9)) // token='['
17891 )
17892 {
17893 D(fprintf(stderr, "%*c+ t_lookahead[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['"));
17894 _res = _literal;
17895 goto done;
17896 }
17897 p->mark = _mark;
17898 D(fprintf(stderr, "%*c%s t_lookahead[%d-%d]: %s failed!\n", p->level, ' ',
17899 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'['"));
17900 }
17901 { // '.'
17902 if (p->error_indicator) {
17903 D(p->level--);
17904 return NULL;
17905 }
17906 D(fprintf(stderr, "%*c> t_lookahead[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
17907 Token * _literal;
17908 if (
17909 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
17910 )
17911 {
17912 D(fprintf(stderr, "%*c+ t_lookahead[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
17913 _res = _literal;
17914 goto done;
17915 }
17916 p->mark = _mark;
17917 D(fprintf(stderr, "%*c%s t_lookahead[%d-%d]: %s failed!\n", p->level, ' ',
17918 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
17919 }
17920 _res = NULL;
17921 done:
17922 D(p->level--);
17923 return _res;
17924}
17925
17926// t_atom: NAME | '(' target ')' | '(' targets? ')' | '[' targets? ']'
17927static expr_ty
17928t_atom_rule(Parser *p)
17929{
17930 D(p->level++);
17931 if (p->error_indicator) {
17932 D(p->level--);
17933 return NULL;
17934 }
17935 expr_ty _res = NULL;
17936 int _mark = p->mark;
17937 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
17938 p->error_indicator = 1;
17939 D(p->level--);
17940 return NULL;
17941 }
17942 int _start_lineno = p->tokens[_mark]->lineno;
17943 UNUSED(_start_lineno); // Only used by EXTRA macro
17944 int _start_col_offset = p->tokens[_mark]->col_offset;
17945 UNUSED(_start_col_offset); // Only used by EXTRA macro
17946 { // NAME
17947 if (p->error_indicator) {
17948 D(p->level--);
17949 return NULL;
17950 }
17951 D(fprintf(stderr, "%*c> t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
17952 expr_ty a;
17953 if (
17954 (a = _PyPegen_name_token(p)) // NAME
17955 )
17956 {
17957 D(fprintf(stderr, "%*c+ t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
17958 _res = _PyPegen_set_expr_context ( p , a , Store );
17959 if (_res == NULL && PyErr_Occurred()) {
17960 p->error_indicator = 1;
17961 D(p->level--);
17962 return NULL;
17963 }
17964 goto done;
17965 }
17966 p->mark = _mark;
17967 D(fprintf(stderr, "%*c%s t_atom[%d-%d]: %s failed!\n", p->level, ' ',
17968 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
17969 }
17970 { // '(' target ')'
17971 if (p->error_indicator) {
17972 D(p->level--);
17973 return NULL;
17974 }
17975 D(fprintf(stderr, "%*c> t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' target ')'"));
17976 Token * _literal;
17977 Token * _literal_1;
17978 expr_ty a;
17979 if (
17980 (_literal = _PyPegen_expect_token(p, 7)) // token='('
17981 &&
17982 (a = target_rule(p)) // target
17983 &&
17984 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
17985 )
17986 {
17987 D(fprintf(stderr, "%*c+ t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' target ')'"));
17988 _res = _PyPegen_set_expr_context ( p , a , Store );
17989 if (_res == NULL && PyErr_Occurred()) {
17990 p->error_indicator = 1;
17991 D(p->level--);
17992 return NULL;
17993 }
17994 goto done;
17995 }
17996 p->mark = _mark;
17997 D(fprintf(stderr, "%*c%s t_atom[%d-%d]: %s failed!\n", p->level, ' ',
17998 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' target ')'"));
17999 }
18000 { // '(' targets? ')'
18001 if (p->error_indicator) {
18002 D(p->level--);
18003 return NULL;
18004 }
18005 D(fprintf(stderr, "%*c> t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' targets? ')'"));
18006 Token * _literal;
18007 Token * _literal_1;
18008 void *b;
18009 if (
18010 (_literal = _PyPegen_expect_token(p, 7)) // token='('
18011 &&
18012 (b = targets_rule(p), 1) // targets?
18013 &&
18014 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
18015 )
18016 {
18017 D(fprintf(stderr, "%*c+ t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' targets? ')'"));
18018 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
18019 if (_token == NULL) {
18020 D(p->level--);
18021 return NULL;
18022 }
18023 int _end_lineno = _token->end_lineno;
18024 UNUSED(_end_lineno); // Only used by EXTRA macro
18025 int _end_col_offset = _token->end_col_offset;
18026 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020018027 _res = _PyAST_Tuple ( b , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018028 if (_res == NULL && PyErr_Occurred()) {
18029 p->error_indicator = 1;
18030 D(p->level--);
18031 return NULL;
18032 }
18033 goto done;
18034 }
18035 p->mark = _mark;
18036 D(fprintf(stderr, "%*c%s t_atom[%d-%d]: %s failed!\n", p->level, ' ',
18037 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' targets? ')'"));
18038 }
18039 { // '[' targets? ']'
18040 if (p->error_indicator) {
18041 D(p->level--);
18042 return NULL;
18043 }
18044 D(fprintf(stderr, "%*c> t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' targets? ']'"));
18045 Token * _literal;
18046 Token * _literal_1;
18047 void *b;
18048 if (
18049 (_literal = _PyPegen_expect_token(p, 9)) // token='['
18050 &&
18051 (b = targets_rule(p), 1) // targets?
18052 &&
18053 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
18054 )
18055 {
18056 D(fprintf(stderr, "%*c+ t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'[' targets? ']'"));
18057 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
18058 if (_token == NULL) {
18059 D(p->level--);
18060 return NULL;
18061 }
18062 int _end_lineno = _token->end_lineno;
18063 UNUSED(_end_lineno); // Only used by EXTRA macro
18064 int _end_col_offset = _token->end_col_offset;
18065 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020018066 _res = _PyAST_List ( b , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018067 if (_res == NULL && PyErr_Occurred()) {
18068 p->error_indicator = 1;
18069 D(p->level--);
18070 return NULL;
18071 }
18072 goto done;
18073 }
18074 p->mark = _mark;
18075 D(fprintf(stderr, "%*c%s t_atom[%d-%d]: %s failed!\n", p->level, ' ',
18076 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' targets? ']'"));
18077 }
18078 _res = NULL;
18079 done:
18080 D(p->level--);
18081 return _res;
18082}
18083
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020018084// invalid_arguments:
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018085// | args ',' '*'
18086// | expression for_if_clauses ',' [args | expression for_if_clauses]
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018087// | NAME '=' expression for_if_clauses
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018088// | args for_if_clauses
18089// | args ',' expression for_if_clauses
18090// | args ',' args
18091static void *
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020018092invalid_arguments_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018093{
18094 D(p->level++);
18095 if (p->error_indicator) {
18096 D(p->level--);
18097 return NULL;
18098 }
18099 void * _res = NULL;
18100 int _mark = p->mark;
18101 { // args ',' '*'
18102 if (p->error_indicator) {
18103 D(p->level--);
18104 return NULL;
18105 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020018106 D(fprintf(stderr, "%*c> invalid_arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args ',' '*'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018107 Token * _literal;
18108 Token * _literal_1;
Pablo Galindoa77aac42021-04-23 14:27:05 +010018109 expr_ty a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018110 if (
Pablo Galindoa77aac42021-04-23 14:27:05 +010018111 (a = args_rule(p)) // args
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018112 &&
18113 (_literal = _PyPegen_expect_token(p, 12)) // token=','
18114 &&
18115 (_literal_1 = _PyPegen_expect_token(p, 16)) // token='*'
18116 )
18117 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020018118 D(fprintf(stderr, "%*c+ invalid_arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args ',' '*'"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010018119 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "iterable argument unpacking follows keyword argument unpacking" );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018120 if (_res == NULL && PyErr_Occurred()) {
18121 p->error_indicator = 1;
18122 D(p->level--);
18123 return NULL;
18124 }
18125 goto done;
18126 }
18127 p->mark = _mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020018128 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018129 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ',' '*'"));
18130 }
18131 { // expression for_if_clauses ',' [args | expression for_if_clauses]
18132 if (p->error_indicator) {
18133 D(p->level--);
18134 return NULL;
18135 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020018136 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 +010018137 Token * _literal;
18138 void *_opt_var;
18139 UNUSED(_opt_var); // Silence compiler warnings
18140 expr_ty a;
Pablo Galindoa77aac42021-04-23 14:27:05 +010018141 asdl_comprehension_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018142 if (
18143 (a = expression_rule(p)) // expression
18144 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010018145 (b = for_if_clauses_rule(p)) // for_if_clauses
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018146 &&
18147 (_literal = _PyPegen_expect_token(p, 12)) // token=','
18148 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018149 (_opt_var = _tmp_143_rule(p), 1) // [args | expression for_if_clauses]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018150 )
18151 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020018152 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 +010018153 _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 +010018154 if (_res == NULL && PyErr_Occurred()) {
18155 p->error_indicator = 1;
18156 D(p->level--);
18157 return NULL;
18158 }
18159 goto done;
18160 }
18161 p->mark = _mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020018162 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018163 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression for_if_clauses ',' [args | expression for_if_clauses]"));
18164 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018165 { // NAME '=' expression for_if_clauses
18166 if (p->error_indicator) {
18167 D(p->level--);
18168 return NULL;
18169 }
18170 D(fprintf(stderr, "%*c> invalid_arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME '=' expression for_if_clauses"));
18171 expr_ty a;
18172 Token * b;
18173 expr_ty expression_var;
18174 asdl_comprehension_seq* for_if_clauses_var;
18175 if (
18176 (a = _PyPegen_name_token(p)) // NAME
18177 &&
18178 (b = _PyPegen_expect_token(p, 22)) // token='='
18179 &&
18180 (expression_var = expression_rule(p)) // expression
18181 &&
18182 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
18183 )
18184 {
18185 D(fprintf(stderr, "%*c+ invalid_arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '=' expression for_if_clauses"));
18186 _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , b , "invalid syntax. Maybe you meant '==' or ':=' instead of '='?" );
18187 if (_res == NULL && PyErr_Occurred()) {
18188 p->error_indicator = 1;
18189 D(p->level--);
18190 return NULL;
18191 }
18192 goto done;
18193 }
18194 p->mark = _mark;
18195 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
18196 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' expression for_if_clauses"));
18197 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018198 { // args for_if_clauses
18199 if (p->error_indicator) {
18200 D(p->level--);
18201 return NULL;
18202 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020018203 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 +010018204 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010018205 asdl_comprehension_seq* for_if_clauses_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018206 if (
18207 (a = args_rule(p)) // args
18208 &&
18209 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
18210 )
18211 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020018212 D(fprintf(stderr, "%*c+ invalid_arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args for_if_clauses"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018213 _res = _PyPegen_nonparen_genexp_in_call ( p , a );
18214 if (_res == NULL && PyErr_Occurred()) {
18215 p->error_indicator = 1;
18216 D(p->level--);
18217 return NULL;
18218 }
18219 goto done;
18220 }
18221 p->mark = _mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020018222 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018223 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args for_if_clauses"));
18224 }
18225 { // args ',' expression for_if_clauses
18226 if (p->error_indicator) {
18227 D(p->level--);
18228 return NULL;
18229 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020018230 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 +010018231 Token * _literal;
18232 expr_ty a;
18233 expr_ty args_var;
Pablo Galindoa77aac42021-04-23 14:27:05 +010018234 asdl_comprehension_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018235 if (
18236 (args_var = args_rule(p)) // args
18237 &&
18238 (_literal = _PyPegen_expect_token(p, 12)) // token=','
18239 &&
18240 (a = expression_rule(p)) // expression
18241 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010018242 (b = for_if_clauses_rule(p)) // for_if_clauses
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018243 )
18244 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020018245 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 +010018246 _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 +010018247 if (_res == NULL && PyErr_Occurred()) {
18248 p->error_indicator = 1;
18249 D(p->level--);
18250 return NULL;
18251 }
18252 goto done;
18253 }
18254 p->mark = _mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020018255 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018256 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ',' expression for_if_clauses"));
18257 }
18258 { // args ',' args
18259 if (p->error_indicator) {
18260 D(p->level--);
18261 return NULL;
18262 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020018263 D(fprintf(stderr, "%*c> invalid_arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args ',' args"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018264 Token * _literal;
18265 expr_ty a;
18266 expr_ty args_var;
18267 if (
18268 (a = args_rule(p)) // args
18269 &&
18270 (_literal = _PyPegen_expect_token(p, 12)) // token=','
18271 &&
18272 (args_var = args_rule(p)) // args
18273 )
18274 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020018275 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 +010018276 _res = _PyPegen_arguments_parsing_error ( p , a );
18277 if (_res == NULL && PyErr_Occurred()) {
18278 p->error_indicator = 1;
18279 D(p->level--);
18280 return NULL;
18281 }
18282 goto done;
18283 }
18284 p->mark = _mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020018285 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018286 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ',' args"));
18287 }
18288 _res = NULL;
18289 done:
18290 D(p->level--);
18291 return _res;
18292}
18293
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018294// invalid_kwarg: NAME '=' expression for_if_clauses | !(NAME '=') expression '='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018295static void *
18296invalid_kwarg_rule(Parser *p)
18297{
18298 D(p->level++);
18299 if (p->error_indicator) {
18300 D(p->level--);
18301 return NULL;
18302 }
18303 void * _res = NULL;
18304 int _mark = p->mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018305 { // NAME '=' expression for_if_clauses
18306 if (p->error_indicator) {
18307 D(p->level--);
18308 return NULL;
18309 }
18310 D(fprintf(stderr, "%*c> invalid_kwarg[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME '=' expression for_if_clauses"));
18311 expr_ty a;
18312 Token * b;
18313 expr_ty expression_var;
18314 asdl_comprehension_seq* for_if_clauses_var;
18315 if (
18316 (a = _PyPegen_name_token(p)) // NAME
18317 &&
18318 (b = _PyPegen_expect_token(p, 22)) // token='='
18319 &&
18320 (expression_var = expression_rule(p)) // expression
18321 &&
18322 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
18323 )
18324 {
18325 D(fprintf(stderr, "%*c+ invalid_kwarg[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '=' expression for_if_clauses"));
18326 _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , b , "invalid syntax. Maybe you meant '==' or ':=' instead of '='?" );
18327 if (_res == NULL && PyErr_Occurred()) {
18328 p->error_indicator = 1;
18329 D(p->level--);
18330 return NULL;
18331 }
18332 goto done;
18333 }
18334 p->mark = _mark;
18335 D(fprintf(stderr, "%*c%s invalid_kwarg[%d-%d]: %s failed!\n", p->level, ' ',
18336 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' expression for_if_clauses"));
18337 }
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070018338 { // !(NAME '=') expression '='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018339 if (p->error_indicator) {
18340 D(p->level--);
18341 return NULL;
18342 }
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070018343 D(fprintf(stderr, "%*c> invalid_kwarg[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "!(NAME '=') expression '='"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010018344 expr_ty a;
18345 Token * b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018346 if (
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018347 _PyPegen_lookahead(0, _tmp_144_rule, p)
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070018348 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010018349 (a = expression_rule(p)) // expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018350 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010018351 (b = _PyPegen_expect_token(p, 22)) // token='='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018352 )
18353 {
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070018354 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 +010018355 _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , b , "expression cannot contain assignment, perhaps you meant \"==\"?" );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018356 if (_res == NULL && PyErr_Occurred()) {
18357 p->error_indicator = 1;
18358 D(p->level--);
18359 return NULL;
18360 }
18361 goto done;
18362 }
18363 p->mark = _mark;
18364 D(fprintf(stderr, "%*c%s invalid_kwarg[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070018365 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "!(NAME '=') expression '='"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018366 }
18367 _res = NULL;
18368 done:
18369 D(p->level--);
18370 return _res;
18371}
18372
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018373// expression_without_invalid:
18374// | disjunction 'if' disjunction 'else' expression
18375// | disjunction
18376// | lambdef
18377static expr_ty
18378expression_without_invalid_rule(Parser *p)
18379{
18380 D(p->level++);
18381 if (p->error_indicator) {
18382 D(p->level--);
18383 return NULL;
18384 }
18385 expr_ty _res = NULL;
18386 int _mark = p->mark;
18387 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
18388 p->error_indicator = 1;
18389 D(p->level--);
18390 return NULL;
18391 }
18392 int _start_lineno = p->tokens[_mark]->lineno;
18393 UNUSED(_start_lineno); // Only used by EXTRA macro
18394 int _start_col_offset = p->tokens[_mark]->col_offset;
18395 UNUSED(_start_col_offset); // Only used by EXTRA macro
18396 { // disjunction 'if' disjunction 'else' expression
18397 if (p->error_indicator) {
18398 D(p->level--);
18399 return NULL;
18400 }
18401 D(fprintf(stderr, "%*c> expression_without_invalid[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "disjunction 'if' disjunction 'else' expression"));
18402 Token * _keyword;
18403 Token * _keyword_1;
18404 expr_ty a;
18405 expr_ty b;
18406 expr_ty c;
18407 if (
18408 (a = disjunction_rule(p)) // disjunction
18409 &&
18410 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
18411 &&
18412 (b = disjunction_rule(p)) // disjunction
18413 &&
18414 (_keyword_1 = _PyPegen_expect_token(p, 516)) // token='else'
18415 &&
18416 (c = expression_rule(p)) // expression
18417 )
18418 {
18419 D(fprintf(stderr, "%*c+ expression_without_invalid[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "disjunction 'if' disjunction 'else' expression"));
18420 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
18421 if (_token == NULL) {
18422 D(p->level--);
18423 return NULL;
18424 }
18425 int _end_lineno = _token->end_lineno;
18426 UNUSED(_end_lineno); // Only used by EXTRA macro
18427 int _end_col_offset = _token->end_col_offset;
18428 UNUSED(_end_col_offset); // Only used by EXTRA macro
18429 _res = _PyAST_IfExp ( b , a , c , EXTRA );
18430 if (_res == NULL && PyErr_Occurred()) {
18431 p->error_indicator = 1;
18432 D(p->level--);
18433 return NULL;
18434 }
18435 goto done;
18436 }
18437 p->mark = _mark;
18438 D(fprintf(stderr, "%*c%s expression_without_invalid[%d-%d]: %s failed!\n", p->level, ' ',
18439 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "disjunction 'if' disjunction 'else' expression"));
18440 }
18441 { // disjunction
18442 if (p->error_indicator) {
18443 D(p->level--);
18444 return NULL;
18445 }
18446 D(fprintf(stderr, "%*c> expression_without_invalid[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "disjunction"));
18447 expr_ty disjunction_var;
18448 if (
18449 (disjunction_var = disjunction_rule(p)) // disjunction
18450 )
18451 {
18452 D(fprintf(stderr, "%*c+ expression_without_invalid[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "disjunction"));
18453 _res = disjunction_var;
18454 goto done;
18455 }
18456 p->mark = _mark;
18457 D(fprintf(stderr, "%*c%s expression_without_invalid[%d-%d]: %s failed!\n", p->level, ' ',
18458 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "disjunction"));
18459 }
18460 { // lambdef
18461 if (p->error_indicator) {
18462 D(p->level--);
18463 return NULL;
18464 }
18465 D(fprintf(stderr, "%*c> expression_without_invalid[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambdef"));
18466 expr_ty lambdef_var;
18467 if (
18468 (lambdef_var = lambdef_rule(p)) // lambdef
18469 )
18470 {
18471 D(fprintf(stderr, "%*c+ expression_without_invalid[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambdef"));
18472 _res = lambdef_var;
18473 goto done;
18474 }
18475 p->mark = _mark;
18476 D(fprintf(stderr, "%*c%s expression_without_invalid[%d-%d]: %s failed!\n", p->level, ' ',
18477 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambdef"));
18478 }
18479 _res = NULL;
18480 done:
18481 D(p->level--);
18482 return _res;
18483}
18484
18485// invalid_expression:
18486// | !(NAME STRING | SOFT_KEYWORD) disjunction expression_without_invalid
Pablo Galindob2802482021-04-15 21:38:45 +010018487static void *
18488invalid_expression_rule(Parser *p)
18489{
18490 D(p->level++);
18491 if (p->error_indicator) {
18492 D(p->level--);
18493 return NULL;
18494 }
18495 void * _res = NULL;
18496 int _mark = p->mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018497 { // !(NAME STRING | SOFT_KEYWORD) disjunction expression_without_invalid
Pablo Galindob2802482021-04-15 21:38:45 +010018498 if (p->error_indicator) {
18499 D(p->level--);
18500 return NULL;
18501 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018502 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 +010018503 expr_ty a;
Pablo Galindoa77aac42021-04-23 14:27:05 +010018504 expr_ty b;
Pablo Galindob2802482021-04-15 21:38:45 +010018505 if (
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018506 _PyPegen_lookahead(0, _tmp_145_rule, p)
Pablo Galindob2802482021-04-15 21:38:45 +010018507 &&
18508 (a = disjunction_rule(p)) // disjunction
18509 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018510 (b = expression_without_invalid_rule(p)) // expression_without_invalid
Pablo Galindob2802482021-04-15 21:38:45 +010018511 )
18512 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018513 D(fprintf(stderr, "%*c+ invalid_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "!(NAME STRING | SOFT_KEYWORD) disjunction expression_without_invalid"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010018514 _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , b , "invalid syntax. Perhaps you forgot a comma?" );
Pablo Galindob2802482021-04-15 21:38:45 +010018515 if (_res == NULL && PyErr_Occurred()) {
18516 p->error_indicator = 1;
18517 D(p->level--);
18518 return NULL;
18519 }
18520 goto done;
18521 }
18522 p->mark = _mark;
18523 D(fprintf(stderr, "%*c%s invalid_expression[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018524 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "!(NAME STRING | SOFT_KEYWORD) disjunction expression_without_invalid"));
Pablo Galindob2802482021-04-15 21:38:45 +010018525 }
18526 _res = NULL;
18527 done:
18528 D(p->level--);
18529 return _res;
18530}
18531
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018532// invalid_named_expression:
18533// | expression ':=' expression
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018534// | NAME '=' bitwise_or !('=' | ':=')
18535// | !(list | tuple | genexp | 'True' | 'None' | 'False') bitwise_or '=' bitwise_or !('=' | ':=')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018536static void *
18537invalid_named_expression_rule(Parser *p)
18538{
18539 D(p->level++);
18540 if (p->error_indicator) {
18541 D(p->level--);
18542 return NULL;
18543 }
18544 void * _res = NULL;
18545 int _mark = p->mark;
18546 { // expression ':=' expression
18547 if (p->error_indicator) {
18548 D(p->level--);
18549 return NULL;
18550 }
18551 D(fprintf(stderr, "%*c> invalid_named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':=' expression"));
18552 Token * _literal;
18553 expr_ty a;
18554 expr_ty expression_var;
18555 if (
18556 (a = expression_rule(p)) // expression
18557 &&
18558 (_literal = _PyPegen_expect_token(p, 53)) // token=':='
18559 &&
18560 (expression_var = expression_rule(p)) // expression
18561 )
18562 {
18563 D(fprintf(stderr, "%*c+ invalid_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':=' expression"));
18564 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "cannot use assignment expressions with %s" , _PyPegen_get_expr_name ( a ) );
18565 if (_res == NULL && PyErr_Occurred()) {
18566 p->error_indicator = 1;
18567 D(p->level--);
18568 return NULL;
18569 }
18570 goto done;
18571 }
18572 p->mark = _mark;
18573 D(fprintf(stderr, "%*c%s invalid_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
18574 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':=' expression"));
18575 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018576 { // NAME '=' bitwise_or !('=' | ':=')
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018577 if (p->error_indicator) {
18578 D(p->level--);
18579 return NULL;
18580 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018581 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 +010018582 Token * _literal;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018583 expr_ty a;
Pablo Galindoa77aac42021-04-23 14:27:05 +010018584 expr_ty b;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018585 if (
18586 (a = _PyPegen_name_token(p)) // NAME
18587 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010018588 (_literal = _PyPegen_expect_token(p, 22)) // token='='
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018589 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010018590 (b = bitwise_or_rule(p)) // bitwise_or
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018591 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018592 _PyPegen_lookahead(0, _tmp_146_rule, p)
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018593 )
18594 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018595 D(fprintf(stderr, "%*c+ invalid_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '=' bitwise_or !('=' | ':=')"));
18596 _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 +010018597 if (_res == NULL && PyErr_Occurred()) {
18598 p->error_indicator = 1;
18599 D(p->level--);
18600 return NULL;
18601 }
18602 goto done;
18603 }
18604 p->mark = _mark;
18605 D(fprintf(stderr, "%*c%s invalid_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018606 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' bitwise_or !('=' | ':=')"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018607 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018608 { // !(list | tuple | genexp | 'True' | 'None' | 'False') bitwise_or '=' bitwise_or !('=' | ':=')
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018609 if (p->error_indicator) {
18610 D(p->level--);
18611 return NULL;
18612 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018613 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 +010018614 expr_ty a;
18615 Token * b;
18616 expr_ty bitwise_or_var;
18617 if (
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018618 _PyPegen_lookahead(0, _tmp_147_rule, p)
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018619 &&
18620 (a = bitwise_or_rule(p)) // bitwise_or
18621 &&
18622 (b = _PyPegen_expect_token(p, 22)) // token='='
18623 &&
18624 (bitwise_or_var = bitwise_or_rule(p)) // bitwise_or
18625 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018626 _PyPegen_lookahead(0, _tmp_148_rule, p)
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018627 )
18628 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018629 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 !('=' | ':=')"));
18630 _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 +010018631 if (_res == NULL && PyErr_Occurred()) {
18632 p->error_indicator = 1;
18633 D(p->level--);
18634 return NULL;
18635 }
18636 goto done;
18637 }
18638 p->mark = _mark;
18639 D(fprintf(stderr, "%*c%s invalid_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018640 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "!(list | tuple | genexp | 'True' | 'None' | 'False') bitwise_or '=' bitwise_or !('=' | ':=')"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018641 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018642 _res = NULL;
18643 done:
18644 D(p->level--);
18645 return _res;
18646}
18647
18648// invalid_assignment:
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030018649// | invalid_ann_assign_target ':' expression
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018650// | star_named_expression ',' star_named_expressions* ':' expression
18651// | expression ':' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018652// | ((star_targets '='))* star_expressions '='
18653// | ((star_targets '='))* yield_expr '='
18654// | star_expressions augassign (yield_expr | star_expressions)
18655static void *
18656invalid_assignment_rule(Parser *p)
18657{
18658 D(p->level++);
18659 if (p->error_indicator) {
18660 D(p->level--);
18661 return NULL;
18662 }
18663 void * _res = NULL;
18664 int _mark = p->mark;
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030018665 { // invalid_ann_assign_target ':' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018666 if (p->error_indicator) {
18667 D(p->level--);
18668 return NULL;
18669 }
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030018670 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 +010018671 Token * _literal;
18672 expr_ty a;
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018673 expr_ty expression_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018674 if (
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030018675 (a = invalid_ann_assign_target_rule(p)) // invalid_ann_assign_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018676 &&
18677 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018678 &&
18679 (expression_var = expression_rule(p)) // expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018680 )
18681 {
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030018682 D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_ann_assign_target ':' expression"));
18683 _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 +010018684 if (_res == NULL && PyErr_Occurred()) {
18685 p->error_indicator = 1;
18686 D(p->level--);
18687 return NULL;
18688 }
18689 goto done;
18690 }
18691 p->mark = _mark;
18692 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030018693 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_ann_assign_target ':' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018694 }
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018695 { // star_named_expression ',' star_named_expressions* ':' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018696 if (p->error_indicator) {
18697 D(p->level--);
18698 return NULL;
18699 }
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018700 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 +010018701 Token * _literal;
18702 Token * _literal_1;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018703 asdl_seq * _loop0_149_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018704 expr_ty a;
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018705 expr_ty expression_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018706 if (
18707 (a = star_named_expression_rule(p)) // star_named_expression
18708 &&
18709 (_literal = _PyPegen_expect_token(p, 12)) // token=','
18710 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018711 (_loop0_149_var = _loop0_149_rule(p)) // star_named_expressions*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018712 &&
18713 (_literal_1 = _PyPegen_expect_token(p, 11)) // token=':'
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018714 &&
18715 (expression_var = expression_rule(p)) // expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018716 )
18717 {
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018718 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 +010018719 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "only single target (not tuple) can be annotated" );
18720 if (_res == NULL && PyErr_Occurred()) {
18721 p->error_indicator = 1;
18722 D(p->level--);
18723 return NULL;
18724 }
18725 goto done;
18726 }
18727 p->mark = _mark;
18728 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018729 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression ',' star_named_expressions* ':' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018730 }
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018731 { // expression ':' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018732 if (p->error_indicator) {
18733 D(p->level--);
18734 return NULL;
18735 }
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018736 D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018737 Token * _literal;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018738 expr_ty a;
18739 expr_ty expression_var;
18740 if (
18741 (a = expression_rule(p)) // expression
18742 &&
18743 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
18744 &&
18745 (expression_var = expression_rule(p)) // expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018746 )
18747 {
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018748 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 +010018749 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "illegal target for annotation" );
18750 if (_res == NULL && PyErr_Occurred()) {
18751 p->error_indicator = 1;
18752 D(p->level--);
18753 return NULL;
18754 }
18755 goto done;
18756 }
18757 p->mark = _mark;
18758 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018759 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018760 }
18761 { // ((star_targets '='))* star_expressions '='
18762 if (p->error_indicator) {
18763 D(p->level--);
18764 return NULL;
18765 }
18766 D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "((star_targets '='))* star_expressions '='"));
18767 Token * _literal;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018768 asdl_seq * _loop0_150_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018769 expr_ty a;
18770 if (
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018771 (_loop0_150_var = _loop0_150_rule(p)) // ((star_targets '='))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018772 &&
18773 (a = star_expressions_rule(p)) // star_expressions
18774 &&
18775 (_literal = _PyPegen_expect_token(p, 22)) // token='='
18776 )
18777 {
18778 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 +030018779 _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( STAR_TARGETS , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018780 if (_res == NULL && PyErr_Occurred()) {
18781 p->error_indicator = 1;
18782 D(p->level--);
18783 return NULL;
18784 }
18785 goto done;
18786 }
18787 p->mark = _mark;
18788 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
18789 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "((star_targets '='))* star_expressions '='"));
18790 }
18791 { // ((star_targets '='))* yield_expr '='
18792 if (p->error_indicator) {
18793 D(p->level--);
18794 return NULL;
18795 }
18796 D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "((star_targets '='))* yield_expr '='"));
18797 Token * _literal;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018798 asdl_seq * _loop0_151_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018799 expr_ty a;
18800 if (
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018801 (_loop0_151_var = _loop0_151_rule(p)) // ((star_targets '='))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018802 &&
18803 (a = yield_expr_rule(p)) // yield_expr
18804 &&
18805 (_literal = _PyPegen_expect_token(p, 22)) // token='='
18806 )
18807 {
18808 D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "((star_targets '='))* yield_expr '='"));
18809 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "assignment to yield expression not possible" );
18810 if (_res == NULL && PyErr_Occurred()) {
18811 p->error_indicator = 1;
18812 D(p->level--);
18813 return NULL;
18814 }
18815 goto done;
18816 }
18817 p->mark = _mark;
18818 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
18819 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "((star_targets '='))* yield_expr '='"));
18820 }
18821 { // star_expressions augassign (yield_expr | star_expressions)
18822 if (p->error_indicator) {
18823 D(p->level--);
18824 return NULL;
18825 }
18826 D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions augassign (yield_expr | star_expressions)"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018827 void *_tmp_152_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018828 expr_ty a;
18829 AugOperator* augassign_var;
18830 if (
18831 (a = star_expressions_rule(p)) // star_expressions
18832 &&
18833 (augassign_var = augassign_rule(p)) // augassign
18834 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018835 (_tmp_152_var = _tmp_152_rule(p)) // yield_expr | star_expressions
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018836 )
18837 {
18838 D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions augassign (yield_expr | star_expressions)"));
18839 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "'%s' is an illegal expression for augmented assignment" , _PyPegen_get_expr_name ( a ) );
18840 if (_res == NULL && PyErr_Occurred()) {
18841 p->error_indicator = 1;
18842 D(p->level--);
18843 return NULL;
18844 }
18845 goto done;
18846 }
18847 p->mark = _mark;
18848 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
18849 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions augassign (yield_expr | star_expressions)"));
18850 }
18851 _res = NULL;
18852 done:
18853 D(p->level--);
18854 return _res;
18855}
18856
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030018857// invalid_ann_assign_target: list | tuple | '(' invalid_ann_assign_target ')'
18858static expr_ty
18859invalid_ann_assign_target_rule(Parser *p)
18860{
18861 D(p->level++);
18862 if (p->error_indicator) {
18863 D(p->level--);
18864 return NULL;
18865 }
18866 expr_ty _res = NULL;
18867 int _mark = p->mark;
18868 { // list
18869 if (p->error_indicator) {
18870 D(p->level--);
18871 return NULL;
18872 }
18873 D(fprintf(stderr, "%*c> invalid_ann_assign_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "list"));
18874 expr_ty list_var;
18875 if (
18876 (list_var = list_rule(p)) // list
18877 )
18878 {
18879 D(fprintf(stderr, "%*c+ invalid_ann_assign_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "list"));
18880 _res = list_var;
18881 goto done;
18882 }
18883 p->mark = _mark;
18884 D(fprintf(stderr, "%*c%s invalid_ann_assign_target[%d-%d]: %s failed!\n", p->level, ' ',
18885 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "list"));
18886 }
18887 { // tuple
18888 if (p->error_indicator) {
18889 D(p->level--);
18890 return NULL;
18891 }
18892 D(fprintf(stderr, "%*c> invalid_ann_assign_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "tuple"));
18893 expr_ty tuple_var;
18894 if (
18895 (tuple_var = tuple_rule(p)) // tuple
18896 )
18897 {
18898 D(fprintf(stderr, "%*c+ invalid_ann_assign_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "tuple"));
18899 _res = tuple_var;
18900 goto done;
18901 }
18902 p->mark = _mark;
18903 D(fprintf(stderr, "%*c%s invalid_ann_assign_target[%d-%d]: %s failed!\n", p->level, ' ',
18904 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "tuple"));
18905 }
18906 { // '(' invalid_ann_assign_target ')'
18907 if (p->error_indicator) {
18908 D(p->level--);
18909 return NULL;
18910 }
18911 D(fprintf(stderr, "%*c> invalid_ann_assign_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' invalid_ann_assign_target ')'"));
18912 Token * _literal;
18913 Token * _literal_1;
18914 expr_ty a;
18915 if (
18916 (_literal = _PyPegen_expect_token(p, 7)) // token='('
18917 &&
18918 (a = invalid_ann_assign_target_rule(p)) // invalid_ann_assign_target
18919 &&
18920 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
18921 )
18922 {
18923 D(fprintf(stderr, "%*c+ invalid_ann_assign_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' invalid_ann_assign_target ')'"));
18924 _res = a;
18925 if (_res == NULL && PyErr_Occurred()) {
18926 p->error_indicator = 1;
18927 D(p->level--);
18928 return NULL;
18929 }
18930 goto done;
18931 }
18932 p->mark = _mark;
18933 D(fprintf(stderr, "%*c%s invalid_ann_assign_target[%d-%d]: %s failed!\n", p->level, ' ',
18934 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' invalid_ann_assign_target ')'"));
18935 }
18936 _res = NULL;
18937 done:
18938 D(p->level--);
18939 return _res;
18940}
18941
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018942// invalid_del_stmt: 'del' star_expressions
18943static void *
18944invalid_del_stmt_rule(Parser *p)
18945{
18946 D(p->level++);
18947 if (p->error_indicator) {
18948 D(p->level--);
18949 return NULL;
18950 }
18951 void * _res = NULL;
18952 int _mark = p->mark;
18953 { // 'del' star_expressions
18954 if (p->error_indicator) {
18955 D(p->level--);
18956 return NULL;
18957 }
18958 D(fprintf(stderr, "%*c> invalid_del_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'del' star_expressions"));
18959 Token * _keyword;
18960 expr_ty a;
18961 if (
18962 (_keyword = _PyPegen_expect_token(p, 503)) // token='del'
18963 &&
18964 (a = star_expressions_rule(p)) // star_expressions
18965 )
18966 {
18967 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 +030018968 _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( DEL_TARGETS , a );
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018969 if (_res == NULL && PyErr_Occurred()) {
18970 p->error_indicator = 1;
18971 D(p->level--);
18972 return NULL;
18973 }
18974 goto done;
18975 }
18976 p->mark = _mark;
18977 D(fprintf(stderr, "%*c%s invalid_del_stmt[%d-%d]: %s failed!\n", p->level, ' ',
18978 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'del' star_expressions"));
18979 }
18980 _res = NULL;
18981 done:
18982 D(p->level--);
18983 return _res;
18984}
18985
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018986// invalid_block: NEWLINE !INDENT
18987static void *
18988invalid_block_rule(Parser *p)
18989{
18990 D(p->level++);
18991 if (p->error_indicator) {
18992 D(p->level--);
18993 return NULL;
18994 }
18995 void * _res = NULL;
18996 int _mark = p->mark;
18997 { // NEWLINE !INDENT
18998 if (p->error_indicator) {
18999 D(p->level--);
19000 return NULL;
19001 }
19002 D(fprintf(stderr, "%*c> invalid_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE !INDENT"));
19003 Token * newline_var;
19004 if (
19005 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
19006 &&
19007 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
19008 )
19009 {
19010 D(fprintf(stderr, "%*c+ invalid_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE !INDENT"));
19011 _res = RAISE_INDENTATION_ERROR ( "expected an indented block" );
19012 if (_res == NULL && PyErr_Occurred()) {
19013 p->error_indicator = 1;
19014 D(p->level--);
19015 return NULL;
19016 }
19017 goto done;
19018 }
19019 p->mark = _mark;
19020 D(fprintf(stderr, "%*c%s invalid_block[%d-%d]: %s failed!\n", p->level, ' ',
19021 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE !INDENT"));
19022 }
19023 _res = NULL;
19024 done:
19025 D(p->level--);
19026 return _res;
19027}
19028
Lysandros Nikolaou15acc4e2020-10-27 20:54:20 +020019029// Left-recursive
19030// invalid_primary: primary '{'
19031static void *
19032invalid_primary_rule(Parser *p)
19033{
19034 D(p->level++);
19035 if (p->error_indicator) {
19036 D(p->level--);
19037 return NULL;
19038 }
19039 void * _res = NULL;
19040 int _mark = p->mark;
19041 { // primary '{'
19042 if (p->error_indicator) {
19043 D(p->level--);
19044 return NULL;
19045 }
19046 D(fprintf(stderr, "%*c> invalid_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '{'"));
19047 Token * a;
19048 expr_ty primary_var;
19049 if (
19050 (primary_var = primary_rule(p)) // primary
19051 &&
19052 (a = _PyPegen_expect_token(p, 25)) // token='{'
19053 )
19054 {
19055 D(fprintf(stderr, "%*c+ invalid_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '{'"));
19056 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "invalid syntax" );
19057 if (_res == NULL && PyErr_Occurred()) {
19058 p->error_indicator = 1;
19059 D(p->level--);
19060 return NULL;
19061 }
19062 goto done;
19063 }
19064 p->mark = _mark;
19065 D(fprintf(stderr, "%*c%s invalid_primary[%d-%d]: %s failed!\n", p->level, ' ',
19066 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '{'"));
19067 }
19068 _res = NULL;
19069 done:
19070 D(p->level--);
19071 return _res;
19072}
19073
Pablo Galindo835f14f2021-01-31 22:52:56 +000019074// invalid_comprehension:
19075// | ('[' | '(' | '{') starred_expression for_if_clauses
Pablo Galindoa77aac42021-04-23 14:27:05 +010019076// | ('[' | '{') star_named_expression ',' star_named_expressions for_if_clauses
19077// | ('[' | '{') star_named_expression ',' for_if_clauses
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019078static void *
19079invalid_comprehension_rule(Parser *p)
19080{
19081 D(p->level++);
19082 if (p->error_indicator) {
19083 D(p->level--);
19084 return NULL;
19085 }
19086 void * _res = NULL;
19087 int _mark = p->mark;
19088 { // ('[' | '(' | '{') starred_expression for_if_clauses
19089 if (p->error_indicator) {
19090 D(p->level--);
19091 return NULL;
19092 }
19093 D(fprintf(stderr, "%*c> invalid_comprehension[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('[' | '(' | '{') starred_expression for_if_clauses"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070019094 void *_tmp_153_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019095 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010019096 asdl_comprehension_seq* for_if_clauses_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019097 if (
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070019098 (_tmp_153_var = _tmp_153_rule(p)) // '[' | '(' | '{'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019099 &&
19100 (a = starred_expression_rule(p)) // starred_expression
19101 &&
19102 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
19103 )
19104 {
19105 D(fprintf(stderr, "%*c+ invalid_comprehension[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "('[' | '(' | '{') starred_expression for_if_clauses"));
19106 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "iterable unpacking cannot be used in comprehension" );
19107 if (_res == NULL && PyErr_Occurred()) {
19108 p->error_indicator = 1;
19109 D(p->level--);
19110 return NULL;
19111 }
19112 goto done;
19113 }
19114 p->mark = _mark;
19115 D(fprintf(stderr, "%*c%s invalid_comprehension[%d-%d]: %s failed!\n", p->level, ' ',
19116 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('[' | '(' | '{') starred_expression for_if_clauses"));
19117 }
Pablo Galindoa77aac42021-04-23 14:27:05 +010019118 { // ('[' | '{') star_named_expression ',' star_named_expressions for_if_clauses
Pablo Galindo835f14f2021-01-31 22:52:56 +000019119 if (p->error_indicator) {
19120 D(p->level--);
19121 return NULL;
19122 }
Pablo Galindoa77aac42021-04-23 14:27:05 +010019123 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 +000019124 Token * _literal;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070019125 void *_tmp_154_var;
Pablo Galindo835f14f2021-01-31 22:52:56 +000019126 expr_ty a;
Pablo Galindoa77aac42021-04-23 14:27:05 +010019127 asdl_expr_seq* b;
Pablo Galindod4e6ed72021-02-03 23:29:26 +000019128 asdl_comprehension_seq* for_if_clauses_var;
Pablo Galindo835f14f2021-01-31 22:52:56 +000019129 if (
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070019130 (_tmp_154_var = _tmp_154_rule(p)) // '[' | '{'
Pablo Galindo835f14f2021-01-31 22:52:56 +000019131 &&
19132 (a = star_named_expression_rule(p)) // star_named_expression
19133 &&
19134 (_literal = _PyPegen_expect_token(p, 12)) // token=','
19135 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010019136 (b = star_named_expressions_rule(p)) // star_named_expressions
Pablo Galindod4e6ed72021-02-03 23:29:26 +000019137 &&
19138 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
Pablo Galindo835f14f2021-01-31 22:52:56 +000019139 )
19140 {
Pablo Galindoa77aac42021-04-23 14:27:05 +010019141 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"));
19142 _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 +000019143 if (_res == NULL && PyErr_Occurred()) {
19144 p->error_indicator = 1;
19145 D(p->level--);
19146 return NULL;
19147 }
19148 goto done;
19149 }
19150 p->mark = _mark;
19151 D(fprintf(stderr, "%*c%s invalid_comprehension[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindoa77aac42021-04-23 14:27:05 +010019152 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('[' | '{') star_named_expression ',' star_named_expressions for_if_clauses"));
19153 }
19154 { // ('[' | '{') star_named_expression ',' for_if_clauses
19155 if (p->error_indicator) {
19156 D(p->level--);
19157 return NULL;
19158 }
19159 D(fprintf(stderr, "%*c> invalid_comprehension[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('[' | '{') star_named_expression ',' for_if_clauses"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070019160 void *_tmp_155_var;
Pablo Galindoa77aac42021-04-23 14:27:05 +010019161 expr_ty a;
19162 Token * b;
19163 asdl_comprehension_seq* for_if_clauses_var;
19164 if (
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070019165 (_tmp_155_var = _tmp_155_rule(p)) // '[' | '{'
Pablo Galindoa77aac42021-04-23 14:27:05 +010019166 &&
19167 (a = star_named_expression_rule(p)) // star_named_expression
19168 &&
19169 (b = _PyPegen_expect_token(p, 12)) // token=','
19170 &&
19171 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
19172 )
19173 {
19174 D(fprintf(stderr, "%*c+ invalid_comprehension[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "('[' | '{') star_named_expression ',' for_if_clauses"));
19175 _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , b , "did you forget parentheses around the comprehension target?" );
19176 if (_res == NULL && PyErr_Occurred()) {
19177 p->error_indicator = 1;
19178 D(p->level--);
19179 return NULL;
19180 }
19181 goto done;
19182 }
19183 p->mark = _mark;
19184 D(fprintf(stderr, "%*c%s invalid_comprehension[%d-%d]: %s failed!\n", p->level, ' ',
19185 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('[' | '{') star_named_expression ',' for_if_clauses"));
Pablo Galindo835f14f2021-01-31 22:52:56 +000019186 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019187 _res = NULL;
19188 done:
19189 D(p->level--);
19190 return _res;
19191}
19192
19193// invalid_dict_comprehension: '{' '**' bitwise_or for_if_clauses '}'
19194static void *
19195invalid_dict_comprehension_rule(Parser *p)
19196{
19197 D(p->level++);
19198 if (p->error_indicator) {
19199 D(p->level--);
19200 return NULL;
19201 }
19202 void * _res = NULL;
19203 int _mark = p->mark;
19204 { // '{' '**' bitwise_or for_if_clauses '}'
19205 if (p->error_indicator) {
19206 D(p->level--);
19207 return NULL;
19208 }
19209 D(fprintf(stderr, "%*c> invalid_dict_comprehension[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' '**' bitwise_or for_if_clauses '}'"));
19210 Token * _literal;
19211 Token * _literal_1;
19212 Token * a;
19213 expr_ty bitwise_or_var;
Pablo Galindoa5634c42020-09-16 19:42:00 +010019214 asdl_comprehension_seq* for_if_clauses_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019215 if (
19216 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
19217 &&
19218 (a = _PyPegen_expect_token(p, 35)) // token='**'
19219 &&
19220 (bitwise_or_var = bitwise_or_rule(p)) // bitwise_or
19221 &&
19222 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
19223 &&
19224 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
19225 )
19226 {
19227 D(fprintf(stderr, "%*c+ invalid_dict_comprehension[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' '**' bitwise_or for_if_clauses '}'"));
19228 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "dict unpacking cannot be used in dict comprehension" );
19229 if (_res == NULL && PyErr_Occurred()) {
19230 p->error_indicator = 1;
19231 D(p->level--);
19232 return NULL;
19233 }
19234 goto done;
19235 }
19236 p->mark = _mark;
19237 D(fprintf(stderr, "%*c%s invalid_dict_comprehension[%d-%d]: %s failed!\n", p->level, ' ',
19238 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' '**' bitwise_or for_if_clauses '}'"));
19239 }
19240 _res = NULL;
19241 done:
19242 D(p->level--);
19243 return _res;
19244}
19245
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019246// invalid_parameters: param_no_default* invalid_parameters_helper param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019247static void *
19248invalid_parameters_rule(Parser *p)
19249{
19250 D(p->level++);
19251 if (p->error_indicator) {
19252 D(p->level--);
19253 return NULL;
19254 }
19255 void * _res = NULL;
19256 int _mark = p->mark;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019257 { // param_no_default* invalid_parameters_helper param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019258 if (p->error_indicator) {
19259 D(p->level--);
19260 return NULL;
19261 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019262 D(fprintf(stderr, "%*c> invalid_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default* invalid_parameters_helper param_no_default"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070019263 asdl_seq * _loop0_156_var;
Pablo Galindoa77aac42021-04-23 14:27:05 +010019264 arg_ty a;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019265 void *invalid_parameters_helper_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019266 if (
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070019267 (_loop0_156_var = _loop0_156_rule(p)) // param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019268 &&
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019269 (invalid_parameters_helper_var = invalid_parameters_helper_rule(p)) // invalid_parameters_helper
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019270 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010019271 (a = param_no_default_rule(p)) // param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019272 )
19273 {
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019274 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 +010019275 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "non-default argument follows default argument" );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019276 if (_res == NULL && PyErr_Occurred()) {
19277 p->error_indicator = 1;
19278 D(p->level--);
19279 return NULL;
19280 }
19281 goto done;
19282 }
19283 p->mark = _mark;
19284 D(fprintf(stderr, "%*c%s invalid_parameters[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019285 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default* invalid_parameters_helper param_no_default"));
19286 }
19287 _res = NULL;
19288 done:
19289 D(p->level--);
19290 return _res;
19291}
19292
19293// invalid_parameters_helper: slash_with_default | param_with_default+
19294static void *
19295invalid_parameters_helper_rule(Parser *p)
19296{
19297 D(p->level++);
19298 if (p->error_indicator) {
19299 D(p->level--);
19300 return NULL;
19301 }
19302 void * _res = NULL;
19303 int _mark = p->mark;
19304 { // slash_with_default
19305 if (p->error_indicator) {
19306 D(p->level--);
19307 return NULL;
19308 }
19309 D(fprintf(stderr, "%*c> invalid_parameters_helper[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slash_with_default"));
19310 SlashWithDefault* a;
19311 if (
19312 (a = slash_with_default_rule(p)) // slash_with_default
19313 )
19314 {
19315 D(fprintf(stderr, "%*c+ invalid_parameters_helper[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slash_with_default"));
19316 _res = _PyPegen_singleton_seq ( p , a );
19317 if (_res == NULL && PyErr_Occurred()) {
19318 p->error_indicator = 1;
19319 D(p->level--);
19320 return NULL;
19321 }
19322 goto done;
19323 }
19324 p->mark = _mark;
19325 D(fprintf(stderr, "%*c%s invalid_parameters_helper[%d-%d]: %s failed!\n", p->level, ' ',
19326 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slash_with_default"));
19327 }
19328 { // param_with_default+
19329 if (p->error_indicator) {
19330 D(p->level--);
19331 return NULL;
19332 }
19333 D(fprintf(stderr, "%*c> invalid_parameters_helper[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default+"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070019334 asdl_seq * _loop1_157_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019335 if (
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070019336 (_loop1_157_var = _loop1_157_rule(p)) // param_with_default+
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019337 )
19338 {
19339 D(fprintf(stderr, "%*c+ invalid_parameters_helper[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_with_default+"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070019340 _res = _loop1_157_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019341 goto done;
19342 }
19343 p->mark = _mark;
19344 D(fprintf(stderr, "%*c%s invalid_parameters_helper[%d-%d]: %s failed!\n", p->level, ' ',
19345 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default+"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019346 }
19347 _res = NULL;
19348 done:
19349 D(p->level--);
19350 return _res;
19351}
19352
19353// invalid_lambda_parameters:
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019354// | lambda_param_no_default* invalid_lambda_parameters_helper lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019355static void *
19356invalid_lambda_parameters_rule(Parser *p)
19357{
19358 D(p->level++);
19359 if (p->error_indicator) {
19360 D(p->level--);
19361 return NULL;
19362 }
19363 void * _res = NULL;
19364 int _mark = p->mark;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019365 { // lambda_param_no_default* invalid_lambda_parameters_helper lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019366 if (p->error_indicator) {
19367 D(p->level--);
19368 return NULL;
19369 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019370 D(fprintf(stderr, "%*c> invalid_lambda_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default* invalid_lambda_parameters_helper lambda_param_no_default"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070019371 asdl_seq * _loop0_158_var;
Pablo Galindoa77aac42021-04-23 14:27:05 +010019372 arg_ty a;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019373 void *invalid_lambda_parameters_helper_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019374 if (
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070019375 (_loop0_158_var = _loop0_158_rule(p)) // lambda_param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019376 &&
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019377 (invalid_lambda_parameters_helper_var = invalid_lambda_parameters_helper_rule(p)) // invalid_lambda_parameters_helper
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019378 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010019379 (a = lambda_param_no_default_rule(p)) // lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019380 )
19381 {
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019382 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 +010019383 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "non-default argument follows default argument" );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019384 if (_res == NULL && PyErr_Occurred()) {
19385 p->error_indicator = 1;
19386 D(p->level--);
19387 return NULL;
19388 }
19389 goto done;
19390 }
19391 p->mark = _mark;
19392 D(fprintf(stderr, "%*c%s invalid_lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019393 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default* invalid_lambda_parameters_helper lambda_param_no_default"));
19394 }
19395 _res = NULL;
19396 done:
19397 D(p->level--);
19398 return _res;
19399}
19400
19401// invalid_lambda_parameters_helper:
19402// | lambda_slash_with_default
19403// | lambda_param_with_default+
19404static void *
19405invalid_lambda_parameters_helper_rule(Parser *p)
19406{
19407 D(p->level++);
19408 if (p->error_indicator) {
19409 D(p->level--);
19410 return NULL;
19411 }
19412 void * _res = NULL;
19413 int _mark = p->mark;
19414 { // lambda_slash_with_default
19415 if (p->error_indicator) {
19416 D(p->level--);
19417 return NULL;
19418 }
19419 D(fprintf(stderr, "%*c> invalid_lambda_parameters_helper[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_slash_with_default"));
19420 SlashWithDefault* a;
19421 if (
19422 (a = lambda_slash_with_default_rule(p)) // lambda_slash_with_default
19423 )
19424 {
19425 D(fprintf(stderr, "%*c+ invalid_lambda_parameters_helper[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_slash_with_default"));
19426 _res = _PyPegen_singleton_seq ( p , a );
19427 if (_res == NULL && PyErr_Occurred()) {
19428 p->error_indicator = 1;
19429 D(p->level--);
19430 return NULL;
19431 }
19432 goto done;
19433 }
19434 p->mark = _mark;
19435 D(fprintf(stderr, "%*c%s invalid_lambda_parameters_helper[%d-%d]: %s failed!\n", p->level, ' ',
19436 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_slash_with_default"));
19437 }
19438 { // lambda_param_with_default+
19439 if (p->error_indicator) {
19440 D(p->level--);
19441 return NULL;
19442 }
19443 D(fprintf(stderr, "%*c> invalid_lambda_parameters_helper[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default+"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070019444 asdl_seq * _loop1_159_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019445 if (
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070019446 (_loop1_159_var = _loop1_159_rule(p)) // lambda_param_with_default+
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019447 )
19448 {
19449 D(fprintf(stderr, "%*c+ invalid_lambda_parameters_helper[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default+"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070019450 _res = _loop1_159_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019451 goto done;
19452 }
19453 p->mark = _mark;
19454 D(fprintf(stderr, "%*c%s invalid_lambda_parameters_helper[%d-%d]: %s failed!\n", p->level, ' ',
19455 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default+"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019456 }
19457 _res = NULL;
19458 done:
19459 D(p->level--);
19460 return _res;
19461}
19462
19463// invalid_star_etc: '*' (')' | ',' (')' | '**')) | '*' ',' TYPE_COMMENT
19464static void *
19465invalid_star_etc_rule(Parser *p)
19466{
19467 D(p->level++);
19468 if (p->error_indicator) {
19469 D(p->level--);
19470 return NULL;
19471 }
19472 void * _res = NULL;
19473 int _mark = p->mark;
19474 { // '*' (')' | ',' (')' | '**'))
19475 if (p->error_indicator) {
19476 D(p->level--);
19477 return NULL;
19478 }
19479 D(fprintf(stderr, "%*c> invalid_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (')' | ',' (')' | '**'))"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070019480 void *_tmp_160_var;
Pablo Galindoa77aac42021-04-23 14:27:05 +010019481 Token * a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019482 if (
Pablo Galindoa77aac42021-04-23 14:27:05 +010019483 (a = _PyPegen_expect_token(p, 16)) // token='*'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019484 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070019485 (_tmp_160_var = _tmp_160_rule(p)) // ')' | ',' (')' | '**')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019486 )
19487 {
19488 D(fprintf(stderr, "%*c+ invalid_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' (')' | ',' (')' | '**'))"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010019489 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "named arguments must follow bare *" );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019490 if (_res == NULL && PyErr_Occurred()) {
19491 p->error_indicator = 1;
19492 D(p->level--);
19493 return NULL;
19494 }
19495 goto done;
19496 }
19497 p->mark = _mark;
19498 D(fprintf(stderr, "%*c%s invalid_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
19499 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' (')' | ',' (')' | '**'))"));
19500 }
19501 { // '*' ',' TYPE_COMMENT
19502 if (p->error_indicator) {
19503 D(p->level--);
19504 return NULL;
19505 }
19506 D(fprintf(stderr, "%*c> invalid_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' ',' TYPE_COMMENT"));
19507 Token * _literal;
19508 Token * _literal_1;
19509 Token * type_comment_var;
19510 if (
19511 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
19512 &&
19513 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
19514 &&
19515 (type_comment_var = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
19516 )
19517 {
19518 D(fprintf(stderr, "%*c+ invalid_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' ',' TYPE_COMMENT"));
19519 _res = RAISE_SYNTAX_ERROR ( "bare * has associated type comment" );
19520 if (_res == NULL && PyErr_Occurred()) {
19521 p->error_indicator = 1;
19522 D(p->level--);
19523 return NULL;
19524 }
19525 goto done;
19526 }
19527 p->mark = _mark;
19528 D(fprintf(stderr, "%*c%s invalid_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
19529 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' ',' TYPE_COMMENT"));
19530 }
19531 _res = NULL;
19532 done:
19533 D(p->level--);
19534 return _res;
19535}
19536
19537// invalid_lambda_star_etc: '*' (':' | ',' (':' | '**'))
19538static void *
19539invalid_lambda_star_etc_rule(Parser *p)
19540{
19541 D(p->level++);
19542 if (p->error_indicator) {
19543 D(p->level--);
19544 return NULL;
19545 }
19546 void * _res = NULL;
19547 int _mark = p->mark;
19548 { // '*' (':' | ',' (':' | '**'))
19549 if (p->error_indicator) {
19550 D(p->level--);
19551 return NULL;
19552 }
19553 D(fprintf(stderr, "%*c> invalid_lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (':' | ',' (':' | '**'))"));
19554 Token * _literal;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070019555 void *_tmp_161_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019556 if (
19557 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
19558 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070019559 (_tmp_161_var = _tmp_161_rule(p)) // ':' | ',' (':' | '**')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019560 )
19561 {
19562 D(fprintf(stderr, "%*c+ invalid_lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' (':' | ',' (':' | '**'))"));
19563 _res = RAISE_SYNTAX_ERROR ( "named arguments must follow bare *" );
19564 if (_res == NULL && PyErr_Occurred()) {
19565 p->error_indicator = 1;
19566 D(p->level--);
19567 return NULL;
19568 }
19569 goto done;
19570 }
19571 p->mark = _mark;
19572 D(fprintf(stderr, "%*c%s invalid_lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
19573 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' (':' | ',' (':' | '**'))"));
19574 }
19575 _res = NULL;
19576 done:
19577 D(p->level--);
19578 return _res;
19579}
19580
19581// invalid_double_type_comments: TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT
19582static void *
19583invalid_double_type_comments_rule(Parser *p)
19584{
19585 D(p->level++);
19586 if (p->error_indicator) {
19587 D(p->level--);
19588 return NULL;
19589 }
19590 void * _res = NULL;
19591 int _mark = p->mark;
19592 { // TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT
19593 if (p->error_indicator) {
19594 D(p->level--);
19595 return NULL;
19596 }
19597 D(fprintf(stderr, "%*c> invalid_double_type_comments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT"));
19598 Token * indent_var;
19599 Token * newline_var;
19600 Token * newline_var_1;
19601 Token * type_comment_var;
19602 Token * type_comment_var_1;
19603 if (
19604 (type_comment_var = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
19605 &&
19606 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
19607 &&
19608 (type_comment_var_1 = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
19609 &&
19610 (newline_var_1 = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
19611 &&
19612 (indent_var = _PyPegen_expect_token(p, INDENT)) // token='INDENT'
19613 )
19614 {
19615 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"));
19616 _res = RAISE_SYNTAX_ERROR ( "Cannot have two type comments on def" );
19617 if (_res == NULL && PyErr_Occurred()) {
19618 p->error_indicator = 1;
19619 D(p->level--);
19620 return NULL;
19621 }
19622 goto done;
19623 }
19624 p->mark = _mark;
19625 D(fprintf(stderr, "%*c%s invalid_double_type_comments[%d-%d]: %s failed!\n", p->level, ' ',
19626 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT"));
19627 }
19628 _res = NULL;
19629 done:
19630 D(p->level--);
19631 return _res;
19632}
19633
Pablo Galindo58fb1562021-02-02 19:54:22 +000019634// invalid_with_item: expression 'as' expression &(',' | ')' | ':')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019635static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019636invalid_with_item_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019637{
19638 D(p->level++);
19639 if (p->error_indicator) {
19640 D(p->level--);
19641 return NULL;
19642 }
19643 void * _res = NULL;
19644 int _mark = p->mark;
Pablo Galindo58fb1562021-02-02 19:54:22 +000019645 { // expression 'as' expression &(',' | ')' | ':')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019646 if (p->error_indicator) {
19647 D(p->level--);
19648 return NULL;
19649 }
Pablo Galindo58fb1562021-02-02 19:54:22 +000019650 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 +030019651 Token * _keyword;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019652 expr_ty a;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019653 expr_ty expression_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019654 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019655 (expression_var = expression_rule(p)) // expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019656 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019657 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
19658 &&
19659 (a = expression_rule(p)) // expression
Pablo Galindo58fb1562021-02-02 19:54:22 +000019660 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070019661 _PyPegen_lookahead(1, _tmp_162_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019662 )
19663 {
Pablo Galindo58fb1562021-02-02 19:54:22 +000019664 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 +030019665 _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( STAR_TARGETS , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019666 if (_res == NULL && PyErr_Occurred()) {
19667 p->error_indicator = 1;
19668 D(p->level--);
19669 return NULL;
19670 }
19671 goto done;
19672 }
19673 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019674 D(fprintf(stderr, "%*c%s invalid_with_item[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +000019675 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression 'as' expression &(',' | ')' | ':')"));
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019676 }
19677 _res = NULL;
19678 done:
19679 D(p->level--);
19680 return _res;
19681}
19682
19683// invalid_for_target: ASYNC? 'for' star_expressions
19684static void *
19685invalid_for_target_rule(Parser *p)
19686{
19687 D(p->level++);
19688 if (p->error_indicator) {
19689 D(p->level--);
19690 return NULL;
19691 }
19692 void * _res = NULL;
19693 int _mark = p->mark;
19694 { // ASYNC? 'for' star_expressions
19695 if (p->error_indicator) {
19696 D(p->level--);
19697 return NULL;
19698 }
19699 D(fprintf(stderr, "%*c> invalid_for_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC? 'for' star_expressions"));
19700 Token * _keyword;
19701 void *_opt_var;
19702 UNUSED(_opt_var); // Silence compiler warnings
19703 expr_ty a;
19704 if (
19705 (_opt_var = _PyPegen_expect_token(p, ASYNC), 1) // ASYNC?
19706 &&
19707 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
19708 &&
19709 (a = star_expressions_rule(p)) // star_expressions
19710 )
19711 {
19712 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 +030019713 _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( FOR_TARGETS , a );
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019714 if (_res == NULL && PyErr_Occurred()) {
19715 p->error_indicator = 1;
19716 D(p->level--);
19717 return NULL;
19718 }
19719 goto done;
19720 }
19721 p->mark = _mark;
19722 D(fprintf(stderr, "%*c%s invalid_for_target[%d-%d]: %s failed!\n", p->level, ' ',
19723 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'for' star_expressions"));
19724 }
19725 _res = NULL;
19726 done:
19727 D(p->level--);
19728 return _res;
19729}
19730
Pablo Galindo8efad612021-03-24 19:34:17 +000019731// invalid_group: '(' starred_expression ')' | '(' '**' expression ')'
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019732static void *
19733invalid_group_rule(Parser *p)
19734{
19735 D(p->level++);
19736 if (p->error_indicator) {
19737 D(p->level--);
19738 return NULL;
19739 }
19740 void * _res = NULL;
19741 int _mark = p->mark;
19742 { // '(' starred_expression ')'
19743 if (p->error_indicator) {
19744 D(p->level--);
19745 return NULL;
19746 }
19747 D(fprintf(stderr, "%*c> invalid_group[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' starred_expression ')'"));
19748 Token * _literal;
19749 Token * _literal_1;
19750 expr_ty a;
19751 if (
19752 (_literal = _PyPegen_expect_token(p, 7)) // token='('
19753 &&
19754 (a = starred_expression_rule(p)) // starred_expression
19755 &&
19756 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
19757 )
19758 {
19759 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 +010019760 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "cannot use starred expression here" );
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019761 if (_res == NULL && PyErr_Occurred()) {
19762 p->error_indicator = 1;
19763 D(p->level--);
19764 return NULL;
19765 }
19766 goto done;
19767 }
19768 p->mark = _mark;
19769 D(fprintf(stderr, "%*c%s invalid_group[%d-%d]: %s failed!\n", p->level, ' ',
19770 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' starred_expression ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019771 }
Pablo Galindo8efad612021-03-24 19:34:17 +000019772 { // '(' '**' expression ')'
19773 if (p->error_indicator) {
19774 D(p->level--);
19775 return NULL;
19776 }
19777 D(fprintf(stderr, "%*c> invalid_group[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' '**' expression ')'"));
19778 Token * _literal;
19779 Token * _literal_1;
19780 Token * a;
19781 expr_ty expression_var;
19782 if (
19783 (_literal = _PyPegen_expect_token(p, 7)) // token='('
19784 &&
19785 (a = _PyPegen_expect_token(p, 35)) // token='**'
19786 &&
19787 (expression_var = expression_rule(p)) // expression
19788 &&
19789 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
19790 )
19791 {
19792 D(fprintf(stderr, "%*c+ invalid_group[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' '**' expression ')'"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010019793 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "cannot use double starred expression here" );
Pablo Galindo8efad612021-03-24 19:34:17 +000019794 if (_res == NULL && PyErr_Occurred()) {
19795 p->error_indicator = 1;
19796 D(p->level--);
19797 return NULL;
19798 }
19799 goto done;
19800 }
19801 p->mark = _mark;
19802 D(fprintf(stderr, "%*c%s invalid_group[%d-%d]: %s failed!\n", p->level, ' ',
19803 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' '**' expression ')'"));
19804 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019805 _res = NULL;
19806 done:
19807 D(p->level--);
19808 return _res;
19809}
19810
19811// invalid_import_from_targets: import_from_as_names ','
19812static void *
19813invalid_import_from_targets_rule(Parser *p)
19814{
19815 D(p->level++);
19816 if (p->error_indicator) {
19817 D(p->level--);
19818 return NULL;
19819 }
19820 void * _res = NULL;
19821 int _mark = p->mark;
19822 { // import_from_as_names ','
19823 if (p->error_indicator) {
19824 D(p->level--);
19825 return NULL;
19826 }
19827 D(fprintf(stderr, "%*c> invalid_import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "import_from_as_names ','"));
19828 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +010019829 asdl_alias_seq* import_from_as_names_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019830 if (
19831 (import_from_as_names_var = import_from_as_names_rule(p)) // import_from_as_names
19832 &&
19833 (_literal = _PyPegen_expect_token(p, 12)) // token=','
19834 )
19835 {
19836 D(fprintf(stderr, "%*c+ invalid_import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "import_from_as_names ','"));
19837 _res = RAISE_SYNTAX_ERROR ( "trailing comma not allowed without surrounding parentheses" );
19838 if (_res == NULL && PyErr_Occurred()) {
19839 p->error_indicator = 1;
19840 D(p->level--);
19841 return NULL;
19842 }
19843 goto done;
19844 }
19845 p->mark = _mark;
19846 D(fprintf(stderr, "%*c%s invalid_import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
19847 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from_as_names ','"));
19848 }
19849 _res = NULL;
19850 done:
19851 D(p->level--);
19852 return _res;
19853}
19854
Pablo Galindo58fb1562021-02-02 19:54:22 +000019855// invalid_with_stmt:
19856// | ASYNC? 'with' ','.(expression ['as' star_target])+ &&':'
19857// | ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' &&':'
19858static void *
19859invalid_with_stmt_rule(Parser *p)
19860{
19861 D(p->level++);
19862 if (p->error_indicator) {
19863 D(p->level--);
19864 return NULL;
19865 }
19866 void * _res = NULL;
19867 int _mark = p->mark;
19868 { // ASYNC? 'with' ','.(expression ['as' star_target])+ &&':'
19869 if (p->error_indicator) {
19870 D(p->level--);
19871 return NULL;
19872 }
19873 D(fprintf(stderr, "%*c> invalid_with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' ','.(expression ['as' star_target])+ &&':'"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070019874 asdl_seq * _gather_163_var;
Pablo Galindo58fb1562021-02-02 19:54:22 +000019875 Token * _keyword;
19876 Token * _literal;
19877 void *_opt_var;
19878 UNUSED(_opt_var); // Silence compiler warnings
19879 if (
19880 (_opt_var = _PyPegen_expect_token(p, ASYNC), 1) // ASYNC?
19881 &&
19882 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
19883 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070019884 (_gather_163_var = _gather_163_rule(p)) // ','.(expression ['as' star_target])+
Pablo Galindo58fb1562021-02-02 19:54:22 +000019885 &&
19886 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
19887 )
19888 {
19889 D(fprintf(stderr, "%*c+ invalid_with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' ','.(expression ['as' star_target])+ &&':'"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070019890 _res = _PyPegen_dummy_name(p, _opt_var, _keyword, _gather_163_var, _literal);
Pablo Galindo58fb1562021-02-02 19:54:22 +000019891 goto done;
19892 }
19893 p->mark = _mark;
19894 D(fprintf(stderr, "%*c%s invalid_with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
19895 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'with' ','.(expression ['as' star_target])+ &&':'"));
19896 }
19897 { // ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' &&':'
19898 if (p->error_indicator) {
19899 D(p->level--);
19900 return NULL;
19901 }
19902 D(fprintf(stderr, "%*c> invalid_with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' &&':'"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070019903 asdl_seq * _gather_165_var;
Pablo Galindo58fb1562021-02-02 19:54:22 +000019904 Token * _keyword;
19905 Token * _literal;
19906 Token * _literal_1;
19907 Token * _literal_2;
19908 void *_opt_var;
19909 UNUSED(_opt_var); // Silence compiler warnings
19910 void *_opt_var_1;
19911 UNUSED(_opt_var_1); // Silence compiler warnings
19912 if (
19913 (_opt_var = _PyPegen_expect_token(p, ASYNC), 1) // ASYNC?
19914 &&
19915 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
19916 &&
19917 (_literal = _PyPegen_expect_token(p, 7)) // token='('
19918 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070019919 (_gather_165_var = _gather_165_rule(p)) // ','.(expressions ['as' star_target])+
Pablo Galindo58fb1562021-02-02 19:54:22 +000019920 &&
19921 (_opt_var_1 = _PyPegen_expect_token(p, 12), 1) // ','?
19922 &&
19923 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
19924 &&
19925 (_literal_2 = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
19926 )
19927 {
19928 D(fprintf(stderr, "%*c+ invalid_with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' &&':'"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070019929 _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 +000019930 goto done;
19931 }
19932 p->mark = _mark;
19933 D(fprintf(stderr, "%*c%s invalid_with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
19934 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' &&':'"));
19935 }
19936 _res = NULL;
19937 done:
19938 D(p->level--);
19939 return _res;
19940}
19941
Pablo Galindo56c95df2021-04-21 15:28:21 +010019942// invalid_with_stmt_indent:
19943// | ASYNC? 'with' ','.(expression ['as' star_target])+ ':' NEWLINE !INDENT
19944// | ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' ':' NEWLINE !INDENT
Pablo Galindo206cbda2021-02-07 18:42:21 +000019945static void *
Pablo Galindo56c95df2021-04-21 15:28:21 +010019946invalid_with_stmt_indent_rule(Parser *p)
19947{
19948 D(p->level++);
19949 if (p->error_indicator) {
19950 D(p->level--);
19951 return NULL;
19952 }
19953 void * _res = NULL;
19954 int _mark = p->mark;
19955 { // ASYNC? 'with' ','.(expression ['as' star_target])+ ':' NEWLINE !INDENT
19956 if (p->error_indicator) {
19957 D(p->level--);
19958 return NULL;
19959 }
19960 D(fprintf(stderr, "%*c> invalid_with_stmt_indent[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' ','.(expression ['as' star_target])+ ':' NEWLINE !INDENT"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070019961 asdl_seq * _gather_167_var;
Pablo Galindo56c95df2021-04-21 15:28:21 +010019962 Token * _literal;
19963 void *_opt_var;
19964 UNUSED(_opt_var); // Silence compiler warnings
19965 Token * a;
19966 Token * newline_var;
19967 if (
19968 (_opt_var = _PyPegen_expect_token(p, ASYNC), 1) // ASYNC?
19969 &&
19970 (a = _PyPegen_expect_token(p, 519)) // token='with'
19971 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070019972 (_gather_167_var = _gather_167_rule(p)) // ','.(expression ['as' star_target])+
Pablo Galindo56c95df2021-04-21 15:28:21 +010019973 &&
19974 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
19975 &&
19976 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
19977 &&
19978 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
19979 )
19980 {
19981 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"));
19982 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'with' statement on line %d" , a -> lineno );
19983 if (_res == NULL && PyErr_Occurred()) {
19984 p->error_indicator = 1;
19985 D(p->level--);
19986 return NULL;
19987 }
19988 goto done;
19989 }
19990 p->mark = _mark;
19991 D(fprintf(stderr, "%*c%s invalid_with_stmt_indent[%d-%d]: %s failed!\n", p->level, ' ',
19992 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'with' ','.(expression ['as' star_target])+ ':' NEWLINE !INDENT"));
19993 }
19994 { // ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' ':' NEWLINE !INDENT
19995 if (p->error_indicator) {
19996 D(p->level--);
19997 return NULL;
19998 }
19999 D(fprintf(stderr, "%*c> invalid_with_stmt_indent[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' ':' NEWLINE !INDENT"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070020000 asdl_seq * _gather_169_var;
Pablo Galindo56c95df2021-04-21 15:28:21 +010020001 Token * _literal;
20002 Token * _literal_1;
20003 Token * _literal_2;
20004 void *_opt_var;
20005 UNUSED(_opt_var); // Silence compiler warnings
20006 void *_opt_var_1;
20007 UNUSED(_opt_var_1); // Silence compiler warnings
20008 Token * a;
20009 Token * newline_var;
20010 if (
20011 (_opt_var = _PyPegen_expect_token(p, ASYNC), 1) // ASYNC?
20012 &&
20013 (a = _PyPegen_expect_token(p, 519)) // token='with'
20014 &&
20015 (_literal = _PyPegen_expect_token(p, 7)) // token='('
20016 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070020017 (_gather_169_var = _gather_169_rule(p)) // ','.(expressions ['as' star_target])+
Pablo Galindo56c95df2021-04-21 15:28:21 +010020018 &&
20019 (_opt_var_1 = _PyPegen_expect_token(p, 12), 1) // ','?
20020 &&
20021 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
20022 &&
20023 (_literal_2 = _PyPegen_expect_token(p, 11)) // token=':'
20024 &&
20025 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20026 &&
20027 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20028 )
20029 {
20030 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"));
20031 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'with' statement on line %d" , a -> lineno );
20032 if (_res == NULL && PyErr_Occurred()) {
20033 p->error_indicator = 1;
20034 D(p->level--);
20035 return NULL;
20036 }
20037 goto done;
20038 }
20039 p->mark = _mark;
20040 D(fprintf(stderr, "%*c%s invalid_with_stmt_indent[%d-%d]: %s failed!\n", p->level, ' ',
20041 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' ':' NEWLINE !INDENT"));
20042 }
20043 _res = NULL;
20044 done:
20045 D(p->level--);
20046 return _res;
20047}
20048
Pablo Galindoe53f72a2021-06-04 00:11:43 +010020049// invalid_try_stmt: 'try' ':' NEWLINE !INDENT | 'try' ':' block !('except' | 'finally')
Pablo Galindo56c95df2021-04-21 15:28:21 +010020050static void *
20051invalid_try_stmt_rule(Parser *p)
20052{
20053 D(p->level++);
20054 if (p->error_indicator) {
20055 D(p->level--);
20056 return NULL;
20057 }
20058 void * _res = NULL;
20059 int _mark = p->mark;
20060 { // 'try' ':' NEWLINE !INDENT
20061 if (p->error_indicator) {
20062 D(p->level--);
20063 return NULL;
20064 }
20065 D(fprintf(stderr, "%*c> invalid_try_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'try' ':' NEWLINE !INDENT"));
20066 Token * _literal;
20067 Token * a;
20068 Token * newline_var;
20069 if (
20070 (a = _PyPegen_expect_token(p, 511)) // token='try'
20071 &&
20072 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
20073 &&
20074 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20075 &&
20076 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20077 )
20078 {
20079 D(fprintf(stderr, "%*c+ invalid_try_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'try' ':' NEWLINE !INDENT"));
20080 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'try' statement on line %d" , a -> lineno );
20081 if (_res == NULL && PyErr_Occurred()) {
20082 p->error_indicator = 1;
20083 D(p->level--);
20084 return NULL;
20085 }
20086 goto done;
20087 }
20088 p->mark = _mark;
20089 D(fprintf(stderr, "%*c%s invalid_try_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20090 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'try' ':' NEWLINE !INDENT"));
20091 }
Pablo Galindoe53f72a2021-06-04 00:11:43 +010020092 { // 'try' ':' block !('except' | 'finally')
20093 if (p->error_indicator) {
20094 D(p->level--);
20095 return NULL;
20096 }
20097 D(fprintf(stderr, "%*c> invalid_try_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'try' ':' block !('except' | 'finally')"));
20098 Token * _keyword;
20099 Token * _literal;
20100 asdl_stmt_seq* block_var;
20101 if (
20102 (_keyword = _PyPegen_expect_token(p, 511)) // token='try'
20103 &&
20104 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
20105 &&
20106 (block_var = block_rule(p)) // block
20107 &&
20108 _PyPegen_lookahead(0, _tmp_171_rule, p)
20109 )
20110 {
20111 D(fprintf(stderr, "%*c+ invalid_try_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'try' ':' block !('except' | 'finally')"));
20112 _res = RAISE_SYNTAX_ERROR ( "expected 'except' or 'finally' block" );
20113 if (_res == NULL && PyErr_Occurred()) {
20114 p->error_indicator = 1;
20115 D(p->level--);
20116 return NULL;
20117 }
20118 goto done;
20119 }
20120 p->mark = _mark;
20121 D(fprintf(stderr, "%*c%s invalid_try_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20122 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'try' ':' block !('except' | 'finally')"));
20123 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010020124 _res = NULL;
20125 done:
20126 D(p->level--);
20127 return _res;
20128}
20129
20130// invalid_except_stmt:
20131// | 'except' expression ',' expressions ['as' NAME] ':'
20132// | 'except' expression ['as' NAME] NEWLINE
20133// | 'except' NEWLINE
20134static void *
20135invalid_except_stmt_rule(Parser *p)
Pablo Galindo206cbda2021-02-07 18:42:21 +000020136{
20137 D(p->level++);
20138 if (p->error_indicator) {
20139 D(p->level--);
20140 return NULL;
20141 }
20142 void * _res = NULL;
20143 int _mark = p->mark;
20144 { // 'except' expression ',' expressions ['as' NAME] ':'
20145 if (p->error_indicator) {
20146 D(p->level--);
20147 return NULL;
20148 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010020149 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 +000020150 Token * _keyword;
20151 Token * _literal;
20152 Token * _literal_1;
20153 void *_opt_var;
20154 UNUSED(_opt_var); // Silence compiler warnings
20155 expr_ty a;
20156 expr_ty expressions_var;
20157 if (
20158 (_keyword = _PyPegen_expect_token(p, 521)) // token='except'
20159 &&
20160 (a = expression_rule(p)) // expression
20161 &&
20162 (_literal = _PyPegen_expect_token(p, 12)) // token=','
20163 &&
20164 (expressions_var = expressions_rule(p)) // expressions
20165 &&
Pablo Galindoe53f72a2021-06-04 00:11:43 +010020166 (_opt_var = _tmp_172_rule(p), 1) // ['as' NAME]
Pablo Galindo206cbda2021-02-07 18:42:21 +000020167 &&
20168 (_literal_1 = _PyPegen_expect_token(p, 11)) // token=':'
20169 )
20170 {
Pablo Galindo56c95df2021-04-21 15:28:21 +010020171 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 -070020172 _res = RAISE_SYNTAX_ERROR_STARTING_FROM ( a , "multiple exception types must be parenthesized" );
Pablo Galindo206cbda2021-02-07 18:42:21 +000020173 if (_res == NULL && PyErr_Occurred()) {
20174 p->error_indicator = 1;
20175 D(p->level--);
20176 return NULL;
20177 }
20178 goto done;
20179 }
20180 p->mark = _mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +010020181 D(fprintf(stderr, "%*c%s invalid_except_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo206cbda2021-02-07 18:42:21 +000020182 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' expression ',' expressions ['as' NAME] ':'"));
20183 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010020184 { // 'except' expression ['as' NAME] NEWLINE
Pablo Galindo206cbda2021-02-07 18:42:21 +000020185 if (p->error_indicator) {
20186 D(p->level--);
20187 return NULL;
20188 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010020189 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 +000020190 void *_opt_var;
20191 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindo56c95df2021-04-21 15:28:21 +010020192 Token * a;
Pablo Galindo206cbda2021-02-07 18:42:21 +000020193 expr_ty expression_var;
Pablo Galindo56c95df2021-04-21 15:28:21 +010020194 Token * newline_var;
Pablo Galindo206cbda2021-02-07 18:42:21 +000020195 if (
Pablo Galindo56c95df2021-04-21 15:28:21 +010020196 (a = _PyPegen_expect_token(p, 521)) // token='except'
Pablo Galindo206cbda2021-02-07 18:42:21 +000020197 &&
20198 (expression_var = expression_rule(p)) // expression
20199 &&
Pablo Galindoe53f72a2021-06-04 00:11:43 +010020200 (_opt_var = _tmp_173_rule(p), 1) // ['as' NAME]
Pablo Galindo206cbda2021-02-07 18:42:21 +000020201 &&
Pablo Galindo56c95df2021-04-21 15:28:21 +010020202 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
Pablo Galindo206cbda2021-02-07 18:42:21 +000020203 )
20204 {
Pablo Galindo56c95df2021-04-21 15:28:21 +010020205 D(fprintf(stderr, "%*c+ invalid_except_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' expression ['as' NAME] NEWLINE"));
20206 _res = RAISE_SYNTAX_ERROR ( "expected ':'" );
20207 if (_res == NULL && PyErr_Occurred()) {
20208 p->error_indicator = 1;
20209 D(p->level--);
20210 return NULL;
20211 }
Pablo Galindo206cbda2021-02-07 18:42:21 +000020212 goto done;
20213 }
20214 p->mark = _mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +010020215 D(fprintf(stderr, "%*c%s invalid_except_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20216 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' expression ['as' NAME] NEWLINE"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000020217 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010020218 { // 'except' NEWLINE
Pablo Galindo206cbda2021-02-07 18:42:21 +000020219 if (p->error_indicator) {
20220 D(p->level--);
20221 return NULL;
20222 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010020223 D(fprintf(stderr, "%*c> invalid_except_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' NEWLINE"));
20224 Token * a;
20225 Token * newline_var;
Pablo Galindo206cbda2021-02-07 18:42:21 +000020226 if (
Pablo Galindo56c95df2021-04-21 15:28:21 +010020227 (a = _PyPegen_expect_token(p, 521)) // token='except'
Pablo Galindo206cbda2021-02-07 18:42:21 +000020228 &&
Pablo Galindo56c95df2021-04-21 15:28:21 +010020229 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
Pablo Galindo206cbda2021-02-07 18:42:21 +000020230 )
20231 {
Pablo Galindo56c95df2021-04-21 15:28:21 +010020232 D(fprintf(stderr, "%*c+ invalid_except_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' NEWLINE"));
20233 _res = RAISE_SYNTAX_ERROR ( "expected ':'" );
20234 if (_res == NULL && PyErr_Occurred()) {
20235 p->error_indicator = 1;
20236 D(p->level--);
20237 return NULL;
20238 }
Pablo Galindo206cbda2021-02-07 18:42:21 +000020239 goto done;
20240 }
20241 p->mark = _mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +010020242 D(fprintf(stderr, "%*c%s invalid_except_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20243 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' NEWLINE"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000020244 }
20245 _res = NULL;
20246 done:
20247 D(p->level--);
20248 return _res;
20249}
20250
Pablo Galindo56c95df2021-04-21 15:28:21 +010020251// invalid_finally_stmt: 'finally' ':' NEWLINE !INDENT
20252static void *
20253invalid_finally_stmt_rule(Parser *p)
20254{
20255 D(p->level++);
20256 if (p->error_indicator) {
20257 D(p->level--);
20258 return NULL;
20259 }
20260 void * _res = NULL;
20261 int _mark = p->mark;
20262 { // 'finally' ':' NEWLINE !INDENT
20263 if (p->error_indicator) {
20264 D(p->level--);
20265 return NULL;
20266 }
20267 D(fprintf(stderr, "%*c> invalid_finally_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'finally' ':' NEWLINE !INDENT"));
20268 Token * _literal;
20269 Token * a;
20270 Token * newline_var;
20271 if (
20272 (a = _PyPegen_expect_token(p, 522)) // token='finally'
20273 &&
20274 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
20275 &&
20276 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20277 &&
20278 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20279 )
20280 {
20281 D(fprintf(stderr, "%*c+ invalid_finally_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'finally' ':' NEWLINE !INDENT"));
20282 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'finally' statement on line %d" , a -> lineno );
20283 if (_res == NULL && PyErr_Occurred()) {
20284 p->error_indicator = 1;
20285 D(p->level--);
20286 return NULL;
20287 }
20288 goto done;
20289 }
20290 p->mark = _mark;
20291 D(fprintf(stderr, "%*c%s invalid_finally_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20292 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'finally' ':' NEWLINE !INDENT"));
20293 }
20294 _res = NULL;
20295 done:
20296 D(p->level--);
20297 return _res;
20298}
20299
20300// invalid_except_stmt_indent:
20301// | 'except' expression ['as' NAME] ':' NEWLINE !INDENT
20302// | 'except' ':' NEWLINE !INDENT
20303static void *
20304invalid_except_stmt_indent_rule(Parser *p)
20305{
20306 D(p->level++);
20307 if (p->error_indicator) {
20308 D(p->level--);
20309 return NULL;
20310 }
20311 void * _res = NULL;
20312 int _mark = p->mark;
20313 { // 'except' expression ['as' NAME] ':' NEWLINE !INDENT
20314 if (p->error_indicator) {
20315 D(p->level--);
20316 return NULL;
20317 }
20318 D(fprintf(stderr, "%*c> invalid_except_stmt_indent[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' expression ['as' NAME] ':' NEWLINE !INDENT"));
20319 Token * _literal;
20320 void *_opt_var;
20321 UNUSED(_opt_var); // Silence compiler warnings
20322 Token * a;
20323 expr_ty expression_var;
20324 Token * newline_var;
20325 if (
20326 (a = _PyPegen_expect_token(p, 521)) // token='except'
20327 &&
20328 (expression_var = expression_rule(p)) // expression
20329 &&
Pablo Galindoe53f72a2021-06-04 00:11:43 +010020330 (_opt_var = _tmp_174_rule(p), 1) // ['as' NAME]
Pablo Galindo56c95df2021-04-21 15:28:21 +010020331 &&
20332 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
20333 &&
20334 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20335 &&
20336 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20337 )
20338 {
20339 D(fprintf(stderr, "%*c+ invalid_except_stmt_indent[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' expression ['as' NAME] ':' NEWLINE !INDENT"));
20340 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'except' statement on line %d" , a -> lineno );
20341 if (_res == NULL && PyErr_Occurred()) {
20342 p->error_indicator = 1;
20343 D(p->level--);
20344 return NULL;
20345 }
20346 goto done;
20347 }
20348 p->mark = _mark;
20349 D(fprintf(stderr, "%*c%s invalid_except_stmt_indent[%d-%d]: %s failed!\n", p->level, ' ',
20350 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' expression ['as' NAME] ':' NEWLINE !INDENT"));
20351 }
20352 { // 'except' ':' NEWLINE !INDENT
20353 if (p->error_indicator) {
20354 D(p->level--);
20355 return NULL;
20356 }
20357 D(fprintf(stderr, "%*c> invalid_except_stmt_indent[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' ':' NEWLINE !INDENT"));
20358 Token * _literal;
20359 Token * a;
20360 Token * newline_var;
20361 if (
20362 (a = _PyPegen_expect_token(p, 521)) // token='except'
20363 &&
20364 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
20365 &&
20366 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20367 &&
20368 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20369 )
20370 {
20371 D(fprintf(stderr, "%*c+ invalid_except_stmt_indent[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' ':' NEWLINE !INDENT"));
20372 _res = RAISE_SYNTAX_ERROR ( "expected an indented block after except statement on line %d" , a -> lineno );
20373 if (_res == NULL && PyErr_Occurred()) {
20374 p->error_indicator = 1;
20375 D(p->level--);
20376 return NULL;
20377 }
20378 goto done;
20379 }
20380 p->mark = _mark;
20381 D(fprintf(stderr, "%*c%s invalid_except_stmt_indent[%d-%d]: %s failed!\n", p->level, ' ',
20382 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' ':' NEWLINE !INDENT"));
20383 }
20384 _res = NULL;
20385 done:
20386 D(p->level--);
20387 return _res;
20388}
20389
20390// invalid_match_stmt:
20391// | "match" subject_expr !':'
20392// | "match" subject_expr ':' NEWLINE !INDENT
Pablo Galindo08fb8ac2021-03-18 01:03:11 +000020393static void *
20394invalid_match_stmt_rule(Parser *p)
20395{
20396 D(p->level++);
20397 if (p->error_indicator) {
20398 D(p->level--);
20399 return NULL;
20400 }
20401 void * _res = NULL;
20402 int _mark = p->mark;
20403 { // "match" subject_expr !':'
20404 if (p->error_indicator) {
20405 D(p->level--);
20406 return NULL;
20407 }
20408 D(fprintf(stderr, "%*c> invalid_match_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"match\" subject_expr !':'"));
20409 expr_ty _keyword;
20410 expr_ty subject_expr_var;
20411 if (
20412 (_keyword = _PyPegen_expect_soft_keyword(p, "match")) // soft_keyword='"match"'
20413 &&
20414 (subject_expr_var = subject_expr_rule(p)) // subject_expr
20415 &&
20416 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 11) // token=':'
20417 )
20418 {
20419 D(fprintf(stderr, "%*c+ invalid_match_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"match\" subject_expr !':'"));
20420 _res = CHECK_VERSION ( void * , 10 , "Pattern matching is" , RAISE_SYNTAX_ERROR ( "expected ':'" ) );
20421 if (_res == NULL && PyErr_Occurred()) {
20422 p->error_indicator = 1;
20423 D(p->level--);
20424 return NULL;
20425 }
20426 goto done;
20427 }
20428 p->mark = _mark;
20429 D(fprintf(stderr, "%*c%s invalid_match_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20430 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"match\" subject_expr !':'"));
20431 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010020432 { // "match" subject_expr ':' NEWLINE !INDENT
20433 if (p->error_indicator) {
20434 D(p->level--);
20435 return NULL;
20436 }
20437 D(fprintf(stderr, "%*c> invalid_match_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"match\" subject_expr ':' NEWLINE !INDENT"));
20438 Token * _literal;
20439 expr_ty a;
20440 Token * newline_var;
20441 expr_ty subject;
20442 if (
20443 (a = _PyPegen_expect_soft_keyword(p, "match")) // soft_keyword='"match"'
20444 &&
20445 (subject = subject_expr_rule(p)) // subject_expr
20446 &&
20447 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
20448 &&
20449 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20450 &&
20451 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20452 )
20453 {
20454 D(fprintf(stderr, "%*c+ invalid_match_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"match\" subject_expr ':' NEWLINE !INDENT"));
20455 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'match' statement on line %d" , a -> lineno );
20456 if (_res == NULL && PyErr_Occurred()) {
20457 p->error_indicator = 1;
20458 D(p->level--);
20459 return NULL;
20460 }
20461 goto done;
20462 }
20463 p->mark = _mark;
20464 D(fprintf(stderr, "%*c%s invalid_match_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20465 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"match\" subject_expr ':' NEWLINE !INDENT"));
20466 }
Pablo Galindo08fb8ac2021-03-18 01:03:11 +000020467 _res = NULL;
20468 done:
20469 D(p->level--);
20470 return _res;
20471}
20472
Pablo Galindo56c95df2021-04-21 15:28:21 +010020473// invalid_case_block:
20474// | "case" patterns guard? !':'
20475// | "case" patterns guard? ':' NEWLINE !INDENT
Pablo Galindo08fb8ac2021-03-18 01:03:11 +000020476static void *
20477invalid_case_block_rule(Parser *p)
20478{
20479 D(p->level++);
20480 if (p->error_indicator) {
20481 D(p->level--);
20482 return NULL;
20483 }
20484 void * _res = NULL;
20485 int _mark = p->mark;
20486 { // "case" patterns guard? !':'
20487 if (p->error_indicator) {
20488 D(p->level--);
20489 return NULL;
20490 }
20491 D(fprintf(stderr, "%*c> invalid_case_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"case\" patterns guard? !':'"));
20492 expr_ty _keyword;
20493 void *_opt_var;
20494 UNUSED(_opt_var); // Silence compiler warnings
Nick Coghlan1e7b8582021-04-29 15:58:44 +100020495 pattern_ty patterns_var;
Pablo Galindo08fb8ac2021-03-18 01:03:11 +000020496 if (
20497 (_keyword = _PyPegen_expect_soft_keyword(p, "case")) // soft_keyword='"case"'
20498 &&
20499 (patterns_var = patterns_rule(p)) // patterns
20500 &&
20501 (_opt_var = guard_rule(p), 1) // guard?
20502 &&
20503 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 11) // token=':'
20504 )
20505 {
20506 D(fprintf(stderr, "%*c+ invalid_case_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"case\" patterns guard? !':'"));
20507 _res = RAISE_SYNTAX_ERROR ( "expected ':'" );
20508 if (_res == NULL && PyErr_Occurred()) {
20509 p->error_indicator = 1;
20510 D(p->level--);
20511 return NULL;
20512 }
20513 goto done;
20514 }
20515 p->mark = _mark;
20516 D(fprintf(stderr, "%*c%s invalid_case_block[%d-%d]: %s failed!\n", p->level, ' ',
20517 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"case\" patterns guard? !':'"));
20518 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010020519 { // "case" patterns guard? ':' NEWLINE !INDENT
20520 if (p->error_indicator) {
20521 D(p->level--);
20522 return NULL;
20523 }
20524 D(fprintf(stderr, "%*c> invalid_case_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"case\" patterns guard? ':' NEWLINE !INDENT"));
20525 Token * _literal;
20526 void *_opt_var;
20527 UNUSED(_opt_var); // Silence compiler warnings
20528 expr_ty a;
20529 Token * newline_var;
Nick Coghlan1e7b8582021-04-29 15:58:44 +100020530 pattern_ty patterns_var;
Pablo Galindo56c95df2021-04-21 15:28:21 +010020531 if (
20532 (a = _PyPegen_expect_soft_keyword(p, "case")) // soft_keyword='"case"'
20533 &&
20534 (patterns_var = patterns_rule(p)) // patterns
20535 &&
20536 (_opt_var = guard_rule(p), 1) // guard?
20537 &&
20538 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
20539 &&
20540 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20541 &&
20542 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20543 )
20544 {
20545 D(fprintf(stderr, "%*c+ invalid_case_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"case\" patterns guard? ':' NEWLINE !INDENT"));
20546 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'case' statement on line %d" , a -> lineno );
20547 if (_res == NULL && PyErr_Occurred()) {
20548 p->error_indicator = 1;
20549 D(p->level--);
20550 return NULL;
20551 }
20552 goto done;
20553 }
20554 p->mark = _mark;
20555 D(fprintf(stderr, "%*c%s invalid_case_block[%d-%d]: %s failed!\n", p->level, ' ',
20556 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"case\" patterns guard? ':' NEWLINE !INDENT"));
20557 }
Pablo Galindo08fb8ac2021-03-18 01:03:11 +000020558 _res = NULL;
20559 done:
20560 D(p->level--);
20561 return _res;
20562}
20563
Pablo Galindo56c95df2021-04-21 15:28:21 +010020564// invalid_if_stmt:
20565// | 'if' named_expression NEWLINE
20566// | 'if' named_expression ':' NEWLINE !INDENT
Pablo Galindob86ed8e2021-04-12 16:59:30 +010020567static void *
20568invalid_if_stmt_rule(Parser *p)
20569{
20570 D(p->level++);
20571 if (p->error_indicator) {
20572 D(p->level--);
20573 return NULL;
20574 }
20575 void * _res = NULL;
20576 int _mark = p->mark;
20577 { // 'if' named_expression NEWLINE
20578 if (p->error_indicator) {
20579 D(p->level--);
20580 return NULL;
20581 }
20582 D(fprintf(stderr, "%*c> invalid_if_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' named_expression NEWLINE"));
20583 Token * _keyword;
20584 expr_ty named_expression_var;
20585 Token * newline_var;
20586 if (
20587 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
20588 &&
20589 (named_expression_var = named_expression_rule(p)) // named_expression
20590 &&
20591 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20592 )
20593 {
20594 D(fprintf(stderr, "%*c+ invalid_if_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' named_expression NEWLINE"));
20595 _res = RAISE_SYNTAX_ERROR ( "expected ':'" );
20596 if (_res == NULL && PyErr_Occurred()) {
20597 p->error_indicator = 1;
20598 D(p->level--);
20599 return NULL;
20600 }
20601 goto done;
20602 }
20603 p->mark = _mark;
20604 D(fprintf(stderr, "%*c%s invalid_if_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20605 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' named_expression NEWLINE"));
20606 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010020607 { // 'if' named_expression ':' NEWLINE !INDENT
20608 if (p->error_indicator) {
20609 D(p->level--);
20610 return NULL;
20611 }
20612 D(fprintf(stderr, "%*c> invalid_if_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' named_expression ':' NEWLINE !INDENT"));
20613 Token * _literal;
20614 Token * a;
20615 expr_ty a_1;
20616 Token * newline_var;
20617 if (
20618 (a = _PyPegen_expect_token(p, 510)) // token='if'
20619 &&
20620 (a_1 = named_expression_rule(p)) // named_expression
20621 &&
20622 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
20623 &&
20624 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20625 &&
20626 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20627 )
20628 {
20629 D(fprintf(stderr, "%*c+ invalid_if_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' named_expression ':' NEWLINE !INDENT"));
20630 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'if' statement on line %d" , a -> lineno );
20631 if (_res == NULL && PyErr_Occurred()) {
20632 p->error_indicator = 1;
20633 D(p->level--);
20634 return NULL;
20635 }
20636 goto done;
20637 }
20638 p->mark = _mark;
20639 D(fprintf(stderr, "%*c%s invalid_if_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20640 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' named_expression ':' NEWLINE !INDENT"));
20641 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010020642 _res = NULL;
20643 done:
20644 D(p->level--);
20645 return _res;
20646}
20647
Pablo Galindo56c95df2021-04-21 15:28:21 +010020648// invalid_elif_stmt:
20649// | 'elif' named_expression NEWLINE
20650// | 'elif' named_expression ':' NEWLINE !INDENT
Pablo Galindob86ed8e2021-04-12 16:59:30 +010020651static void *
20652invalid_elif_stmt_rule(Parser *p)
20653{
20654 D(p->level++);
20655 if (p->error_indicator) {
20656 D(p->level--);
20657 return NULL;
20658 }
20659 void * _res = NULL;
20660 int _mark = p->mark;
20661 { // 'elif' named_expression NEWLINE
20662 if (p->error_indicator) {
20663 D(p->level--);
20664 return NULL;
20665 }
20666 D(fprintf(stderr, "%*c> invalid_elif_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'elif' named_expression NEWLINE"));
20667 Token * _keyword;
20668 expr_ty named_expression_var;
20669 Token * newline_var;
20670 if (
20671 (_keyword = _PyPegen_expect_token(p, 515)) // token='elif'
20672 &&
20673 (named_expression_var = named_expression_rule(p)) // named_expression
20674 &&
20675 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20676 )
20677 {
20678 D(fprintf(stderr, "%*c+ invalid_elif_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'elif' named_expression NEWLINE"));
20679 _res = RAISE_SYNTAX_ERROR ( "expected ':'" );
20680 if (_res == NULL && PyErr_Occurred()) {
20681 p->error_indicator = 1;
20682 D(p->level--);
20683 return NULL;
20684 }
20685 goto done;
20686 }
20687 p->mark = _mark;
20688 D(fprintf(stderr, "%*c%s invalid_elif_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20689 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'elif' named_expression NEWLINE"));
20690 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010020691 { // 'elif' named_expression ':' NEWLINE !INDENT
20692 if (p->error_indicator) {
20693 D(p->level--);
20694 return NULL;
20695 }
20696 D(fprintf(stderr, "%*c> invalid_elif_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'elif' named_expression ':' NEWLINE !INDENT"));
20697 Token * _literal;
20698 Token * a;
20699 expr_ty named_expression_var;
20700 Token * newline_var;
20701 if (
20702 (a = _PyPegen_expect_token(p, 515)) // token='elif'
20703 &&
20704 (named_expression_var = named_expression_rule(p)) // named_expression
20705 &&
20706 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
20707 &&
20708 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20709 &&
20710 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20711 )
20712 {
20713 D(fprintf(stderr, "%*c+ invalid_elif_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'elif' named_expression ':' NEWLINE !INDENT"));
20714 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'elif' statement on line %d" , a -> lineno );
20715 if (_res == NULL && PyErr_Occurred()) {
20716 p->error_indicator = 1;
20717 D(p->level--);
20718 return NULL;
20719 }
20720 goto done;
20721 }
20722 p->mark = _mark;
20723 D(fprintf(stderr, "%*c%s invalid_elif_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20724 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'elif' named_expression ':' NEWLINE !INDENT"));
20725 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010020726 _res = NULL;
20727 done:
20728 D(p->level--);
20729 return _res;
20730}
20731
Pablo Galindo56c95df2021-04-21 15:28:21 +010020732// invalid_else_stmt: 'else' ':' NEWLINE !INDENT
20733static void *
20734invalid_else_stmt_rule(Parser *p)
20735{
20736 D(p->level++);
20737 if (p->error_indicator) {
20738 D(p->level--);
20739 return NULL;
20740 }
20741 void * _res = NULL;
20742 int _mark = p->mark;
20743 { // 'else' ':' NEWLINE !INDENT
20744 if (p->error_indicator) {
20745 D(p->level--);
20746 return NULL;
20747 }
20748 D(fprintf(stderr, "%*c> invalid_else_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'else' ':' NEWLINE !INDENT"));
20749 Token * _literal;
20750 Token * a;
20751 Token * newline_var;
20752 if (
20753 (a = _PyPegen_expect_token(p, 516)) // token='else'
20754 &&
20755 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
20756 &&
20757 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20758 &&
20759 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20760 )
20761 {
20762 D(fprintf(stderr, "%*c+ invalid_else_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'else' ':' NEWLINE !INDENT"));
20763 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'else' statement on line %d" , a -> lineno );
20764 if (_res == NULL && PyErr_Occurred()) {
20765 p->error_indicator = 1;
20766 D(p->level--);
20767 return NULL;
20768 }
20769 goto done;
20770 }
20771 p->mark = _mark;
20772 D(fprintf(stderr, "%*c%s invalid_else_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20773 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'else' ':' NEWLINE !INDENT"));
20774 }
20775 _res = NULL;
20776 done:
20777 D(p->level--);
20778 return _res;
20779}
20780
20781// invalid_while_stmt:
20782// | 'while' named_expression NEWLINE
20783// | 'while' named_expression ':' NEWLINE !INDENT
Pablo Galindob86ed8e2021-04-12 16:59:30 +010020784static void *
20785invalid_while_stmt_rule(Parser *p)
20786{
20787 D(p->level++);
20788 if (p->error_indicator) {
20789 D(p->level--);
20790 return NULL;
20791 }
20792 void * _res = NULL;
20793 int _mark = p->mark;
20794 { // 'while' named_expression NEWLINE
20795 if (p->error_indicator) {
20796 D(p->level--);
20797 return NULL;
20798 }
20799 D(fprintf(stderr, "%*c> invalid_while_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'while' named_expression NEWLINE"));
20800 Token * _keyword;
20801 expr_ty named_expression_var;
20802 Token * newline_var;
20803 if (
20804 (_keyword = _PyPegen_expect_token(p, 512)) // token='while'
20805 &&
20806 (named_expression_var = named_expression_rule(p)) // named_expression
20807 &&
20808 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20809 )
20810 {
20811 D(fprintf(stderr, "%*c+ invalid_while_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'while' named_expression NEWLINE"));
20812 _res = RAISE_SYNTAX_ERROR ( "expected ':'" );
20813 if (_res == NULL && PyErr_Occurred()) {
20814 p->error_indicator = 1;
20815 D(p->level--);
20816 return NULL;
20817 }
20818 goto done;
20819 }
20820 p->mark = _mark;
20821 D(fprintf(stderr, "%*c%s invalid_while_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20822 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'while' named_expression NEWLINE"));
20823 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010020824 { // 'while' named_expression ':' NEWLINE !INDENT
20825 if (p->error_indicator) {
20826 D(p->level--);
20827 return NULL;
20828 }
20829 D(fprintf(stderr, "%*c> invalid_while_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'while' named_expression ':' NEWLINE !INDENT"));
20830 Token * _literal;
20831 Token * a;
20832 expr_ty named_expression_var;
20833 Token * newline_var;
20834 if (
20835 (a = _PyPegen_expect_token(p, 512)) // token='while'
20836 &&
20837 (named_expression_var = named_expression_rule(p)) // named_expression
20838 &&
20839 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
20840 &&
20841 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20842 &&
20843 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20844 )
20845 {
20846 D(fprintf(stderr, "%*c+ invalid_while_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'while' named_expression ':' NEWLINE !INDENT"));
20847 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'while' statement on line %d" , a -> lineno );
20848 if (_res == NULL && PyErr_Occurred()) {
20849 p->error_indicator = 1;
20850 D(p->level--);
20851 return NULL;
20852 }
20853 goto done;
20854 }
20855 p->mark = _mark;
20856 D(fprintf(stderr, "%*c%s invalid_while_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20857 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'while' named_expression ':' NEWLINE !INDENT"));
20858 }
20859 _res = NULL;
20860 done:
20861 D(p->level--);
20862 return _res;
20863}
20864
20865// invalid_for_stmt: ASYNC? 'for' star_targets 'in' star_expressions ':' NEWLINE !INDENT
20866static void *
20867invalid_for_stmt_rule(Parser *p)
20868{
20869 D(p->level++);
20870 if (p->error_indicator) {
20871 D(p->level--);
20872 return NULL;
20873 }
20874 void * _res = NULL;
20875 int _mark = p->mark;
20876 { // ASYNC? 'for' star_targets 'in' star_expressions ':' NEWLINE !INDENT
20877 if (p->error_indicator) {
20878 D(p->level--);
20879 return NULL;
20880 }
20881 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"));
20882 Token * _keyword;
20883 Token * _literal;
20884 void *_opt_var;
20885 UNUSED(_opt_var); // Silence compiler warnings
20886 Token * a;
20887 Token * newline_var;
20888 expr_ty star_expressions_var;
20889 expr_ty star_targets_var;
20890 if (
20891 (_opt_var = _PyPegen_expect_token(p, ASYNC), 1) // ASYNC?
20892 &&
20893 (a = _PyPegen_expect_token(p, 517)) // token='for'
20894 &&
20895 (star_targets_var = star_targets_rule(p)) // star_targets
20896 &&
20897 (_keyword = _PyPegen_expect_token(p, 518)) // token='in'
20898 &&
20899 (star_expressions_var = star_expressions_rule(p)) // star_expressions
20900 &&
20901 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
20902 &&
20903 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20904 &&
20905 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20906 )
20907 {
20908 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"));
20909 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'for' statement on line %d" , a -> lineno );
20910 if (_res == NULL && PyErr_Occurred()) {
20911 p->error_indicator = 1;
20912 D(p->level--);
20913 return NULL;
20914 }
20915 goto done;
20916 }
20917 p->mark = _mark;
20918 D(fprintf(stderr, "%*c%s invalid_for_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20919 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'for' star_targets 'in' star_expressions ':' NEWLINE !INDENT"));
20920 }
20921 _res = NULL;
20922 done:
20923 D(p->level--);
20924 return _res;
20925}
20926
20927// invalid_def_raw:
20928// | ASYNC? 'def' NAME '(' params? ')' ['->' expression] ':' NEWLINE !INDENT
20929static void *
20930invalid_def_raw_rule(Parser *p)
20931{
20932 D(p->level++);
20933 if (p->error_indicator) {
20934 D(p->level--);
20935 return NULL;
20936 }
20937 void * _res = NULL;
20938 int _mark = p->mark;
20939 { // ASYNC? 'def' NAME '(' params? ')' ['->' expression] ':' NEWLINE !INDENT
20940 if (p->error_indicator) {
20941 D(p->level--);
20942 return NULL;
20943 }
20944 D(fprintf(stderr, "%*c> invalid_def_raw[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC? 'def' NAME '(' params? ')' ['->' expression] ':' NEWLINE !INDENT"));
20945 Token * _literal;
20946 Token * _literal_1;
20947 Token * _literal_2;
20948 void *_opt_var;
20949 UNUSED(_opt_var); // Silence compiler warnings
20950 void *_opt_var_1;
20951 UNUSED(_opt_var_1); // Silence compiler warnings
20952 void *_opt_var_2;
20953 UNUSED(_opt_var_2); // Silence compiler warnings
20954 Token * a;
20955 expr_ty name_var;
20956 Token * newline_var;
20957 if (
20958 (_opt_var = _PyPegen_expect_token(p, ASYNC), 1) // ASYNC?
20959 &&
20960 (a = _PyPegen_expect_token(p, 526)) // token='def'
20961 &&
20962 (name_var = _PyPegen_name_token(p)) // NAME
20963 &&
20964 (_literal = _PyPegen_expect_token(p, 7)) // token='('
20965 &&
20966 (_opt_var_1 = params_rule(p), 1) // params?
20967 &&
20968 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
20969 &&
Pablo Galindoe53f72a2021-06-04 00:11:43 +010020970 (_opt_var_2 = _tmp_175_rule(p), 1) // ['->' expression]
Pablo Galindo56c95df2021-04-21 15:28:21 +010020971 &&
20972 (_literal_2 = _PyPegen_expect_token(p, 11)) // token=':'
20973 &&
20974 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20975 &&
20976 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20977 )
20978 {
20979 D(fprintf(stderr, "%*c+ invalid_def_raw[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC? 'def' NAME '(' params? ')' ['->' expression] ':' NEWLINE !INDENT"));
20980 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after function definition on line %d" , a -> lineno );
20981 if (_res == NULL && PyErr_Occurred()) {
20982 p->error_indicator = 1;
20983 D(p->level--);
20984 return NULL;
20985 }
20986 goto done;
20987 }
20988 p->mark = _mark;
20989 D(fprintf(stderr, "%*c%s invalid_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
20990 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'def' NAME '(' params? ')' ['->' expression] ':' NEWLINE !INDENT"));
20991 }
20992 _res = NULL;
20993 done:
20994 D(p->level--);
20995 return _res;
20996}
20997
20998// invalid_class_def_raw: 'class' NAME ['(' arguments? ')'] ':' NEWLINE !INDENT
20999static void *
21000invalid_class_def_raw_rule(Parser *p)
21001{
21002 D(p->level++);
21003 if (p->error_indicator) {
21004 D(p->level--);
21005 return NULL;
21006 }
21007 void * _res = NULL;
21008 int _mark = p->mark;
21009 { // 'class' NAME ['(' arguments? ')'] ':' NEWLINE !INDENT
21010 if (p->error_indicator) {
21011 D(p->level--);
21012 return NULL;
21013 }
21014 D(fprintf(stderr, "%*c> invalid_class_def_raw[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'class' NAME ['(' arguments? ')'] ':' NEWLINE !INDENT"));
21015 Token * _literal;
21016 void *_opt_var;
21017 UNUSED(_opt_var); // Silence compiler warnings
21018 Token * a;
21019 expr_ty name_var;
21020 Token * newline_var;
21021 if (
21022 (a = _PyPegen_expect_token(p, 527)) // token='class'
21023 &&
21024 (name_var = _PyPegen_name_token(p)) // NAME
21025 &&
Pablo Galindoe53f72a2021-06-04 00:11:43 +010021026 (_opt_var = _tmp_176_rule(p), 1) // ['(' arguments? ')']
Pablo Galindo56c95df2021-04-21 15:28:21 +010021027 &&
21028 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
21029 &&
21030 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
21031 &&
21032 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
21033 )
21034 {
21035 D(fprintf(stderr, "%*c+ invalid_class_def_raw[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'class' NAME ['(' arguments? ')'] ':' NEWLINE !INDENT"));
21036 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after class definition on line %d" , a -> lineno );
21037 if (_res == NULL && PyErr_Occurred()) {
21038 p->error_indicator = 1;
21039 D(p->level--);
21040 return NULL;
21041 }
21042 goto done;
21043 }
21044 p->mark = _mark;
21045 D(fprintf(stderr, "%*c%s invalid_class_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
21046 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'class' NAME ['(' arguments? ')'] ':' NEWLINE !INDENT"));
21047 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010021048 _res = NULL;
21049 done:
21050 D(p->level--);
21051 return _res;
21052}
21053
Pablo Galindoda743502021-04-15 14:06:39 +010021054// invalid_double_starred_kvpairs:
21055// | ','.double_starred_kvpair+ ',' invalid_kvpair
21056// | expression ':' '*' bitwise_or
21057// | expression ':' &('}' | ',')
21058static void *
21059invalid_double_starred_kvpairs_rule(Parser *p)
21060{
21061 D(p->level++);
21062 if (p->error_indicator) {
21063 D(p->level--);
21064 return NULL;
21065 }
21066 void * _res = NULL;
21067 int _mark = p->mark;
21068 { // ','.double_starred_kvpair+ ',' invalid_kvpair
21069 if (p->error_indicator) {
21070 D(p->level--);
21071 return NULL;
21072 }
21073 D(fprintf(stderr, "%*c> invalid_double_starred_kvpairs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.double_starred_kvpair+ ',' invalid_kvpair"));
Pablo Galindoe53f72a2021-06-04 00:11:43 +010021074 asdl_seq * _gather_177_var;
Pablo Galindoda743502021-04-15 14:06:39 +010021075 Token * _literal;
21076 void *invalid_kvpair_var;
21077 if (
Pablo Galindoe53f72a2021-06-04 00:11:43 +010021078 (_gather_177_var = _gather_177_rule(p)) // ','.double_starred_kvpair+
Pablo Galindoda743502021-04-15 14:06:39 +010021079 &&
21080 (_literal = _PyPegen_expect_token(p, 12)) // token=','
21081 &&
21082 (invalid_kvpair_var = invalid_kvpair_rule(p)) // invalid_kvpair
21083 )
21084 {
21085 D(fprintf(stderr, "%*c+ invalid_double_starred_kvpairs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.double_starred_kvpair+ ',' invalid_kvpair"));
Pablo Galindoe53f72a2021-06-04 00:11:43 +010021086 _res = _PyPegen_dummy_name(p, _gather_177_var, _literal, invalid_kvpair_var);
Pablo Galindoda743502021-04-15 14:06:39 +010021087 goto done;
21088 }
21089 p->mark = _mark;
21090 D(fprintf(stderr, "%*c%s invalid_double_starred_kvpairs[%d-%d]: %s failed!\n", p->level, ' ',
21091 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.double_starred_kvpair+ ',' invalid_kvpair"));
21092 }
21093 { // expression ':' '*' bitwise_or
21094 if (p->error_indicator) {
21095 D(p->level--);
21096 return NULL;
21097 }
21098 D(fprintf(stderr, "%*c> invalid_double_starred_kvpairs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':' '*' bitwise_or"));
21099 Token * _literal;
21100 Token * a;
21101 expr_ty bitwise_or_var;
21102 expr_ty expression_var;
21103 if (
21104 (expression_var = expression_rule(p)) // expression
21105 &&
21106 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
21107 &&
21108 (a = _PyPegen_expect_token(p, 16)) // token='*'
21109 &&
21110 (bitwise_or_var = bitwise_or_rule(p)) // bitwise_or
21111 )
21112 {
21113 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 +010021114 _res = RAISE_SYNTAX_ERROR_STARTING_FROM ( a , "cannot use a starred expression in a dictionary value" );
Pablo Galindoda743502021-04-15 14:06:39 +010021115 if (_res == NULL && PyErr_Occurred()) {
21116 p->error_indicator = 1;
21117 D(p->level--);
21118 return NULL;
21119 }
21120 goto done;
21121 }
21122 p->mark = _mark;
21123 D(fprintf(stderr, "%*c%s invalid_double_starred_kvpairs[%d-%d]: %s failed!\n", p->level, ' ',
21124 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' '*' bitwise_or"));
21125 }
21126 { // expression ':' &('}' | ',')
21127 if (p->error_indicator) {
21128 D(p->level--);
21129 return NULL;
21130 }
21131 D(fprintf(stderr, "%*c> invalid_double_starred_kvpairs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':' &('}' | ',')"));
21132 Token * a;
21133 expr_ty expression_var;
21134 if (
21135 (expression_var = expression_rule(p)) // expression
21136 &&
21137 (a = _PyPegen_expect_token(p, 11)) // token=':'
21138 &&
Pablo Galindoe53f72a2021-06-04 00:11:43 +010021139 _PyPegen_lookahead(1, _tmp_179_rule, p)
Pablo Galindoda743502021-04-15 14:06:39 +010021140 )
21141 {
21142 D(fprintf(stderr, "%*c+ invalid_double_starred_kvpairs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':' &('}' | ',')"));
21143 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "expression expected after dictionary key and ':'" );
21144 if (_res == NULL && PyErr_Occurred()) {
21145 p->error_indicator = 1;
21146 D(p->level--);
21147 return NULL;
21148 }
21149 goto done;
21150 }
21151 p->mark = _mark;
21152 D(fprintf(stderr, "%*c%s invalid_double_starred_kvpairs[%d-%d]: %s failed!\n", p->level, ' ',
21153 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' &('}' | ',')"));
21154 }
21155 _res = NULL;
21156 done:
21157 D(p->level--);
21158 return _res;
21159}
21160
21161// invalid_kvpair: expression !(':') | expression ':' '*' bitwise_or | expression ':'
21162static void *
21163invalid_kvpair_rule(Parser *p)
21164{
21165 D(p->level++);
21166 if (p->error_indicator) {
21167 D(p->level--);
21168 return NULL;
21169 }
21170 void * _res = NULL;
21171 int _mark = p->mark;
21172 { // expression !(':')
21173 if (p->error_indicator) {
21174 D(p->level--);
21175 return NULL;
21176 }
21177 D(fprintf(stderr, "%*c> invalid_kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression !(':')"));
21178 expr_ty a;
21179 if (
21180 (a = expression_rule(p)) // expression
21181 &&
21182 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 11) // token=(':')
21183 )
21184 {
21185 D(fprintf(stderr, "%*c+ invalid_kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression !(':')"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010021186 _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 +010021187 if (_res == NULL && PyErr_Occurred()) {
21188 p->error_indicator = 1;
21189 D(p->level--);
21190 return NULL;
21191 }
21192 goto done;
21193 }
21194 p->mark = _mark;
21195 D(fprintf(stderr, "%*c%s invalid_kvpair[%d-%d]: %s failed!\n", p->level, ' ',
21196 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression !(':')"));
21197 }
21198 { // expression ':' '*' bitwise_or
21199 if (p->error_indicator) {
21200 D(p->level--);
21201 return NULL;
21202 }
21203 D(fprintf(stderr, "%*c> invalid_kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':' '*' bitwise_or"));
21204 Token * _literal;
21205 Token * a;
21206 expr_ty bitwise_or_var;
21207 expr_ty expression_var;
21208 if (
21209 (expression_var = expression_rule(p)) // expression
21210 &&
21211 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
21212 &&
21213 (a = _PyPegen_expect_token(p, 16)) // token='*'
21214 &&
21215 (bitwise_or_var = bitwise_or_rule(p)) // bitwise_or
21216 )
21217 {
21218 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 +010021219 _res = RAISE_SYNTAX_ERROR_STARTING_FROM ( a , "cannot use a starred expression in a dictionary value" );
Pablo Galindoda743502021-04-15 14:06:39 +010021220 if (_res == NULL && PyErr_Occurred()) {
21221 p->error_indicator = 1;
21222 D(p->level--);
21223 return NULL;
21224 }
21225 goto done;
21226 }
21227 p->mark = _mark;
21228 D(fprintf(stderr, "%*c%s invalid_kvpair[%d-%d]: %s failed!\n", p->level, ' ',
21229 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' '*' bitwise_or"));
21230 }
21231 { // expression ':'
21232 if (p->error_indicator) {
21233 D(p->level--);
21234 return NULL;
21235 }
21236 D(fprintf(stderr, "%*c> invalid_kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':'"));
21237 Token * a;
21238 expr_ty expression_var;
21239 if (
21240 (expression_var = expression_rule(p)) // expression
21241 &&
21242 (a = _PyPegen_expect_token(p, 11)) // token=':'
21243 )
21244 {
21245 D(fprintf(stderr, "%*c+ invalid_kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':'"));
21246 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "expression expected after dictionary key and ':'" );
21247 if (_res == NULL && PyErr_Occurred()) {
21248 p->error_indicator = 1;
21249 D(p->level--);
21250 return NULL;
21251 }
21252 goto done;
21253 }
21254 p->mark = _mark;
21255 D(fprintf(stderr, "%*c%s invalid_kvpair[%d-%d]: %s failed!\n", p->level, ' ',
21256 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':'"));
21257 }
21258 _res = NULL;
21259 done:
21260 D(p->level--);
21261 return _res;
21262}
21263
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021264// _loop0_1: NEWLINE
21265static asdl_seq *
21266_loop0_1_rule(Parser *p)
21267{
21268 D(p->level++);
21269 if (p->error_indicator) {
21270 D(p->level--);
21271 return NULL;
21272 }
21273 void *_res = NULL;
21274 int _mark = p->mark;
21275 int _start_mark = p->mark;
21276 void **_children = PyMem_Malloc(sizeof(void *));
21277 if (!_children) {
21278 p->error_indicator = 1;
21279 PyErr_NoMemory();
21280 D(p->level--);
21281 return NULL;
21282 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010021283 Py_ssize_t _children_capacity = 1;
21284 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021285 { // NEWLINE
21286 if (p->error_indicator) {
21287 D(p->level--);
21288 return NULL;
21289 }
21290 D(fprintf(stderr, "%*c> _loop0_1[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
21291 Token * newline_var;
21292 while (
21293 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
21294 )
21295 {
21296 _res = newline_var;
21297 if (_n == _children_capacity) {
21298 _children_capacity *= 2;
21299 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21300 if (!_new_children) {
21301 p->error_indicator = 1;
21302 PyErr_NoMemory();
21303 D(p->level--);
21304 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000021305 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021306 _children = _new_children;
21307 }
21308 _children[_n++] = _res;
21309 _mark = p->mark;
21310 }
21311 p->mark = _mark;
21312 D(fprintf(stderr, "%*c%s _loop0_1[%d-%d]: %s failed!\n", p->level, ' ',
21313 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
21314 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021315 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021316 if (!_seq) {
21317 PyMem_Free(_children);
21318 p->error_indicator = 1;
21319 PyErr_NoMemory();
21320 D(p->level--);
21321 return NULL;
21322 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021323 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021324 PyMem_Free(_children);
21325 _PyPegen_insert_memo(p, _start_mark, _loop0_1_type, _seq);
21326 D(p->level--);
21327 return _seq;
21328}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000021329
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021330// _loop0_2: NEWLINE
21331static asdl_seq *
21332_loop0_2_rule(Parser *p)
21333{
21334 D(p->level++);
21335 if (p->error_indicator) {
21336 D(p->level--);
21337 return NULL;
21338 }
21339 void *_res = NULL;
21340 int _mark = p->mark;
21341 int _start_mark = p->mark;
21342 void **_children = PyMem_Malloc(sizeof(void *));
21343 if (!_children) {
21344 p->error_indicator = 1;
21345 PyErr_NoMemory();
21346 D(p->level--);
21347 return NULL;
21348 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010021349 Py_ssize_t _children_capacity = 1;
21350 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021351 { // NEWLINE
21352 if (p->error_indicator) {
21353 D(p->level--);
21354 return NULL;
21355 }
21356 D(fprintf(stderr, "%*c> _loop0_2[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
21357 Token * newline_var;
21358 while (
21359 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
21360 )
21361 {
21362 _res = newline_var;
21363 if (_n == _children_capacity) {
21364 _children_capacity *= 2;
21365 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21366 if (!_new_children) {
21367 p->error_indicator = 1;
21368 PyErr_NoMemory();
21369 D(p->level--);
21370 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000021371 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021372 _children = _new_children;
21373 }
21374 _children[_n++] = _res;
21375 _mark = p->mark;
21376 }
21377 p->mark = _mark;
21378 D(fprintf(stderr, "%*c%s _loop0_2[%d-%d]: %s failed!\n", p->level, ' ',
21379 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
21380 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021381 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021382 if (!_seq) {
21383 PyMem_Free(_children);
21384 p->error_indicator = 1;
21385 PyErr_NoMemory();
21386 D(p->level--);
21387 return NULL;
21388 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021389 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021390 PyMem_Free(_children);
21391 _PyPegen_insert_memo(p, _start_mark, _loop0_2_type, _seq);
21392 D(p->level--);
21393 return _seq;
21394}
21395
21396// _loop0_4: ',' expression
21397static asdl_seq *
21398_loop0_4_rule(Parser *p)
21399{
21400 D(p->level++);
21401 if (p->error_indicator) {
21402 D(p->level--);
21403 return NULL;
21404 }
21405 void *_res = NULL;
21406 int _mark = p->mark;
21407 int _start_mark = p->mark;
21408 void **_children = PyMem_Malloc(sizeof(void *));
21409 if (!_children) {
21410 p->error_indicator = 1;
21411 PyErr_NoMemory();
21412 D(p->level--);
21413 return NULL;
21414 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010021415 Py_ssize_t _children_capacity = 1;
21416 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021417 { // ',' expression
21418 if (p->error_indicator) {
21419 D(p->level--);
21420 return NULL;
21421 }
21422 D(fprintf(stderr, "%*c> _loop0_4[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
21423 Token * _literal;
21424 expr_ty elem;
21425 while (
21426 (_literal = _PyPegen_expect_token(p, 12)) // token=','
21427 &&
21428 (elem = expression_rule(p)) // expression
21429 )
21430 {
21431 _res = elem;
21432 if (_res == NULL && PyErr_Occurred()) {
21433 p->error_indicator = 1;
21434 PyMem_Free(_children);
21435 D(p->level--);
21436 return NULL;
21437 }
21438 if (_n == _children_capacity) {
21439 _children_capacity *= 2;
21440 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21441 if (!_new_children) {
21442 p->error_indicator = 1;
21443 PyErr_NoMemory();
21444 D(p->level--);
21445 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000021446 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021447 _children = _new_children;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000021448 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021449 _children[_n++] = _res;
21450 _mark = p->mark;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000021451 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021452 p->mark = _mark;
21453 D(fprintf(stderr, "%*c%s _loop0_4[%d-%d]: %s failed!\n", p->level, ' ',
21454 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000021455 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021456 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021457 if (!_seq) {
21458 PyMem_Free(_children);
21459 p->error_indicator = 1;
21460 PyErr_NoMemory();
21461 D(p->level--);
21462 return NULL;
21463 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021464 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021465 PyMem_Free(_children);
21466 _PyPegen_insert_memo(p, _start_mark, _loop0_4_type, _seq);
21467 D(p->level--);
21468 return _seq;
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021469}
21470
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021471// _gather_3: expression _loop0_4
21472static asdl_seq *
21473_gather_3_rule(Parser *p)
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021474{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021475 D(p->level++);
21476 if (p->error_indicator) {
21477 D(p->level--);
21478 return NULL;
21479 }
21480 asdl_seq * _res = NULL;
21481 int _mark = p->mark;
21482 { // expression _loop0_4
21483 if (p->error_indicator) {
21484 D(p->level--);
21485 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000021486 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021487 D(fprintf(stderr, "%*c> _gather_3[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression _loop0_4"));
21488 expr_ty elem;
21489 asdl_seq * seq;
21490 if (
21491 (elem = expression_rule(p)) // expression
21492 &&
21493 (seq = _loop0_4_rule(p)) // _loop0_4
21494 )
21495 {
21496 D(fprintf(stderr, "%*c+ _gather_3[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression _loop0_4"));
21497 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
21498 goto done;
21499 }
21500 p->mark = _mark;
21501 D(fprintf(stderr, "%*c%s _gather_3[%d-%d]: %s failed!\n", p->level, ' ',
21502 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_4"));
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000021503 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021504 _res = NULL;
21505 done:
21506 D(p->level--);
21507 return _res;
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021508}
21509
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021510// _loop0_6: ',' expression
21511static asdl_seq *
21512_loop0_6_rule(Parser *p)
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021513{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021514 D(p->level++);
21515 if (p->error_indicator) {
21516 D(p->level--);
21517 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000021518 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021519 void *_res = NULL;
21520 int _mark = p->mark;
21521 int _start_mark = p->mark;
21522 void **_children = PyMem_Malloc(sizeof(void *));
21523 if (!_children) {
21524 p->error_indicator = 1;
21525 PyErr_NoMemory();
21526 D(p->level--);
21527 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000021528 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010021529 Py_ssize_t _children_capacity = 1;
21530 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021531 { // ',' expression
21532 if (p->error_indicator) {
21533 D(p->level--);
21534 return NULL;
21535 }
21536 D(fprintf(stderr, "%*c> _loop0_6[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
21537 Token * _literal;
21538 expr_ty elem;
21539 while (
21540 (_literal = _PyPegen_expect_token(p, 12)) // token=','
21541 &&
21542 (elem = expression_rule(p)) // expression
21543 )
21544 {
21545 _res = elem;
21546 if (_res == NULL && PyErr_Occurred()) {
21547 p->error_indicator = 1;
21548 PyMem_Free(_children);
21549 D(p->level--);
21550 return NULL;
21551 }
21552 if (_n == _children_capacity) {
21553 _children_capacity *= 2;
21554 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21555 if (!_new_children) {
21556 p->error_indicator = 1;
21557 PyErr_NoMemory();
21558 D(p->level--);
21559 return NULL;
21560 }
21561 _children = _new_children;
21562 }
21563 _children[_n++] = _res;
21564 _mark = p->mark;
21565 }
21566 p->mark = _mark;
21567 D(fprintf(stderr, "%*c%s _loop0_6[%d-%d]: %s failed!\n", p->level, ' ',
21568 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
21569 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021570 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021571 if (!_seq) {
21572 PyMem_Free(_children);
21573 p->error_indicator = 1;
21574 PyErr_NoMemory();
21575 D(p->level--);
21576 return NULL;
21577 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021578 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021579 PyMem_Free(_children);
21580 _PyPegen_insert_memo(p, _start_mark, _loop0_6_type, _seq);
21581 D(p->level--);
21582 return _seq;
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021583}
21584
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021585// _gather_5: expression _loop0_6
21586static asdl_seq *
21587_gather_5_rule(Parser *p)
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021588{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021589 D(p->level++);
21590 if (p->error_indicator) {
21591 D(p->level--);
21592 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000021593 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021594 asdl_seq * _res = NULL;
21595 int _mark = p->mark;
21596 { // expression _loop0_6
21597 if (p->error_indicator) {
21598 D(p->level--);
21599 return NULL;
21600 }
21601 D(fprintf(stderr, "%*c> _gather_5[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression _loop0_6"));
21602 expr_ty elem;
21603 asdl_seq * seq;
21604 if (
21605 (elem = expression_rule(p)) // expression
21606 &&
21607 (seq = _loop0_6_rule(p)) // _loop0_6
21608 )
21609 {
21610 D(fprintf(stderr, "%*c+ _gather_5[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression _loop0_6"));
21611 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
21612 goto done;
21613 }
21614 p->mark = _mark;
21615 D(fprintf(stderr, "%*c%s _gather_5[%d-%d]: %s failed!\n", p->level, ' ',
21616 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_6"));
21617 }
21618 _res = NULL;
21619 done:
21620 D(p->level--);
21621 return _res;
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021622}
21623
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021624// _loop0_8: ',' expression
21625static asdl_seq *
21626_loop0_8_rule(Parser *p)
21627{
21628 D(p->level++);
21629 if (p->error_indicator) {
21630 D(p->level--);
21631 return NULL;
21632 }
21633 void *_res = NULL;
21634 int _mark = p->mark;
21635 int _start_mark = p->mark;
21636 void **_children = PyMem_Malloc(sizeof(void *));
21637 if (!_children) {
21638 p->error_indicator = 1;
21639 PyErr_NoMemory();
21640 D(p->level--);
21641 return NULL;
21642 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010021643 Py_ssize_t _children_capacity = 1;
21644 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021645 { // ',' expression
21646 if (p->error_indicator) {
21647 D(p->level--);
21648 return NULL;
21649 }
21650 D(fprintf(stderr, "%*c> _loop0_8[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
21651 Token * _literal;
21652 expr_ty elem;
21653 while (
21654 (_literal = _PyPegen_expect_token(p, 12)) // token=','
21655 &&
21656 (elem = expression_rule(p)) // expression
21657 )
21658 {
21659 _res = elem;
21660 if (_res == NULL && PyErr_Occurred()) {
21661 p->error_indicator = 1;
21662 PyMem_Free(_children);
21663 D(p->level--);
21664 return NULL;
21665 }
21666 if (_n == _children_capacity) {
21667 _children_capacity *= 2;
21668 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21669 if (!_new_children) {
21670 p->error_indicator = 1;
21671 PyErr_NoMemory();
21672 D(p->level--);
21673 return NULL;
21674 }
21675 _children = _new_children;
21676 }
21677 _children[_n++] = _res;
21678 _mark = p->mark;
21679 }
21680 p->mark = _mark;
21681 D(fprintf(stderr, "%*c%s _loop0_8[%d-%d]: %s failed!\n", p->level, ' ',
21682 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
21683 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021684 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021685 if (!_seq) {
21686 PyMem_Free(_children);
21687 p->error_indicator = 1;
21688 PyErr_NoMemory();
21689 D(p->level--);
21690 return NULL;
21691 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021692 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021693 PyMem_Free(_children);
21694 _PyPegen_insert_memo(p, _start_mark, _loop0_8_type, _seq);
21695 D(p->level--);
21696 return _seq;
21697}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021698
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021699// _gather_7: expression _loop0_8
21700static asdl_seq *
21701_gather_7_rule(Parser *p)
21702{
21703 D(p->level++);
21704 if (p->error_indicator) {
21705 D(p->level--);
21706 return NULL;
21707 }
21708 asdl_seq * _res = NULL;
21709 int _mark = p->mark;
21710 { // expression _loop0_8
21711 if (p->error_indicator) {
21712 D(p->level--);
21713 return NULL;
21714 }
21715 D(fprintf(stderr, "%*c> _gather_7[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression _loop0_8"));
21716 expr_ty elem;
21717 asdl_seq * seq;
21718 if (
21719 (elem = expression_rule(p)) // expression
21720 &&
21721 (seq = _loop0_8_rule(p)) // _loop0_8
21722 )
21723 {
21724 D(fprintf(stderr, "%*c+ _gather_7[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression _loop0_8"));
21725 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
21726 goto done;
21727 }
21728 p->mark = _mark;
21729 D(fprintf(stderr, "%*c%s _gather_7[%d-%d]: %s failed!\n", p->level, ' ',
21730 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_8"));
21731 }
21732 _res = NULL;
21733 done:
21734 D(p->level--);
21735 return _res;
21736}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021737
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021738// _loop0_10: ',' expression
21739static asdl_seq *
21740_loop0_10_rule(Parser *p)
21741{
21742 D(p->level++);
21743 if (p->error_indicator) {
21744 D(p->level--);
21745 return NULL;
21746 }
21747 void *_res = NULL;
21748 int _mark = p->mark;
21749 int _start_mark = p->mark;
21750 void **_children = PyMem_Malloc(sizeof(void *));
21751 if (!_children) {
21752 p->error_indicator = 1;
21753 PyErr_NoMemory();
21754 D(p->level--);
21755 return NULL;
21756 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010021757 Py_ssize_t _children_capacity = 1;
21758 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021759 { // ',' expression
21760 if (p->error_indicator) {
21761 D(p->level--);
21762 return NULL;
21763 }
21764 D(fprintf(stderr, "%*c> _loop0_10[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
21765 Token * _literal;
21766 expr_ty elem;
21767 while (
21768 (_literal = _PyPegen_expect_token(p, 12)) // token=','
21769 &&
21770 (elem = expression_rule(p)) // expression
21771 )
21772 {
21773 _res = elem;
21774 if (_res == NULL && PyErr_Occurred()) {
21775 p->error_indicator = 1;
21776 PyMem_Free(_children);
21777 D(p->level--);
21778 return NULL;
21779 }
21780 if (_n == _children_capacity) {
21781 _children_capacity *= 2;
21782 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21783 if (!_new_children) {
21784 p->error_indicator = 1;
21785 PyErr_NoMemory();
21786 D(p->level--);
21787 return NULL;
21788 }
21789 _children = _new_children;
21790 }
21791 _children[_n++] = _res;
21792 _mark = p->mark;
21793 }
21794 p->mark = _mark;
21795 D(fprintf(stderr, "%*c%s _loop0_10[%d-%d]: %s failed!\n", p->level, ' ',
21796 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
21797 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021798 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021799 if (!_seq) {
21800 PyMem_Free(_children);
21801 p->error_indicator = 1;
21802 PyErr_NoMemory();
21803 D(p->level--);
21804 return NULL;
21805 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021806 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021807 PyMem_Free(_children);
21808 _PyPegen_insert_memo(p, _start_mark, _loop0_10_type, _seq);
21809 D(p->level--);
21810 return _seq;
21811}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021812
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021813// _gather_9: expression _loop0_10
21814static asdl_seq *
21815_gather_9_rule(Parser *p)
21816{
21817 D(p->level++);
21818 if (p->error_indicator) {
21819 D(p->level--);
21820 return NULL;
21821 }
21822 asdl_seq * _res = NULL;
21823 int _mark = p->mark;
21824 { // expression _loop0_10
21825 if (p->error_indicator) {
21826 D(p->level--);
21827 return NULL;
21828 }
21829 D(fprintf(stderr, "%*c> _gather_9[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression _loop0_10"));
21830 expr_ty elem;
21831 asdl_seq * seq;
21832 if (
21833 (elem = expression_rule(p)) // expression
21834 &&
21835 (seq = _loop0_10_rule(p)) // _loop0_10
21836 )
21837 {
21838 D(fprintf(stderr, "%*c+ _gather_9[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression _loop0_10"));
21839 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
21840 goto done;
21841 }
21842 p->mark = _mark;
21843 D(fprintf(stderr, "%*c%s _gather_9[%d-%d]: %s failed!\n", p->level, ' ',
21844 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_10"));
21845 }
21846 _res = NULL;
21847 done:
21848 D(p->level--);
21849 return _res;
21850}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021851
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021852// _loop1_11: statement
21853static asdl_seq *
21854_loop1_11_rule(Parser *p)
21855{
21856 D(p->level++);
21857 if (p->error_indicator) {
21858 D(p->level--);
21859 return NULL;
21860 }
21861 void *_res = NULL;
21862 int _mark = p->mark;
21863 int _start_mark = p->mark;
21864 void **_children = PyMem_Malloc(sizeof(void *));
21865 if (!_children) {
21866 p->error_indicator = 1;
21867 PyErr_NoMemory();
21868 D(p->level--);
21869 return NULL;
21870 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010021871 Py_ssize_t _children_capacity = 1;
21872 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021873 { // statement
21874 if (p->error_indicator) {
21875 D(p->level--);
21876 return NULL;
21877 }
21878 D(fprintf(stderr, "%*c> _loop1_11[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statement"));
Pablo Galindoa5634c42020-09-16 19:42:00 +010021879 asdl_stmt_seq* statement_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021880 while (
21881 (statement_var = statement_rule(p)) // statement
21882 )
21883 {
21884 _res = statement_var;
21885 if (_n == _children_capacity) {
21886 _children_capacity *= 2;
21887 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21888 if (!_new_children) {
21889 p->error_indicator = 1;
21890 PyErr_NoMemory();
21891 D(p->level--);
21892 return NULL;
21893 }
21894 _children = _new_children;
21895 }
21896 _children[_n++] = _res;
21897 _mark = p->mark;
21898 }
21899 p->mark = _mark;
21900 D(fprintf(stderr, "%*c%s _loop1_11[%d-%d]: %s failed!\n", p->level, ' ',
21901 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statement"));
21902 }
21903 if (_n == 0 || p->error_indicator) {
21904 PyMem_Free(_children);
21905 D(p->level--);
21906 return NULL;
21907 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021908 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021909 if (!_seq) {
21910 PyMem_Free(_children);
21911 p->error_indicator = 1;
21912 PyErr_NoMemory();
21913 D(p->level--);
21914 return NULL;
21915 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021916 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021917 PyMem_Free(_children);
21918 _PyPegen_insert_memo(p, _start_mark, _loop1_11_type, _seq);
21919 D(p->level--);
21920 return _seq;
21921}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021922
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000021923// _loop0_13: ';' simple_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021924static asdl_seq *
21925_loop0_13_rule(Parser *p)
21926{
21927 D(p->level++);
21928 if (p->error_indicator) {
21929 D(p->level--);
21930 return NULL;
21931 }
21932 void *_res = NULL;
21933 int _mark = p->mark;
21934 int _start_mark = p->mark;
21935 void **_children = PyMem_Malloc(sizeof(void *));
21936 if (!_children) {
21937 p->error_indicator = 1;
21938 PyErr_NoMemory();
21939 D(p->level--);
21940 return NULL;
21941 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010021942 Py_ssize_t _children_capacity = 1;
21943 Py_ssize_t _n = 0;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000021944 { // ';' simple_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021945 if (p->error_indicator) {
21946 D(p->level--);
21947 return NULL;
21948 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000021949 D(fprintf(stderr, "%*c> _loop0_13[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "';' simple_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021950 Token * _literal;
21951 stmt_ty elem;
21952 while (
21953 (_literal = _PyPegen_expect_token(p, 13)) // token=';'
21954 &&
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000021955 (elem = simple_stmt_rule(p)) // simple_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021956 )
21957 {
21958 _res = elem;
21959 if (_res == NULL && PyErr_Occurred()) {
21960 p->error_indicator = 1;
21961 PyMem_Free(_children);
21962 D(p->level--);
21963 return NULL;
21964 }
21965 if (_n == _children_capacity) {
21966 _children_capacity *= 2;
21967 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21968 if (!_new_children) {
21969 p->error_indicator = 1;
21970 PyErr_NoMemory();
21971 D(p->level--);
21972 return NULL;
21973 }
21974 _children = _new_children;
21975 }
21976 _children[_n++] = _res;
21977 _mark = p->mark;
21978 }
21979 p->mark = _mark;
21980 D(fprintf(stderr, "%*c%s _loop0_13[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000021981 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "';' simple_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021982 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021983 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021984 if (!_seq) {
21985 PyMem_Free(_children);
21986 p->error_indicator = 1;
21987 PyErr_NoMemory();
21988 D(p->level--);
21989 return NULL;
21990 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021991 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021992 PyMem_Free(_children);
21993 _PyPegen_insert_memo(p, _start_mark, _loop0_13_type, _seq);
21994 D(p->level--);
21995 return _seq;
21996}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021997
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000021998// _gather_12: simple_stmt _loop0_13
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021999static asdl_seq *
22000_gather_12_rule(Parser *p)
22001{
22002 D(p->level++);
22003 if (p->error_indicator) {
22004 D(p->level--);
22005 return NULL;
22006 }
22007 asdl_seq * _res = NULL;
22008 int _mark = p->mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000022009 { // simple_stmt _loop0_13
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022010 if (p->error_indicator) {
22011 D(p->level--);
22012 return NULL;
22013 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000022014 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 +010022015 stmt_ty elem;
22016 asdl_seq * seq;
22017 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000022018 (elem = simple_stmt_rule(p)) // simple_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022019 &&
22020 (seq = _loop0_13_rule(p)) // _loop0_13
22021 )
22022 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000022023 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 +010022024 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
22025 goto done;
22026 }
22027 p->mark = _mark;
22028 D(fprintf(stderr, "%*c%s _gather_12[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000022029 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmt _loop0_13"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022030 }
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_14: 'import' | 'from'
22038static void *
22039_tmp_14_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 { // 'import'
22049 if (p->error_indicator) {
22050 D(p->level--);
22051 return NULL;
22052 }
22053 D(fprintf(stderr, "%*c> _tmp_14[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'import'"));
22054 Token * _keyword;
22055 if (
22056 (_keyword = _PyPegen_expect_token(p, 513)) // token='import'
22057 )
22058 {
22059 D(fprintf(stderr, "%*c+ _tmp_14[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'import'"));
22060 _res = _keyword;
22061 goto done;
22062 }
22063 p->mark = _mark;
22064 D(fprintf(stderr, "%*c%s _tmp_14[%d-%d]: %s failed!\n", p->level, ' ',
22065 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'import'"));
22066 }
22067 { // 'from'
22068 if (p->error_indicator) {
22069 D(p->level--);
22070 return NULL;
22071 }
22072 D(fprintf(stderr, "%*c> _tmp_14[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from'"));
22073 Token * _keyword;
22074 if (
22075 (_keyword = _PyPegen_expect_token(p, 514)) // token='from'
22076 )
22077 {
22078 D(fprintf(stderr, "%*c+ _tmp_14[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'from'"));
22079 _res = _keyword;
22080 goto done;
22081 }
22082 p->mark = _mark;
22083 D(fprintf(stderr, "%*c%s _tmp_14[%d-%d]: %s failed!\n", p->level, ' ',
22084 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from'"));
22085 }
22086 _res = NULL;
22087 done:
22088 D(p->level--);
22089 return _res;
22090}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000022091
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022092// _tmp_15: 'def' | '@' | ASYNC
22093static void *
22094_tmp_15_rule(Parser *p)
22095{
22096 D(p->level++);
22097 if (p->error_indicator) {
22098 D(p->level--);
22099 return NULL;
22100 }
22101 void * _res = NULL;
22102 int _mark = p->mark;
22103 { // 'def'
22104 if (p->error_indicator) {
22105 D(p->level--);
22106 return NULL;
22107 }
22108 D(fprintf(stderr, "%*c> _tmp_15[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'def'"));
22109 Token * _keyword;
22110 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080022111 (_keyword = _PyPegen_expect_token(p, 526)) // token='def'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022112 )
22113 {
22114 D(fprintf(stderr, "%*c+ _tmp_15[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'def'"));
22115 _res = _keyword;
22116 goto done;
22117 }
22118 p->mark = _mark;
22119 D(fprintf(stderr, "%*c%s _tmp_15[%d-%d]: %s failed!\n", p->level, ' ',
22120 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'def'"));
22121 }
22122 { // '@'
22123 if (p->error_indicator) {
22124 D(p->level--);
22125 return NULL;
22126 }
22127 D(fprintf(stderr, "%*c> _tmp_15[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@'"));
22128 Token * _literal;
22129 if (
22130 (_literal = _PyPegen_expect_token(p, 49)) // token='@'
22131 )
22132 {
22133 D(fprintf(stderr, "%*c+ _tmp_15[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@'"));
22134 _res = _literal;
22135 goto done;
22136 }
22137 p->mark = _mark;
22138 D(fprintf(stderr, "%*c%s _tmp_15[%d-%d]: %s failed!\n", p->level, ' ',
22139 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@'"));
22140 }
22141 { // ASYNC
22142 if (p->error_indicator) {
22143 D(p->level--);
22144 return NULL;
22145 }
22146 D(fprintf(stderr, "%*c> _tmp_15[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC"));
22147 Token * async_var;
22148 if (
22149 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
22150 )
22151 {
22152 D(fprintf(stderr, "%*c+ _tmp_15[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC"));
22153 _res = async_var;
22154 goto done;
22155 }
22156 p->mark = _mark;
22157 D(fprintf(stderr, "%*c%s _tmp_15[%d-%d]: %s failed!\n", p->level, ' ',
22158 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC"));
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_16: 'class' | '@'
22167static void *
22168_tmp_16_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 { // 'class'
22178 if (p->error_indicator) {
22179 D(p->level--);
22180 return NULL;
22181 }
22182 D(fprintf(stderr, "%*c> _tmp_16[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'class'"));
22183 Token * _keyword;
22184 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080022185 (_keyword = _PyPegen_expect_token(p, 527)) // token='class'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022186 )
22187 {
22188 D(fprintf(stderr, "%*c+ _tmp_16[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'class'"));
22189 _res = _keyword;
22190 goto done;
22191 }
22192 p->mark = _mark;
22193 D(fprintf(stderr, "%*c%s _tmp_16[%d-%d]: %s failed!\n", p->level, ' ',
22194 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'class'"));
22195 }
22196 { // '@'
22197 if (p->error_indicator) {
22198 D(p->level--);
22199 return NULL;
22200 }
22201 D(fprintf(stderr, "%*c> _tmp_16[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@'"));
22202 Token * _literal;
22203 if (
22204 (_literal = _PyPegen_expect_token(p, 49)) // token='@'
22205 )
22206 {
22207 D(fprintf(stderr, "%*c+ _tmp_16[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@'"));
22208 _res = _literal;
22209 goto done;
22210 }
22211 p->mark = _mark;
22212 D(fprintf(stderr, "%*c%s _tmp_16[%d-%d]: %s failed!\n", p->level, ' ',
22213 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@'"));
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_17: 'with' | ASYNC
22222static void *
22223_tmp_17_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 { // 'with'
22233 if (p->error_indicator) {
22234 D(p->level--);
22235 return NULL;
22236 }
22237 D(fprintf(stderr, "%*c> _tmp_17[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'with'"));
22238 Token * _keyword;
22239 if (
22240 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
22241 )
22242 {
22243 D(fprintf(stderr, "%*c+ _tmp_17[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'with'"));
22244 _res = _keyword;
22245 goto done;
22246 }
22247 p->mark = _mark;
22248 D(fprintf(stderr, "%*c%s _tmp_17[%d-%d]: %s failed!\n", p->level, ' ',
22249 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'with'"));
22250 }
22251 { // ASYNC
22252 if (p->error_indicator) {
22253 D(p->level--);
22254 return NULL;
22255 }
22256 D(fprintf(stderr, "%*c> _tmp_17[%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_17[%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_17[%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_18: 'for' | ASYNC
22277static void *
22278_tmp_18_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 { // 'for'
22288 if (p->error_indicator) {
22289 D(p->level--);
22290 return NULL;
22291 }
22292 D(fprintf(stderr, "%*c> _tmp_18[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'for'"));
22293 Token * _keyword;
22294 if (
22295 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
22296 )
22297 {
22298 D(fprintf(stderr, "%*c+ _tmp_18[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'for'"));
22299 _res = _keyword;
22300 goto done;
22301 }
22302 p->mark = _mark;
22303 D(fprintf(stderr, "%*c%s _tmp_18[%d-%d]: %s failed!\n", p->level, ' ',
22304 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'for'"));
22305 }
22306 { // ASYNC
22307 if (p->error_indicator) {
22308 D(p->level--);
22309 return NULL;
22310 }
22311 D(fprintf(stderr, "%*c> _tmp_18[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC"));
22312 Token * async_var;
22313 if (
22314 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
22315 )
22316 {
22317 D(fprintf(stderr, "%*c+ _tmp_18[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC"));
22318 _res = async_var;
22319 goto done;
22320 }
22321 p->mark = _mark;
22322 D(fprintf(stderr, "%*c%s _tmp_18[%d-%d]: %s failed!\n", p->level, ' ',
22323 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC"));
22324 }
22325 _res = NULL;
22326 done:
22327 D(p->level--);
22328 return _res;
22329}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000022330
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022331// _tmp_19: '=' annotated_rhs
22332static void *
22333_tmp_19_rule(Parser *p)
22334{
22335 D(p->level++);
22336 if (p->error_indicator) {
22337 D(p->level--);
22338 return NULL;
22339 }
22340 void * _res = NULL;
22341 int _mark = p->mark;
22342 { // '=' annotated_rhs
22343 if (p->error_indicator) {
22344 D(p->level--);
22345 return NULL;
22346 }
22347 D(fprintf(stderr, "%*c> _tmp_19[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
22348 Token * _literal;
22349 expr_ty d;
22350 if (
22351 (_literal = _PyPegen_expect_token(p, 22)) // token='='
22352 &&
22353 (d = annotated_rhs_rule(p)) // annotated_rhs
22354 )
22355 {
22356 D(fprintf(stderr, "%*c+ _tmp_19[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
22357 _res = d;
22358 if (_res == NULL && PyErr_Occurred()) {
22359 p->error_indicator = 1;
22360 D(p->level--);
22361 return NULL;
22362 }
22363 goto done;
22364 }
22365 p->mark = _mark;
22366 D(fprintf(stderr, "%*c%s _tmp_19[%d-%d]: %s failed!\n", p->level, ' ',
22367 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'=' annotated_rhs"));
22368 }
22369 _res = NULL;
22370 done:
22371 D(p->level--);
22372 return _res;
22373}
22374
22375// _tmp_20: '(' single_target ')' | single_subscript_attribute_target
22376static void *
22377_tmp_20_rule(Parser *p)
22378{
22379 D(p->level++);
22380 if (p->error_indicator) {
22381 D(p->level--);
22382 return NULL;
22383 }
22384 void * _res = NULL;
22385 int _mark = p->mark;
22386 { // '(' single_target ')'
22387 if (p->error_indicator) {
22388 D(p->level--);
22389 return NULL;
22390 }
22391 D(fprintf(stderr, "%*c> _tmp_20[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'"));
22392 Token * _literal;
22393 Token * _literal_1;
22394 expr_ty b;
22395 if (
22396 (_literal = _PyPegen_expect_token(p, 7)) // token='('
22397 &&
22398 (b = single_target_rule(p)) // single_target
22399 &&
22400 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
22401 )
22402 {
22403 D(fprintf(stderr, "%*c+ _tmp_20[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'"));
22404 _res = b;
22405 if (_res == NULL && PyErr_Occurred()) {
22406 p->error_indicator = 1;
22407 D(p->level--);
22408 return NULL;
22409 }
22410 goto done;
22411 }
22412 p->mark = _mark;
22413 D(fprintf(stderr, "%*c%s _tmp_20[%d-%d]: %s failed!\n", p->level, ' ',
22414 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' single_target ')'"));
22415 }
22416 { // single_subscript_attribute_target
22417 if (p->error_indicator) {
22418 D(p->level--);
22419 return NULL;
22420 }
22421 D(fprintf(stderr, "%*c> _tmp_20[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "single_subscript_attribute_target"));
22422 expr_ty single_subscript_attribute_target_var;
22423 if (
22424 (single_subscript_attribute_target_var = single_subscript_attribute_target_rule(p)) // single_subscript_attribute_target
22425 )
22426 {
22427 D(fprintf(stderr, "%*c+ _tmp_20[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "single_subscript_attribute_target"));
22428 _res = single_subscript_attribute_target_var;
22429 goto done;
22430 }
22431 p->mark = _mark;
22432 D(fprintf(stderr, "%*c%s _tmp_20[%d-%d]: %s failed!\n", p->level, ' ',
22433 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "single_subscript_attribute_target"));
22434 }
22435 _res = NULL;
22436 done:
22437 D(p->level--);
22438 return _res;
22439}
22440
22441// _tmp_21: '=' annotated_rhs
22442static void *
22443_tmp_21_rule(Parser *p)
22444{
22445 D(p->level++);
22446 if (p->error_indicator) {
22447 D(p->level--);
22448 return NULL;
22449 }
22450 void * _res = NULL;
22451 int _mark = p->mark;
22452 { // '=' annotated_rhs
22453 if (p->error_indicator) {
22454 D(p->level--);
22455 return NULL;
22456 }
22457 D(fprintf(stderr, "%*c> _tmp_21[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
22458 Token * _literal;
22459 expr_ty d;
22460 if (
22461 (_literal = _PyPegen_expect_token(p, 22)) // token='='
22462 &&
22463 (d = annotated_rhs_rule(p)) // annotated_rhs
22464 )
22465 {
22466 D(fprintf(stderr, "%*c+ _tmp_21[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
22467 _res = d;
22468 if (_res == NULL && PyErr_Occurred()) {
22469 p->error_indicator = 1;
22470 D(p->level--);
22471 return NULL;
22472 }
22473 goto done;
22474 }
22475 p->mark = _mark;
22476 D(fprintf(stderr, "%*c%s _tmp_21[%d-%d]: %s failed!\n", p->level, ' ',
22477 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'=' annotated_rhs"));
22478 }
22479 _res = NULL;
22480 done:
22481 D(p->level--);
22482 return _res;
22483}
22484
22485// _loop1_22: (star_targets '=')
22486static asdl_seq *
22487_loop1_22_rule(Parser *p)
22488{
22489 D(p->level++);
22490 if (p->error_indicator) {
22491 D(p->level--);
22492 return NULL;
22493 }
22494 void *_res = NULL;
22495 int _mark = p->mark;
22496 int _start_mark = p->mark;
22497 void **_children = PyMem_Malloc(sizeof(void *));
22498 if (!_children) {
22499 p->error_indicator = 1;
22500 PyErr_NoMemory();
22501 D(p->level--);
22502 return NULL;
22503 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010022504 Py_ssize_t _children_capacity = 1;
22505 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022506 { // (star_targets '=')
22507 if (p->error_indicator) {
22508 D(p->level--);
22509 return NULL;
22510 }
22511 D(fprintf(stderr, "%*c> _loop1_22[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')"));
Pablo Galindoe53f72a2021-06-04 00:11:43 +010022512 void *_tmp_180_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022513 while (
Pablo Galindoe53f72a2021-06-04 00:11:43 +010022514 (_tmp_180_var = _tmp_180_rule(p)) // star_targets '='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022515 )
22516 {
Pablo Galindoe53f72a2021-06-04 00:11:43 +010022517 _res = _tmp_180_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022518 if (_n == _children_capacity) {
22519 _children_capacity *= 2;
22520 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22521 if (!_new_children) {
22522 p->error_indicator = 1;
22523 PyErr_NoMemory();
22524 D(p->level--);
22525 return NULL;
22526 }
22527 _children = _new_children;
22528 }
22529 _children[_n++] = _res;
22530 _mark = p->mark;
22531 }
22532 p->mark = _mark;
22533 D(fprintf(stderr, "%*c%s _loop1_22[%d-%d]: %s failed!\n", p->level, ' ',
22534 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(star_targets '=')"));
22535 }
22536 if (_n == 0 || p->error_indicator) {
22537 PyMem_Free(_children);
22538 D(p->level--);
22539 return NULL;
22540 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022541 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022542 if (!_seq) {
22543 PyMem_Free(_children);
22544 p->error_indicator = 1;
22545 PyErr_NoMemory();
22546 D(p->level--);
22547 return NULL;
22548 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022549 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022550 PyMem_Free(_children);
22551 _PyPegen_insert_memo(p, _start_mark, _loop1_22_type, _seq);
22552 D(p->level--);
22553 return _seq;
22554}
22555
22556// _tmp_23: yield_expr | star_expressions
22557static void *
22558_tmp_23_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_23[%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_23[%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_23[%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_23[%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_23[%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_23[%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// _tmp_24: yield_expr | star_expressions
22612static void *
22613_tmp_24_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 { // yield_expr
22623 if (p->error_indicator) {
22624 D(p->level--);
22625 return NULL;
22626 }
22627 D(fprintf(stderr, "%*c> _tmp_24[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
22628 expr_ty yield_expr_var;
22629 if (
22630 (yield_expr_var = yield_expr_rule(p)) // yield_expr
22631 )
22632 {
22633 D(fprintf(stderr, "%*c+ _tmp_24[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
22634 _res = yield_expr_var;
22635 goto done;
22636 }
22637 p->mark = _mark;
22638 D(fprintf(stderr, "%*c%s _tmp_24[%d-%d]: %s failed!\n", p->level, ' ',
22639 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
22640 }
22641 { // star_expressions
22642 if (p->error_indicator) {
22643 D(p->level--);
22644 return NULL;
22645 }
22646 D(fprintf(stderr, "%*c> _tmp_24[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
22647 expr_ty star_expressions_var;
22648 if (
22649 (star_expressions_var = star_expressions_rule(p)) // star_expressions
22650 )
22651 {
22652 D(fprintf(stderr, "%*c+ _tmp_24[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
22653 _res = star_expressions_var;
22654 goto done;
22655 }
22656 p->mark = _mark;
22657 D(fprintf(stderr, "%*c%s _tmp_24[%d-%d]: %s failed!\n", p->level, ' ',
22658 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
22659 }
22660 _res = NULL;
22661 done:
22662 D(p->level--);
22663 return _res;
22664}
22665
22666// _loop0_26: ',' NAME
22667static asdl_seq *
22668_loop0_26_rule(Parser *p)
22669{
22670 D(p->level++);
22671 if (p->error_indicator) {
22672 D(p->level--);
22673 return NULL;
22674 }
22675 void *_res = NULL;
22676 int _mark = p->mark;
22677 int _start_mark = p->mark;
22678 void **_children = PyMem_Malloc(sizeof(void *));
22679 if (!_children) {
22680 p->error_indicator = 1;
22681 PyErr_NoMemory();
22682 D(p->level--);
22683 return NULL;
22684 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010022685 Py_ssize_t _children_capacity = 1;
22686 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022687 { // ',' NAME
22688 if (p->error_indicator) {
22689 D(p->level--);
22690 return NULL;
22691 }
22692 D(fprintf(stderr, "%*c> _loop0_26[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' NAME"));
22693 Token * _literal;
22694 expr_ty elem;
22695 while (
22696 (_literal = _PyPegen_expect_token(p, 12)) // token=','
22697 &&
22698 (elem = _PyPegen_name_token(p)) // NAME
22699 )
22700 {
22701 _res = elem;
22702 if (_res == NULL && PyErr_Occurred()) {
22703 p->error_indicator = 1;
22704 PyMem_Free(_children);
22705 D(p->level--);
22706 return NULL;
22707 }
22708 if (_n == _children_capacity) {
22709 _children_capacity *= 2;
22710 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22711 if (!_new_children) {
22712 p->error_indicator = 1;
22713 PyErr_NoMemory();
22714 D(p->level--);
22715 return NULL;
22716 }
22717 _children = _new_children;
22718 }
22719 _children[_n++] = _res;
22720 _mark = p->mark;
22721 }
22722 p->mark = _mark;
22723 D(fprintf(stderr, "%*c%s _loop0_26[%d-%d]: %s failed!\n", p->level, ' ',
22724 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' NAME"));
22725 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022726 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022727 if (!_seq) {
22728 PyMem_Free(_children);
22729 p->error_indicator = 1;
22730 PyErr_NoMemory();
22731 D(p->level--);
22732 return NULL;
22733 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022734 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022735 PyMem_Free(_children);
22736 _PyPegen_insert_memo(p, _start_mark, _loop0_26_type, _seq);
22737 D(p->level--);
22738 return _seq;
22739}
22740
22741// _gather_25: NAME _loop0_26
22742static asdl_seq *
22743_gather_25_rule(Parser *p)
22744{
22745 D(p->level++);
22746 if (p->error_indicator) {
22747 D(p->level--);
22748 return NULL;
22749 }
22750 asdl_seq * _res = NULL;
22751 int _mark = p->mark;
22752 { // NAME _loop0_26
22753 if (p->error_indicator) {
22754 D(p->level--);
22755 return NULL;
22756 }
22757 D(fprintf(stderr, "%*c> _gather_25[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME _loop0_26"));
22758 expr_ty elem;
22759 asdl_seq * seq;
22760 if (
22761 (elem = _PyPegen_name_token(p)) // NAME
22762 &&
22763 (seq = _loop0_26_rule(p)) // _loop0_26
22764 )
22765 {
22766 D(fprintf(stderr, "%*c+ _gather_25[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME _loop0_26"));
22767 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
22768 goto done;
22769 }
22770 p->mark = _mark;
22771 D(fprintf(stderr, "%*c%s _gather_25[%d-%d]: %s failed!\n", p->level, ' ',
22772 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME _loop0_26"));
22773 }
22774 _res = NULL;
22775 done:
22776 D(p->level--);
22777 return _res;
22778}
22779
22780// _loop0_28: ',' NAME
22781static asdl_seq *
22782_loop0_28_rule(Parser *p)
22783{
22784 D(p->level++);
22785 if (p->error_indicator) {
22786 D(p->level--);
22787 return NULL;
22788 }
22789 void *_res = NULL;
22790 int _mark = p->mark;
22791 int _start_mark = p->mark;
22792 void **_children = PyMem_Malloc(sizeof(void *));
22793 if (!_children) {
22794 p->error_indicator = 1;
22795 PyErr_NoMemory();
22796 D(p->level--);
22797 return NULL;
22798 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010022799 Py_ssize_t _children_capacity = 1;
22800 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022801 { // ',' NAME
22802 if (p->error_indicator) {
22803 D(p->level--);
22804 return NULL;
22805 }
22806 D(fprintf(stderr, "%*c> _loop0_28[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' NAME"));
22807 Token * _literal;
22808 expr_ty elem;
22809 while (
22810 (_literal = _PyPegen_expect_token(p, 12)) // token=','
22811 &&
22812 (elem = _PyPegen_name_token(p)) // NAME
22813 )
22814 {
22815 _res = elem;
22816 if (_res == NULL && PyErr_Occurred()) {
22817 p->error_indicator = 1;
22818 PyMem_Free(_children);
22819 D(p->level--);
22820 return NULL;
22821 }
22822 if (_n == _children_capacity) {
22823 _children_capacity *= 2;
22824 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22825 if (!_new_children) {
22826 p->error_indicator = 1;
22827 PyErr_NoMemory();
22828 D(p->level--);
22829 return NULL;
22830 }
22831 _children = _new_children;
22832 }
22833 _children[_n++] = _res;
22834 _mark = p->mark;
22835 }
22836 p->mark = _mark;
22837 D(fprintf(stderr, "%*c%s _loop0_28[%d-%d]: %s failed!\n", p->level, ' ',
22838 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' NAME"));
22839 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022840 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022841 if (!_seq) {
22842 PyMem_Free(_children);
22843 p->error_indicator = 1;
22844 PyErr_NoMemory();
22845 D(p->level--);
22846 return NULL;
22847 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022848 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022849 PyMem_Free(_children);
22850 _PyPegen_insert_memo(p, _start_mark, _loop0_28_type, _seq);
22851 D(p->level--);
22852 return _seq;
22853}
22854
22855// _gather_27: NAME _loop0_28
22856static asdl_seq *
22857_gather_27_rule(Parser *p)
22858{
22859 D(p->level++);
22860 if (p->error_indicator) {
22861 D(p->level--);
22862 return NULL;
22863 }
22864 asdl_seq * _res = NULL;
22865 int _mark = p->mark;
22866 { // NAME _loop0_28
22867 if (p->error_indicator) {
22868 D(p->level--);
22869 return NULL;
22870 }
22871 D(fprintf(stderr, "%*c> _gather_27[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME _loop0_28"));
22872 expr_ty elem;
22873 asdl_seq * seq;
22874 if (
22875 (elem = _PyPegen_name_token(p)) // NAME
22876 &&
22877 (seq = _loop0_28_rule(p)) // _loop0_28
22878 )
22879 {
22880 D(fprintf(stderr, "%*c+ _gather_27[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME _loop0_28"));
22881 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
22882 goto done;
22883 }
22884 p->mark = _mark;
22885 D(fprintf(stderr, "%*c%s _gather_27[%d-%d]: %s failed!\n", p->level, ' ',
22886 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME _loop0_28"));
22887 }
22888 _res = NULL;
22889 done:
22890 D(p->level--);
22891 return _res;
22892}
22893
22894// _tmp_29: ',' expression
22895static void *
22896_tmp_29_rule(Parser *p)
22897{
22898 D(p->level++);
22899 if (p->error_indicator) {
22900 D(p->level--);
22901 return NULL;
22902 }
22903 void * _res = NULL;
22904 int _mark = p->mark;
22905 { // ',' expression
22906 if (p->error_indicator) {
22907 D(p->level--);
22908 return NULL;
22909 }
22910 D(fprintf(stderr, "%*c> _tmp_29[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
22911 Token * _literal;
22912 expr_ty z;
22913 if (
22914 (_literal = _PyPegen_expect_token(p, 12)) // token=','
22915 &&
22916 (z = expression_rule(p)) // expression
22917 )
22918 {
22919 D(fprintf(stderr, "%*c+ _tmp_29[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' expression"));
22920 _res = z;
22921 if (_res == NULL && PyErr_Occurred()) {
22922 p->error_indicator = 1;
22923 D(p->level--);
22924 return NULL;
22925 }
22926 goto done;
22927 }
22928 p->mark = _mark;
22929 D(fprintf(stderr, "%*c%s _tmp_29[%d-%d]: %s failed!\n", p->level, ' ',
22930 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
22931 }
22932 _res = NULL;
22933 done:
22934 D(p->level--);
22935 return _res;
22936}
22937
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022938// _tmp_30: ';' | NEWLINE
22939static void *
22940_tmp_30_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 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022947 void * _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022948 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022949 { // ';'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022950 if (p->error_indicator) {
22951 D(p->level--);
22952 return NULL;
22953 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022954 D(fprintf(stderr, "%*c> _tmp_30[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "';'"));
22955 Token * _literal;
22956 if (
22957 (_literal = _PyPegen_expect_token(p, 13)) // token=';'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022958 )
22959 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022960 D(fprintf(stderr, "%*c+ _tmp_30[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "';'"));
22961 _res = _literal;
22962 goto done;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022963 }
22964 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022965 D(fprintf(stderr, "%*c%s _tmp_30[%d-%d]: %s failed!\n", p->level, ' ',
22966 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "';'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022967 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022968 { // NEWLINE
22969 if (p->error_indicator) {
22970 D(p->level--);
22971 return NULL;
22972 }
22973 D(fprintf(stderr, "%*c> _tmp_30[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
22974 Token * newline_var;
22975 if (
22976 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
22977 )
22978 {
22979 D(fprintf(stderr, "%*c+ _tmp_30[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
22980 _res = newline_var;
22981 goto done;
22982 }
22983 p->mark = _mark;
22984 D(fprintf(stderr, "%*c%s _tmp_30[%d-%d]: %s failed!\n", p->level, ' ',
22985 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022986 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022987 _res = NULL;
22988 done:
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022989 D(p->level--);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022990 return _res;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022991}
22992
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022993// _loop0_31: ('.' | '...')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022994static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022995_loop0_31_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022996{
22997 D(p->level++);
22998 if (p->error_indicator) {
22999 D(p->level--);
23000 return NULL;
23001 }
23002 void *_res = NULL;
23003 int _mark = p->mark;
23004 int _start_mark = p->mark;
23005 void **_children = PyMem_Malloc(sizeof(void *));
23006 if (!_children) {
23007 p->error_indicator = 1;
23008 PyErr_NoMemory();
23009 D(p->level--);
23010 return NULL;
23011 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023012 Py_ssize_t _children_capacity = 1;
23013 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023014 { // ('.' | '...')
23015 if (p->error_indicator) {
23016 D(p->level--);
23017 return NULL;
23018 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023019 D(fprintf(stderr, "%*c> _loop0_31[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('.' | '...')"));
Pablo Galindoe53f72a2021-06-04 00:11:43 +010023020 void *_tmp_181_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023021 while (
Pablo Galindoe53f72a2021-06-04 00:11:43 +010023022 (_tmp_181_var = _tmp_181_rule(p)) // '.' | '...'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023023 )
23024 {
Pablo Galindoe53f72a2021-06-04 00:11:43 +010023025 _res = _tmp_181_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023026 if (_n == _children_capacity) {
23027 _children_capacity *= 2;
23028 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23029 if (!_new_children) {
23030 p->error_indicator = 1;
23031 PyErr_NoMemory();
23032 D(p->level--);
23033 return NULL;
23034 }
23035 _children = _new_children;
23036 }
23037 _children[_n++] = _res;
23038 _mark = p->mark;
23039 }
23040 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023041 D(fprintf(stderr, "%*c%s _loop0_31[%d-%d]: %s failed!\n", p->level, ' ',
23042 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('.' | '...')"));
23043 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023044 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023045 if (!_seq) {
23046 PyMem_Free(_children);
23047 p->error_indicator = 1;
23048 PyErr_NoMemory();
23049 D(p->level--);
23050 return NULL;
23051 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023052 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023053 PyMem_Free(_children);
23054 _PyPegen_insert_memo(p, _start_mark, _loop0_31_type, _seq);
23055 D(p->level--);
23056 return _seq;
23057}
23058
23059// _loop1_32: ('.' | '...')
23060static asdl_seq *
23061_loop1_32_rule(Parser *p)
23062{
23063 D(p->level++);
23064 if (p->error_indicator) {
23065 D(p->level--);
23066 return NULL;
23067 }
23068 void *_res = NULL;
23069 int _mark = p->mark;
23070 int _start_mark = p->mark;
23071 void **_children = PyMem_Malloc(sizeof(void *));
23072 if (!_children) {
23073 p->error_indicator = 1;
23074 PyErr_NoMemory();
23075 D(p->level--);
23076 return NULL;
23077 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023078 Py_ssize_t _children_capacity = 1;
23079 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023080 { // ('.' | '...')
23081 if (p->error_indicator) {
23082 D(p->level--);
23083 return NULL;
23084 }
23085 D(fprintf(stderr, "%*c> _loop1_32[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('.' | '...')"));
Pablo Galindoe53f72a2021-06-04 00:11:43 +010023086 void *_tmp_182_var;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023087 while (
Pablo Galindoe53f72a2021-06-04 00:11:43 +010023088 (_tmp_182_var = _tmp_182_rule(p)) // '.' | '...'
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023089 )
23090 {
Pablo Galindoe53f72a2021-06-04 00:11:43 +010023091 _res = _tmp_182_var;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023092 if (_n == _children_capacity) {
23093 _children_capacity *= 2;
23094 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23095 if (!_new_children) {
23096 p->error_indicator = 1;
23097 PyErr_NoMemory();
23098 D(p->level--);
23099 return NULL;
23100 }
23101 _children = _new_children;
23102 }
23103 _children[_n++] = _res;
23104 _mark = p->mark;
23105 }
23106 p->mark = _mark;
23107 D(fprintf(stderr, "%*c%s _loop1_32[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023108 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('.' | '...')"));
23109 }
23110 if (_n == 0 || p->error_indicator) {
23111 PyMem_Free(_children);
23112 D(p->level--);
23113 return NULL;
23114 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023115 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023116 if (!_seq) {
23117 PyMem_Free(_children);
23118 p->error_indicator = 1;
23119 PyErr_NoMemory();
23120 D(p->level--);
23121 return NULL;
23122 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023123 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023124 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023125 _PyPegen_insert_memo(p, _start_mark, _loop1_32_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023126 D(p->level--);
23127 return _seq;
23128}
23129
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023130// _loop0_34: ',' import_from_as_name
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023131static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023132_loop0_34_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023133{
23134 D(p->level++);
23135 if (p->error_indicator) {
23136 D(p->level--);
23137 return NULL;
23138 }
23139 void *_res = NULL;
23140 int _mark = p->mark;
23141 int _start_mark = p->mark;
23142 void **_children = PyMem_Malloc(sizeof(void *));
23143 if (!_children) {
23144 p->error_indicator = 1;
23145 PyErr_NoMemory();
23146 D(p->level--);
23147 return NULL;
23148 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023149 Py_ssize_t _children_capacity = 1;
23150 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023151 { // ',' import_from_as_name
23152 if (p->error_indicator) {
23153 D(p->level--);
23154 return NULL;
23155 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023156 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 +010023157 Token * _literal;
23158 alias_ty elem;
23159 while (
23160 (_literal = _PyPegen_expect_token(p, 12)) // token=','
23161 &&
23162 (elem = import_from_as_name_rule(p)) // import_from_as_name
23163 )
23164 {
23165 _res = elem;
23166 if (_res == NULL && PyErr_Occurred()) {
23167 p->error_indicator = 1;
23168 PyMem_Free(_children);
23169 D(p->level--);
23170 return NULL;
23171 }
23172 if (_n == _children_capacity) {
23173 _children_capacity *= 2;
23174 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23175 if (!_new_children) {
23176 p->error_indicator = 1;
23177 PyErr_NoMemory();
23178 D(p->level--);
23179 return NULL;
23180 }
23181 _children = _new_children;
23182 }
23183 _children[_n++] = _res;
23184 _mark = p->mark;
23185 }
23186 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023187 D(fprintf(stderr, "%*c%s _loop0_34[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023188 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' import_from_as_name"));
23189 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023190 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023191 if (!_seq) {
23192 PyMem_Free(_children);
23193 p->error_indicator = 1;
23194 PyErr_NoMemory();
23195 D(p->level--);
23196 return NULL;
23197 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023198 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023199 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023200 _PyPegen_insert_memo(p, _start_mark, _loop0_34_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023201 D(p->level--);
23202 return _seq;
23203}
23204
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023205// _gather_33: import_from_as_name _loop0_34
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023206static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023207_gather_33_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023208{
23209 D(p->level++);
23210 if (p->error_indicator) {
23211 D(p->level--);
23212 return NULL;
23213 }
23214 asdl_seq * _res = NULL;
23215 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023216 { // import_from_as_name _loop0_34
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023217 if (p->error_indicator) {
23218 D(p->level--);
23219 return NULL;
23220 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023221 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 +010023222 alias_ty elem;
23223 asdl_seq * seq;
23224 if (
23225 (elem = import_from_as_name_rule(p)) // import_from_as_name
23226 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023227 (seq = _loop0_34_rule(p)) // _loop0_34
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023228 )
23229 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023230 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 +010023231 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
23232 goto done;
23233 }
23234 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023235 D(fprintf(stderr, "%*c%s _gather_33[%d-%d]: %s failed!\n", p->level, ' ',
23236 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from_as_name _loop0_34"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023237 }
23238 _res = NULL;
23239 done:
23240 D(p->level--);
23241 return _res;
23242}
23243
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023244// _tmp_35: 'as' NAME
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023245static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023246_tmp_35_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023247{
23248 D(p->level++);
23249 if (p->error_indicator) {
23250 D(p->level--);
23251 return NULL;
23252 }
23253 void * _res = NULL;
23254 int _mark = p->mark;
23255 { // 'as' NAME
23256 if (p->error_indicator) {
23257 D(p->level--);
23258 return NULL;
23259 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023260 D(fprintf(stderr, "%*c> _tmp_35[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023261 Token * _keyword;
23262 expr_ty z;
23263 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023264 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023265 &&
23266 (z = _PyPegen_name_token(p)) // NAME
23267 )
23268 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023269 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 +010023270 _res = z;
23271 if (_res == NULL && PyErr_Occurred()) {
23272 p->error_indicator = 1;
23273 D(p->level--);
23274 return NULL;
23275 }
23276 goto done;
23277 }
23278 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023279 D(fprintf(stderr, "%*c%s _tmp_35[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023280 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
23281 }
23282 _res = NULL;
23283 done:
23284 D(p->level--);
23285 return _res;
23286}
23287
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023288// _loop0_37: ',' dotted_as_name
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023289static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023290_loop0_37_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023291{
23292 D(p->level++);
23293 if (p->error_indicator) {
23294 D(p->level--);
23295 return NULL;
23296 }
23297 void *_res = NULL;
23298 int _mark = p->mark;
23299 int _start_mark = p->mark;
23300 void **_children = PyMem_Malloc(sizeof(void *));
23301 if (!_children) {
23302 p->error_indicator = 1;
23303 PyErr_NoMemory();
23304 D(p->level--);
23305 return NULL;
23306 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023307 Py_ssize_t _children_capacity = 1;
23308 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023309 { // ',' dotted_as_name
23310 if (p->error_indicator) {
23311 D(p->level--);
23312 return NULL;
23313 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023314 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 +010023315 Token * _literal;
23316 alias_ty elem;
23317 while (
23318 (_literal = _PyPegen_expect_token(p, 12)) // token=','
23319 &&
23320 (elem = dotted_as_name_rule(p)) // dotted_as_name
23321 )
23322 {
23323 _res = elem;
23324 if (_res == NULL && PyErr_Occurred()) {
23325 p->error_indicator = 1;
23326 PyMem_Free(_children);
23327 D(p->level--);
23328 return NULL;
23329 }
23330 if (_n == _children_capacity) {
23331 _children_capacity *= 2;
23332 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23333 if (!_new_children) {
23334 p->error_indicator = 1;
23335 PyErr_NoMemory();
23336 D(p->level--);
23337 return NULL;
23338 }
23339 _children = _new_children;
23340 }
23341 _children[_n++] = _res;
23342 _mark = p->mark;
23343 }
23344 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023345 D(fprintf(stderr, "%*c%s _loop0_37[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023346 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' dotted_as_name"));
23347 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023348 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023349 if (!_seq) {
23350 PyMem_Free(_children);
23351 p->error_indicator = 1;
23352 PyErr_NoMemory();
23353 D(p->level--);
23354 return NULL;
23355 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023356 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023357 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023358 _PyPegen_insert_memo(p, _start_mark, _loop0_37_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023359 D(p->level--);
23360 return _seq;
23361}
23362
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023363// _gather_36: dotted_as_name _loop0_37
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023364static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023365_gather_36_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023366{
23367 D(p->level++);
23368 if (p->error_indicator) {
23369 D(p->level--);
23370 return NULL;
23371 }
23372 asdl_seq * _res = NULL;
23373 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023374 { // dotted_as_name _loop0_37
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023375 if (p->error_indicator) {
23376 D(p->level--);
23377 return NULL;
23378 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023379 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 +010023380 alias_ty elem;
23381 asdl_seq * seq;
23382 if (
23383 (elem = dotted_as_name_rule(p)) // dotted_as_name
23384 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023385 (seq = _loop0_37_rule(p)) // _loop0_37
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023386 )
23387 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023388 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 +010023389 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
23390 goto done;
23391 }
23392 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023393 D(fprintf(stderr, "%*c%s _gather_36[%d-%d]: %s failed!\n", p->level, ' ',
23394 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dotted_as_name _loop0_37"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023395 }
23396 _res = NULL;
23397 done:
23398 D(p->level--);
23399 return _res;
23400}
23401
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023402// _tmp_38: 'as' NAME
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023403static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023404_tmp_38_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023405{
23406 D(p->level++);
23407 if (p->error_indicator) {
23408 D(p->level--);
23409 return NULL;
23410 }
23411 void * _res = NULL;
23412 int _mark = p->mark;
23413 { // 'as' NAME
23414 if (p->error_indicator) {
23415 D(p->level--);
23416 return NULL;
23417 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023418 D(fprintf(stderr, "%*c> _tmp_38[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023419 Token * _keyword;
23420 expr_ty z;
23421 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023422 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023423 &&
23424 (z = _PyPegen_name_token(p)) // NAME
23425 )
23426 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023427 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 +010023428 _res = z;
23429 if (_res == NULL && PyErr_Occurred()) {
23430 p->error_indicator = 1;
23431 D(p->level--);
23432 return NULL;
23433 }
23434 goto done;
23435 }
23436 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023437 D(fprintf(stderr, "%*c%s _tmp_38[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023438 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
23439 }
23440 _res = NULL;
23441 done:
23442 D(p->level--);
23443 return _res;
23444}
23445
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023446// _loop0_40: ',' with_item
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023447static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023448_loop0_40_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023449{
23450 D(p->level++);
23451 if (p->error_indicator) {
23452 D(p->level--);
23453 return NULL;
23454 }
23455 void *_res = NULL;
23456 int _mark = p->mark;
23457 int _start_mark = p->mark;
23458 void **_children = PyMem_Malloc(sizeof(void *));
23459 if (!_children) {
23460 p->error_indicator = 1;
23461 PyErr_NoMemory();
23462 D(p->level--);
23463 return NULL;
23464 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023465 Py_ssize_t _children_capacity = 1;
23466 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023467 { // ',' with_item
23468 if (p->error_indicator) {
23469 D(p->level--);
23470 return NULL;
23471 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023472 D(fprintf(stderr, "%*c> _loop0_40[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023473 Token * _literal;
23474 withitem_ty elem;
23475 while (
23476 (_literal = _PyPegen_expect_token(p, 12)) // token=','
23477 &&
23478 (elem = with_item_rule(p)) // with_item
23479 )
23480 {
23481 _res = elem;
23482 if (_res == NULL && PyErr_Occurred()) {
23483 p->error_indicator = 1;
23484 PyMem_Free(_children);
23485 D(p->level--);
23486 return NULL;
23487 }
23488 if (_n == _children_capacity) {
23489 _children_capacity *= 2;
23490 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23491 if (!_new_children) {
23492 p->error_indicator = 1;
23493 PyErr_NoMemory();
23494 D(p->level--);
23495 return NULL;
23496 }
23497 _children = _new_children;
23498 }
23499 _children[_n++] = _res;
23500 _mark = p->mark;
23501 }
23502 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023503 D(fprintf(stderr, "%*c%s _loop0_40[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023504 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
23505 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023506 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023507 if (!_seq) {
23508 PyMem_Free(_children);
23509 p->error_indicator = 1;
23510 PyErr_NoMemory();
23511 D(p->level--);
23512 return NULL;
23513 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023514 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023515 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023516 _PyPegen_insert_memo(p, _start_mark, _loop0_40_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023517 D(p->level--);
23518 return _seq;
23519}
23520
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023521// _gather_39: with_item _loop0_40
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023522static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023523_gather_39_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023524{
23525 D(p->level++);
23526 if (p->error_indicator) {
23527 D(p->level--);
23528 return NULL;
23529 }
23530 asdl_seq * _res = NULL;
23531 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023532 { // with_item _loop0_40
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023533 if (p->error_indicator) {
23534 D(p->level--);
23535 return NULL;
23536 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023537 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 +010023538 withitem_ty elem;
23539 asdl_seq * seq;
23540 if (
23541 (elem = with_item_rule(p)) // with_item
23542 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023543 (seq = _loop0_40_rule(p)) // _loop0_40
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023544 )
23545 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023546 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 +010023547 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
23548 goto done;
23549 }
23550 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023551 D(fprintf(stderr, "%*c%s _gather_39[%d-%d]: %s failed!\n", p->level, ' ',
23552 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_40"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023553 }
23554 _res = NULL;
23555 done:
23556 D(p->level--);
23557 return _res;
23558}
23559
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023560// _loop0_42: ',' with_item
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023561static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023562_loop0_42_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023563{
23564 D(p->level++);
23565 if (p->error_indicator) {
23566 D(p->level--);
23567 return NULL;
23568 }
23569 void *_res = NULL;
23570 int _mark = p->mark;
23571 int _start_mark = p->mark;
23572 void **_children = PyMem_Malloc(sizeof(void *));
23573 if (!_children) {
23574 p->error_indicator = 1;
23575 PyErr_NoMemory();
23576 D(p->level--);
23577 return NULL;
23578 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023579 Py_ssize_t _children_capacity = 1;
23580 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023581 { // ',' with_item
23582 if (p->error_indicator) {
23583 D(p->level--);
23584 return NULL;
23585 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023586 D(fprintf(stderr, "%*c> _loop0_42[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023587 Token * _literal;
23588 withitem_ty elem;
23589 while (
23590 (_literal = _PyPegen_expect_token(p, 12)) // token=','
23591 &&
23592 (elem = with_item_rule(p)) // with_item
23593 )
23594 {
23595 _res = elem;
23596 if (_res == NULL && PyErr_Occurred()) {
23597 p->error_indicator = 1;
23598 PyMem_Free(_children);
23599 D(p->level--);
23600 return NULL;
23601 }
23602 if (_n == _children_capacity) {
23603 _children_capacity *= 2;
23604 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23605 if (!_new_children) {
23606 p->error_indicator = 1;
23607 PyErr_NoMemory();
23608 D(p->level--);
23609 return NULL;
23610 }
23611 _children = _new_children;
23612 }
23613 _children[_n++] = _res;
23614 _mark = p->mark;
23615 }
23616 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023617 D(fprintf(stderr, "%*c%s _loop0_42[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023618 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
23619 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023620 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023621 if (!_seq) {
23622 PyMem_Free(_children);
23623 p->error_indicator = 1;
23624 PyErr_NoMemory();
23625 D(p->level--);
23626 return NULL;
23627 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023628 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023629 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023630 _PyPegen_insert_memo(p, _start_mark, _loop0_42_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023631 D(p->level--);
23632 return _seq;
23633}
23634
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023635// _gather_41: with_item _loop0_42
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023636static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023637_gather_41_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023638{
23639 D(p->level++);
23640 if (p->error_indicator) {
23641 D(p->level--);
23642 return NULL;
23643 }
23644 asdl_seq * _res = NULL;
23645 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023646 { // with_item _loop0_42
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023647 if (p->error_indicator) {
23648 D(p->level--);
23649 return NULL;
23650 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023651 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 +010023652 withitem_ty elem;
23653 asdl_seq * seq;
23654 if (
23655 (elem = with_item_rule(p)) // with_item
23656 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023657 (seq = _loop0_42_rule(p)) // _loop0_42
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023658 )
23659 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023660 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 +010023661 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
23662 goto done;
23663 }
23664 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023665 D(fprintf(stderr, "%*c%s _gather_41[%d-%d]: %s failed!\n", p->level, ' ',
23666 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_42"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023667 }
23668 _res = NULL;
23669 done:
23670 D(p->level--);
23671 return _res;
23672}
23673
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023674// _loop0_44: ',' with_item
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023675static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023676_loop0_44_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023677{
23678 D(p->level++);
23679 if (p->error_indicator) {
23680 D(p->level--);
23681 return NULL;
23682 }
23683 void *_res = NULL;
23684 int _mark = p->mark;
23685 int _start_mark = p->mark;
23686 void **_children = PyMem_Malloc(sizeof(void *));
23687 if (!_children) {
23688 p->error_indicator = 1;
23689 PyErr_NoMemory();
23690 D(p->level--);
23691 return NULL;
23692 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023693 Py_ssize_t _children_capacity = 1;
23694 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023695 { // ',' with_item
23696 if (p->error_indicator) {
23697 D(p->level--);
23698 return NULL;
23699 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023700 D(fprintf(stderr, "%*c> _loop0_44[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023701 Token * _literal;
23702 withitem_ty elem;
23703 while (
23704 (_literal = _PyPegen_expect_token(p, 12)) // token=','
23705 &&
23706 (elem = with_item_rule(p)) // with_item
23707 )
23708 {
23709 _res = elem;
23710 if (_res == NULL && PyErr_Occurred()) {
23711 p->error_indicator = 1;
23712 PyMem_Free(_children);
23713 D(p->level--);
23714 return NULL;
23715 }
23716 if (_n == _children_capacity) {
23717 _children_capacity *= 2;
23718 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23719 if (!_new_children) {
23720 p->error_indicator = 1;
23721 PyErr_NoMemory();
23722 D(p->level--);
23723 return NULL;
23724 }
23725 _children = _new_children;
23726 }
23727 _children[_n++] = _res;
23728 _mark = p->mark;
23729 }
23730 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023731 D(fprintf(stderr, "%*c%s _loop0_44[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023732 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
23733 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023734 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023735 if (!_seq) {
23736 PyMem_Free(_children);
23737 p->error_indicator = 1;
23738 PyErr_NoMemory();
23739 D(p->level--);
23740 return NULL;
23741 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023742 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023743 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023744 _PyPegen_insert_memo(p, _start_mark, _loop0_44_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023745 D(p->level--);
23746 return _seq;
23747}
23748
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023749// _gather_43: with_item _loop0_44
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023750static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023751_gather_43_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023752{
23753 D(p->level++);
23754 if (p->error_indicator) {
23755 D(p->level--);
23756 return NULL;
23757 }
23758 asdl_seq * _res = NULL;
23759 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023760 { // with_item _loop0_44
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023761 if (p->error_indicator) {
23762 D(p->level--);
23763 return NULL;
23764 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023765 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 +010023766 withitem_ty elem;
23767 asdl_seq * seq;
23768 if (
23769 (elem = with_item_rule(p)) // with_item
23770 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023771 (seq = _loop0_44_rule(p)) // _loop0_44
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023772 )
23773 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023774 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 +010023775 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
23776 goto done;
23777 }
23778 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023779 D(fprintf(stderr, "%*c%s _gather_43[%d-%d]: %s failed!\n", p->level, ' ',
23780 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_44"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023781 }
23782 _res = NULL;
23783 done:
23784 D(p->level--);
23785 return _res;
23786}
23787
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023788// _loop0_46: ',' with_item
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023789static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023790_loop0_46_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023791{
23792 D(p->level++);
23793 if (p->error_indicator) {
23794 D(p->level--);
23795 return NULL;
23796 }
23797 void *_res = NULL;
23798 int _mark = p->mark;
23799 int _start_mark = p->mark;
23800 void **_children = PyMem_Malloc(sizeof(void *));
23801 if (!_children) {
23802 p->error_indicator = 1;
23803 PyErr_NoMemory();
23804 D(p->level--);
23805 return NULL;
23806 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023807 Py_ssize_t _children_capacity = 1;
23808 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023809 { // ',' with_item
23810 if (p->error_indicator) {
23811 D(p->level--);
23812 return NULL;
23813 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023814 D(fprintf(stderr, "%*c> _loop0_46[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023815 Token * _literal;
23816 withitem_ty elem;
23817 while (
23818 (_literal = _PyPegen_expect_token(p, 12)) // token=','
23819 &&
23820 (elem = with_item_rule(p)) // with_item
23821 )
23822 {
23823 _res = elem;
23824 if (_res == NULL && PyErr_Occurred()) {
23825 p->error_indicator = 1;
23826 PyMem_Free(_children);
23827 D(p->level--);
23828 return NULL;
23829 }
23830 if (_n == _children_capacity) {
23831 _children_capacity *= 2;
23832 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23833 if (!_new_children) {
23834 p->error_indicator = 1;
23835 PyErr_NoMemory();
23836 D(p->level--);
23837 return NULL;
23838 }
23839 _children = _new_children;
23840 }
23841 _children[_n++] = _res;
23842 _mark = p->mark;
23843 }
23844 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023845 D(fprintf(stderr, "%*c%s _loop0_46[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023846 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
23847 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023848 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023849 if (!_seq) {
23850 PyMem_Free(_children);
23851 p->error_indicator = 1;
23852 PyErr_NoMemory();
23853 D(p->level--);
23854 return NULL;
23855 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023856 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023857 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023858 _PyPegen_insert_memo(p, _start_mark, _loop0_46_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023859 D(p->level--);
23860 return _seq;
23861}
23862
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023863// _gather_45: with_item _loop0_46
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023864static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023865_gather_45_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023866{
23867 D(p->level++);
23868 if (p->error_indicator) {
23869 D(p->level--);
23870 return NULL;
23871 }
23872 asdl_seq * _res = NULL;
23873 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023874 { // with_item _loop0_46
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023875 if (p->error_indicator) {
23876 D(p->level--);
23877 return NULL;
23878 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023879 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 +010023880 withitem_ty elem;
23881 asdl_seq * seq;
23882 if (
23883 (elem = with_item_rule(p)) // with_item
23884 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023885 (seq = _loop0_46_rule(p)) // _loop0_46
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023886 )
23887 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023888 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 +010023889 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
23890 goto done;
23891 }
23892 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023893 D(fprintf(stderr, "%*c%s _gather_45[%d-%d]: %s failed!\n", p->level, ' ',
23894 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_46"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023895 }
23896 _res = NULL;
23897 done:
23898 D(p->level--);
23899 return _res;
23900}
23901
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023902// _tmp_47: ',' | ')' | ':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023903static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023904_tmp_47_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023905{
23906 D(p->level++);
23907 if (p->error_indicator) {
23908 D(p->level--);
23909 return NULL;
23910 }
23911 void * _res = NULL;
23912 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023913 { // ','
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023914 if (p->error_indicator) {
23915 D(p->level--);
23916 return NULL;
23917 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023918 D(fprintf(stderr, "%*c> _tmp_47[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','"));
23919 Token * _literal;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023920 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023921 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023922 )
23923 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023924 D(fprintf(stderr, "%*c+ _tmp_47[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','"));
23925 _res = _literal;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023926 goto done;
23927 }
23928 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023929 D(fprintf(stderr, "%*c%s _tmp_47[%d-%d]: %s failed!\n", p->level, ' ',
23930 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','"));
23931 }
23932 { // ')'
23933 if (p->error_indicator) {
23934 D(p->level--);
23935 return NULL;
23936 }
23937 D(fprintf(stderr, "%*c> _tmp_47[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
23938 Token * _literal;
23939 if (
23940 (_literal = _PyPegen_expect_token(p, 8)) // token=')'
23941 )
23942 {
23943 D(fprintf(stderr, "%*c+ _tmp_47[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
23944 _res = _literal;
23945 goto done;
23946 }
23947 p->mark = _mark;
23948 D(fprintf(stderr, "%*c%s _tmp_47[%d-%d]: %s failed!\n", p->level, ' ',
23949 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
23950 }
23951 { // ':'
23952 if (p->error_indicator) {
23953 D(p->level--);
23954 return NULL;
23955 }
23956 D(fprintf(stderr, "%*c> _tmp_47[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
23957 Token * _literal;
23958 if (
23959 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
23960 )
23961 {
23962 D(fprintf(stderr, "%*c+ _tmp_47[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
23963 _res = _literal;
23964 goto done;
23965 }
23966 p->mark = _mark;
23967 D(fprintf(stderr, "%*c%s _tmp_47[%d-%d]: %s failed!\n", p->level, ' ',
23968 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023969 }
23970 _res = NULL;
23971 done:
23972 D(p->level--);
23973 return _res;
23974}
23975
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023976// _loop1_48: except_block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023977static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023978_loop1_48_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023979{
23980 D(p->level++);
23981 if (p->error_indicator) {
23982 D(p->level--);
23983 return NULL;
23984 }
23985 void *_res = NULL;
23986 int _mark = p->mark;
23987 int _start_mark = p->mark;
23988 void **_children = PyMem_Malloc(sizeof(void *));
23989 if (!_children) {
23990 p->error_indicator = 1;
23991 PyErr_NoMemory();
23992 D(p->level--);
23993 return NULL;
23994 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023995 Py_ssize_t _children_capacity = 1;
23996 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023997 { // except_block
23998 if (p->error_indicator) {
23999 D(p->level--);
24000 return NULL;
24001 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024002 D(fprintf(stderr, "%*c> _loop1_48[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "except_block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024003 excepthandler_ty except_block_var;
24004 while (
24005 (except_block_var = except_block_rule(p)) // except_block
24006 )
24007 {
24008 _res = except_block_var;
24009 if (_n == _children_capacity) {
24010 _children_capacity *= 2;
24011 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24012 if (!_new_children) {
24013 p->error_indicator = 1;
24014 PyErr_NoMemory();
24015 D(p->level--);
24016 return NULL;
24017 }
24018 _children = _new_children;
24019 }
24020 _children[_n++] = _res;
24021 _mark = p->mark;
24022 }
24023 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024024 D(fprintf(stderr, "%*c%s _loop1_48[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024025 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "except_block"));
24026 }
24027 if (_n == 0 || p->error_indicator) {
24028 PyMem_Free(_children);
24029 D(p->level--);
24030 return NULL;
24031 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024032 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024033 if (!_seq) {
24034 PyMem_Free(_children);
24035 p->error_indicator = 1;
24036 PyErr_NoMemory();
24037 D(p->level--);
24038 return NULL;
24039 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024040 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024041 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024042 _PyPegen_insert_memo(p, _start_mark, _loop1_48_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024043 D(p->level--);
24044 return _seq;
24045}
24046
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024047// _tmp_49: 'as' NAME
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024048static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024049_tmp_49_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024050{
24051 D(p->level++);
24052 if (p->error_indicator) {
24053 D(p->level--);
24054 return NULL;
24055 }
24056 void * _res = NULL;
24057 int _mark = p->mark;
24058 { // 'as' NAME
24059 if (p->error_indicator) {
24060 D(p->level--);
24061 return NULL;
24062 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024063 D(fprintf(stderr, "%*c> _tmp_49[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024064 Token * _keyword;
24065 expr_ty z;
24066 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024067 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024068 &&
24069 (z = _PyPegen_name_token(p)) // NAME
24070 )
24071 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024072 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 +010024073 _res = z;
24074 if (_res == NULL && PyErr_Occurred()) {
24075 p->error_indicator = 1;
24076 D(p->level--);
24077 return NULL;
24078 }
24079 goto done;
24080 }
24081 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024082 D(fprintf(stderr, "%*c%s _tmp_49[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024083 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
24084 }
24085 _res = NULL;
24086 done:
24087 D(p->level--);
24088 return _res;
24089}
24090
Brandt Bucher145bf262021-02-26 14:51:55 -080024091// _loop1_50: case_block
24092static asdl_seq *
24093_loop1_50_rule(Parser *p)
24094{
24095 D(p->level++);
24096 if (p->error_indicator) {
24097 D(p->level--);
24098 return NULL;
24099 }
24100 void *_res = NULL;
24101 int _mark = p->mark;
24102 int _start_mark = p->mark;
24103 void **_children = PyMem_Malloc(sizeof(void *));
24104 if (!_children) {
24105 p->error_indicator = 1;
24106 PyErr_NoMemory();
24107 D(p->level--);
24108 return NULL;
24109 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024110 Py_ssize_t _children_capacity = 1;
24111 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080024112 { // case_block
24113 if (p->error_indicator) {
24114 D(p->level--);
24115 return NULL;
24116 }
24117 D(fprintf(stderr, "%*c> _loop1_50[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "case_block"));
24118 match_case_ty case_block_var;
24119 while (
24120 (case_block_var = case_block_rule(p)) // case_block
24121 )
24122 {
24123 _res = case_block_var;
24124 if (_n == _children_capacity) {
24125 _children_capacity *= 2;
24126 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24127 if (!_new_children) {
24128 p->error_indicator = 1;
24129 PyErr_NoMemory();
24130 D(p->level--);
24131 return NULL;
24132 }
24133 _children = _new_children;
24134 }
24135 _children[_n++] = _res;
24136 _mark = p->mark;
24137 }
24138 p->mark = _mark;
24139 D(fprintf(stderr, "%*c%s _loop1_50[%d-%d]: %s failed!\n", p->level, ' ',
24140 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "case_block"));
24141 }
24142 if (_n == 0 || p->error_indicator) {
24143 PyMem_Free(_children);
24144 D(p->level--);
24145 return NULL;
24146 }
24147 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
24148 if (!_seq) {
24149 PyMem_Free(_children);
24150 p->error_indicator = 1;
24151 PyErr_NoMemory();
24152 D(p->level--);
24153 return NULL;
24154 }
24155 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
24156 PyMem_Free(_children);
24157 _PyPegen_insert_memo(p, _start_mark, _loop1_50_type, _seq);
24158 D(p->level--);
24159 return _seq;
24160}
24161
24162// _loop0_52: '|' closed_pattern
24163static asdl_seq *
24164_loop0_52_rule(Parser *p)
24165{
24166 D(p->level++);
24167 if (p->error_indicator) {
24168 D(p->level--);
24169 return NULL;
24170 }
24171 void *_res = NULL;
24172 int _mark = p->mark;
24173 int _start_mark = p->mark;
24174 void **_children = PyMem_Malloc(sizeof(void *));
24175 if (!_children) {
24176 p->error_indicator = 1;
24177 PyErr_NoMemory();
24178 D(p->level--);
24179 return NULL;
24180 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024181 Py_ssize_t _children_capacity = 1;
24182 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080024183 { // '|' closed_pattern
24184 if (p->error_indicator) {
24185 D(p->level--);
24186 return NULL;
24187 }
24188 D(fprintf(stderr, "%*c> _loop0_52[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'|' closed_pattern"));
24189 Token * _literal;
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024190 pattern_ty elem;
Brandt Bucher145bf262021-02-26 14:51:55 -080024191 while (
24192 (_literal = _PyPegen_expect_token(p, 18)) // token='|'
24193 &&
24194 (elem = closed_pattern_rule(p)) // closed_pattern
24195 )
24196 {
24197 _res = elem;
24198 if (_res == NULL && PyErr_Occurred()) {
24199 p->error_indicator = 1;
24200 PyMem_Free(_children);
24201 D(p->level--);
24202 return NULL;
24203 }
24204 if (_n == _children_capacity) {
24205 _children_capacity *= 2;
24206 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24207 if (!_new_children) {
24208 p->error_indicator = 1;
24209 PyErr_NoMemory();
24210 D(p->level--);
24211 return NULL;
24212 }
24213 _children = _new_children;
24214 }
24215 _children[_n++] = _res;
24216 _mark = p->mark;
24217 }
24218 p->mark = _mark;
24219 D(fprintf(stderr, "%*c%s _loop0_52[%d-%d]: %s failed!\n", p->level, ' ',
24220 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'|' closed_pattern"));
24221 }
24222 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
24223 if (!_seq) {
24224 PyMem_Free(_children);
24225 p->error_indicator = 1;
24226 PyErr_NoMemory();
24227 D(p->level--);
24228 return NULL;
24229 }
24230 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
24231 PyMem_Free(_children);
24232 _PyPegen_insert_memo(p, _start_mark, _loop0_52_type, _seq);
24233 D(p->level--);
24234 return _seq;
24235}
24236
24237// _gather_51: closed_pattern _loop0_52
24238static asdl_seq *
24239_gather_51_rule(Parser *p)
24240{
24241 D(p->level++);
24242 if (p->error_indicator) {
24243 D(p->level--);
24244 return NULL;
24245 }
24246 asdl_seq * _res = NULL;
24247 int _mark = p->mark;
24248 { // closed_pattern _loop0_52
24249 if (p->error_indicator) {
24250 D(p->level--);
24251 return NULL;
24252 }
24253 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 +100024254 pattern_ty elem;
Brandt Bucher145bf262021-02-26 14:51:55 -080024255 asdl_seq * seq;
24256 if (
24257 (elem = closed_pattern_rule(p)) // closed_pattern
24258 &&
24259 (seq = _loop0_52_rule(p)) // _loop0_52
24260 )
24261 {
24262 D(fprintf(stderr, "%*c+ _gather_51[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "closed_pattern _loop0_52"));
24263 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
24264 goto done;
24265 }
24266 p->mark = _mark;
24267 D(fprintf(stderr, "%*c%s _gather_51[%d-%d]: %s failed!\n", p->level, ' ',
24268 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "closed_pattern _loop0_52"));
24269 }
24270 _res = NULL;
24271 done:
24272 D(p->level--);
24273 return _res;
24274}
24275
24276// _tmp_53: '+' | '-'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024277static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080024278_tmp_53_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;
24287 { // '+'
24288 if (p->error_indicator) {
24289 D(p->level--);
24290 return NULL;
24291 }
24292 D(fprintf(stderr, "%*c> _tmp_53[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'+'"));
24293 Token * _literal;
24294 if (
24295 (_literal = _PyPegen_expect_token(p, 14)) // token='+'
24296 )
24297 {
24298 D(fprintf(stderr, "%*c+ _tmp_53[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'+'"));
24299 _res = _literal;
24300 goto done;
24301 }
24302 p->mark = _mark;
24303 D(fprintf(stderr, "%*c%s _tmp_53[%d-%d]: %s failed!\n", p->level, ' ',
24304 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'+'"));
24305 }
24306 { // '-'
24307 if (p->error_indicator) {
24308 D(p->level--);
24309 return NULL;
24310 }
24311 D(fprintf(stderr, "%*c> _tmp_53[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-'"));
24312 Token * _literal;
24313 if (
24314 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
24315 )
24316 {
24317 D(fprintf(stderr, "%*c+ _tmp_53[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-'"));
24318 _res = _literal;
24319 goto done;
24320 }
24321 p->mark = _mark;
24322 D(fprintf(stderr, "%*c%s _tmp_53[%d-%d]: %s failed!\n", p->level, ' ',
24323 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-'"));
24324 }
24325 _res = NULL;
24326 done:
24327 D(p->level--);
24328 return _res;
24329}
24330
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024331// _tmp_54: '+' | '-'
Brandt Bucher145bf262021-02-26 14:51:55 -080024332static void *
24333_tmp_54_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;
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024342 { // '+'
Brandt Bucher145bf262021-02-26 14:51:55 -080024343 if (p->error_indicator) {
24344 D(p->level--);
24345 return NULL;
24346 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024347 D(fprintf(stderr, "%*c> _tmp_54[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'+'"));
Brandt Bucher145bf262021-02-26 14:51:55 -080024348 Token * _literal;
24349 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024350 (_literal = _PyPegen_expect_token(p, 14)) // token='+'
Brandt Bucher145bf262021-02-26 14:51:55 -080024351 )
24352 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024353 D(fprintf(stderr, "%*c+ _tmp_54[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'+'"));
Brandt Bucher145bf262021-02-26 14:51:55 -080024354 _res = _literal;
24355 goto done;
24356 }
24357 p->mark = _mark;
24358 D(fprintf(stderr, "%*c%s _tmp_54[%d-%d]: %s failed!\n", p->level, ' ',
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024359 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'+'"));
Brandt Bucher145bf262021-02-26 14:51:55 -080024360 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024361 { // '-'
Brandt Bucher145bf262021-02-26 14:51:55 -080024362 if (p->error_indicator) {
24363 D(p->level--);
24364 return NULL;
24365 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024366 D(fprintf(stderr, "%*c> _tmp_54[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-'"));
Brandt Bucher145bf262021-02-26 14:51:55 -080024367 Token * _literal;
24368 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024369 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
Brandt Bucher145bf262021-02-26 14:51:55 -080024370 )
24371 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024372 D(fprintf(stderr, "%*c+ _tmp_54[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-'"));
Brandt Bucher145bf262021-02-26 14:51:55 -080024373 _res = _literal;
24374 goto done;
24375 }
24376 p->mark = _mark;
24377 D(fprintf(stderr, "%*c%s _tmp_54[%d-%d]: %s failed!\n", p->level, ' ',
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024378 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-'"));
Brandt Bucher145bf262021-02-26 14:51:55 -080024379 }
24380 _res = NULL;
24381 done:
24382 D(p->level--);
24383 return _res;
24384}
24385
24386// _tmp_55: '.' | '(' | '='
24387static void *
24388_tmp_55_rule(Parser *p)
24389{
24390 D(p->level++);
24391 if (p->error_indicator) {
24392 D(p->level--);
24393 return NULL;
24394 }
24395 void * _res = NULL;
24396 int _mark = p->mark;
24397 { // '.'
24398 if (p->error_indicator) {
24399 D(p->level--);
24400 return NULL;
24401 }
24402 D(fprintf(stderr, "%*c> _tmp_55[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
24403 Token * _literal;
24404 if (
24405 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
24406 )
24407 {
24408 D(fprintf(stderr, "%*c+ _tmp_55[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
24409 _res = _literal;
24410 goto done;
24411 }
24412 p->mark = _mark;
24413 D(fprintf(stderr, "%*c%s _tmp_55[%d-%d]: %s failed!\n", p->level, ' ',
24414 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
24415 }
24416 { // '('
24417 if (p->error_indicator) {
24418 D(p->level--);
24419 return NULL;
24420 }
24421 D(fprintf(stderr, "%*c> _tmp_55[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'('"));
24422 Token * _literal;
24423 if (
24424 (_literal = _PyPegen_expect_token(p, 7)) // token='('
24425 )
24426 {
24427 D(fprintf(stderr, "%*c+ _tmp_55[%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_55[%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_55[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'='"));
24441 Token * _literal;
24442 if (
24443 (_literal = _PyPegen_expect_token(p, 22)) // token='='
24444 )
24445 {
24446 D(fprintf(stderr, "%*c+ _tmp_55[%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_55[%d-%d]: %s failed!\n", p->level, ' ',
24452 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'='"));
24453 }
24454 _res = NULL;
24455 done:
24456 D(p->level--);
24457 return _res;
24458}
24459
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024460// _tmp_56: '.' | '(' | '='
24461static void *
24462_tmp_56_rule(Parser *p)
24463{
24464 D(p->level++);
24465 if (p->error_indicator) {
24466 D(p->level--);
24467 return NULL;
24468 }
24469 void * _res = NULL;
24470 int _mark = p->mark;
24471 { // '.'
24472 if (p->error_indicator) {
24473 D(p->level--);
24474 return NULL;
24475 }
24476 D(fprintf(stderr, "%*c> _tmp_56[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
24477 Token * _literal;
24478 if (
24479 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
24480 )
24481 {
24482 D(fprintf(stderr, "%*c+ _tmp_56[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
24483 _res = _literal;
24484 goto done;
24485 }
24486 p->mark = _mark;
24487 D(fprintf(stderr, "%*c%s _tmp_56[%d-%d]: %s failed!\n", p->level, ' ',
24488 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
24489 }
24490 { // '('
24491 if (p->error_indicator) {
24492 D(p->level--);
24493 return NULL;
24494 }
24495 D(fprintf(stderr, "%*c> _tmp_56[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'('"));
24496 Token * _literal;
24497 if (
24498 (_literal = _PyPegen_expect_token(p, 7)) // token='('
24499 )
24500 {
24501 D(fprintf(stderr, "%*c+ _tmp_56[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'('"));
24502 _res = _literal;
24503 goto done;
24504 }
24505 p->mark = _mark;
24506 D(fprintf(stderr, "%*c%s _tmp_56[%d-%d]: %s failed!\n", p->level, ' ',
24507 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'('"));
24508 }
24509 { // '='
24510 if (p->error_indicator) {
24511 D(p->level--);
24512 return NULL;
24513 }
24514 D(fprintf(stderr, "%*c> _tmp_56[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'='"));
24515 Token * _literal;
24516 if (
24517 (_literal = _PyPegen_expect_token(p, 22)) // token='='
24518 )
24519 {
24520 D(fprintf(stderr, "%*c+ _tmp_56[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'='"));
24521 _res = _literal;
24522 goto done;
24523 }
24524 p->mark = _mark;
24525 D(fprintf(stderr, "%*c%s _tmp_56[%d-%d]: %s failed!\n", p->level, ' ',
24526 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'='"));
24527 }
24528 _res = NULL;
24529 done:
24530 D(p->level--);
24531 return _res;
24532}
24533
24534// _loop0_58: ',' maybe_star_pattern
Brandt Bucher145bf262021-02-26 14:51:55 -080024535static asdl_seq *
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024536_loop0_58_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080024537{
24538 D(p->level++);
24539 if (p->error_indicator) {
24540 D(p->level--);
24541 return NULL;
24542 }
24543 void *_res = NULL;
24544 int _mark = p->mark;
24545 int _start_mark = p->mark;
24546 void **_children = PyMem_Malloc(sizeof(void *));
24547 if (!_children) {
24548 p->error_indicator = 1;
24549 PyErr_NoMemory();
24550 D(p->level--);
24551 return NULL;
24552 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024553 Py_ssize_t _children_capacity = 1;
24554 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080024555 { // ',' maybe_star_pattern
24556 if (p->error_indicator) {
24557 D(p->level--);
24558 return NULL;
24559 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024560 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 -080024561 Token * _literal;
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024562 pattern_ty elem;
Brandt Bucher145bf262021-02-26 14:51:55 -080024563 while (
24564 (_literal = _PyPegen_expect_token(p, 12)) // token=','
24565 &&
24566 (elem = maybe_star_pattern_rule(p)) // maybe_star_pattern
24567 )
24568 {
24569 _res = elem;
24570 if (_res == NULL && PyErr_Occurred()) {
24571 p->error_indicator = 1;
24572 PyMem_Free(_children);
24573 D(p->level--);
24574 return NULL;
24575 }
24576 if (_n == _children_capacity) {
24577 _children_capacity *= 2;
24578 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24579 if (!_new_children) {
24580 p->error_indicator = 1;
24581 PyErr_NoMemory();
24582 D(p->level--);
24583 return NULL;
24584 }
24585 _children = _new_children;
24586 }
24587 _children[_n++] = _res;
24588 _mark = p->mark;
24589 }
24590 p->mark = _mark;
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024591 D(fprintf(stderr, "%*c%s _loop0_58[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080024592 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' maybe_star_pattern"));
24593 }
24594 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
24595 if (!_seq) {
24596 PyMem_Free(_children);
24597 p->error_indicator = 1;
24598 PyErr_NoMemory();
24599 D(p->level--);
24600 return NULL;
24601 }
24602 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
24603 PyMem_Free(_children);
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024604 _PyPegen_insert_memo(p, _start_mark, _loop0_58_type, _seq);
Brandt Bucher145bf262021-02-26 14:51:55 -080024605 D(p->level--);
24606 return _seq;
24607}
24608
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024609// _gather_57: maybe_star_pattern _loop0_58
Brandt Bucher145bf262021-02-26 14:51:55 -080024610static asdl_seq *
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024611_gather_57_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080024612{
24613 D(p->level++);
24614 if (p->error_indicator) {
24615 D(p->level--);
24616 return NULL;
24617 }
24618 asdl_seq * _res = NULL;
24619 int _mark = p->mark;
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024620 { // maybe_star_pattern _loop0_58
Brandt Bucher145bf262021-02-26 14:51:55 -080024621 if (p->error_indicator) {
24622 D(p->level--);
24623 return NULL;
24624 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024625 D(fprintf(stderr, "%*c> _gather_57[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "maybe_star_pattern _loop0_58"));
24626 pattern_ty elem;
Brandt Bucher145bf262021-02-26 14:51:55 -080024627 asdl_seq * seq;
24628 if (
24629 (elem = maybe_star_pattern_rule(p)) // maybe_star_pattern
24630 &&
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024631 (seq = _loop0_58_rule(p)) // _loop0_58
Brandt Bucher145bf262021-02-26 14:51:55 -080024632 )
24633 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024634 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 -080024635 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
24636 goto done;
24637 }
24638 p->mark = _mark;
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024639 D(fprintf(stderr, "%*c%s _gather_57[%d-%d]: %s failed!\n", p->level, ' ',
24640 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "maybe_star_pattern _loop0_58"));
Brandt Bucher145bf262021-02-26 14:51:55 -080024641 }
24642 _res = NULL;
24643 done:
24644 D(p->level--);
24645 return _res;
24646}
24647
24648// _loop0_60: ',' key_value_pattern
24649static asdl_seq *
24650_loop0_60_rule(Parser *p)
24651{
24652 D(p->level++);
24653 if (p->error_indicator) {
24654 D(p->level--);
24655 return NULL;
24656 }
24657 void *_res = NULL;
24658 int _mark = p->mark;
24659 int _start_mark = p->mark;
24660 void **_children = PyMem_Malloc(sizeof(void *));
24661 if (!_children) {
24662 p->error_indicator = 1;
24663 PyErr_NoMemory();
24664 D(p->level--);
24665 return NULL;
24666 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024667 Py_ssize_t _children_capacity = 1;
24668 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080024669 { // ',' key_value_pattern
24670 if (p->error_indicator) {
24671 D(p->level--);
24672 return NULL;
24673 }
24674 D(fprintf(stderr, "%*c> _loop0_60[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' key_value_pattern"));
24675 Token * _literal;
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024676 KeyPatternPair* elem;
Brandt Bucher145bf262021-02-26 14:51:55 -080024677 while (
24678 (_literal = _PyPegen_expect_token(p, 12)) // token=','
24679 &&
24680 (elem = key_value_pattern_rule(p)) // key_value_pattern
24681 )
24682 {
24683 _res = elem;
24684 if (_res == NULL && PyErr_Occurred()) {
24685 p->error_indicator = 1;
24686 PyMem_Free(_children);
24687 D(p->level--);
24688 return NULL;
24689 }
24690 if (_n == _children_capacity) {
24691 _children_capacity *= 2;
24692 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24693 if (!_new_children) {
24694 p->error_indicator = 1;
24695 PyErr_NoMemory();
24696 D(p->level--);
24697 return NULL;
24698 }
24699 _children = _new_children;
24700 }
24701 _children[_n++] = _res;
24702 _mark = p->mark;
24703 }
24704 p->mark = _mark;
24705 D(fprintf(stderr, "%*c%s _loop0_60[%d-%d]: %s failed!\n", p->level, ' ',
24706 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' key_value_pattern"));
24707 }
24708 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
24709 if (!_seq) {
24710 PyMem_Free(_children);
24711 p->error_indicator = 1;
24712 PyErr_NoMemory();
24713 D(p->level--);
24714 return NULL;
24715 }
24716 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
24717 PyMem_Free(_children);
24718 _PyPegen_insert_memo(p, _start_mark, _loop0_60_type, _seq);
24719 D(p->level--);
24720 return _seq;
24721}
24722
24723// _gather_59: key_value_pattern _loop0_60
24724static asdl_seq *
24725_gather_59_rule(Parser *p)
24726{
24727 D(p->level++);
24728 if (p->error_indicator) {
24729 D(p->level--);
24730 return NULL;
24731 }
24732 asdl_seq * _res = NULL;
24733 int _mark = p->mark;
24734 { // key_value_pattern _loop0_60
24735 if (p->error_indicator) {
24736 D(p->level--);
24737 return NULL;
24738 }
24739 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 +100024740 KeyPatternPair* elem;
Brandt Bucher145bf262021-02-26 14:51:55 -080024741 asdl_seq * seq;
24742 if (
24743 (elem = key_value_pattern_rule(p)) // key_value_pattern
24744 &&
24745 (seq = _loop0_60_rule(p)) // _loop0_60
24746 )
24747 {
24748 D(fprintf(stderr, "%*c+ _gather_59[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "key_value_pattern _loop0_60"));
24749 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
24750 goto done;
24751 }
24752 p->mark = _mark;
24753 D(fprintf(stderr, "%*c%s _gather_59[%d-%d]: %s failed!\n", p->level, ' ',
24754 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "key_value_pattern _loop0_60"));
24755 }
24756 _res = NULL;
24757 done:
24758 D(p->level--);
24759 return _res;
24760}
24761
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024762// _tmp_61: literal_expr | attr
Brandt Bucher145bf262021-02-26 14:51:55 -080024763static void *
24764_tmp_61_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;
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024773 { // literal_expr
Brandt Bucher145bf262021-02-26 14:51:55 -080024774 if (p->error_indicator) {
24775 D(p->level--);
24776 return NULL;
24777 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024778 D(fprintf(stderr, "%*c> _tmp_61[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "literal_expr"));
24779 expr_ty literal_expr_var;
Brandt Bucher145bf262021-02-26 14:51:55 -080024780 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024781 (literal_expr_var = literal_expr_rule(p)) // literal_expr
Brandt Bucher145bf262021-02-26 14:51:55 -080024782 )
24783 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024784 D(fprintf(stderr, "%*c+ _tmp_61[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "literal_expr"));
24785 _res = literal_expr_var;
Brandt Bucher145bf262021-02-26 14:51:55 -080024786 goto done;
24787 }
24788 p->mark = _mark;
24789 D(fprintf(stderr, "%*c%s _tmp_61[%d-%d]: %s failed!\n", p->level, ' ',
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024790 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "literal_expr"));
Brandt Bucher145bf262021-02-26 14:51:55 -080024791 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024792 { // attr
Brandt Bucher145bf262021-02-26 14:51:55 -080024793 if (p->error_indicator) {
24794 D(p->level--);
24795 return NULL;
24796 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024797 D(fprintf(stderr, "%*c> _tmp_61[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "attr"));
24798 expr_ty attr_var;
Brandt Bucher145bf262021-02-26 14:51:55 -080024799 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024800 (attr_var = attr_rule(p)) // attr
Brandt Bucher145bf262021-02-26 14:51:55 -080024801 )
24802 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024803 D(fprintf(stderr, "%*c+ _tmp_61[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "attr"));
24804 _res = attr_var;
Brandt Bucher145bf262021-02-26 14:51:55 -080024805 goto done;
24806 }
24807 p->mark = _mark;
24808 D(fprintf(stderr, "%*c%s _tmp_61[%d-%d]: %s failed!\n", p->level, ' ',
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024809 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "attr"));
Brandt Bucher145bf262021-02-26 14:51:55 -080024810 }
24811 _res = NULL;
24812 done:
24813 D(p->level--);
24814 return _res;
24815}
24816
24817// _loop0_63: ',' pattern
24818static asdl_seq *
24819_loop0_63_rule(Parser *p)
24820{
24821 D(p->level++);
24822 if (p->error_indicator) {
24823 D(p->level--);
24824 return NULL;
24825 }
24826 void *_res = NULL;
24827 int _mark = p->mark;
24828 int _start_mark = p->mark;
24829 void **_children = PyMem_Malloc(sizeof(void *));
24830 if (!_children) {
24831 p->error_indicator = 1;
24832 PyErr_NoMemory();
24833 D(p->level--);
24834 return NULL;
24835 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024836 Py_ssize_t _children_capacity = 1;
24837 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080024838 { // ',' pattern
24839 if (p->error_indicator) {
24840 D(p->level--);
24841 return NULL;
24842 }
24843 D(fprintf(stderr, "%*c> _loop0_63[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' pattern"));
24844 Token * _literal;
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024845 pattern_ty elem;
Brandt Bucher145bf262021-02-26 14:51:55 -080024846 while (
24847 (_literal = _PyPegen_expect_token(p, 12)) // token=','
24848 &&
24849 (elem = pattern_rule(p)) // pattern
24850 )
24851 {
24852 _res = elem;
24853 if (_res == NULL && PyErr_Occurred()) {
24854 p->error_indicator = 1;
24855 PyMem_Free(_children);
24856 D(p->level--);
24857 return NULL;
24858 }
24859 if (_n == _children_capacity) {
24860 _children_capacity *= 2;
24861 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24862 if (!_new_children) {
24863 p->error_indicator = 1;
24864 PyErr_NoMemory();
24865 D(p->level--);
24866 return NULL;
24867 }
24868 _children = _new_children;
24869 }
24870 _children[_n++] = _res;
24871 _mark = p->mark;
24872 }
24873 p->mark = _mark;
24874 D(fprintf(stderr, "%*c%s _loop0_63[%d-%d]: %s failed!\n", p->level, ' ',
24875 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' pattern"));
24876 }
24877 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
24878 if (!_seq) {
24879 PyMem_Free(_children);
24880 p->error_indicator = 1;
24881 PyErr_NoMemory();
24882 D(p->level--);
24883 return NULL;
24884 }
24885 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
24886 PyMem_Free(_children);
24887 _PyPegen_insert_memo(p, _start_mark, _loop0_63_type, _seq);
24888 D(p->level--);
24889 return _seq;
24890}
24891
24892// _gather_62: pattern _loop0_63
24893static asdl_seq *
24894_gather_62_rule(Parser *p)
24895{
24896 D(p->level++);
24897 if (p->error_indicator) {
24898 D(p->level--);
24899 return NULL;
24900 }
24901 asdl_seq * _res = NULL;
24902 int _mark = p->mark;
24903 { // pattern _loop0_63
24904 if (p->error_indicator) {
24905 D(p->level--);
24906 return NULL;
24907 }
24908 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 +100024909 pattern_ty elem;
Brandt Bucher145bf262021-02-26 14:51:55 -080024910 asdl_seq * seq;
24911 if (
24912 (elem = pattern_rule(p)) // pattern
24913 &&
24914 (seq = _loop0_63_rule(p)) // _loop0_63
24915 )
24916 {
24917 D(fprintf(stderr, "%*c+ _gather_62[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "pattern _loop0_63"));
24918 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
24919 goto done;
24920 }
24921 p->mark = _mark;
24922 D(fprintf(stderr, "%*c%s _gather_62[%d-%d]: %s failed!\n", p->level, ' ',
24923 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "pattern _loop0_63"));
24924 }
24925 _res = NULL;
24926 done:
24927 D(p->level--);
24928 return _res;
24929}
24930
24931// _loop0_65: ',' keyword_pattern
24932static asdl_seq *
24933_loop0_65_rule(Parser *p)
24934{
24935 D(p->level++);
24936 if (p->error_indicator) {
24937 D(p->level--);
24938 return NULL;
24939 }
24940 void *_res = NULL;
24941 int _mark = p->mark;
24942 int _start_mark = p->mark;
24943 void **_children = PyMem_Malloc(sizeof(void *));
24944 if (!_children) {
24945 p->error_indicator = 1;
24946 PyErr_NoMemory();
24947 D(p->level--);
24948 return NULL;
24949 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024950 Py_ssize_t _children_capacity = 1;
24951 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080024952 { // ',' keyword_pattern
24953 if (p->error_indicator) {
24954 D(p->level--);
24955 return NULL;
24956 }
24957 D(fprintf(stderr, "%*c> _loop0_65[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' keyword_pattern"));
24958 Token * _literal;
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024959 KeyPatternPair* elem;
Brandt Bucher145bf262021-02-26 14:51:55 -080024960 while (
24961 (_literal = _PyPegen_expect_token(p, 12)) // token=','
24962 &&
24963 (elem = keyword_pattern_rule(p)) // keyword_pattern
24964 )
24965 {
24966 _res = elem;
24967 if (_res == NULL && PyErr_Occurred()) {
24968 p->error_indicator = 1;
24969 PyMem_Free(_children);
24970 D(p->level--);
24971 return NULL;
24972 }
24973 if (_n == _children_capacity) {
24974 _children_capacity *= 2;
24975 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24976 if (!_new_children) {
24977 p->error_indicator = 1;
24978 PyErr_NoMemory();
24979 D(p->level--);
24980 return NULL;
24981 }
24982 _children = _new_children;
24983 }
24984 _children[_n++] = _res;
24985 _mark = p->mark;
24986 }
24987 p->mark = _mark;
24988 D(fprintf(stderr, "%*c%s _loop0_65[%d-%d]: %s failed!\n", p->level, ' ',
24989 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' keyword_pattern"));
24990 }
24991 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
24992 if (!_seq) {
24993 PyMem_Free(_children);
24994 p->error_indicator = 1;
24995 PyErr_NoMemory();
24996 D(p->level--);
24997 return NULL;
24998 }
24999 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
25000 PyMem_Free(_children);
25001 _PyPegen_insert_memo(p, _start_mark, _loop0_65_type, _seq);
25002 D(p->level--);
25003 return _seq;
25004}
25005
25006// _gather_64: keyword_pattern _loop0_65
25007static asdl_seq *
25008_gather_64_rule(Parser *p)
25009{
25010 D(p->level++);
25011 if (p->error_indicator) {
25012 D(p->level--);
25013 return NULL;
25014 }
25015 asdl_seq * _res = NULL;
25016 int _mark = p->mark;
25017 { // keyword_pattern _loop0_65
25018 if (p->error_indicator) {
25019 D(p->level--);
25020 return NULL;
25021 }
25022 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 +100025023 KeyPatternPair* elem;
Brandt Bucher145bf262021-02-26 14:51:55 -080025024 asdl_seq * seq;
25025 if (
25026 (elem = keyword_pattern_rule(p)) // keyword_pattern
25027 &&
25028 (seq = _loop0_65_rule(p)) // _loop0_65
25029 )
25030 {
25031 D(fprintf(stderr, "%*c+ _gather_64[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "keyword_pattern _loop0_65"));
25032 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
25033 goto done;
25034 }
25035 p->mark = _mark;
25036 D(fprintf(stderr, "%*c%s _gather_64[%d-%d]: %s failed!\n", p->level, ' ',
25037 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "keyword_pattern _loop0_65"));
25038 }
25039 _res = NULL;
25040 done:
25041 D(p->level--);
25042 return _res;
25043}
25044
25045// _tmp_66: 'from' expression
25046static void *
25047_tmp_66_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025048{
25049 D(p->level++);
25050 if (p->error_indicator) {
25051 D(p->level--);
25052 return NULL;
25053 }
25054 void * _res = NULL;
25055 int _mark = p->mark;
25056 { // 'from' expression
25057 if (p->error_indicator) {
25058 D(p->level--);
25059 return NULL;
25060 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025061 D(fprintf(stderr, "%*c> _tmp_66[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025062 Token * _keyword;
25063 expr_ty z;
25064 if (
25065 (_keyword = _PyPegen_expect_token(p, 514)) // token='from'
25066 &&
25067 (z = expression_rule(p)) // expression
25068 )
25069 {
Brandt Bucher145bf262021-02-26 14:51:55 -080025070 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 +010025071 _res = z;
25072 if (_res == NULL && PyErr_Occurred()) {
25073 p->error_indicator = 1;
25074 D(p->level--);
25075 return NULL;
25076 }
25077 goto done;
25078 }
25079 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025080 D(fprintf(stderr, "%*c%s _tmp_66[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025081 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025082 }
25083 _res = NULL;
25084 done:
25085 D(p->level--);
25086 return _res;
25087}
25088
Brandt Bucher145bf262021-02-26 14:51:55 -080025089// _tmp_67: '->' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025090static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080025091_tmp_67_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025092{
25093 D(p->level++);
25094 if (p->error_indicator) {
25095 D(p->level--);
25096 return NULL;
25097 }
25098 void * _res = NULL;
25099 int _mark = p->mark;
25100 { // '->' expression
25101 if (p->error_indicator) {
25102 D(p->level--);
25103 return NULL;
25104 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025105 D(fprintf(stderr, "%*c> _tmp_67[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'->' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025106 Token * _literal;
25107 expr_ty z;
25108 if (
25109 (_literal = _PyPegen_expect_token(p, 51)) // token='->'
25110 &&
25111 (z = expression_rule(p)) // expression
25112 )
25113 {
Brandt Bucher145bf262021-02-26 14:51:55 -080025114 D(fprintf(stderr, "%*c+ _tmp_67[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'->' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025115 _res = z;
25116 if (_res == NULL && PyErr_Occurred()) {
25117 p->error_indicator = 1;
25118 D(p->level--);
25119 return NULL;
25120 }
25121 goto done;
25122 }
25123 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025124 D(fprintf(stderr, "%*c%s _tmp_67[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025125 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'->' expression"));
25126 }
25127 _res = NULL;
25128 done:
25129 D(p->level--);
25130 return _res;
25131}
25132
Brandt Bucher145bf262021-02-26 14:51:55 -080025133// _tmp_68: '->' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025134static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080025135_tmp_68_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025136{
25137 D(p->level++);
25138 if (p->error_indicator) {
25139 D(p->level--);
25140 return NULL;
25141 }
25142 void * _res = NULL;
25143 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025144 { // '->' expression
25145 if (p->error_indicator) {
25146 D(p->level--);
25147 return NULL;
25148 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025149 D(fprintf(stderr, "%*c> _tmp_68[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'->' expression"));
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025150 Token * _literal;
25151 expr_ty z;
25152 if (
25153 (_literal = _PyPegen_expect_token(p, 51)) // token='->'
25154 &&
25155 (z = expression_rule(p)) // expression
25156 )
25157 {
Brandt Bucher145bf262021-02-26 14:51:55 -080025158 D(fprintf(stderr, "%*c+ _tmp_68[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'->' expression"));
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025159 _res = z;
25160 if (_res == NULL && PyErr_Occurred()) {
25161 p->error_indicator = 1;
25162 D(p->level--);
25163 return NULL;
25164 }
25165 goto done;
25166 }
25167 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025168 D(fprintf(stderr, "%*c%s _tmp_68[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025169 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'->' expression"));
25170 }
25171 _res = NULL;
25172 done:
25173 D(p->level--);
25174 return _res;
25175}
25176
Brandt Bucher145bf262021-02-26 14:51:55 -080025177// _tmp_69: NEWLINE INDENT
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025178static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080025179_tmp_69_rule(Parser *p)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025180{
25181 D(p->level++);
25182 if (p->error_indicator) {
25183 D(p->level--);
25184 return NULL;
25185 }
25186 void * _res = NULL;
25187 int _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025188 { // NEWLINE INDENT
25189 if (p->error_indicator) {
25190 D(p->level--);
25191 return NULL;
25192 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025193 D(fprintf(stderr, "%*c> _tmp_69[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE INDENT"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025194 Token * indent_var;
25195 Token * newline_var;
25196 if (
25197 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
25198 &&
25199 (indent_var = _PyPegen_expect_token(p, INDENT)) // token='INDENT'
25200 )
25201 {
Brandt Bucher145bf262021-02-26 14:51:55 -080025202 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 +010025203 _res = _PyPegen_dummy_name(p, newline_var, indent_var);
25204 goto done;
25205 }
25206 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025207 D(fprintf(stderr, "%*c%s _tmp_69[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025208 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE INDENT"));
25209 }
25210 _res = NULL;
25211 done:
25212 D(p->level--);
25213 return _res;
25214}
25215
Brandt Bucher145bf262021-02-26 14:51:55 -080025216// _loop0_70: param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025217static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025218_loop0_70_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025219{
25220 D(p->level++);
25221 if (p->error_indicator) {
25222 D(p->level--);
25223 return NULL;
25224 }
25225 void *_res = NULL;
25226 int _mark = p->mark;
25227 int _start_mark = p->mark;
25228 void **_children = PyMem_Malloc(sizeof(void *));
25229 if (!_children) {
25230 p->error_indicator = 1;
25231 PyErr_NoMemory();
25232 D(p->level--);
25233 return NULL;
25234 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025235 Py_ssize_t _children_capacity = 1;
25236 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025237 { // param_no_default
25238 if (p->error_indicator) {
25239 D(p->level--);
25240 return NULL;
25241 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025242 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 +010025243 arg_ty param_no_default_var;
25244 while (
25245 (param_no_default_var = param_no_default_rule(p)) // param_no_default
25246 )
25247 {
25248 _res = param_no_default_var;
25249 if (_n == _children_capacity) {
25250 _children_capacity *= 2;
25251 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25252 if (!_new_children) {
25253 p->error_indicator = 1;
25254 PyErr_NoMemory();
25255 D(p->level--);
25256 return NULL;
25257 }
25258 _children = _new_children;
25259 }
25260 _children[_n++] = _res;
25261 _mark = p->mark;
25262 }
25263 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025264 D(fprintf(stderr, "%*c%s _loop0_70[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025265 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025266 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025267 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025268 if (!_seq) {
25269 PyMem_Free(_children);
25270 p->error_indicator = 1;
25271 PyErr_NoMemory();
25272 D(p->level--);
25273 return NULL;
25274 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025275 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025276 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025277 _PyPegen_insert_memo(p, _start_mark, _loop0_70_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025278 D(p->level--);
25279 return _seq;
25280}
25281
Brandt Bucher145bf262021-02-26 14:51:55 -080025282// _loop0_71: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025283static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025284_loop0_71_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025285{
25286 D(p->level++);
25287 if (p->error_indicator) {
25288 D(p->level--);
25289 return NULL;
25290 }
25291 void *_res = NULL;
25292 int _mark = p->mark;
25293 int _start_mark = p->mark;
25294 void **_children = PyMem_Malloc(sizeof(void *));
25295 if (!_children) {
25296 p->error_indicator = 1;
25297 PyErr_NoMemory();
25298 D(p->level--);
25299 return NULL;
25300 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025301 Py_ssize_t _children_capacity = 1;
25302 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025303 { // param_with_default
25304 if (p->error_indicator) {
25305 D(p->level--);
25306 return NULL;
25307 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025308 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 +010025309 NameDefaultPair* param_with_default_var;
25310 while (
25311 (param_with_default_var = param_with_default_rule(p)) // param_with_default
25312 )
25313 {
25314 _res = param_with_default_var;
25315 if (_n == _children_capacity) {
25316 _children_capacity *= 2;
25317 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25318 if (!_new_children) {
25319 p->error_indicator = 1;
25320 PyErr_NoMemory();
25321 D(p->level--);
25322 return NULL;
25323 }
25324 _children = _new_children;
25325 }
25326 _children[_n++] = _res;
25327 _mark = p->mark;
25328 }
25329 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025330 D(fprintf(stderr, "%*c%s _loop0_71[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025331 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
25332 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025333 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025334 if (!_seq) {
25335 PyMem_Free(_children);
25336 p->error_indicator = 1;
25337 PyErr_NoMemory();
25338 D(p->level--);
25339 return NULL;
25340 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025341 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025342 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025343 _PyPegen_insert_memo(p, _start_mark, _loop0_71_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025344 D(p->level--);
25345 return _seq;
25346}
25347
Brandt Bucher145bf262021-02-26 14:51:55 -080025348// _loop0_72: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025349static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025350_loop0_72_rule(Parser *p)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025351{
25352 D(p->level++);
25353 if (p->error_indicator) {
25354 D(p->level--);
25355 return NULL;
25356 }
25357 void *_res = NULL;
25358 int _mark = p->mark;
25359 int _start_mark = p->mark;
25360 void **_children = PyMem_Malloc(sizeof(void *));
25361 if (!_children) {
25362 p->error_indicator = 1;
25363 PyErr_NoMemory();
25364 D(p->level--);
25365 return NULL;
25366 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025367 Py_ssize_t _children_capacity = 1;
25368 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025369 { // param_with_default
25370 if (p->error_indicator) {
25371 D(p->level--);
25372 return NULL;
25373 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025374 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 +030025375 NameDefaultPair* param_with_default_var;
25376 while (
25377 (param_with_default_var = param_with_default_rule(p)) // param_with_default
25378 )
25379 {
25380 _res = param_with_default_var;
25381 if (_n == _children_capacity) {
25382 _children_capacity *= 2;
25383 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25384 if (!_new_children) {
25385 p->error_indicator = 1;
25386 PyErr_NoMemory();
25387 D(p->level--);
25388 return NULL;
25389 }
25390 _children = _new_children;
25391 }
25392 _children[_n++] = _res;
25393 _mark = p->mark;
25394 }
25395 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025396 D(fprintf(stderr, "%*c%s _loop0_72[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025397 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
25398 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025399 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025400 if (!_seq) {
25401 PyMem_Free(_children);
25402 p->error_indicator = 1;
25403 PyErr_NoMemory();
25404 D(p->level--);
25405 return NULL;
25406 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025407 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025408 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025409 _PyPegen_insert_memo(p, _start_mark, _loop0_72_type, _seq);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025410 D(p->level--);
25411 return _seq;
25412}
25413
Brandt Bucher145bf262021-02-26 14:51:55 -080025414// _loop1_73: param_no_default
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025415static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025416_loop1_73_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025417{
25418 D(p->level++);
25419 if (p->error_indicator) {
25420 D(p->level--);
25421 return NULL;
25422 }
25423 void *_res = NULL;
25424 int _mark = p->mark;
25425 int _start_mark = p->mark;
25426 void **_children = PyMem_Malloc(sizeof(void *));
25427 if (!_children) {
25428 p->error_indicator = 1;
25429 PyErr_NoMemory();
25430 D(p->level--);
25431 return NULL;
25432 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025433 Py_ssize_t _children_capacity = 1;
25434 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025435 { // param_no_default
25436 if (p->error_indicator) {
25437 D(p->level--);
25438 return NULL;
25439 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025440 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 +010025441 arg_ty param_no_default_var;
25442 while (
25443 (param_no_default_var = param_no_default_rule(p)) // param_no_default
25444 )
25445 {
25446 _res = param_no_default_var;
25447 if (_n == _children_capacity) {
25448 _children_capacity *= 2;
25449 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25450 if (!_new_children) {
25451 p->error_indicator = 1;
25452 PyErr_NoMemory();
25453 D(p->level--);
25454 return NULL;
25455 }
25456 _children = _new_children;
25457 }
25458 _children[_n++] = _res;
25459 _mark = p->mark;
25460 }
25461 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025462 D(fprintf(stderr, "%*c%s _loop1_73[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025463 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
25464 }
25465 if (_n == 0 || p->error_indicator) {
25466 PyMem_Free(_children);
25467 D(p->level--);
25468 return NULL;
25469 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025470 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025471 if (!_seq) {
25472 PyMem_Free(_children);
25473 p->error_indicator = 1;
25474 PyErr_NoMemory();
25475 D(p->level--);
25476 return NULL;
25477 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025478 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025479 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025480 _PyPegen_insert_memo(p, _start_mark, _loop1_73_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025481 D(p->level--);
25482 return _seq;
25483}
25484
Brandt Bucher145bf262021-02-26 14:51:55 -080025485// _loop0_74: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025486static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025487_loop0_74_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025488{
25489 D(p->level++);
25490 if (p->error_indicator) {
25491 D(p->level--);
25492 return NULL;
25493 }
25494 void *_res = NULL;
25495 int _mark = p->mark;
25496 int _start_mark = p->mark;
25497 void **_children = PyMem_Malloc(sizeof(void *));
25498 if (!_children) {
25499 p->error_indicator = 1;
25500 PyErr_NoMemory();
25501 D(p->level--);
25502 return NULL;
25503 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025504 Py_ssize_t _children_capacity = 1;
25505 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025506 { // param_with_default
25507 if (p->error_indicator) {
25508 D(p->level--);
25509 return NULL;
25510 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025511 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 +010025512 NameDefaultPair* param_with_default_var;
25513 while (
25514 (param_with_default_var = param_with_default_rule(p)) // param_with_default
25515 )
25516 {
25517 _res = param_with_default_var;
25518 if (_n == _children_capacity) {
25519 _children_capacity *= 2;
25520 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25521 if (!_new_children) {
25522 p->error_indicator = 1;
25523 PyErr_NoMemory();
25524 D(p->level--);
25525 return NULL;
25526 }
25527 _children = _new_children;
25528 }
25529 _children[_n++] = _res;
25530 _mark = p->mark;
25531 }
25532 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025533 D(fprintf(stderr, "%*c%s _loop0_74[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025534 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
25535 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025536 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025537 if (!_seq) {
25538 PyMem_Free(_children);
25539 p->error_indicator = 1;
25540 PyErr_NoMemory();
25541 D(p->level--);
25542 return NULL;
25543 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025544 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025545 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025546 _PyPegen_insert_memo(p, _start_mark, _loop0_74_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025547 D(p->level--);
25548 return _seq;
25549}
25550
Brandt Bucher145bf262021-02-26 14:51:55 -080025551// _loop1_75: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025552static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025553_loop1_75_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025554{
25555 D(p->level++);
25556 if (p->error_indicator) {
25557 D(p->level--);
25558 return NULL;
25559 }
25560 void *_res = NULL;
25561 int _mark = p->mark;
25562 int _start_mark = p->mark;
25563 void **_children = PyMem_Malloc(sizeof(void *));
25564 if (!_children) {
25565 p->error_indicator = 1;
25566 PyErr_NoMemory();
25567 D(p->level--);
25568 return NULL;
25569 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025570 Py_ssize_t _children_capacity = 1;
25571 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025572 { // param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025573 if (p->error_indicator) {
25574 D(p->level--);
25575 return NULL;
25576 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025577 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 +030025578 NameDefaultPair* param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025579 while (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025580 (param_with_default_var = param_with_default_rule(p)) // param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025581 )
25582 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025583 _res = param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025584 if (_n == _children_capacity) {
25585 _children_capacity *= 2;
25586 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25587 if (!_new_children) {
25588 p->error_indicator = 1;
25589 PyErr_NoMemory();
25590 D(p->level--);
25591 return NULL;
25592 }
25593 _children = _new_children;
25594 }
25595 _children[_n++] = _res;
25596 _mark = p->mark;
25597 }
25598 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025599 D(fprintf(stderr, "%*c%s _loop1_75[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025600 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025601 }
25602 if (_n == 0 || p->error_indicator) {
25603 PyMem_Free(_children);
25604 D(p->level--);
25605 return NULL;
25606 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025607 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025608 if (!_seq) {
25609 PyMem_Free(_children);
25610 p->error_indicator = 1;
25611 PyErr_NoMemory();
25612 D(p->level--);
25613 return NULL;
25614 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025615 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025616 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025617 _PyPegen_insert_memo(p, _start_mark, _loop1_75_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025618 D(p->level--);
25619 return _seq;
25620}
25621
Brandt Bucher145bf262021-02-26 14:51:55 -080025622// _loop1_76: param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025623static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025624_loop1_76_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025625{
25626 D(p->level++);
25627 if (p->error_indicator) {
25628 D(p->level--);
25629 return NULL;
25630 }
25631 void *_res = NULL;
25632 int _mark = p->mark;
25633 int _start_mark = p->mark;
25634 void **_children = PyMem_Malloc(sizeof(void *));
25635 if (!_children) {
25636 p->error_indicator = 1;
25637 PyErr_NoMemory();
25638 D(p->level--);
25639 return NULL;
25640 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025641 Py_ssize_t _children_capacity = 1;
25642 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025643 { // param_no_default
25644 if (p->error_indicator) {
25645 D(p->level--);
25646 return NULL;
25647 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025648 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 +010025649 arg_ty param_no_default_var;
25650 while (
25651 (param_no_default_var = param_no_default_rule(p)) // param_no_default
25652 )
25653 {
25654 _res = param_no_default_var;
25655 if (_n == _children_capacity) {
25656 _children_capacity *= 2;
25657 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25658 if (!_new_children) {
25659 p->error_indicator = 1;
25660 PyErr_NoMemory();
25661 D(p->level--);
25662 return NULL;
25663 }
25664 _children = _new_children;
25665 }
25666 _children[_n++] = _res;
25667 _mark = p->mark;
25668 }
25669 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025670 D(fprintf(stderr, "%*c%s _loop1_76[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025671 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
25672 }
25673 if (_n == 0 || p->error_indicator) {
25674 PyMem_Free(_children);
25675 D(p->level--);
25676 return NULL;
25677 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025678 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025679 if (!_seq) {
25680 PyMem_Free(_children);
25681 p->error_indicator = 1;
25682 PyErr_NoMemory();
25683 D(p->level--);
25684 return NULL;
25685 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025686 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025687 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025688 _PyPegen_insert_memo(p, _start_mark, _loop1_76_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025689 D(p->level--);
25690 return _seq;
25691}
25692
Brandt Bucher145bf262021-02-26 14:51:55 -080025693// _loop1_77: param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025694static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025695_loop1_77_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025696{
25697 D(p->level++);
25698 if (p->error_indicator) {
25699 D(p->level--);
25700 return NULL;
25701 }
25702 void *_res = NULL;
25703 int _mark = p->mark;
25704 int _start_mark = p->mark;
25705 void **_children = PyMem_Malloc(sizeof(void *));
25706 if (!_children) {
25707 p->error_indicator = 1;
25708 PyErr_NoMemory();
25709 D(p->level--);
25710 return NULL;
25711 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025712 Py_ssize_t _children_capacity = 1;
25713 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025714 { // param_no_default
25715 if (p->error_indicator) {
25716 D(p->level--);
25717 return NULL;
25718 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025719 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 +010025720 arg_ty param_no_default_var;
25721 while (
25722 (param_no_default_var = param_no_default_rule(p)) // param_no_default
25723 )
25724 {
25725 _res = param_no_default_var;
25726 if (_n == _children_capacity) {
25727 _children_capacity *= 2;
25728 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25729 if (!_new_children) {
25730 p->error_indicator = 1;
25731 PyErr_NoMemory();
25732 D(p->level--);
25733 return NULL;
25734 }
25735 _children = _new_children;
25736 }
25737 _children[_n++] = _res;
25738 _mark = p->mark;
25739 }
25740 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025741 D(fprintf(stderr, "%*c%s _loop1_77[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025742 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
25743 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025744 if (_n == 0 || p->error_indicator) {
25745 PyMem_Free(_children);
25746 D(p->level--);
25747 return NULL;
25748 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025749 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025750 if (!_seq) {
25751 PyMem_Free(_children);
25752 p->error_indicator = 1;
25753 PyErr_NoMemory();
25754 D(p->level--);
25755 return NULL;
25756 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025757 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025758 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025759 _PyPegen_insert_memo(p, _start_mark, _loop1_77_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025760 D(p->level--);
25761 return _seq;
25762}
25763
Brandt Bucher145bf262021-02-26 14:51:55 -080025764// _loop0_78: param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025765static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025766_loop0_78_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025767{
25768 D(p->level++);
25769 if (p->error_indicator) {
25770 D(p->level--);
25771 return NULL;
25772 }
25773 void *_res = NULL;
25774 int _mark = p->mark;
25775 int _start_mark = p->mark;
25776 void **_children = PyMem_Malloc(sizeof(void *));
25777 if (!_children) {
25778 p->error_indicator = 1;
25779 PyErr_NoMemory();
25780 D(p->level--);
25781 return NULL;
25782 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025783 Py_ssize_t _children_capacity = 1;
25784 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025785 { // param_no_default
25786 if (p->error_indicator) {
25787 D(p->level--);
25788 return NULL;
25789 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025790 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 +010025791 arg_ty param_no_default_var;
25792 while (
25793 (param_no_default_var = param_no_default_rule(p)) // param_no_default
25794 )
25795 {
25796 _res = param_no_default_var;
25797 if (_n == _children_capacity) {
25798 _children_capacity *= 2;
25799 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25800 if (!_new_children) {
25801 p->error_indicator = 1;
25802 PyErr_NoMemory();
25803 D(p->level--);
25804 return NULL;
25805 }
25806 _children = _new_children;
25807 }
25808 _children[_n++] = _res;
25809 _mark = p->mark;
25810 }
25811 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025812 D(fprintf(stderr, "%*c%s _loop0_78[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025813 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
25814 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025815 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025816 if (!_seq) {
25817 PyMem_Free(_children);
25818 p->error_indicator = 1;
25819 PyErr_NoMemory();
25820 D(p->level--);
25821 return NULL;
25822 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025823 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025824 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025825 _PyPegen_insert_memo(p, _start_mark, _loop0_78_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025826 D(p->level--);
25827 return _seq;
25828}
25829
Brandt Bucher145bf262021-02-26 14:51:55 -080025830// _loop1_79: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025831static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025832_loop1_79_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025833{
25834 D(p->level++);
25835 if (p->error_indicator) {
25836 D(p->level--);
25837 return NULL;
25838 }
25839 void *_res = NULL;
25840 int _mark = p->mark;
25841 int _start_mark = p->mark;
25842 void **_children = PyMem_Malloc(sizeof(void *));
25843 if (!_children) {
25844 p->error_indicator = 1;
25845 PyErr_NoMemory();
25846 D(p->level--);
25847 return NULL;
25848 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025849 Py_ssize_t _children_capacity = 1;
25850 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025851 { // param_with_default
25852 if (p->error_indicator) {
25853 D(p->level--);
25854 return NULL;
25855 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025856 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 +010025857 NameDefaultPair* param_with_default_var;
25858 while (
25859 (param_with_default_var = param_with_default_rule(p)) // param_with_default
25860 )
25861 {
25862 _res = param_with_default_var;
25863 if (_n == _children_capacity) {
25864 _children_capacity *= 2;
25865 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25866 if (!_new_children) {
25867 p->error_indicator = 1;
25868 PyErr_NoMemory();
25869 D(p->level--);
25870 return NULL;
25871 }
25872 _children = _new_children;
25873 }
25874 _children[_n++] = _res;
25875 _mark = p->mark;
25876 }
25877 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025878 D(fprintf(stderr, "%*c%s _loop1_79[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025879 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
25880 }
25881 if (_n == 0 || p->error_indicator) {
25882 PyMem_Free(_children);
25883 D(p->level--);
25884 return NULL;
25885 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025886 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025887 if (!_seq) {
25888 PyMem_Free(_children);
25889 p->error_indicator = 1;
25890 PyErr_NoMemory();
25891 D(p->level--);
25892 return NULL;
25893 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025894 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025895 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025896 _PyPegen_insert_memo(p, _start_mark, _loop1_79_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025897 D(p->level--);
25898 return _seq;
25899}
25900
Brandt Bucher145bf262021-02-26 14:51:55 -080025901// _loop0_80: param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025902static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025903_loop0_80_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025904{
25905 D(p->level++);
25906 if (p->error_indicator) {
25907 D(p->level--);
25908 return NULL;
25909 }
25910 void *_res = NULL;
25911 int _mark = p->mark;
25912 int _start_mark = p->mark;
25913 void **_children = PyMem_Malloc(sizeof(void *));
25914 if (!_children) {
25915 p->error_indicator = 1;
25916 PyErr_NoMemory();
25917 D(p->level--);
25918 return NULL;
25919 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025920 Py_ssize_t _children_capacity = 1;
25921 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025922 { // param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025923 if (p->error_indicator) {
25924 D(p->level--);
25925 return NULL;
25926 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025927 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 +030025928 arg_ty param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025929 while (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025930 (param_no_default_var = param_no_default_rule(p)) // param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025931 )
25932 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025933 _res = param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025934 if (_n == _children_capacity) {
25935 _children_capacity *= 2;
25936 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25937 if (!_new_children) {
25938 p->error_indicator = 1;
25939 PyErr_NoMemory();
25940 D(p->level--);
25941 return NULL;
25942 }
25943 _children = _new_children;
25944 }
25945 _children[_n++] = _res;
25946 _mark = p->mark;
25947 }
25948 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025949 D(fprintf(stderr, "%*c%s _loop0_80[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025950 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025951 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025952 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025953 if (!_seq) {
25954 PyMem_Free(_children);
25955 p->error_indicator = 1;
25956 PyErr_NoMemory();
25957 D(p->level--);
25958 return NULL;
25959 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025960 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025961 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025962 _PyPegen_insert_memo(p, _start_mark, _loop0_80_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025963 D(p->level--);
25964 return _seq;
25965}
25966
Brandt Bucher145bf262021-02-26 14:51:55 -080025967// _loop1_81: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025968static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025969_loop1_81_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025970{
25971 D(p->level++);
25972 if (p->error_indicator) {
25973 D(p->level--);
25974 return NULL;
25975 }
25976 void *_res = NULL;
25977 int _mark = p->mark;
25978 int _start_mark = p->mark;
25979 void **_children = PyMem_Malloc(sizeof(void *));
25980 if (!_children) {
25981 p->error_indicator = 1;
25982 PyErr_NoMemory();
25983 D(p->level--);
25984 return NULL;
25985 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025986 Py_ssize_t _children_capacity = 1;
25987 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025988 { // param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025989 if (p->error_indicator) {
25990 D(p->level--);
25991 return NULL;
25992 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025993 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 +030025994 NameDefaultPair* param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025995 while (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025996 (param_with_default_var = param_with_default_rule(p)) // param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025997 )
25998 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025999 _res = param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026000 if (_n == _children_capacity) {
26001 _children_capacity *= 2;
26002 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26003 if (!_new_children) {
26004 p->error_indicator = 1;
26005 PyErr_NoMemory();
26006 D(p->level--);
26007 return NULL;
26008 }
26009 _children = _new_children;
26010 }
26011 _children[_n++] = _res;
26012 _mark = p->mark;
26013 }
26014 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026015 D(fprintf(stderr, "%*c%s _loop1_81[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026016 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026017 }
26018 if (_n == 0 || p->error_indicator) {
26019 PyMem_Free(_children);
26020 D(p->level--);
26021 return NULL;
26022 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026023 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026024 if (!_seq) {
26025 PyMem_Free(_children);
26026 p->error_indicator = 1;
26027 PyErr_NoMemory();
26028 D(p->level--);
26029 return NULL;
26030 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026031 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026032 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026033 _PyPegen_insert_memo(p, _start_mark, _loop1_81_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026034 D(p->level--);
26035 return _seq;
26036}
26037
Brandt Bucher145bf262021-02-26 14:51:55 -080026038// _loop0_82: param_maybe_default
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026039static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026040_loop0_82_rule(Parser *p)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026041{
26042 D(p->level++);
26043 if (p->error_indicator) {
26044 D(p->level--);
26045 return NULL;
26046 }
26047 void *_res = NULL;
26048 int _mark = p->mark;
26049 int _start_mark = p->mark;
26050 void **_children = PyMem_Malloc(sizeof(void *));
26051 if (!_children) {
26052 p->error_indicator = 1;
26053 PyErr_NoMemory();
26054 D(p->level--);
26055 return NULL;
26056 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026057 Py_ssize_t _children_capacity = 1;
26058 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026059 { // param_maybe_default
26060 if (p->error_indicator) {
26061 D(p->level--);
26062 return NULL;
26063 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026064 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 +030026065 NameDefaultPair* param_maybe_default_var;
26066 while (
26067 (param_maybe_default_var = param_maybe_default_rule(p)) // param_maybe_default
26068 )
26069 {
26070 _res = param_maybe_default_var;
26071 if (_n == _children_capacity) {
26072 _children_capacity *= 2;
26073 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26074 if (!_new_children) {
26075 p->error_indicator = 1;
26076 PyErr_NoMemory();
26077 D(p->level--);
26078 return NULL;
26079 }
26080 _children = _new_children;
26081 }
26082 _children[_n++] = _res;
26083 _mark = p->mark;
26084 }
26085 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026086 D(fprintf(stderr, "%*c%s _loop0_82[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026087 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_maybe_default"));
26088 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026089 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026090 if (!_seq) {
26091 PyMem_Free(_children);
26092 p->error_indicator = 1;
26093 PyErr_NoMemory();
26094 D(p->level--);
26095 return NULL;
26096 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026097 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026098 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026099 _PyPegen_insert_memo(p, _start_mark, _loop0_82_type, _seq);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026100 D(p->level--);
26101 return _seq;
26102}
26103
Brandt Bucher145bf262021-02-26 14:51:55 -080026104// _loop1_83: param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026105static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026106_loop1_83_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026107{
26108 D(p->level++);
26109 if (p->error_indicator) {
26110 D(p->level--);
26111 return NULL;
26112 }
26113 void *_res = NULL;
26114 int _mark = p->mark;
26115 int _start_mark = p->mark;
26116 void **_children = PyMem_Malloc(sizeof(void *));
26117 if (!_children) {
26118 p->error_indicator = 1;
26119 PyErr_NoMemory();
26120 D(p->level--);
26121 return NULL;
26122 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026123 Py_ssize_t _children_capacity = 1;
26124 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026125 { // param_maybe_default
26126 if (p->error_indicator) {
26127 D(p->level--);
26128 return NULL;
26129 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026130 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 +030026131 NameDefaultPair* param_maybe_default_var;
26132 while (
26133 (param_maybe_default_var = param_maybe_default_rule(p)) // param_maybe_default
26134 )
26135 {
26136 _res = param_maybe_default_var;
26137 if (_n == _children_capacity) {
26138 _children_capacity *= 2;
26139 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26140 if (!_new_children) {
26141 p->error_indicator = 1;
26142 PyErr_NoMemory();
26143 D(p->level--);
26144 return NULL;
26145 }
26146 _children = _new_children;
26147 }
26148 _children[_n++] = _res;
26149 _mark = p->mark;
26150 }
26151 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026152 D(fprintf(stderr, "%*c%s _loop1_83[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026153 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_maybe_default"));
26154 }
26155 if (_n == 0 || p->error_indicator) {
26156 PyMem_Free(_children);
26157 D(p->level--);
26158 return NULL;
26159 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026160 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026161 if (!_seq) {
26162 PyMem_Free(_children);
26163 p->error_indicator = 1;
26164 PyErr_NoMemory();
26165 D(p->level--);
26166 return NULL;
26167 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026168 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026169 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026170 _PyPegen_insert_memo(p, _start_mark, _loop1_83_type, _seq);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026171 D(p->level--);
26172 return _seq;
26173}
26174
Brandt Bucher145bf262021-02-26 14:51:55 -080026175// _loop1_84: ('@' named_expression NEWLINE)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026176static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026177_loop1_84_rule(Parser *p)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026178{
26179 D(p->level++);
26180 if (p->error_indicator) {
26181 D(p->level--);
26182 return NULL;
26183 }
26184 void *_res = NULL;
26185 int _mark = p->mark;
26186 int _start_mark = p->mark;
26187 void **_children = PyMem_Malloc(sizeof(void *));
26188 if (!_children) {
26189 p->error_indicator = 1;
26190 PyErr_NoMemory();
26191 D(p->level--);
26192 return NULL;
26193 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026194 Py_ssize_t _children_capacity = 1;
26195 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026196 { // ('@' named_expression NEWLINE)
26197 if (p->error_indicator) {
26198 D(p->level--);
26199 return NULL;
26200 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026201 D(fprintf(stderr, "%*c> _loop1_84[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('@' named_expression NEWLINE)"));
Pablo Galindoe53f72a2021-06-04 00:11:43 +010026202 void *_tmp_183_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026203 while (
Pablo Galindoe53f72a2021-06-04 00:11:43 +010026204 (_tmp_183_var = _tmp_183_rule(p)) // '@' named_expression NEWLINE
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026205 )
26206 {
Pablo Galindoe53f72a2021-06-04 00:11:43 +010026207 _res = _tmp_183_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026208 if (_n == _children_capacity) {
26209 _children_capacity *= 2;
26210 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26211 if (!_new_children) {
26212 p->error_indicator = 1;
26213 PyErr_NoMemory();
26214 D(p->level--);
26215 return NULL;
26216 }
26217 _children = _new_children;
26218 }
26219 _children[_n++] = _res;
26220 _mark = p->mark;
26221 }
26222 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026223 D(fprintf(stderr, "%*c%s _loop1_84[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026224 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('@' named_expression NEWLINE)"));
26225 }
26226 if (_n == 0 || p->error_indicator) {
26227 PyMem_Free(_children);
26228 D(p->level--);
26229 return NULL;
26230 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026231 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026232 if (!_seq) {
26233 PyMem_Free(_children);
26234 p->error_indicator = 1;
26235 PyErr_NoMemory();
26236 D(p->level--);
26237 return NULL;
26238 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026239 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026240 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026241 _PyPegen_insert_memo(p, _start_mark, _loop1_84_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026242 D(p->level--);
26243 return _seq;
26244}
26245
Brandt Bucher145bf262021-02-26 14:51:55 -080026246// _tmp_85: '(' arguments? ')'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026247static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080026248_tmp_85_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026249{
26250 D(p->level++);
26251 if (p->error_indicator) {
26252 D(p->level--);
26253 return NULL;
26254 }
26255 void * _res = NULL;
26256 int _mark = p->mark;
26257 { // '(' arguments? ')'
26258 if (p->error_indicator) {
26259 D(p->level--);
26260 return NULL;
26261 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026262 D(fprintf(stderr, "%*c> _tmp_85[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026263 Token * _literal;
26264 Token * _literal_1;
26265 void *z;
26266 if (
26267 (_literal = _PyPegen_expect_token(p, 7)) // token='('
26268 &&
26269 (z = arguments_rule(p), 1) // arguments?
26270 &&
26271 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
26272 )
26273 {
Brandt Bucher145bf262021-02-26 14:51:55 -080026274 D(fprintf(stderr, "%*c+ _tmp_85[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026275 _res = z;
26276 if (_res == NULL && PyErr_Occurred()) {
26277 p->error_indicator = 1;
26278 D(p->level--);
26279 return NULL;
26280 }
26281 goto done;
26282 }
26283 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026284 D(fprintf(stderr, "%*c%s _tmp_85[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026285 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' arguments? ')'"));
26286 }
26287 _res = NULL;
26288 done:
26289 D(p->level--);
26290 return _res;
26291}
26292
Brandt Bucher145bf262021-02-26 14:51:55 -080026293// _loop1_86: (',' star_expression)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026294static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026295_loop1_86_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026296{
26297 D(p->level++);
26298 if (p->error_indicator) {
26299 D(p->level--);
26300 return NULL;
26301 }
26302 void *_res = NULL;
26303 int _mark = p->mark;
26304 int _start_mark = p->mark;
26305 void **_children = PyMem_Malloc(sizeof(void *));
26306 if (!_children) {
26307 p->error_indicator = 1;
26308 PyErr_NoMemory();
26309 D(p->level--);
26310 return NULL;
26311 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026312 Py_ssize_t _children_capacity = 1;
26313 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026314 { // (',' star_expression)
26315 if (p->error_indicator) {
26316 D(p->level--);
26317 return NULL;
26318 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026319 D(fprintf(stderr, "%*c> _loop1_86[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' star_expression)"));
Pablo Galindoe53f72a2021-06-04 00:11:43 +010026320 void *_tmp_184_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026321 while (
Pablo Galindoe53f72a2021-06-04 00:11:43 +010026322 (_tmp_184_var = _tmp_184_rule(p)) // ',' star_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026323 )
26324 {
Pablo Galindoe53f72a2021-06-04 00:11:43 +010026325 _res = _tmp_184_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026326 if (_n == _children_capacity) {
26327 _children_capacity *= 2;
26328 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26329 if (!_new_children) {
26330 p->error_indicator = 1;
26331 PyErr_NoMemory();
26332 D(p->level--);
26333 return NULL;
26334 }
26335 _children = _new_children;
26336 }
26337 _children[_n++] = _res;
26338 _mark = p->mark;
26339 }
26340 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026341 D(fprintf(stderr, "%*c%s _loop1_86[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026342 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' star_expression)"));
26343 }
26344 if (_n == 0 || p->error_indicator) {
26345 PyMem_Free(_children);
26346 D(p->level--);
26347 return NULL;
26348 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026349 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026350 if (!_seq) {
26351 PyMem_Free(_children);
26352 p->error_indicator = 1;
26353 PyErr_NoMemory();
26354 D(p->level--);
26355 return NULL;
26356 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026357 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026358 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026359 _PyPegen_insert_memo(p, _start_mark, _loop1_86_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026360 D(p->level--);
26361 return _seq;
26362}
26363
Brandt Bucher145bf262021-02-26 14:51:55 -080026364// _loop0_88: ',' star_named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026365static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026366_loop0_88_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026367{
26368 D(p->level++);
26369 if (p->error_indicator) {
26370 D(p->level--);
26371 return NULL;
26372 }
26373 void *_res = NULL;
26374 int _mark = p->mark;
26375 int _start_mark = p->mark;
26376 void **_children = PyMem_Malloc(sizeof(void *));
26377 if (!_children) {
26378 p->error_indicator = 1;
26379 PyErr_NoMemory();
26380 D(p->level--);
26381 return NULL;
26382 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026383 Py_ssize_t _children_capacity = 1;
26384 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026385 { // ',' star_named_expression
26386 if (p->error_indicator) {
26387 D(p->level--);
26388 return NULL;
26389 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026390 D(fprintf(stderr, "%*c> _loop0_88[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_named_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026391 Token * _literal;
26392 expr_ty elem;
26393 while (
26394 (_literal = _PyPegen_expect_token(p, 12)) // token=','
26395 &&
26396 (elem = star_named_expression_rule(p)) // star_named_expression
26397 )
26398 {
26399 _res = elem;
26400 if (_res == NULL && PyErr_Occurred()) {
26401 p->error_indicator = 1;
26402 PyMem_Free(_children);
26403 D(p->level--);
26404 return NULL;
26405 }
26406 if (_n == _children_capacity) {
26407 _children_capacity *= 2;
26408 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26409 if (!_new_children) {
26410 p->error_indicator = 1;
26411 PyErr_NoMemory();
26412 D(p->level--);
26413 return NULL;
26414 }
26415 _children = _new_children;
26416 }
26417 _children[_n++] = _res;
26418 _mark = p->mark;
26419 }
26420 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026421 D(fprintf(stderr, "%*c%s _loop0_88[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026422 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_named_expression"));
26423 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026424 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026425 if (!_seq) {
26426 PyMem_Free(_children);
26427 p->error_indicator = 1;
26428 PyErr_NoMemory();
26429 D(p->level--);
26430 return NULL;
26431 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026432 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026433 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026434 _PyPegen_insert_memo(p, _start_mark, _loop0_88_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026435 D(p->level--);
26436 return _seq;
26437}
26438
Brandt Bucher145bf262021-02-26 14:51:55 -080026439// _gather_87: star_named_expression _loop0_88
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026440static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026441_gather_87_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026442{
26443 D(p->level++);
26444 if (p->error_indicator) {
26445 D(p->level--);
26446 return NULL;
26447 }
26448 asdl_seq * _res = NULL;
26449 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026450 { // star_named_expression _loop0_88
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026451 if (p->error_indicator) {
26452 D(p->level--);
26453 return NULL;
26454 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026455 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 +010026456 expr_ty elem;
26457 asdl_seq * seq;
26458 if (
26459 (elem = star_named_expression_rule(p)) // star_named_expression
26460 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080026461 (seq = _loop0_88_rule(p)) // _loop0_88
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026462 )
26463 {
Brandt Bucher145bf262021-02-26 14:51:55 -080026464 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 +010026465 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
26466 goto done;
26467 }
26468 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026469 D(fprintf(stderr, "%*c%s _gather_87[%d-%d]: %s failed!\n", p->level, ' ',
26470 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression _loop0_88"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026471 }
26472 _res = NULL;
26473 done:
26474 D(p->level--);
26475 return _res;
26476}
26477
Brandt Bucher145bf262021-02-26 14:51:55 -080026478// _loop1_89: (',' expression)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026479static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026480_loop1_89_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026481{
26482 D(p->level++);
26483 if (p->error_indicator) {
26484 D(p->level--);
26485 return NULL;
26486 }
26487 void *_res = NULL;
26488 int _mark = p->mark;
26489 int _start_mark = p->mark;
26490 void **_children = PyMem_Malloc(sizeof(void *));
26491 if (!_children) {
26492 p->error_indicator = 1;
26493 PyErr_NoMemory();
26494 D(p->level--);
26495 return NULL;
26496 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026497 Py_ssize_t _children_capacity = 1;
26498 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026499 { // (',' expression)
26500 if (p->error_indicator) {
26501 D(p->level--);
26502 return NULL;
26503 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026504 D(fprintf(stderr, "%*c> _loop1_89[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' expression)"));
Pablo Galindoe53f72a2021-06-04 00:11:43 +010026505 void *_tmp_185_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026506 while (
Pablo Galindoe53f72a2021-06-04 00:11:43 +010026507 (_tmp_185_var = _tmp_185_rule(p)) // ',' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026508 )
26509 {
Pablo Galindoe53f72a2021-06-04 00:11:43 +010026510 _res = _tmp_185_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026511 if (_n == _children_capacity) {
26512 _children_capacity *= 2;
26513 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26514 if (!_new_children) {
26515 p->error_indicator = 1;
26516 PyErr_NoMemory();
26517 D(p->level--);
26518 return NULL;
26519 }
26520 _children = _new_children;
26521 }
26522 _children[_n++] = _res;
26523 _mark = p->mark;
26524 }
26525 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026526 D(fprintf(stderr, "%*c%s _loop1_89[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026527 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' expression)"));
26528 }
26529 if (_n == 0 || p->error_indicator) {
26530 PyMem_Free(_children);
26531 D(p->level--);
26532 return NULL;
26533 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026534 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026535 if (!_seq) {
26536 PyMem_Free(_children);
26537 p->error_indicator = 1;
26538 PyErr_NoMemory();
26539 D(p->level--);
26540 return NULL;
26541 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026542 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026543 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026544 _PyPegen_insert_memo(p, _start_mark, _loop1_89_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026545 D(p->level--);
26546 return _seq;
26547}
26548
Brandt Bucher145bf262021-02-26 14:51:55 -080026549// _loop0_90: lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026550static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026551_loop0_90_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026552{
26553 D(p->level++);
26554 if (p->error_indicator) {
26555 D(p->level--);
26556 return NULL;
26557 }
26558 void *_res = NULL;
26559 int _mark = p->mark;
26560 int _start_mark = p->mark;
26561 void **_children = PyMem_Malloc(sizeof(void *));
26562 if (!_children) {
26563 p->error_indicator = 1;
26564 PyErr_NoMemory();
26565 D(p->level--);
26566 return NULL;
26567 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026568 Py_ssize_t _children_capacity = 1;
26569 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026570 { // lambda_param_no_default
26571 if (p->error_indicator) {
26572 D(p->level--);
26573 return NULL;
26574 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026575 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 +010026576 arg_ty lambda_param_no_default_var;
26577 while (
26578 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
26579 )
26580 {
26581 _res = lambda_param_no_default_var;
26582 if (_n == _children_capacity) {
26583 _children_capacity *= 2;
26584 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26585 if (!_new_children) {
26586 p->error_indicator = 1;
26587 PyErr_NoMemory();
26588 D(p->level--);
26589 return NULL;
26590 }
26591 _children = _new_children;
26592 }
26593 _children[_n++] = _res;
26594 _mark = p->mark;
26595 }
26596 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026597 D(fprintf(stderr, "%*c%s _loop0_90[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026598 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026599 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026600 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026601 if (!_seq) {
26602 PyMem_Free(_children);
26603 p->error_indicator = 1;
26604 PyErr_NoMemory();
26605 D(p->level--);
26606 return NULL;
26607 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026608 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026609 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026610 _PyPegen_insert_memo(p, _start_mark, _loop0_90_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026611 D(p->level--);
26612 return _seq;
26613}
26614
Brandt Bucher145bf262021-02-26 14:51:55 -080026615// _loop0_91: lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026616static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026617_loop0_91_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026618{
26619 D(p->level++);
26620 if (p->error_indicator) {
26621 D(p->level--);
26622 return NULL;
26623 }
26624 void *_res = NULL;
26625 int _mark = p->mark;
26626 int _start_mark = p->mark;
26627 void **_children = PyMem_Malloc(sizeof(void *));
26628 if (!_children) {
26629 p->error_indicator = 1;
26630 PyErr_NoMemory();
26631 D(p->level--);
26632 return NULL;
26633 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026634 Py_ssize_t _children_capacity = 1;
26635 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026636 { // lambda_param_with_default
26637 if (p->error_indicator) {
26638 D(p->level--);
26639 return NULL;
26640 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026641 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 +010026642 NameDefaultPair* lambda_param_with_default_var;
26643 while (
26644 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
26645 )
26646 {
26647 _res = lambda_param_with_default_var;
26648 if (_n == _children_capacity) {
26649 _children_capacity *= 2;
26650 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26651 if (!_new_children) {
26652 p->error_indicator = 1;
26653 PyErr_NoMemory();
26654 D(p->level--);
26655 return NULL;
26656 }
26657 _children = _new_children;
26658 }
26659 _children[_n++] = _res;
26660 _mark = p->mark;
26661 }
26662 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026663 D(fprintf(stderr, "%*c%s _loop0_91[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026664 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
26665 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026666 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026667 if (!_seq) {
26668 PyMem_Free(_children);
26669 p->error_indicator = 1;
26670 PyErr_NoMemory();
26671 D(p->level--);
26672 return NULL;
26673 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026674 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026675 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026676 _PyPegen_insert_memo(p, _start_mark, _loop0_91_type, _seq);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026677 D(p->level--);
26678 return _seq;
26679}
26680
Brandt Bucher145bf262021-02-26 14:51:55 -080026681// _loop0_92: lambda_param_with_default
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026682static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026683_loop0_92_rule(Parser *p)
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026684{
26685 D(p->level++);
26686 if (p->error_indicator) {
26687 D(p->level--);
26688 return NULL;
26689 }
26690 void *_res = NULL;
26691 int _mark = p->mark;
26692 int _start_mark = p->mark;
26693 void **_children = PyMem_Malloc(sizeof(void *));
26694 if (!_children) {
26695 p->error_indicator = 1;
26696 PyErr_NoMemory();
26697 D(p->level--);
26698 return NULL;
26699 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026700 Py_ssize_t _children_capacity = 1;
26701 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026702 { // lambda_param_with_default
26703 if (p->error_indicator) {
26704 D(p->level--);
26705 return NULL;
26706 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026707 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 +000026708 NameDefaultPair* lambda_param_with_default_var;
26709 while (
26710 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
26711 )
26712 {
26713 _res = lambda_param_with_default_var;
26714 if (_n == _children_capacity) {
26715 _children_capacity *= 2;
26716 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26717 if (!_new_children) {
26718 p->error_indicator = 1;
26719 PyErr_NoMemory();
26720 D(p->level--);
26721 return NULL;
26722 }
26723 _children = _new_children;
26724 }
26725 _children[_n++] = _res;
26726 _mark = p->mark;
26727 }
26728 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026729 D(fprintf(stderr, "%*c%s _loop0_92[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026730 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
26731 }
26732 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
26733 if (!_seq) {
26734 PyMem_Free(_children);
26735 p->error_indicator = 1;
26736 PyErr_NoMemory();
26737 D(p->level--);
26738 return NULL;
26739 }
26740 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
26741 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026742 _PyPegen_insert_memo(p, _start_mark, _loop0_92_type, _seq);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026743 D(p->level--);
26744 return _seq;
26745}
26746
Brandt Bucher145bf262021-02-26 14:51:55 -080026747// _loop1_93: lambda_param_no_default
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026748static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026749_loop1_93_rule(Parser *p)
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026750{
26751 D(p->level++);
26752 if (p->error_indicator) {
26753 D(p->level--);
26754 return NULL;
26755 }
26756 void *_res = NULL;
26757 int _mark = p->mark;
26758 int _start_mark = p->mark;
26759 void **_children = PyMem_Malloc(sizeof(void *));
26760 if (!_children) {
26761 p->error_indicator = 1;
26762 PyErr_NoMemory();
26763 D(p->level--);
26764 return NULL;
26765 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026766 Py_ssize_t _children_capacity = 1;
26767 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026768 { // lambda_param_no_default
26769 if (p->error_indicator) {
26770 D(p->level--);
26771 return NULL;
26772 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026773 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 +000026774 arg_ty lambda_param_no_default_var;
26775 while (
26776 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
26777 )
26778 {
26779 _res = lambda_param_no_default_var;
26780 if (_n == _children_capacity) {
26781 _children_capacity *= 2;
26782 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26783 if (!_new_children) {
26784 p->error_indicator = 1;
26785 PyErr_NoMemory();
26786 D(p->level--);
26787 return NULL;
26788 }
26789 _children = _new_children;
26790 }
26791 _children[_n++] = _res;
26792 _mark = p->mark;
26793 }
26794 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026795 D(fprintf(stderr, "%*c%s _loop1_93[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026796 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
26797 }
26798 if (_n == 0 || p->error_indicator) {
26799 PyMem_Free(_children);
26800 D(p->level--);
26801 return NULL;
26802 }
26803 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
26804 if (!_seq) {
26805 PyMem_Free(_children);
26806 p->error_indicator = 1;
26807 PyErr_NoMemory();
26808 D(p->level--);
26809 return NULL;
26810 }
26811 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
26812 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026813 _PyPegen_insert_memo(p, _start_mark, _loop1_93_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026814 D(p->level--);
26815 return _seq;
26816}
26817
Brandt Bucher145bf262021-02-26 14:51:55 -080026818// _loop0_94: lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026819static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026820_loop0_94_rule(Parser *p)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026821{
26822 D(p->level++);
26823 if (p->error_indicator) {
26824 D(p->level--);
26825 return NULL;
26826 }
26827 void *_res = NULL;
26828 int _mark = p->mark;
26829 int _start_mark = p->mark;
26830 void **_children = PyMem_Malloc(sizeof(void *));
26831 if (!_children) {
26832 p->error_indicator = 1;
26833 PyErr_NoMemory();
26834 D(p->level--);
26835 return NULL;
26836 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026837 Py_ssize_t _children_capacity = 1;
26838 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026839 { // lambda_param_with_default
26840 if (p->error_indicator) {
26841 D(p->level--);
26842 return NULL;
26843 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026844 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 +030026845 NameDefaultPair* lambda_param_with_default_var;
26846 while (
26847 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
26848 )
26849 {
26850 _res = lambda_param_with_default_var;
26851 if (_n == _children_capacity) {
26852 _children_capacity *= 2;
26853 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26854 if (!_new_children) {
26855 p->error_indicator = 1;
26856 PyErr_NoMemory();
26857 D(p->level--);
26858 return NULL;
26859 }
26860 _children = _new_children;
26861 }
26862 _children[_n++] = _res;
26863 _mark = p->mark;
26864 }
26865 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026866 D(fprintf(stderr, "%*c%s _loop0_94[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026867 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
26868 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026869 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026870 if (!_seq) {
26871 PyMem_Free(_children);
26872 p->error_indicator = 1;
26873 PyErr_NoMemory();
26874 D(p->level--);
26875 return NULL;
26876 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026877 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026878 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026879 _PyPegen_insert_memo(p, _start_mark, _loop0_94_type, _seq);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026880 D(p->level--);
26881 return _seq;
26882}
26883
Brandt Bucher145bf262021-02-26 14:51:55 -080026884// _loop1_95: lambda_param_with_default
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026885static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026886_loop1_95_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026887{
26888 D(p->level++);
26889 if (p->error_indicator) {
26890 D(p->level--);
26891 return NULL;
26892 }
26893 void *_res = NULL;
26894 int _mark = p->mark;
26895 int _start_mark = p->mark;
26896 void **_children = PyMem_Malloc(sizeof(void *));
26897 if (!_children) {
26898 p->error_indicator = 1;
26899 PyErr_NoMemory();
26900 D(p->level--);
26901 return NULL;
26902 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026903 Py_ssize_t _children_capacity = 1;
26904 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026905 { // lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026906 if (p->error_indicator) {
26907 D(p->level--);
26908 return NULL;
26909 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026910 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 +000026911 NameDefaultPair* lambda_param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026912 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026913 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026914 )
26915 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026916 _res = lambda_param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026917 if (_n == _children_capacity) {
26918 _children_capacity *= 2;
26919 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26920 if (!_new_children) {
26921 p->error_indicator = 1;
26922 PyErr_NoMemory();
26923 D(p->level--);
26924 return NULL;
26925 }
26926 _children = _new_children;
26927 }
26928 _children[_n++] = _res;
26929 _mark = p->mark;
26930 }
26931 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026932 D(fprintf(stderr, "%*c%s _loop1_95[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026933 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026934 }
26935 if (_n == 0 || p->error_indicator) {
26936 PyMem_Free(_children);
26937 D(p->level--);
26938 return NULL;
26939 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026940 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026941 if (!_seq) {
26942 PyMem_Free(_children);
26943 p->error_indicator = 1;
26944 PyErr_NoMemory();
26945 D(p->level--);
26946 return NULL;
26947 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026948 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026949 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026950 _PyPegen_insert_memo(p, _start_mark, _loop1_95_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026951 D(p->level--);
26952 return _seq;
26953}
26954
Brandt Bucher145bf262021-02-26 14:51:55 -080026955// _loop1_96: lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026956static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026957_loop1_96_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026958{
26959 D(p->level++);
26960 if (p->error_indicator) {
26961 D(p->level--);
26962 return NULL;
26963 }
26964 void *_res = NULL;
26965 int _mark = p->mark;
26966 int _start_mark = p->mark;
26967 void **_children = PyMem_Malloc(sizeof(void *));
26968 if (!_children) {
26969 p->error_indicator = 1;
26970 PyErr_NoMemory();
26971 D(p->level--);
26972 return NULL;
26973 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026974 Py_ssize_t _children_capacity = 1;
26975 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026976 { // lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026977 if (p->error_indicator) {
26978 D(p->level--);
26979 return NULL;
26980 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026981 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 +000026982 arg_ty lambda_param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026983 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026984 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026985 )
26986 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026987 _res = lambda_param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026988 if (_n == _children_capacity) {
26989 _children_capacity *= 2;
26990 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26991 if (!_new_children) {
26992 p->error_indicator = 1;
26993 PyErr_NoMemory();
26994 D(p->level--);
26995 return NULL;
26996 }
26997 _children = _new_children;
26998 }
26999 _children[_n++] = _res;
27000 _mark = p->mark;
27001 }
27002 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027003 D(fprintf(stderr, "%*c%s _loop1_96[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027004 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
27005 }
27006 if (_n == 0 || p->error_indicator) {
27007 PyMem_Free(_children);
27008 D(p->level--);
27009 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027010 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027011 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027012 if (!_seq) {
27013 PyMem_Free(_children);
27014 p->error_indicator = 1;
27015 PyErr_NoMemory();
27016 D(p->level--);
27017 return NULL;
27018 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027019 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027020 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080027021 _PyPegen_insert_memo(p, _start_mark, _loop1_96_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027022 D(p->level--);
27023 return _seq;
27024}
27025
Brandt Bucher145bf262021-02-26 14:51:55 -080027026// _loop1_97: lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027027static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027028_loop1_97_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027029{
27030 D(p->level++);
27031 if (p->error_indicator) {
27032 D(p->level--);
27033 return NULL;
27034 }
27035 void *_res = NULL;
27036 int _mark = p->mark;
27037 int _start_mark = p->mark;
27038 void **_children = PyMem_Malloc(sizeof(void *));
27039 if (!_children) {
27040 p->error_indicator = 1;
27041 PyErr_NoMemory();
27042 D(p->level--);
27043 return NULL;
27044 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027045 Py_ssize_t _children_capacity = 1;
27046 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027047 { // lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027048 if (p->error_indicator) {
27049 D(p->level--);
27050 return NULL;
27051 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027052 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 +000027053 arg_ty lambda_param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027054 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027055 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027056 )
27057 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027058 _res = lambda_param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027059 if (_n == _children_capacity) {
27060 _children_capacity *= 2;
27061 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27062 if (!_new_children) {
27063 p->error_indicator = 1;
27064 PyErr_NoMemory();
27065 D(p->level--);
27066 return NULL;
27067 }
27068 _children = _new_children;
27069 }
27070 _children[_n++] = _res;
27071 _mark = p->mark;
27072 }
27073 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027074 D(fprintf(stderr, "%*c%s _loop1_97[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027075 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027076 }
27077 if (_n == 0 || p->error_indicator) {
27078 PyMem_Free(_children);
27079 D(p->level--);
27080 return NULL;
27081 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027082 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027083 if (!_seq) {
27084 PyMem_Free(_children);
27085 p->error_indicator = 1;
27086 PyErr_NoMemory();
27087 D(p->level--);
27088 return NULL;
27089 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027090 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027091 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080027092 _PyPegen_insert_memo(p, _start_mark, _loop1_97_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027093 D(p->level--);
27094 return _seq;
27095}
27096
Brandt Bucher145bf262021-02-26 14:51:55 -080027097// _loop0_98: lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027098static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027099_loop0_98_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027100{
27101 D(p->level++);
27102 if (p->error_indicator) {
27103 D(p->level--);
27104 return NULL;
27105 }
27106 void *_res = NULL;
27107 int _mark = p->mark;
27108 int _start_mark = p->mark;
27109 void **_children = PyMem_Malloc(sizeof(void *));
27110 if (!_children) {
27111 p->error_indicator = 1;
27112 PyErr_NoMemory();
27113 D(p->level--);
27114 return NULL;
27115 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027116 Py_ssize_t _children_capacity = 1;
27117 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027118 { // lambda_param_no_default
27119 if (p->error_indicator) {
27120 D(p->level--);
27121 return NULL;
27122 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027123 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 +010027124 arg_ty lambda_param_no_default_var;
27125 while (
27126 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
27127 )
27128 {
27129 _res = lambda_param_no_default_var;
27130 if (_n == _children_capacity) {
27131 _children_capacity *= 2;
27132 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27133 if (!_new_children) {
27134 p->error_indicator = 1;
27135 PyErr_NoMemory();
27136 D(p->level--);
27137 return NULL;
27138 }
27139 _children = _new_children;
27140 }
27141 _children[_n++] = _res;
27142 _mark = p->mark;
27143 }
27144 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027145 D(fprintf(stderr, "%*c%s _loop0_98[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027146 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
27147 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027148 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027149 if (!_seq) {
27150 PyMem_Free(_children);
27151 p->error_indicator = 1;
27152 PyErr_NoMemory();
27153 D(p->level--);
27154 return NULL;
27155 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027156 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027157 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080027158 _PyPegen_insert_memo(p, _start_mark, _loop0_98_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027159 D(p->level--);
27160 return _seq;
27161}
27162
Brandt Bucher145bf262021-02-26 14:51:55 -080027163// _loop1_99: lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027164static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027165_loop1_99_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027166{
27167 D(p->level++);
27168 if (p->error_indicator) {
27169 D(p->level--);
27170 return NULL;
27171 }
27172 void *_res = NULL;
27173 int _mark = p->mark;
27174 int _start_mark = p->mark;
27175 void **_children = PyMem_Malloc(sizeof(void *));
27176 if (!_children) {
27177 p->error_indicator = 1;
27178 PyErr_NoMemory();
27179 D(p->level--);
27180 return NULL;
27181 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027182 Py_ssize_t _children_capacity = 1;
27183 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027184 { // lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027185 if (p->error_indicator) {
27186 D(p->level--);
27187 return NULL;
27188 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027189 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 +000027190 NameDefaultPair* lambda_param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027191 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027192 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027193 )
27194 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027195 _res = lambda_param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027196 if (_n == _children_capacity) {
27197 _children_capacity *= 2;
27198 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27199 if (!_new_children) {
27200 p->error_indicator = 1;
27201 PyErr_NoMemory();
27202 D(p->level--);
27203 return NULL;
27204 }
27205 _children = _new_children;
27206 }
27207 _children[_n++] = _res;
27208 _mark = p->mark;
27209 }
27210 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027211 D(fprintf(stderr, "%*c%s _loop1_99[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027212 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027213 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027214 if (_n == 0 || p->error_indicator) {
27215 PyMem_Free(_children);
27216 D(p->level--);
27217 return NULL;
27218 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027219 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027220 if (!_seq) {
27221 PyMem_Free(_children);
27222 p->error_indicator = 1;
27223 PyErr_NoMemory();
27224 D(p->level--);
27225 return NULL;
27226 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027227 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027228 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080027229 _PyPegen_insert_memo(p, _start_mark, _loop1_99_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027230 D(p->level--);
27231 return _seq;
27232}
27233
Brandt Bucher145bf262021-02-26 14:51:55 -080027234// _loop0_100: lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027235static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027236_loop0_100_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027237{
27238 D(p->level++);
27239 if (p->error_indicator) {
27240 D(p->level--);
27241 return NULL;
27242 }
27243 void *_res = NULL;
27244 int _mark = p->mark;
27245 int _start_mark = p->mark;
27246 void **_children = PyMem_Malloc(sizeof(void *));
27247 if (!_children) {
27248 p->error_indicator = 1;
27249 PyErr_NoMemory();
27250 D(p->level--);
27251 return NULL;
27252 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027253 Py_ssize_t _children_capacity = 1;
27254 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027255 { // lambda_param_no_default
27256 if (p->error_indicator) {
27257 D(p->level--);
27258 return NULL;
27259 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027260 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 +010027261 arg_ty lambda_param_no_default_var;
27262 while (
27263 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
27264 )
27265 {
27266 _res = lambda_param_no_default_var;
27267 if (_n == _children_capacity) {
27268 _children_capacity *= 2;
27269 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27270 if (!_new_children) {
27271 p->error_indicator = 1;
27272 PyErr_NoMemory();
27273 D(p->level--);
27274 return NULL;
27275 }
27276 _children = _new_children;
27277 }
27278 _children[_n++] = _res;
27279 _mark = p->mark;
27280 }
27281 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027282 D(fprintf(stderr, "%*c%s _loop0_100[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027283 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
27284 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027285 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027286 if (!_seq) {
27287 PyMem_Free(_children);
27288 p->error_indicator = 1;
27289 PyErr_NoMemory();
27290 D(p->level--);
27291 return NULL;
27292 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027293 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027294 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080027295 _PyPegen_insert_memo(p, _start_mark, _loop0_100_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027296 D(p->level--);
27297 return _seq;
27298}
27299
Brandt Bucher145bf262021-02-26 14:51:55 -080027300// _loop1_101: lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027301static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027302_loop1_101_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027303{
27304 D(p->level++);
27305 if (p->error_indicator) {
27306 D(p->level--);
27307 return NULL;
27308 }
27309 void *_res = NULL;
27310 int _mark = p->mark;
27311 int _start_mark = p->mark;
27312 void **_children = PyMem_Malloc(sizeof(void *));
27313 if (!_children) {
27314 p->error_indicator = 1;
27315 PyErr_NoMemory();
27316 D(p->level--);
27317 return NULL;
27318 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027319 Py_ssize_t _children_capacity = 1;
27320 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027321 { // lambda_param_with_default
27322 if (p->error_indicator) {
27323 D(p->level--);
27324 return NULL;
27325 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027326 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 +010027327 NameDefaultPair* lambda_param_with_default_var;
27328 while (
27329 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
27330 )
27331 {
27332 _res = lambda_param_with_default_var;
27333 if (_n == _children_capacity) {
27334 _children_capacity *= 2;
27335 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27336 if (!_new_children) {
27337 p->error_indicator = 1;
27338 PyErr_NoMemory();
27339 D(p->level--);
27340 return NULL;
27341 }
27342 _children = _new_children;
27343 }
27344 _children[_n++] = _res;
27345 _mark = p->mark;
27346 }
27347 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027348 D(fprintf(stderr, "%*c%s _loop1_101[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027349 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
27350 }
27351 if (_n == 0 || p->error_indicator) {
27352 PyMem_Free(_children);
27353 D(p->level--);
27354 return NULL;
27355 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027356 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027357 if (!_seq) {
27358 PyMem_Free(_children);
27359 p->error_indicator = 1;
27360 PyErr_NoMemory();
27361 D(p->level--);
27362 return NULL;
27363 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027364 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027365 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080027366 _PyPegen_insert_memo(p, _start_mark, _loop1_101_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027367 D(p->level--);
27368 return _seq;
27369}
27370
Brandt Bucher145bf262021-02-26 14:51:55 -080027371// _loop0_102: lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027372static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027373_loop0_102_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027374{
27375 D(p->level++);
27376 if (p->error_indicator) {
27377 D(p->level--);
27378 return NULL;
27379 }
27380 void *_res = NULL;
27381 int _mark = p->mark;
27382 int _start_mark = p->mark;
27383 void **_children = PyMem_Malloc(sizeof(void *));
27384 if (!_children) {
27385 p->error_indicator = 1;
27386 PyErr_NoMemory();
27387 D(p->level--);
27388 return NULL;
27389 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027390 Py_ssize_t _children_capacity = 1;
27391 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027392 { // lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027393 if (p->error_indicator) {
27394 D(p->level--);
27395 return NULL;
27396 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027397 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 +000027398 NameDefaultPair* lambda_param_maybe_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027399 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027400 (lambda_param_maybe_default_var = lambda_param_maybe_default_rule(p)) // lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027401 )
27402 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027403 _res = lambda_param_maybe_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027404 if (_n == _children_capacity) {
27405 _children_capacity *= 2;
27406 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27407 if (!_new_children) {
27408 p->error_indicator = 1;
27409 PyErr_NoMemory();
27410 D(p->level--);
27411 return NULL;
27412 }
27413 _children = _new_children;
27414 }
27415 _children[_n++] = _res;
27416 _mark = p->mark;
27417 }
27418 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027419 D(fprintf(stderr, "%*c%s _loop0_102[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027420 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_maybe_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027421 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027422 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027423 if (!_seq) {
27424 PyMem_Free(_children);
27425 p->error_indicator = 1;
27426 PyErr_NoMemory();
27427 D(p->level--);
27428 return NULL;
27429 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027430 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027431 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080027432 _PyPegen_insert_memo(p, _start_mark, _loop0_102_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027433 D(p->level--);
27434 return _seq;
27435}
27436
Brandt Bucher145bf262021-02-26 14:51:55 -080027437// _loop1_103: lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027438static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027439_loop1_103_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027440{
27441 D(p->level++);
27442 if (p->error_indicator) {
27443 D(p->level--);
27444 return NULL;
27445 }
27446 void *_res = NULL;
27447 int _mark = p->mark;
27448 int _start_mark = p->mark;
27449 void **_children = PyMem_Malloc(sizeof(void *));
27450 if (!_children) {
27451 p->error_indicator = 1;
27452 PyErr_NoMemory();
27453 D(p->level--);
27454 return NULL;
27455 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027456 Py_ssize_t _children_capacity = 1;
27457 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027458 { // lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027459 if (p->error_indicator) {
27460 D(p->level--);
27461 return NULL;
27462 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027463 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 +000027464 NameDefaultPair* lambda_param_maybe_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027465 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027466 (lambda_param_maybe_default_var = lambda_param_maybe_default_rule(p)) // lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027467 )
27468 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027469 _res = lambda_param_maybe_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027470 if (_n == _children_capacity) {
27471 _children_capacity *= 2;
27472 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27473 if (!_new_children) {
27474 p->error_indicator = 1;
27475 PyErr_NoMemory();
27476 D(p->level--);
27477 return NULL;
27478 }
27479 _children = _new_children;
27480 }
27481 _children[_n++] = _res;
27482 _mark = p->mark;
27483 }
27484 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027485 D(fprintf(stderr, "%*c%s _loop1_103[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027486 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_maybe_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027487 }
27488 if (_n == 0 || p->error_indicator) {
27489 PyMem_Free(_children);
27490 D(p->level--);
27491 return NULL;
27492 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027493 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027494 if (!_seq) {
27495 PyMem_Free(_children);
27496 p->error_indicator = 1;
27497 PyErr_NoMemory();
27498 D(p->level--);
27499 return NULL;
27500 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027501 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027502 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080027503 _PyPegen_insert_memo(p, _start_mark, _loop1_103_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027504 D(p->level--);
27505 return _seq;
27506}
27507
Brandt Bucher145bf262021-02-26 14:51:55 -080027508// _loop1_104: ('or' conjunction)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030027509static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027510_loop1_104_rule(Parser *p)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030027511{
27512 D(p->level++);
27513 if (p->error_indicator) {
27514 D(p->level--);
27515 return NULL;
27516 }
27517 void *_res = NULL;
27518 int _mark = p->mark;
27519 int _start_mark = p->mark;
27520 void **_children = PyMem_Malloc(sizeof(void *));
27521 if (!_children) {
27522 p->error_indicator = 1;
27523 PyErr_NoMemory();
27524 D(p->level--);
27525 return NULL;
27526 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027527 Py_ssize_t _children_capacity = 1;
27528 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027529 { // ('or' conjunction)
27530 if (p->error_indicator) {
27531 D(p->level--);
27532 return NULL;
27533 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027534 D(fprintf(stderr, "%*c> _loop1_104[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('or' conjunction)"));
Pablo Galindoe53f72a2021-06-04 00:11:43 +010027535 void *_tmp_186_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027536 while (
Pablo Galindoe53f72a2021-06-04 00:11:43 +010027537 (_tmp_186_var = _tmp_186_rule(p)) // 'or' conjunction
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027538 )
27539 {
Pablo Galindoe53f72a2021-06-04 00:11:43 +010027540 _res = _tmp_186_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027541 if (_n == _children_capacity) {
27542 _children_capacity *= 2;
27543 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27544 if (!_new_children) {
27545 p->error_indicator = 1;
27546 PyErr_NoMemory();
27547 D(p->level--);
27548 return NULL;
27549 }
27550 _children = _new_children;
27551 }
27552 _children[_n++] = _res;
27553 _mark = p->mark;
27554 }
27555 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027556 D(fprintf(stderr, "%*c%s _loop1_104[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027557 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('or' conjunction)"));
27558 }
27559 if (_n == 0 || p->error_indicator) {
27560 PyMem_Free(_children);
27561 D(p->level--);
27562 return NULL;
27563 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027564 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027565 if (!_seq) {
27566 PyMem_Free(_children);
27567 p->error_indicator = 1;
27568 PyErr_NoMemory();
27569 D(p->level--);
27570 return NULL;
27571 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027572 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027573 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080027574 _PyPegen_insert_memo(p, _start_mark, _loop1_104_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027575 D(p->level--);
27576 return _seq;
27577}
27578
Brandt Bucher145bf262021-02-26 14:51:55 -080027579// _loop1_105: ('and' inversion)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027580static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027581_loop1_105_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027582{
27583 D(p->level++);
27584 if (p->error_indicator) {
27585 D(p->level--);
27586 return NULL;
27587 }
27588 void *_res = NULL;
27589 int _mark = p->mark;
27590 int _start_mark = p->mark;
27591 void **_children = PyMem_Malloc(sizeof(void *));
27592 if (!_children) {
27593 p->error_indicator = 1;
27594 PyErr_NoMemory();
27595 D(p->level--);
27596 return NULL;
27597 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027598 Py_ssize_t _children_capacity = 1;
27599 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027600 { // ('and' inversion)
27601 if (p->error_indicator) {
27602 D(p->level--);
27603 return NULL;
27604 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027605 D(fprintf(stderr, "%*c> _loop1_105[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('and' inversion)"));
Pablo Galindoe53f72a2021-06-04 00:11:43 +010027606 void *_tmp_187_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027607 while (
Pablo Galindoe53f72a2021-06-04 00:11:43 +010027608 (_tmp_187_var = _tmp_187_rule(p)) // 'and' inversion
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027609 )
27610 {
Pablo Galindoe53f72a2021-06-04 00:11:43 +010027611 _res = _tmp_187_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027612 if (_n == _children_capacity) {
27613 _children_capacity *= 2;
27614 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27615 if (!_new_children) {
27616 p->error_indicator = 1;
27617 PyErr_NoMemory();
27618 D(p->level--);
27619 return NULL;
27620 }
27621 _children = _new_children;
27622 }
27623 _children[_n++] = _res;
27624 _mark = p->mark;
27625 }
27626 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027627 D(fprintf(stderr, "%*c%s _loop1_105[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027628 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('and' inversion)"));
27629 }
27630 if (_n == 0 || p->error_indicator) {
27631 PyMem_Free(_children);
27632 D(p->level--);
27633 return NULL;
27634 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027635 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027636 if (!_seq) {
27637 PyMem_Free(_children);
27638 p->error_indicator = 1;
27639 PyErr_NoMemory();
27640 D(p->level--);
27641 return NULL;
27642 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027643 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027644 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080027645 _PyPegen_insert_memo(p, _start_mark, _loop1_105_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027646 D(p->level--);
27647 return _seq;
27648}
27649
Brandt Bucher145bf262021-02-26 14:51:55 -080027650// _loop1_106: compare_op_bitwise_or_pair
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027651static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027652_loop1_106_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027653{
27654 D(p->level++);
27655 if (p->error_indicator) {
27656 D(p->level--);
27657 return NULL;
27658 }
27659 void *_res = NULL;
27660 int _mark = p->mark;
27661 int _start_mark = p->mark;
27662 void **_children = PyMem_Malloc(sizeof(void *));
27663 if (!_children) {
27664 p->error_indicator = 1;
27665 PyErr_NoMemory();
27666 D(p->level--);
27667 return NULL;
27668 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027669 Py_ssize_t _children_capacity = 1;
27670 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027671 { // compare_op_bitwise_or_pair
27672 if (p->error_indicator) {
27673 D(p->level--);
27674 return NULL;
27675 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027676 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 +010027677 CmpopExprPair* compare_op_bitwise_or_pair_var;
27678 while (
27679 (compare_op_bitwise_or_pair_var = compare_op_bitwise_or_pair_rule(p)) // compare_op_bitwise_or_pair
27680 )
27681 {
27682 _res = compare_op_bitwise_or_pair_var;
27683 if (_n == _children_capacity) {
27684 _children_capacity *= 2;
27685 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27686 if (!_new_children) {
27687 p->error_indicator = 1;
27688 PyErr_NoMemory();
27689 D(p->level--);
27690 return NULL;
27691 }
27692 _children = _new_children;
27693 }
27694 _children[_n++] = _res;
27695 _mark = p->mark;
27696 }
27697 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027698 D(fprintf(stderr, "%*c%s _loop1_106[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027699 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "compare_op_bitwise_or_pair"));
27700 }
27701 if (_n == 0 || p->error_indicator) {
27702 PyMem_Free(_children);
27703 D(p->level--);
27704 return NULL;
27705 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027706 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027707 if (!_seq) {
27708 PyMem_Free(_children);
27709 p->error_indicator = 1;
27710 PyErr_NoMemory();
27711 D(p->level--);
27712 return NULL;
27713 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027714 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027715 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080027716 _PyPegen_insert_memo(p, _start_mark, _loop1_106_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027717 D(p->level--);
27718 return _seq;
27719}
27720
Brandt Bucher145bf262021-02-26 14:51:55 -080027721// _tmp_107: '!='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027722static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080027723_tmp_107_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027724{
27725 D(p->level++);
27726 if (p->error_indicator) {
27727 D(p->level--);
27728 return NULL;
27729 }
27730 void * _res = NULL;
27731 int _mark = p->mark;
27732 { // '!='
27733 if (p->error_indicator) {
27734 D(p->level--);
27735 return NULL;
27736 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027737 D(fprintf(stderr, "%*c> _tmp_107[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'!='"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027738 Token * tok;
27739 if (
27740 (tok = _PyPegen_expect_token(p, 28)) // token='!='
27741 )
27742 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027743 D(fprintf(stderr, "%*c+ _tmp_107[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'!='"));
Pablo Galindo06f8c332020-10-30 23:48:42 +000027744 _res = _PyPegen_check_barry_as_flufl ( p , tok ) ? NULL : tok;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027745 if (_res == NULL && PyErr_Occurred()) {
27746 p->error_indicator = 1;
27747 D(p->level--);
27748 return NULL;
27749 }
27750 goto done;
27751 }
27752 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027753 D(fprintf(stderr, "%*c%s _tmp_107[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027754 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'!='"));
27755 }
27756 _res = NULL;
27757 done:
27758 D(p->level--);
27759 return _res;
27760}
27761
Brandt Bucher145bf262021-02-26 14:51:55 -080027762// _loop0_109: ',' slice
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027763static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027764_loop0_109_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027765{
27766 D(p->level++);
27767 if (p->error_indicator) {
27768 D(p->level--);
27769 return NULL;
27770 }
27771 void *_res = NULL;
27772 int _mark = p->mark;
27773 int _start_mark = p->mark;
27774 void **_children = PyMem_Malloc(sizeof(void *));
27775 if (!_children) {
27776 p->error_indicator = 1;
27777 PyErr_NoMemory();
27778 D(p->level--);
27779 return NULL;
27780 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027781 Py_ssize_t _children_capacity = 1;
27782 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027783 { // ',' slice
27784 if (p->error_indicator) {
27785 D(p->level--);
27786 return NULL;
27787 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027788 D(fprintf(stderr, "%*c> _loop0_109[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' slice"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027789 Token * _literal;
27790 expr_ty elem;
27791 while (
27792 (_literal = _PyPegen_expect_token(p, 12)) // token=','
27793 &&
27794 (elem = slice_rule(p)) // slice
27795 )
27796 {
27797 _res = elem;
27798 if (_res == NULL && PyErr_Occurred()) {
27799 p->error_indicator = 1;
27800 PyMem_Free(_children);
27801 D(p->level--);
27802 return NULL;
27803 }
27804 if (_n == _children_capacity) {
27805 _children_capacity *= 2;
27806 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27807 if (!_new_children) {
27808 p->error_indicator = 1;
27809 PyErr_NoMemory();
27810 D(p->level--);
27811 return NULL;
27812 }
27813 _children = _new_children;
27814 }
27815 _children[_n++] = _res;
27816 _mark = p->mark;
27817 }
27818 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027819 D(fprintf(stderr, "%*c%s _loop0_109[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027820 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' slice"));
27821 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027822 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027823 if (!_seq) {
27824 PyMem_Free(_children);
27825 p->error_indicator = 1;
27826 PyErr_NoMemory();
27827 D(p->level--);
27828 return NULL;
27829 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027830 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027831 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080027832 _PyPegen_insert_memo(p, _start_mark, _loop0_109_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027833 D(p->level--);
27834 return _seq;
27835}
27836
Brandt Bucher145bf262021-02-26 14:51:55 -080027837// _gather_108: slice _loop0_109
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027838static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027839_gather_108_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027840{
27841 D(p->level++);
27842 if (p->error_indicator) {
27843 D(p->level--);
27844 return NULL;
27845 }
27846 asdl_seq * _res = NULL;
27847 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027848 { // slice _loop0_109
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027849 if (p->error_indicator) {
27850 D(p->level--);
27851 return NULL;
27852 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027853 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 +010027854 expr_ty elem;
27855 asdl_seq * seq;
27856 if (
27857 (elem = slice_rule(p)) // slice
27858 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080027859 (seq = _loop0_109_rule(p)) // _loop0_109
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027860 )
27861 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027862 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 +010027863 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
27864 goto done;
27865 }
27866 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027867 D(fprintf(stderr, "%*c%s _gather_108[%d-%d]: %s failed!\n", p->level, ' ',
27868 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slice _loop0_109"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027869 }
27870 _res = NULL;
27871 done:
27872 D(p->level--);
27873 return _res;
27874}
27875
Brandt Bucher145bf262021-02-26 14:51:55 -080027876// _tmp_110: ':' expression?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027877static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080027878_tmp_110_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027879{
27880 D(p->level++);
27881 if (p->error_indicator) {
27882 D(p->level--);
27883 return NULL;
27884 }
27885 void * _res = NULL;
27886 int _mark = p->mark;
27887 { // ':' expression?
27888 if (p->error_indicator) {
27889 D(p->level--);
27890 return NULL;
27891 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027892 D(fprintf(stderr, "%*c> _tmp_110[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':' expression?"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027893 Token * _literal;
27894 void *d;
27895 if (
27896 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
27897 &&
27898 (d = expression_rule(p), 1) // expression?
27899 )
27900 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027901 D(fprintf(stderr, "%*c+ _tmp_110[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':' expression?"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027902 _res = d;
27903 if (_res == NULL && PyErr_Occurred()) {
27904 p->error_indicator = 1;
27905 D(p->level--);
27906 return NULL;
27907 }
27908 goto done;
27909 }
27910 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027911 D(fprintf(stderr, "%*c%s _tmp_110[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027912 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':' expression?"));
27913 }
27914 _res = NULL;
27915 done:
27916 D(p->level--);
27917 return _res;
27918}
27919
Brandt Bucher145bf262021-02-26 14:51:55 -080027920// _tmp_111: tuple | group | genexp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027921static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080027922_tmp_111_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027923{
27924 D(p->level++);
27925 if (p->error_indicator) {
27926 D(p->level--);
27927 return NULL;
27928 }
27929 void * _res = NULL;
27930 int _mark = p->mark;
27931 { // tuple
27932 if (p->error_indicator) {
27933 D(p->level--);
27934 return NULL;
27935 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027936 D(fprintf(stderr, "%*c> _tmp_111[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "tuple"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027937 expr_ty tuple_var;
27938 if (
27939 (tuple_var = tuple_rule(p)) // tuple
27940 )
27941 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027942 D(fprintf(stderr, "%*c+ _tmp_111[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "tuple"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027943 _res = tuple_var;
27944 goto done;
27945 }
27946 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027947 D(fprintf(stderr, "%*c%s _tmp_111[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027948 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "tuple"));
27949 }
27950 { // group
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_111[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "group"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027956 expr_ty group_var;
27957 if (
27958 (group_var = group_rule(p)) // group
27959 )
27960 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027961 D(fprintf(stderr, "%*c+ _tmp_111[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "group"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027962 _res = group_var;
27963 goto done;
27964 }
27965 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027966 D(fprintf(stderr, "%*c%s _tmp_111[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027967 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "group"));
27968 }
27969 { // genexp
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_111[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "genexp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027975 expr_ty genexp_var;
27976 if (
27977 (genexp_var = genexp_rule(p)) // genexp
27978 )
27979 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027980 D(fprintf(stderr, "%*c+ _tmp_111[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "genexp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027981 _res = genexp_var;
27982 goto done;
27983 }
27984 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027985 D(fprintf(stderr, "%*c%s _tmp_111[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027986 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "genexp"));
27987 }
27988 _res = NULL;
27989 done:
27990 D(p->level--);
27991 return _res;
27992}
27993
Brandt Bucher145bf262021-02-26 14:51:55 -080027994// _tmp_112: list | listcomp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027995static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080027996_tmp_112_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 { // list
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_112[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "list"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028011 expr_ty list_var;
28012 if (
28013 (list_var = list_rule(p)) // list
28014 )
28015 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028016 D(fprintf(stderr, "%*c+ _tmp_112[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "list"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028017 _res = list_var;
28018 goto done;
28019 }
28020 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028021 D(fprintf(stderr, "%*c%s _tmp_112[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028022 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "list"));
28023 }
28024 { // listcomp
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_112[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "listcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028030 expr_ty listcomp_var;
28031 if (
28032 (listcomp_var = listcomp_rule(p)) // listcomp
28033 )
28034 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028035 D(fprintf(stderr, "%*c+ _tmp_112[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "listcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028036 _res = listcomp_var;
28037 goto done;
28038 }
28039 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028040 D(fprintf(stderr, "%*c%s _tmp_112[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028041 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "listcomp"));
28042 }
28043 _res = NULL;
28044 done:
28045 D(p->level--);
28046 return _res;
28047}
28048
Brandt Bucher145bf262021-02-26 14:51:55 -080028049// _tmp_113: dict | set | dictcomp | setcomp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028050static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080028051_tmp_113_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028052{
28053 D(p->level++);
28054 if (p->error_indicator) {
28055 D(p->level--);
28056 return NULL;
28057 }
28058 void * _res = NULL;
28059 int _mark = p->mark;
28060 { // dict
28061 if (p->error_indicator) {
28062 D(p->level--);
28063 return NULL;
28064 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028065 D(fprintf(stderr, "%*c> _tmp_113[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dict"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028066 expr_ty dict_var;
28067 if (
28068 (dict_var = dict_rule(p)) // dict
28069 )
28070 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028071 D(fprintf(stderr, "%*c+ _tmp_113[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dict"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028072 _res = dict_var;
28073 goto done;
28074 }
28075 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028076 D(fprintf(stderr, "%*c%s _tmp_113[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028077 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dict"));
28078 }
28079 { // set
28080 if (p->error_indicator) {
28081 D(p->level--);
28082 return NULL;
28083 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028084 D(fprintf(stderr, "%*c> _tmp_113[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "set"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028085 expr_ty set_var;
28086 if (
28087 (set_var = set_rule(p)) // set
28088 )
28089 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028090 D(fprintf(stderr, "%*c+ _tmp_113[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "set"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028091 _res = set_var;
28092 goto done;
28093 }
28094 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028095 D(fprintf(stderr, "%*c%s _tmp_113[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028096 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "set"));
28097 }
28098 { // dictcomp
28099 if (p->error_indicator) {
28100 D(p->level--);
28101 return NULL;
28102 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028103 D(fprintf(stderr, "%*c> _tmp_113[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dictcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028104 expr_ty dictcomp_var;
28105 if (
28106 (dictcomp_var = dictcomp_rule(p)) // dictcomp
28107 )
28108 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028109 D(fprintf(stderr, "%*c+ _tmp_113[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dictcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028110 _res = dictcomp_var;
28111 goto done;
28112 }
28113 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028114 D(fprintf(stderr, "%*c%s _tmp_113[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028115 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dictcomp"));
28116 }
28117 { // setcomp
28118 if (p->error_indicator) {
28119 D(p->level--);
28120 return NULL;
28121 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028122 D(fprintf(stderr, "%*c> _tmp_113[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "setcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028123 expr_ty setcomp_var;
28124 if (
28125 (setcomp_var = setcomp_rule(p)) // setcomp
28126 )
28127 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028128 D(fprintf(stderr, "%*c+ _tmp_113[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "setcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028129 _res = setcomp_var;
28130 goto done;
28131 }
28132 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028133 D(fprintf(stderr, "%*c%s _tmp_113[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028134 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "setcomp"));
28135 }
28136 _res = NULL;
28137 done:
28138 D(p->level--);
28139 return _res;
28140}
28141
Brandt Bucher145bf262021-02-26 14:51:55 -080028142// _loop1_114: STRING
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028143static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080028144_loop1_114_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028145{
28146 D(p->level++);
28147 if (p->error_indicator) {
28148 D(p->level--);
28149 return NULL;
28150 }
28151 void *_res = NULL;
28152 int _mark = p->mark;
28153 int _start_mark = p->mark;
28154 void **_children = PyMem_Malloc(sizeof(void *));
28155 if (!_children) {
28156 p->error_indicator = 1;
28157 PyErr_NoMemory();
28158 D(p->level--);
28159 return NULL;
28160 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010028161 Py_ssize_t _children_capacity = 1;
28162 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028163 { // STRING
28164 if (p->error_indicator) {
28165 D(p->level--);
28166 return NULL;
28167 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028168 D(fprintf(stderr, "%*c> _loop1_114[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "STRING"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028169 expr_ty string_var;
28170 while (
28171 (string_var = _PyPegen_string_token(p)) // STRING
28172 )
28173 {
28174 _res = string_var;
28175 if (_n == _children_capacity) {
28176 _children_capacity *= 2;
28177 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28178 if (!_new_children) {
28179 p->error_indicator = 1;
28180 PyErr_NoMemory();
28181 D(p->level--);
28182 return NULL;
28183 }
28184 _children = _new_children;
28185 }
28186 _children[_n++] = _res;
28187 _mark = p->mark;
28188 }
28189 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028190 D(fprintf(stderr, "%*c%s _loop1_114[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028191 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "STRING"));
28192 }
28193 if (_n == 0 || p->error_indicator) {
28194 PyMem_Free(_children);
28195 D(p->level--);
28196 return NULL;
28197 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010028198 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028199 if (!_seq) {
28200 PyMem_Free(_children);
28201 p->error_indicator = 1;
28202 PyErr_NoMemory();
28203 D(p->level--);
28204 return NULL;
28205 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010028206 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028207 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080028208 _PyPegen_insert_memo(p, _start_mark, _loop1_114_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028209 D(p->level--);
28210 return _seq;
28211}
28212
Brandt Bucher145bf262021-02-26 14:51:55 -080028213// _tmp_115: star_named_expression ',' star_named_expressions?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028214static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080028215_tmp_115_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028216{
28217 D(p->level++);
28218 if (p->error_indicator) {
28219 D(p->level--);
28220 return NULL;
28221 }
28222 void * _res = NULL;
28223 int _mark = p->mark;
28224 { // star_named_expression ',' star_named_expressions?
28225 if (p->error_indicator) {
28226 D(p->level--);
28227 return NULL;
28228 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028229 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 +010028230 Token * _literal;
28231 expr_ty y;
28232 void *z;
28233 if (
28234 (y = star_named_expression_rule(p)) // star_named_expression
28235 &&
28236 (_literal = _PyPegen_expect_token(p, 12)) // token=','
28237 &&
28238 (z = star_named_expressions_rule(p), 1) // star_named_expressions?
28239 )
28240 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028241 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 +010028242 _res = _PyPegen_seq_insert_in_front ( p , y , z );
28243 if (_res == NULL && PyErr_Occurred()) {
28244 p->error_indicator = 1;
28245 D(p->level--);
28246 return NULL;
28247 }
28248 goto done;
28249 }
28250 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028251 D(fprintf(stderr, "%*c%s _tmp_115[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028252 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression ',' star_named_expressions?"));
28253 }
28254 _res = NULL;
28255 done:
28256 D(p->level--);
28257 return _res;
28258}
28259
Brandt Bucher145bf262021-02-26 14:51:55 -080028260// _tmp_116: yield_expr | named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028261static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080028262_tmp_116_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028263{
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;
28271 { // yield_expr
28272 if (p->error_indicator) {
28273 D(p->level--);
28274 return NULL;
28275 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028276 D(fprintf(stderr, "%*c> _tmp_116[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028277 expr_ty yield_expr_var;
28278 if (
28279 (yield_expr_var = yield_expr_rule(p)) // yield_expr
28280 )
28281 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028282 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 +010028283 _res = yield_expr_var;
28284 goto done;
28285 }
28286 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028287 D(fprintf(stderr, "%*c%s _tmp_116[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028288 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
28289 }
28290 { // named_expression
28291 if (p->error_indicator) {
28292 D(p->level--);
28293 return NULL;
28294 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028295 D(fprintf(stderr, "%*c> _tmp_116[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028296 expr_ty named_expression_var;
28297 if (
28298 (named_expression_var = named_expression_rule(p)) // named_expression
28299 )
28300 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028301 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 +010028302 _res = named_expression_var;
28303 goto done;
28304 }
28305 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028306 D(fprintf(stderr, "%*c%s _tmp_116[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028307 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression"));
28308 }
28309 _res = NULL;
28310 done:
28311 D(p->level--);
28312 return _res;
28313}
28314
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028315// _tmp_117: assigment_expression | expression !':='
28316static void *
28317_tmp_117_rule(Parser *p)
28318{
28319 D(p->level++);
28320 if (p->error_indicator) {
28321 D(p->level--);
28322 return NULL;
28323 }
28324 void * _res = NULL;
28325 int _mark = p->mark;
28326 { // assigment_expression
28327 if (p->error_indicator) {
28328 D(p->level--);
28329 return NULL;
28330 }
28331 D(fprintf(stderr, "%*c> _tmp_117[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "assigment_expression"));
28332 expr_ty assigment_expression_var;
28333 if (
28334 (assigment_expression_var = assigment_expression_rule(p)) // assigment_expression
28335 )
28336 {
28337 D(fprintf(stderr, "%*c+ _tmp_117[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "assigment_expression"));
28338 _res = assigment_expression_var;
28339 goto done;
28340 }
28341 p->mark = _mark;
28342 D(fprintf(stderr, "%*c%s _tmp_117[%d-%d]: %s failed!\n", p->level, ' ',
28343 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "assigment_expression"));
28344 }
28345 { // expression !':='
28346 if (p->error_indicator) {
28347 D(p->level--);
28348 return NULL;
28349 }
28350 D(fprintf(stderr, "%*c> _tmp_117[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression !':='"));
28351 expr_ty expression_var;
28352 if (
28353 (expression_var = expression_rule(p)) // expression
28354 &&
28355 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 53) // token=':='
28356 )
28357 {
28358 D(fprintf(stderr, "%*c+ _tmp_117[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression !':='"));
28359 _res = expression_var;
28360 goto done;
28361 }
28362 p->mark = _mark;
28363 D(fprintf(stderr, "%*c%s _tmp_117[%d-%d]: %s failed!\n", p->level, ' ',
28364 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression !':='"));
28365 }
28366 _res = NULL;
28367 done:
28368 D(p->level--);
28369 return _res;
28370}
28371
28372// _loop0_119: ',' double_starred_kvpair
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028373static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028374_loop0_119_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028375{
28376 D(p->level++);
28377 if (p->error_indicator) {
28378 D(p->level--);
28379 return NULL;
28380 }
28381 void *_res = NULL;
28382 int _mark = p->mark;
28383 int _start_mark = p->mark;
28384 void **_children = PyMem_Malloc(sizeof(void *));
28385 if (!_children) {
28386 p->error_indicator = 1;
28387 PyErr_NoMemory();
28388 D(p->level--);
28389 return NULL;
28390 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010028391 Py_ssize_t _children_capacity = 1;
28392 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028393 { // ',' double_starred_kvpair
28394 if (p->error_indicator) {
28395 D(p->level--);
28396 return NULL;
28397 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028398 D(fprintf(stderr, "%*c> _loop0_119[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' double_starred_kvpair"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028399 Token * _literal;
28400 KeyValuePair* elem;
28401 while (
28402 (_literal = _PyPegen_expect_token(p, 12)) // token=','
28403 &&
28404 (elem = double_starred_kvpair_rule(p)) // double_starred_kvpair
28405 )
28406 {
28407 _res = elem;
28408 if (_res == NULL && PyErr_Occurred()) {
28409 p->error_indicator = 1;
28410 PyMem_Free(_children);
28411 D(p->level--);
28412 return NULL;
28413 }
28414 if (_n == _children_capacity) {
28415 _children_capacity *= 2;
28416 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28417 if (!_new_children) {
28418 p->error_indicator = 1;
28419 PyErr_NoMemory();
28420 D(p->level--);
28421 return NULL;
28422 }
28423 _children = _new_children;
28424 }
28425 _children[_n++] = _res;
28426 _mark = p->mark;
28427 }
28428 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028429 D(fprintf(stderr, "%*c%s _loop0_119[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028430 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' double_starred_kvpair"));
28431 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010028432 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028433 if (!_seq) {
28434 PyMem_Free(_children);
28435 p->error_indicator = 1;
28436 PyErr_NoMemory();
28437 D(p->level--);
28438 return NULL;
28439 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010028440 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028441 PyMem_Free(_children);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028442 _PyPegen_insert_memo(p, _start_mark, _loop0_119_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028443 D(p->level--);
28444 return _seq;
28445}
28446
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028447// _gather_118: double_starred_kvpair _loop0_119
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028448static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028449_gather_118_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028450{
28451 D(p->level++);
28452 if (p->error_indicator) {
28453 D(p->level--);
28454 return NULL;
28455 }
28456 asdl_seq * _res = NULL;
28457 int _mark = p->mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028458 { // double_starred_kvpair _loop0_119
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028459 if (p->error_indicator) {
28460 D(p->level--);
28461 return NULL;
28462 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028463 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 +010028464 KeyValuePair* elem;
28465 asdl_seq * seq;
28466 if (
28467 (elem = double_starred_kvpair_rule(p)) // double_starred_kvpair
28468 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028469 (seq = _loop0_119_rule(p)) // _loop0_119
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028470 )
28471 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028472 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 +010028473 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
28474 goto done;
28475 }
28476 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028477 D(fprintf(stderr, "%*c%s _gather_118[%d-%d]: %s failed!\n", p->level, ' ',
28478 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "double_starred_kvpair _loop0_119"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028479 }
28480 _res = NULL;
28481 done:
28482 D(p->level--);
28483 return _res;
28484}
28485
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028486// _loop1_120: for_if_clause
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028487static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028488_loop1_120_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028489{
28490 D(p->level++);
28491 if (p->error_indicator) {
28492 D(p->level--);
28493 return NULL;
28494 }
28495 void *_res = NULL;
28496 int _mark = p->mark;
28497 int _start_mark = p->mark;
28498 void **_children = PyMem_Malloc(sizeof(void *));
28499 if (!_children) {
28500 p->error_indicator = 1;
28501 PyErr_NoMemory();
28502 D(p->level--);
28503 return NULL;
28504 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010028505 Py_ssize_t _children_capacity = 1;
28506 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028507 { // for_if_clause
28508 if (p->error_indicator) {
28509 D(p->level--);
28510 return NULL;
28511 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028512 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 +010028513 comprehension_ty for_if_clause_var;
28514 while (
28515 (for_if_clause_var = for_if_clause_rule(p)) // for_if_clause
28516 )
28517 {
28518 _res = for_if_clause_var;
28519 if (_n == _children_capacity) {
28520 _children_capacity *= 2;
28521 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28522 if (!_new_children) {
28523 p->error_indicator = 1;
28524 PyErr_NoMemory();
28525 D(p->level--);
28526 return NULL;
28527 }
28528 _children = _new_children;
28529 }
28530 _children[_n++] = _res;
28531 _mark = p->mark;
28532 }
28533 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028534 D(fprintf(stderr, "%*c%s _loop1_120[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028535 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "for_if_clause"));
28536 }
28537 if (_n == 0 || p->error_indicator) {
28538 PyMem_Free(_children);
28539 D(p->level--);
28540 return NULL;
28541 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010028542 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028543 if (!_seq) {
28544 PyMem_Free(_children);
28545 p->error_indicator = 1;
28546 PyErr_NoMemory();
28547 D(p->level--);
28548 return NULL;
28549 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010028550 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028551 PyMem_Free(_children);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028552 _PyPegen_insert_memo(p, _start_mark, _loop1_120_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028553 D(p->level--);
28554 return _seq;
28555}
28556
Brandt Bucher145bf262021-02-26 14:51:55 -080028557// _loop0_121: ('if' disjunction)
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028558static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080028559_loop0_121_rule(Parser *p)
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028560{
28561 D(p->level++);
28562 if (p->error_indicator) {
28563 D(p->level--);
28564 return NULL;
28565 }
28566 void *_res = NULL;
28567 int _mark = p->mark;
28568 int _start_mark = p->mark;
28569 void **_children = PyMem_Malloc(sizeof(void *));
28570 if (!_children) {
28571 p->error_indicator = 1;
28572 PyErr_NoMemory();
28573 D(p->level--);
28574 return NULL;
28575 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010028576 Py_ssize_t _children_capacity = 1;
28577 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028578 { // ('if' disjunction)
28579 if (p->error_indicator) {
28580 D(p->level--);
28581 return NULL;
28582 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028583 D(fprintf(stderr, "%*c> _loop0_121[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('if' disjunction)"));
Pablo Galindoe53f72a2021-06-04 00:11:43 +010028584 void *_tmp_188_var;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028585 while (
Pablo Galindoe53f72a2021-06-04 00:11:43 +010028586 (_tmp_188_var = _tmp_188_rule(p)) // 'if' disjunction
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028587 )
28588 {
Pablo Galindoe53f72a2021-06-04 00:11:43 +010028589 _res = _tmp_188_var;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028590 if (_n == _children_capacity) {
28591 _children_capacity *= 2;
28592 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28593 if (!_new_children) {
28594 p->error_indicator = 1;
28595 PyErr_NoMemory();
28596 D(p->level--);
28597 return NULL;
28598 }
28599 _children = _new_children;
28600 }
28601 _children[_n++] = _res;
28602 _mark = p->mark;
28603 }
28604 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028605 D(fprintf(stderr, "%*c%s _loop0_121[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028606 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('if' disjunction)"));
28607 }
28608 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
28609 if (!_seq) {
28610 PyMem_Free(_children);
28611 p->error_indicator = 1;
28612 PyErr_NoMemory();
28613 D(p->level--);
28614 return NULL;
28615 }
28616 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
28617 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080028618 _PyPegen_insert_memo(p, _start_mark, _loop0_121_type, _seq);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028619 D(p->level--);
28620 return _seq;
28621}
28622
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028623// _loop0_122: ('if' disjunction)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030028624static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028625_loop0_122_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028626{
28627 D(p->level++);
28628 if (p->error_indicator) {
28629 D(p->level--);
28630 return NULL;
28631 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030028632 void *_res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028633 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030028634 int _start_mark = p->mark;
28635 void **_children = PyMem_Malloc(sizeof(void *));
28636 if (!_children) {
28637 p->error_indicator = 1;
28638 PyErr_NoMemory();
28639 D(p->level--);
28640 return NULL;
28641 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010028642 Py_ssize_t _children_capacity = 1;
28643 Py_ssize_t _n = 0;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028644 { // ('if' disjunction)
Pablo Galindo4a97b152020-09-02 17:44:19 +010028645 if (p->error_indicator) {
28646 D(p->level--);
28647 return NULL;
28648 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028649 D(fprintf(stderr, "%*c> _loop0_122[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('if' disjunction)"));
Pablo Galindoe53f72a2021-06-04 00:11:43 +010028650 void *_tmp_189_var;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028651 while (
Pablo Galindoe53f72a2021-06-04 00:11:43 +010028652 (_tmp_189_var = _tmp_189_rule(p)) // 'if' disjunction
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028653 )
28654 {
Pablo Galindoe53f72a2021-06-04 00:11:43 +010028655 _res = _tmp_189_var;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028656 if (_n == _children_capacity) {
28657 _children_capacity *= 2;
28658 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28659 if (!_new_children) {
28660 p->error_indicator = 1;
28661 PyErr_NoMemory();
28662 D(p->level--);
28663 return NULL;
28664 }
28665 _children = _new_children;
28666 }
28667 _children[_n++] = _res;
28668 _mark = p->mark;
28669 }
28670 p->mark = _mark;
28671 D(fprintf(stderr, "%*c%s _loop0_122[%d-%d]: %s failed!\n", p->level, ' ',
28672 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('if' disjunction)"));
28673 }
28674 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
28675 if (!_seq) {
28676 PyMem_Free(_children);
28677 p->error_indicator = 1;
28678 PyErr_NoMemory();
28679 D(p->level--);
28680 return NULL;
28681 }
28682 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
28683 PyMem_Free(_children);
28684 _PyPegen_insert_memo(p, _start_mark, _loop0_122_type, _seq);
28685 D(p->level--);
28686 return _seq;
28687}
28688
28689// _loop0_124: ',' (starred_expression | (assigment_expression | expression !':=') !'=')
28690static asdl_seq *
28691_loop0_124_rule(Parser *p)
28692{
28693 D(p->level++);
28694 if (p->error_indicator) {
28695 D(p->level--);
28696 return NULL;
28697 }
28698 void *_res = NULL;
28699 int _mark = p->mark;
28700 int _start_mark = p->mark;
28701 void **_children = PyMem_Malloc(sizeof(void *));
28702 if (!_children) {
28703 p->error_indicator = 1;
28704 PyErr_NoMemory();
28705 D(p->level--);
28706 return NULL;
28707 }
28708 Py_ssize_t _children_capacity = 1;
28709 Py_ssize_t _n = 0;
28710 { // ',' (starred_expression | (assigment_expression | expression !':=') !'=')
28711 if (p->error_indicator) {
28712 D(p->level--);
28713 return NULL;
28714 }
28715 D(fprintf(stderr, "%*c> _loop0_124[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (starred_expression | (assigment_expression | expression !':=') !'=')"));
Pablo Galindo4a97b152020-09-02 17:44:19 +010028716 Token * _literal;
28717 void *elem;
28718 while (
28719 (_literal = _PyPegen_expect_token(p, 12)) // token=','
28720 &&
Pablo Galindoe53f72a2021-06-04 00:11:43 +010028721 (elem = _tmp_190_rule(p)) // starred_expression | (assigment_expression | expression !':=') !'='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028722 )
28723 {
28724 _res = elem;
28725 if (_res == NULL && PyErr_Occurred()) {
28726 p->error_indicator = 1;
28727 PyMem_Free(_children);
28728 D(p->level--);
28729 return NULL;
28730 }
28731 if (_n == _children_capacity) {
28732 _children_capacity *= 2;
28733 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28734 if (!_new_children) {
28735 p->error_indicator = 1;
28736 PyErr_NoMemory();
28737 D(p->level--);
28738 return NULL;
28739 }
28740 _children = _new_children;
28741 }
28742 _children[_n++] = _res;
28743 _mark = p->mark;
28744 }
28745 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028746 D(fprintf(stderr, "%*c%s _loop0_124[%d-%d]: %s failed!\n", p->level, ' ',
28747 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (starred_expression | (assigment_expression | expression !':=') !'=')"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028748 }
28749 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
28750 if (!_seq) {
28751 PyMem_Free(_children);
28752 p->error_indicator = 1;
28753 PyErr_NoMemory();
28754 D(p->level--);
28755 return NULL;
28756 }
28757 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
28758 PyMem_Free(_children);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028759 _PyPegen_insert_memo(p, _start_mark, _loop0_124_type, _seq);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028760 D(p->level--);
28761 return _seq;
28762}
28763
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028764// _gather_123:
28765// | (starred_expression | (assigment_expression | expression !':=') !'=') _loop0_124
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028766static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028767_gather_123_rule(Parser *p)
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028768{
28769 D(p->level++);
28770 if (p->error_indicator) {
28771 D(p->level--);
28772 return NULL;
28773 }
28774 asdl_seq * _res = NULL;
28775 int _mark = p->mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028776 { // (starred_expression | (assigment_expression | expression !':=') !'=') _loop0_124
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028777 if (p->error_indicator) {
28778 D(p->level--);
28779 return NULL;
28780 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028781 D(fprintf(stderr, "%*c> _gather_123[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(starred_expression | (assigment_expression | expression !':=') !'=') _loop0_124"));
Brandt Bucher145bf262021-02-26 14:51:55 -080028782 void *elem;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028783 asdl_seq * seq;
28784 if (
Pablo Galindoe53f72a2021-06-04 00:11:43 +010028785 (elem = _tmp_190_rule(p)) // starred_expression | (assigment_expression | expression !':=') !'='
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028786 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028787 (seq = _loop0_124_rule(p)) // _loop0_124
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028788 )
28789 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028790 D(fprintf(stderr, "%*c+ _gather_123[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(starred_expression | (assigment_expression | expression !':=') !'=') _loop0_124"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028791 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
28792 goto done;
28793 }
28794 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028795 D(fprintf(stderr, "%*c%s _gather_123[%d-%d]: %s failed!\n", p->level, ' ',
28796 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(starred_expression | (assigment_expression | expression !':=') !'=') _loop0_124"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028797 }
28798 _res = NULL;
28799 done:
28800 D(p->level--);
28801 return _res;
28802}
28803
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028804// _tmp_125: ',' kwargs
Brandt Bucher145bf262021-02-26 14:51:55 -080028805static void *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028806_tmp_125_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080028807{
28808 D(p->level++);
28809 if (p->error_indicator) {
28810 D(p->level--);
28811 return NULL;
28812 }
28813 void * _res = NULL;
28814 int _mark = p->mark;
28815 { // ',' kwargs
28816 if (p->error_indicator) {
28817 D(p->level--);
28818 return NULL;
28819 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028820 D(fprintf(stderr, "%*c> _tmp_125[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwargs"));
Brandt Bucher145bf262021-02-26 14:51:55 -080028821 Token * _literal;
28822 asdl_seq* k;
28823 if (
28824 (_literal = _PyPegen_expect_token(p, 12)) // token=','
28825 &&
28826 (k = kwargs_rule(p)) // kwargs
28827 )
28828 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028829 D(fprintf(stderr, "%*c+ _tmp_125[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' kwargs"));
Brandt Bucher145bf262021-02-26 14:51:55 -080028830 _res = k;
28831 if (_res == NULL && PyErr_Occurred()) {
28832 p->error_indicator = 1;
28833 D(p->level--);
28834 return NULL;
28835 }
28836 goto done;
28837 }
28838 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028839 D(fprintf(stderr, "%*c%s _tmp_125[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080028840 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwargs"));
28841 }
28842 _res = NULL;
28843 done:
28844 D(p->level--);
28845 return _res;
28846}
28847
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028848// _loop0_127: ',' kwarg_or_starred
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028849static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028850_loop0_127_rule(Parser *p)
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028851{
28852 D(p->level++);
28853 if (p->error_indicator) {
28854 D(p->level--);
28855 return NULL;
28856 }
28857 void *_res = NULL;
28858 int _mark = p->mark;
28859 int _start_mark = p->mark;
28860 void **_children = PyMem_Malloc(sizeof(void *));
28861 if (!_children) {
28862 p->error_indicator = 1;
28863 PyErr_NoMemory();
28864 D(p->level--);
28865 return NULL;
28866 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010028867 Py_ssize_t _children_capacity = 1;
28868 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080028869 { // ',' kwarg_or_starred
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028870 if (p->error_indicator) {
28871 D(p->level--);
28872 return NULL;
28873 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028874 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 +000028875 Token * _literal;
Brandt Bucher145bf262021-02-26 14:51:55 -080028876 KeywordOrStarred* elem;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028877 while (
28878 (_literal = _PyPegen_expect_token(p, 12)) // token=','
28879 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080028880 (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028881 )
28882 {
28883 _res = elem;
28884 if (_res == NULL && PyErr_Occurred()) {
28885 p->error_indicator = 1;
28886 PyMem_Free(_children);
28887 D(p->level--);
28888 return NULL;
28889 }
28890 if (_n == _children_capacity) {
28891 _children_capacity *= 2;
28892 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28893 if (!_new_children) {
28894 p->error_indicator = 1;
28895 PyErr_NoMemory();
28896 D(p->level--);
28897 return NULL;
28898 }
28899 _children = _new_children;
28900 }
28901 _children[_n++] = _res;
28902 _mark = p->mark;
28903 }
28904 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028905 D(fprintf(stderr, "%*c%s _loop0_127[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080028906 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_starred"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028907 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010028908 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028909 if (!_seq) {
28910 PyMem_Free(_children);
28911 p->error_indicator = 1;
28912 PyErr_NoMemory();
28913 D(p->level--);
28914 return NULL;
28915 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010028916 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028917 PyMem_Free(_children);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028918 _PyPegen_insert_memo(p, _start_mark, _loop0_127_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028919 D(p->level--);
28920 return _seq;
28921}
28922
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028923// _gather_126: kwarg_or_starred _loop0_127
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028924static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028925_gather_126_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028926{
28927 D(p->level++);
28928 if (p->error_indicator) {
28929 D(p->level--);
28930 return NULL;
28931 }
28932 asdl_seq * _res = NULL;
28933 int _mark = p->mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028934 { // kwarg_or_starred _loop0_127
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028935 if (p->error_indicator) {
28936 D(p->level--);
28937 return NULL;
28938 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028939 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 -080028940 KeywordOrStarred* elem;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028941 asdl_seq * seq;
28942 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080028943 (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028944 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028945 (seq = _loop0_127_rule(p)) // _loop0_127
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028946 )
28947 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028948 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 +010028949 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
28950 goto done;
28951 }
28952 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028953 D(fprintf(stderr, "%*c%s _gather_126[%d-%d]: %s failed!\n", p->level, ' ',
28954 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_starred _loop0_127"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028955 }
28956 _res = NULL;
28957 done:
28958 D(p->level--);
28959 return _res;
28960}
28961
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028962// _loop0_129: ',' kwarg_or_double_starred
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028963static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028964_loop0_129_rule(Parser *p)
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028965{
28966 D(p->level++);
28967 if (p->error_indicator) {
28968 D(p->level--);
28969 return NULL;
28970 }
28971 void *_res = NULL;
28972 int _mark = p->mark;
28973 int _start_mark = p->mark;
28974 void **_children = PyMem_Malloc(sizeof(void *));
28975 if (!_children) {
28976 p->error_indicator = 1;
28977 PyErr_NoMemory();
28978 D(p->level--);
28979 return NULL;
28980 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010028981 Py_ssize_t _children_capacity = 1;
28982 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080028983 { // ',' kwarg_or_double_starred
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028984 if (p->error_indicator) {
28985 D(p->level--);
28986 return NULL;
28987 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028988 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 -080028989 Token * _literal;
28990 KeywordOrStarred* elem;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028991 while (
Brandt Bucher145bf262021-02-26 14:51:55 -080028992 (_literal = _PyPegen_expect_token(p, 12)) // token=','
28993 &&
28994 (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028995 )
28996 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028997 _res = elem;
28998 if (_res == NULL && PyErr_Occurred()) {
28999 p->error_indicator = 1;
29000 PyMem_Free(_children);
29001 D(p->level--);
29002 return NULL;
29003 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000029004 if (_n == _children_capacity) {
29005 _children_capacity *= 2;
29006 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
29007 if (!_new_children) {
29008 p->error_indicator = 1;
29009 PyErr_NoMemory();
29010 D(p->level--);
29011 return NULL;
29012 }
29013 _children = _new_children;
29014 }
29015 _children[_n++] = _res;
29016 _mark = p->mark;
29017 }
29018 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029019 D(fprintf(stderr, "%*c%s _loop0_129[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080029020 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_double_starred"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000029021 }
29022 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
29023 if (!_seq) {
29024 PyMem_Free(_children);
29025 p->error_indicator = 1;
29026 PyErr_NoMemory();
29027 D(p->level--);
29028 return NULL;
29029 }
29030 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
29031 PyMem_Free(_children);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029032 _PyPegen_insert_memo(p, _start_mark, _loop0_129_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029033 D(p->level--);
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030029034 return _seq;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029035}
29036
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029037// _gather_128: kwarg_or_double_starred _loop0_129
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020029038static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029039_gather_128_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080029040{
29041 D(p->level++);
29042 if (p->error_indicator) {
29043 D(p->level--);
29044 return NULL;
29045 }
29046 asdl_seq * _res = NULL;
29047 int _mark = p->mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029048 { // kwarg_or_double_starred _loop0_129
Brandt Bucher145bf262021-02-26 14:51:55 -080029049 if (p->error_indicator) {
29050 D(p->level--);
29051 return NULL;
29052 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029053 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 -080029054 KeywordOrStarred* elem;
29055 asdl_seq * seq;
29056 if (
29057 (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
29058 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029059 (seq = _loop0_129_rule(p)) // _loop0_129
Brandt Bucher145bf262021-02-26 14:51:55 -080029060 )
29061 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029062 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 -080029063 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
29064 goto done;
29065 }
29066 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029067 D(fprintf(stderr, "%*c%s _gather_128[%d-%d]: %s failed!\n", p->level, ' ',
29068 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_double_starred _loop0_129"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029069 }
29070 _res = NULL;
29071 done:
29072 D(p->level--);
29073 return _res;
29074}
29075
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029076// _loop0_131: ',' kwarg_or_starred
Brandt Bucher145bf262021-02-26 14:51:55 -080029077static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029078_loop0_131_rule(Parser *p)
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020029079{
29080 D(p->level++);
29081 if (p->error_indicator) {
29082 D(p->level--);
29083 return NULL;
29084 }
29085 void *_res = NULL;
29086 int _mark = p->mark;
29087 int _start_mark = p->mark;
29088 void **_children = PyMem_Malloc(sizeof(void *));
29089 if (!_children) {
29090 p->error_indicator = 1;
29091 PyErr_NoMemory();
29092 D(p->level--);
29093 return NULL;
29094 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010029095 Py_ssize_t _children_capacity = 1;
29096 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080029097 { // ',' kwarg_or_starred
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020029098 if (p->error_indicator) {
29099 D(p->level--);
29100 return NULL;
29101 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029102 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 -080029103 Token * _literal;
29104 KeywordOrStarred* elem;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020029105 while (
Brandt Bucher145bf262021-02-26 14:51:55 -080029106 (_literal = _PyPegen_expect_token(p, 12)) // token=','
29107 &&
29108 (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020029109 )
29110 {
Brandt Bucher145bf262021-02-26 14:51:55 -080029111 _res = elem;
29112 if (_res == NULL && PyErr_Occurred()) {
29113 p->error_indicator = 1;
29114 PyMem_Free(_children);
29115 D(p->level--);
29116 return NULL;
29117 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020029118 if (_n == _children_capacity) {
29119 _children_capacity *= 2;
29120 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
29121 if (!_new_children) {
29122 p->error_indicator = 1;
29123 PyErr_NoMemory();
29124 D(p->level--);
29125 return NULL;
29126 }
29127 _children = _new_children;
29128 }
29129 _children[_n++] = _res;
29130 _mark = p->mark;
29131 }
29132 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029133 D(fprintf(stderr, "%*c%s _loop0_131[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080029134 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_starred"));
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020029135 }
29136 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
29137 if (!_seq) {
29138 PyMem_Free(_children);
29139 p->error_indicator = 1;
29140 PyErr_NoMemory();
29141 D(p->level--);
29142 return NULL;
29143 }
29144 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
29145 PyMem_Free(_children);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029146 _PyPegen_insert_memo(p, _start_mark, _loop0_131_type, _seq);
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020029147 D(p->level--);
29148 return _seq;
29149}
29150
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029151// _gather_130: kwarg_or_starred _loop0_131
Brandt Bucher145bf262021-02-26 14:51:55 -080029152static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029153_gather_130_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029154{
29155 D(p->level++);
29156 if (p->error_indicator) {
29157 D(p->level--);
29158 return NULL;
29159 }
Brandt Bucher145bf262021-02-26 14:51:55 -080029160 asdl_seq * _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029161 int _mark = p->mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029162 { // kwarg_or_starred _loop0_131
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029163 if (p->error_indicator) {
29164 D(p->level--);
29165 return NULL;
29166 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029167 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 -080029168 KeywordOrStarred* elem;
29169 asdl_seq * seq;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029170 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080029171 (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
29172 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029173 (seq = _loop0_131_rule(p)) // _loop0_131
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029174 )
29175 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029176 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 -080029177 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029178 goto done;
29179 }
29180 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029181 D(fprintf(stderr, "%*c%s _gather_130[%d-%d]: %s failed!\n", p->level, ' ',
29182 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_starred _loop0_131"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029183 }
29184 _res = NULL;
29185 done:
29186 D(p->level--);
29187 return _res;
29188}
29189
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029190// _loop0_133: ',' kwarg_or_double_starred
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029191static asdl_seq *
Pablo Galindo835f14f2021-01-31 22:52:56 +000029192_loop0_133_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029193{
29194 D(p->level++);
29195 if (p->error_indicator) {
29196 D(p->level--);
29197 return NULL;
29198 }
29199 void *_res = NULL;
29200 int _mark = p->mark;
29201 int _start_mark = p->mark;
29202 void **_children = PyMem_Malloc(sizeof(void *));
29203 if (!_children) {
29204 p->error_indicator = 1;
29205 PyErr_NoMemory();
29206 D(p->level--);
29207 return NULL;
29208 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010029209 Py_ssize_t _children_capacity = 1;
29210 Py_ssize_t _n = 0;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029211 { // ',' kwarg_or_double_starred
29212 if (p->error_indicator) {
29213 D(p->level--);
29214 return NULL;
29215 }
29216 D(fprintf(stderr, "%*c> _loop0_133[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwarg_or_double_starred"));
29217 Token * _literal;
29218 KeywordOrStarred* elem;
29219 while (
29220 (_literal = _PyPegen_expect_token(p, 12)) // token=','
29221 &&
29222 (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
29223 )
29224 {
29225 _res = elem;
29226 if (_res == NULL && PyErr_Occurred()) {
29227 p->error_indicator = 1;
29228 PyMem_Free(_children);
29229 D(p->level--);
29230 return NULL;
29231 }
29232 if (_n == _children_capacity) {
29233 _children_capacity *= 2;
29234 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
29235 if (!_new_children) {
29236 p->error_indicator = 1;
29237 PyErr_NoMemory();
29238 D(p->level--);
29239 return NULL;
29240 }
29241 _children = _new_children;
29242 }
29243 _children[_n++] = _res;
29244 _mark = p->mark;
29245 }
29246 p->mark = _mark;
29247 D(fprintf(stderr, "%*c%s _loop0_133[%d-%d]: %s failed!\n", p->level, ' ',
29248 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_double_starred"));
29249 }
29250 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
29251 if (!_seq) {
29252 PyMem_Free(_children);
29253 p->error_indicator = 1;
29254 PyErr_NoMemory();
29255 D(p->level--);
29256 return NULL;
29257 }
29258 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
29259 PyMem_Free(_children);
29260 _PyPegen_insert_memo(p, _start_mark, _loop0_133_type, _seq);
29261 D(p->level--);
29262 return _seq;
29263}
29264
29265// _gather_132: kwarg_or_double_starred _loop0_133
29266static asdl_seq *
29267_gather_132_rule(Parser *p)
29268{
29269 D(p->level++);
29270 if (p->error_indicator) {
29271 D(p->level--);
29272 return NULL;
29273 }
29274 asdl_seq * _res = NULL;
29275 int _mark = p->mark;
29276 { // kwarg_or_double_starred _loop0_133
29277 if (p->error_indicator) {
29278 D(p->level--);
29279 return NULL;
29280 }
29281 D(fprintf(stderr, "%*c> _gather_132[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwarg_or_double_starred _loop0_133"));
29282 KeywordOrStarred* elem;
29283 asdl_seq * seq;
29284 if (
29285 (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
29286 &&
29287 (seq = _loop0_133_rule(p)) // _loop0_133
29288 )
29289 {
29290 D(fprintf(stderr, "%*c+ _gather_132[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwarg_or_double_starred _loop0_133"));
29291 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
29292 goto done;
29293 }
29294 p->mark = _mark;
29295 D(fprintf(stderr, "%*c%s _gather_132[%d-%d]: %s failed!\n", p->level, ' ',
29296 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_double_starred _loop0_133"));
29297 }
29298 _res = NULL;
29299 done:
29300 D(p->level--);
29301 return _res;
29302}
29303
29304// _loop0_134: (',' star_target)
29305static asdl_seq *
29306_loop0_134_rule(Parser *p)
29307{
29308 D(p->level++);
29309 if (p->error_indicator) {
29310 D(p->level--);
29311 return NULL;
29312 }
29313 void *_res = NULL;
29314 int _mark = p->mark;
29315 int _start_mark = p->mark;
29316 void **_children = PyMem_Malloc(sizeof(void *));
29317 if (!_children) {
29318 p->error_indicator = 1;
29319 PyErr_NoMemory();
29320 D(p->level--);
29321 return NULL;
29322 }
29323 Py_ssize_t _children_capacity = 1;
29324 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080029325 { // (',' star_target)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029326 if (p->error_indicator) {
29327 D(p->level--);
29328 return NULL;
29329 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029330 D(fprintf(stderr, "%*c> _loop0_134[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' star_target)"));
Pablo Galindoe53f72a2021-06-04 00:11:43 +010029331 void *_tmp_191_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029332 while (
Pablo Galindoe53f72a2021-06-04 00:11:43 +010029333 (_tmp_191_var = _tmp_191_rule(p)) // ',' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029334 )
29335 {
Pablo Galindoe53f72a2021-06-04 00:11:43 +010029336 _res = _tmp_191_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029337 if (_n == _children_capacity) {
29338 _children_capacity *= 2;
29339 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
29340 if (!_new_children) {
29341 p->error_indicator = 1;
29342 PyErr_NoMemory();
29343 D(p->level--);
29344 return NULL;
29345 }
29346 _children = _new_children;
29347 }
29348 _children[_n++] = _res;
29349 _mark = p->mark;
29350 }
29351 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029352 D(fprintf(stderr, "%*c%s _loop0_134[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080029353 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' star_target)"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029354 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010029355 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029356 if (!_seq) {
29357 PyMem_Free(_children);
29358 p->error_indicator = 1;
29359 PyErr_NoMemory();
29360 D(p->level--);
29361 return NULL;
29362 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010029363 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029364 PyMem_Free(_children);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029365 _PyPegen_insert_memo(p, _start_mark, _loop0_134_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029366 D(p->level--);
29367 return _seq;
29368}
29369
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029370// _loop0_136: ',' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029371static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029372_loop0_136_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029373{
29374 D(p->level++);
29375 if (p->error_indicator) {
29376 D(p->level--);
29377 return NULL;
29378 }
29379 void *_res = NULL;
29380 int _mark = p->mark;
29381 int _start_mark = p->mark;
29382 void **_children = PyMem_Malloc(sizeof(void *));
29383 if (!_children) {
29384 p->error_indicator = 1;
29385 PyErr_NoMemory();
29386 D(p->level--);
29387 return NULL;
29388 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010029389 Py_ssize_t _children_capacity = 1;
29390 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080029391 { // ',' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029392 if (p->error_indicator) {
29393 D(p->level--);
29394 return NULL;
29395 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029396 D(fprintf(stderr, "%*c> _loop0_136[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_target"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029397 Token * _literal;
29398 expr_ty elem;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029399 while (
Brandt Bucher145bf262021-02-26 14:51:55 -080029400 (_literal = _PyPegen_expect_token(p, 12)) // token=','
29401 &&
29402 (elem = star_target_rule(p)) // star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029403 )
29404 {
Brandt Bucher145bf262021-02-26 14:51:55 -080029405 _res = elem;
29406 if (_res == NULL && PyErr_Occurred()) {
29407 p->error_indicator = 1;
29408 PyMem_Free(_children);
29409 D(p->level--);
29410 return NULL;
29411 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029412 if (_n == _children_capacity) {
29413 _children_capacity *= 2;
29414 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
29415 if (!_new_children) {
29416 p->error_indicator = 1;
29417 PyErr_NoMemory();
29418 D(p->level--);
29419 return NULL;
29420 }
29421 _children = _new_children;
29422 }
29423 _children[_n++] = _res;
29424 _mark = p->mark;
29425 }
29426 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029427 D(fprintf(stderr, "%*c%s _loop0_136[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080029428 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029429 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010029430 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029431 if (!_seq) {
29432 PyMem_Free(_children);
29433 p->error_indicator = 1;
29434 PyErr_NoMemory();
29435 D(p->level--);
29436 return NULL;
29437 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010029438 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029439 PyMem_Free(_children);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029440 _PyPegen_insert_memo(p, _start_mark, _loop0_136_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029441 D(p->level--);
29442 return _seq;
29443}
29444
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029445// _gather_135: star_target _loop0_136
Brandt Bucher145bf262021-02-26 14:51:55 -080029446static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029447_gather_135_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080029448{
29449 D(p->level++);
29450 if (p->error_indicator) {
29451 D(p->level--);
29452 return NULL;
29453 }
29454 asdl_seq * _res = NULL;
29455 int _mark = p->mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029456 { // star_target _loop0_136
Brandt Bucher145bf262021-02-26 14:51:55 -080029457 if (p->error_indicator) {
29458 D(p->level--);
29459 return NULL;
29460 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029461 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 -080029462 expr_ty elem;
29463 asdl_seq * seq;
29464 if (
29465 (elem = star_target_rule(p)) // star_target
29466 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029467 (seq = _loop0_136_rule(p)) // _loop0_136
Brandt Bucher145bf262021-02-26 14:51:55 -080029468 )
29469 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029470 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 -080029471 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
29472 goto done;
29473 }
29474 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029475 D(fprintf(stderr, "%*c%s _gather_135[%d-%d]: %s failed!\n", p->level, ' ',
29476 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target _loop0_136"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029477 }
29478 _res = NULL;
29479 done:
29480 D(p->level--);
29481 return _res;
29482}
29483
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029484// _loop1_137: (',' star_target)
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020029485static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029486_loop1_137_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029487{
29488 D(p->level++);
29489 if (p->error_indicator) {
29490 D(p->level--);
29491 return NULL;
29492 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020029493 void *_res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029494 int _mark = p->mark;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020029495 int _start_mark = p->mark;
29496 void **_children = PyMem_Malloc(sizeof(void *));
29497 if (!_children) {
29498 p->error_indicator = 1;
29499 PyErr_NoMemory();
29500 D(p->level--);
29501 return NULL;
29502 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010029503 Py_ssize_t _children_capacity = 1;
29504 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080029505 { // (',' star_target)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029506 if (p->error_indicator) {
29507 D(p->level--);
29508 return NULL;
29509 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029510 D(fprintf(stderr, "%*c> _loop1_137[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' star_target)"));
Pablo Galindoe53f72a2021-06-04 00:11:43 +010029511 void *_tmp_192_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020029512 while (
Pablo Galindoe53f72a2021-06-04 00:11:43 +010029513 (_tmp_192_var = _tmp_192_rule(p)) // ',' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029514 )
29515 {
Pablo Galindoe53f72a2021-06-04 00:11:43 +010029516 _res = _tmp_192_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020029517 if (_n == _children_capacity) {
29518 _children_capacity *= 2;
29519 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
29520 if (!_new_children) {
29521 p->error_indicator = 1;
29522 PyErr_NoMemory();
29523 D(p->level--);
29524 return NULL;
29525 }
29526 _children = _new_children;
29527 }
29528 _children[_n++] = _res;
29529 _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029530 }
29531 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029532 D(fprintf(stderr, "%*c%s _loop1_137[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080029533 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' star_target)"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029534 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020029535 if (_n == 0 || p->error_indicator) {
29536 PyMem_Free(_children);
29537 D(p->level--);
29538 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029539 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020029540 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
29541 if (!_seq) {
29542 PyMem_Free(_children);
29543 p->error_indicator = 1;
29544 PyErr_NoMemory();
29545 D(p->level--);
29546 return NULL;
29547 }
29548 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
29549 PyMem_Free(_children);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029550 _PyPegen_insert_memo(p, _start_mark, _loop1_137_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029551 D(p->level--);
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020029552 return _seq;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029553}
29554
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029555// _tmp_138: !'*' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029556static void *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029557_tmp_138_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029558{
29559 D(p->level++);
29560 if (p->error_indicator) {
29561 D(p->level--);
29562 return NULL;
29563 }
29564 void * _res = NULL;
29565 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080029566 { // !'*' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029567 if (p->error_indicator) {
29568 D(p->level--);
29569 return NULL;
29570 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029571 D(fprintf(stderr, "%*c> _tmp_138[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "!'*' star_target"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029572 expr_ty star_target_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029573 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080029574 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 16) // token='*'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029575 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080029576 (star_target_var = star_target_rule(p)) // star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029577 )
29578 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029579 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 -080029580 _res = star_target_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029581 goto done;
29582 }
29583 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029584 D(fprintf(stderr, "%*c%s _tmp_138[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080029585 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "!'*' star_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029586 }
29587 _res = NULL;
29588 done:
29589 D(p->level--);
29590 return _res;
29591}
29592
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029593// _loop0_140: ',' del_target
Brandt Bucher145bf262021-02-26 14:51:55 -080029594static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029595_loop0_140_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029596{
29597 D(p->level++);
29598 if (p->error_indicator) {
29599 D(p->level--);
29600 return NULL;
29601 }
Brandt Bucher145bf262021-02-26 14:51:55 -080029602 void *_res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029603 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080029604 int _start_mark = p->mark;
29605 void **_children = PyMem_Malloc(sizeof(void *));
29606 if (!_children) {
29607 p->error_indicator = 1;
29608 PyErr_NoMemory();
29609 D(p->level--);
29610 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029611 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010029612 Py_ssize_t _children_capacity = 1;
29613 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080029614 { // ',' del_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029615 if (p->error_indicator) {
29616 D(p->level--);
29617 return NULL;
29618 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029619 D(fprintf(stderr, "%*c> _loop0_140[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' del_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029620 Token * _literal;
Brandt Bucher145bf262021-02-26 14:51:55 -080029621 expr_ty elem;
29622 while (
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029623 (_literal = _PyPegen_expect_token(p, 12)) // token=','
29624 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080029625 (elem = del_target_rule(p)) // del_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029626 )
29627 {
Brandt Bucher145bf262021-02-26 14:51:55 -080029628 _res = elem;
29629 if (_res == NULL && PyErr_Occurred()) {
29630 p->error_indicator = 1;
29631 PyMem_Free(_children);
29632 D(p->level--);
29633 return NULL;
29634 }
29635 if (_n == _children_capacity) {
29636 _children_capacity *= 2;
29637 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
29638 if (!_new_children) {
29639 p->error_indicator = 1;
29640 PyErr_NoMemory();
29641 D(p->level--);
29642 return NULL;
29643 }
29644 _children = _new_children;
29645 }
29646 _children[_n++] = _res;
29647 _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029648 }
29649 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029650 D(fprintf(stderr, "%*c%s _loop0_140[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080029651 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' del_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029652 }
Brandt Bucher145bf262021-02-26 14:51:55 -080029653 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
29654 if (!_seq) {
29655 PyMem_Free(_children);
29656 p->error_indicator = 1;
29657 PyErr_NoMemory();
29658 D(p->level--);
29659 return NULL;
29660 }
29661 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
29662 PyMem_Free(_children);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029663 _PyPegen_insert_memo(p, _start_mark, _loop0_140_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029664 D(p->level--);
Brandt Bucher145bf262021-02-26 14:51:55 -080029665 return _seq;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029666}
29667
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029668// _gather_139: del_target _loop0_140
Brandt Bucher145bf262021-02-26 14:51:55 -080029669static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029670_gather_139_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029671{
29672 D(p->level++);
29673 if (p->error_indicator) {
29674 D(p->level--);
29675 return NULL;
29676 }
Brandt Bucher145bf262021-02-26 14:51:55 -080029677 asdl_seq * _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029678 int _mark = p->mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029679 { // del_target _loop0_140
Pablo Galindo58fb1562021-02-02 19:54:22 +000029680 if (p->error_indicator) {
29681 D(p->level--);
29682 return NULL;
29683 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029684 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 -080029685 expr_ty elem;
29686 asdl_seq * seq;
Pablo Galindo58fb1562021-02-02 19:54:22 +000029687 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080029688 (elem = del_target_rule(p)) // del_target
29689 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029690 (seq = _loop0_140_rule(p)) // _loop0_140
Pablo Galindo58fb1562021-02-02 19:54:22 +000029691 )
29692 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029693 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 -080029694 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindo58fb1562021-02-02 19:54:22 +000029695 goto done;
29696 }
29697 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029698 D(fprintf(stderr, "%*c%s _gather_139[%d-%d]: %s failed!\n", p->level, ' ',
29699 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "del_target _loop0_140"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000029700 }
29701 _res = NULL;
29702 done:
29703 D(p->level--);
29704 return _res;
29705}
29706
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029707// _loop0_142: ',' target
Pablo Galindo58fb1562021-02-02 19:54:22 +000029708static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029709_loop0_142_rule(Parser *p)
Pablo Galindo58fb1562021-02-02 19:54:22 +000029710{
29711 D(p->level++);
29712 if (p->error_indicator) {
29713 D(p->level--);
29714 return NULL;
29715 }
29716 void *_res = NULL;
29717 int _mark = p->mark;
29718 int _start_mark = p->mark;
29719 void **_children = PyMem_Malloc(sizeof(void *));
29720 if (!_children) {
29721 p->error_indicator = 1;
29722 PyErr_NoMemory();
29723 D(p->level--);
29724 return NULL;
29725 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010029726 Py_ssize_t _children_capacity = 1;
29727 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080029728 { // ',' target
Pablo Galindo58fb1562021-02-02 19:54:22 +000029729 if (p->error_indicator) {
29730 D(p->level--);
29731 return NULL;
29732 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029733 D(fprintf(stderr, "%*c> _loop0_142[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' target"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000029734 Token * _literal;
Brandt Bucher145bf262021-02-26 14:51:55 -080029735 expr_ty elem;
Pablo Galindo58fb1562021-02-02 19:54:22 +000029736 while (
29737 (_literal = _PyPegen_expect_token(p, 12)) // token=','
29738 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080029739 (elem = target_rule(p)) // target
Pablo Galindo58fb1562021-02-02 19:54:22 +000029740 )
29741 {
29742 _res = elem;
29743 if (_res == NULL && PyErr_Occurred()) {
29744 p->error_indicator = 1;
29745 PyMem_Free(_children);
29746 D(p->level--);
29747 return NULL;
29748 }
29749 if (_n == _children_capacity) {
29750 _children_capacity *= 2;
29751 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
29752 if (!_new_children) {
29753 p->error_indicator = 1;
29754 PyErr_NoMemory();
29755 D(p->level--);
29756 return NULL;
29757 }
29758 _children = _new_children;
29759 }
29760 _children[_n++] = _res;
29761 _mark = p->mark;
29762 }
29763 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029764 D(fprintf(stderr, "%*c%s _loop0_142[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080029765 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' target"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000029766 }
29767 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
29768 if (!_seq) {
29769 PyMem_Free(_children);
29770 p->error_indicator = 1;
29771 PyErr_NoMemory();
29772 D(p->level--);
29773 return NULL;
29774 }
29775 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
29776 PyMem_Free(_children);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029777 _PyPegen_insert_memo(p, _start_mark, _loop0_142_type, _seq);
Pablo Galindo58fb1562021-02-02 19:54:22 +000029778 D(p->level--);
29779 return _seq;
29780}
29781
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029782// _gather_141: target _loop0_142
Pablo Galindo58fb1562021-02-02 19:54:22 +000029783static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029784_gather_141_rule(Parser *p)
Pablo Galindo58fb1562021-02-02 19:54:22 +000029785{
29786 D(p->level++);
29787 if (p->error_indicator) {
29788 D(p->level--);
29789 return NULL;
29790 }
29791 asdl_seq * _res = NULL;
29792 int _mark = p->mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029793 { // target _loop0_142
Pablo Galindo58fb1562021-02-02 19:54:22 +000029794 if (p->error_indicator) {
29795 D(p->level--);
29796 return NULL;
29797 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029798 D(fprintf(stderr, "%*c> _gather_141[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "target _loop0_142"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029799 expr_ty elem;
Pablo Galindo58fb1562021-02-02 19:54:22 +000029800 asdl_seq * seq;
29801 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080029802 (elem = target_rule(p)) // target
Pablo Galindo58fb1562021-02-02 19:54:22 +000029803 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029804 (seq = _loop0_142_rule(p)) // _loop0_142
Pablo Galindo58fb1562021-02-02 19:54:22 +000029805 )
29806 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029807 D(fprintf(stderr, "%*c+ _gather_141[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "target _loop0_142"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000029808 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
29809 goto done;
29810 }
29811 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029812 D(fprintf(stderr, "%*c%s _gather_141[%d-%d]: %s failed!\n", p->level, ' ',
29813 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "target _loop0_142"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000029814 }
29815 _res = NULL;
29816 done:
29817 D(p->level--);
29818 return _res;
29819}
29820
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029821// _tmp_143: args | expression for_if_clauses
Brandt Bucher145bf262021-02-26 14:51:55 -080029822static void *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029823_tmp_143_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080029824{
29825 D(p->level++);
29826 if (p->error_indicator) {
29827 D(p->level--);
29828 return NULL;
29829 }
29830 void * _res = NULL;
29831 int _mark = p->mark;
29832 { // args
29833 if (p->error_indicator) {
29834 D(p->level--);
29835 return NULL;
29836 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029837 D(fprintf(stderr, "%*c> _tmp_143[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029838 expr_ty args_var;
29839 if (
29840 (args_var = args_rule(p)) // args
29841 )
29842 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029843 D(fprintf(stderr, "%*c+ _tmp_143[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029844 _res = args_var;
29845 goto done;
29846 }
29847 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029848 D(fprintf(stderr, "%*c%s _tmp_143[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080029849 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args"));
29850 }
29851 { // expression for_if_clauses
29852 if (p->error_indicator) {
29853 D(p->level--);
29854 return NULL;
29855 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029856 D(fprintf(stderr, "%*c> _tmp_143[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression for_if_clauses"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029857 expr_ty expression_var;
29858 asdl_comprehension_seq* for_if_clauses_var;
29859 if (
29860 (expression_var = expression_rule(p)) // expression
29861 &&
29862 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
29863 )
29864 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029865 D(fprintf(stderr, "%*c+ _tmp_143[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression for_if_clauses"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029866 _res = _PyPegen_dummy_name(p, expression_var, for_if_clauses_var);
29867 goto done;
29868 }
29869 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029870 D(fprintf(stderr, "%*c%s _tmp_143[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080029871 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression for_if_clauses"));
29872 }
29873 _res = NULL;
29874 done:
29875 D(p->level--);
29876 return _res;
29877}
29878
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029879// _tmp_144: NAME '='
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029880static void *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029881_tmp_144_rule(Parser *p)
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029882{
29883 D(p->level++);
29884 if (p->error_indicator) {
29885 D(p->level--);
29886 return NULL;
29887 }
29888 void * _res = NULL;
29889 int _mark = p->mark;
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070029890 { // NAME '='
29891 if (p->error_indicator) {
29892 D(p->level--);
29893 return NULL;
29894 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029895 D(fprintf(stderr, "%*c> _tmp_144[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME '='"));
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070029896 Token * _literal;
29897 expr_ty name_var;
29898 if (
29899 (name_var = _PyPegen_name_token(p)) // NAME
29900 &&
29901 (_literal = _PyPegen_expect_token(p, 22)) // token='='
29902 )
29903 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029904 D(fprintf(stderr, "%*c+ _tmp_144[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '='"));
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070029905 _res = _PyPegen_dummy_name(p, name_var, _literal);
29906 goto done;
29907 }
29908 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029909 D(fprintf(stderr, "%*c%s _tmp_144[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070029910 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '='"));
29911 }
29912 _res = NULL;
29913 done:
29914 D(p->level--);
29915 return _res;
29916}
29917
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029918// _tmp_145: NAME STRING | SOFT_KEYWORD
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070029919static void *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029920_tmp_145_rule(Parser *p)
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070029921{
29922 D(p->level++);
29923 if (p->error_indicator) {
29924 D(p->level--);
29925 return NULL;
29926 }
29927 void * _res = NULL;
29928 int _mark = p->mark;
Pablo Galindob2802482021-04-15 21:38:45 +010029929 { // NAME STRING
29930 if (p->error_indicator) {
29931 D(p->level--);
29932 return NULL;
29933 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029934 D(fprintf(stderr, "%*c> _tmp_145[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME STRING"));
Pablo Galindob2802482021-04-15 21:38:45 +010029935 expr_ty name_var;
29936 expr_ty string_var;
29937 if (
29938 (name_var = _PyPegen_name_token(p)) // NAME
29939 &&
29940 (string_var = _PyPegen_string_token(p)) // STRING
29941 )
29942 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029943 D(fprintf(stderr, "%*c+ _tmp_145[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME STRING"));
Pablo Galindob2802482021-04-15 21:38:45 +010029944 _res = _PyPegen_dummy_name(p, name_var, string_var);
29945 goto done;
29946 }
29947 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029948 D(fprintf(stderr, "%*c%s _tmp_145[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob2802482021-04-15 21:38:45 +010029949 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME STRING"));
29950 }
29951 { // SOFT_KEYWORD
29952 if (p->error_indicator) {
29953 D(p->level--);
29954 return NULL;
29955 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029956 D(fprintf(stderr, "%*c> _tmp_145[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "SOFT_KEYWORD"));
Pablo Galindob2802482021-04-15 21:38:45 +010029957 expr_ty soft_keyword_var;
29958 if (
29959 (soft_keyword_var = _PyPegen_soft_keyword_token(p)) // SOFT_KEYWORD
29960 )
29961 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029962 D(fprintf(stderr, "%*c+ _tmp_145[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "SOFT_KEYWORD"));
Pablo Galindob2802482021-04-15 21:38:45 +010029963 _res = soft_keyword_var;
29964 goto done;
29965 }
29966 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029967 D(fprintf(stderr, "%*c%s _tmp_145[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob2802482021-04-15 21:38:45 +010029968 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "SOFT_KEYWORD"));
29969 }
29970 _res = NULL;
29971 done:
29972 D(p->level--);
29973 return _res;
29974}
29975
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029976// _tmp_146: '=' | ':='
Pablo Galindob2802482021-04-15 21:38:45 +010029977static void *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029978_tmp_146_rule(Parser *p)
Pablo Galindob2802482021-04-15 21:38:45 +010029979{
29980 D(p->level++);
29981 if (p->error_indicator) {
29982 D(p->level--);
29983 return NULL;
29984 }
29985 void * _res = NULL;
29986 int _mark = p->mark;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029987 { // '='
29988 if (p->error_indicator) {
29989 D(p->level--);
29990 return NULL;
29991 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029992 D(fprintf(stderr, "%*c> _tmp_146[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'='"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029993 Token * _literal;
29994 if (
29995 (_literal = _PyPegen_expect_token(p, 22)) // token='='
29996 )
29997 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029998 D(fprintf(stderr, "%*c+ _tmp_146[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'='"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029999 _res = _literal;
30000 goto done;
30001 }
30002 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030003 D(fprintf(stderr, "%*c%s _tmp_146[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030004 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'='"));
30005 }
30006 { // ':='
30007 if (p->error_indicator) {
30008 D(p->level--);
30009 return NULL;
30010 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030011 D(fprintf(stderr, "%*c> _tmp_146[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':='"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030012 Token * _literal;
30013 if (
30014 (_literal = _PyPegen_expect_token(p, 53)) // token=':='
30015 )
30016 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030017 D(fprintf(stderr, "%*c+ _tmp_146[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':='"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030018 _res = _literal;
30019 goto done;
30020 }
30021 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030022 D(fprintf(stderr, "%*c%s _tmp_146[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030023 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':='"));
30024 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030025 _res = NULL;
30026 done:
30027 D(p->level--);
30028 return _res;
30029}
30030
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030031// _tmp_147: list | tuple | genexp | 'True' | 'None' | 'False'
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030032static void *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030033_tmp_147_rule(Parser *p)
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030034{
30035 D(p->level++);
30036 if (p->error_indicator) {
30037 D(p->level--);
30038 return NULL;
30039 }
30040 void * _res = NULL;
30041 int _mark = p->mark;
30042 { // list
30043 if (p->error_indicator) {
30044 D(p->level--);
30045 return NULL;
30046 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030047 D(fprintf(stderr, "%*c> _tmp_147[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "list"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030048 expr_ty list_var;
30049 if (
30050 (list_var = list_rule(p)) // list
30051 )
30052 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030053 D(fprintf(stderr, "%*c+ _tmp_147[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "list"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030054 _res = list_var;
30055 goto done;
30056 }
30057 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030058 D(fprintf(stderr, "%*c%s _tmp_147[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030059 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "list"));
30060 }
30061 { // tuple
30062 if (p->error_indicator) {
30063 D(p->level--);
30064 return NULL;
30065 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030066 D(fprintf(stderr, "%*c> _tmp_147[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "tuple"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030067 expr_ty tuple_var;
30068 if (
30069 (tuple_var = tuple_rule(p)) // tuple
30070 )
30071 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030072 D(fprintf(stderr, "%*c+ _tmp_147[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "tuple"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030073 _res = tuple_var;
30074 goto done;
30075 }
30076 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030077 D(fprintf(stderr, "%*c%s _tmp_147[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030078 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "tuple"));
30079 }
30080 { // genexp
30081 if (p->error_indicator) {
30082 D(p->level--);
30083 return NULL;
30084 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030085 D(fprintf(stderr, "%*c> _tmp_147[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "genexp"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030086 expr_ty genexp_var;
30087 if (
30088 (genexp_var = genexp_rule(p)) // genexp
30089 )
30090 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030091 D(fprintf(stderr, "%*c+ _tmp_147[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "genexp"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030092 _res = genexp_var;
30093 goto done;
30094 }
30095 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030096 D(fprintf(stderr, "%*c%s _tmp_147[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030097 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "genexp"));
30098 }
30099 { // 'True'
30100 if (p->error_indicator) {
30101 D(p->level--);
30102 return NULL;
30103 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030104 D(fprintf(stderr, "%*c> _tmp_147[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'True'"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030105 Token * _keyword;
30106 if (
30107 (_keyword = _PyPegen_expect_token(p, 524)) // token='True'
30108 )
30109 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030110 D(fprintf(stderr, "%*c+ _tmp_147[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030111 _res = _keyword;
30112 goto done;
30113 }
30114 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030115 D(fprintf(stderr, "%*c%s _tmp_147[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030116 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'True'"));
30117 }
30118 { // 'None'
30119 if (p->error_indicator) {
30120 D(p->level--);
30121 return NULL;
30122 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030123 D(fprintf(stderr, "%*c> _tmp_147[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'None'"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030124 Token * _keyword;
30125 if (
30126 (_keyword = _PyPegen_expect_token(p, 523)) // token='None'
30127 )
30128 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030129 D(fprintf(stderr, "%*c+ _tmp_147[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030130 _res = _keyword;
30131 goto done;
30132 }
30133 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030134 D(fprintf(stderr, "%*c%s _tmp_147[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030135 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'None'"));
30136 }
30137 { // 'False'
30138 if (p->error_indicator) {
30139 D(p->level--);
30140 return NULL;
30141 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030142 D(fprintf(stderr, "%*c> _tmp_147[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False'"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030143 Token * _keyword;
30144 if (
30145 (_keyword = _PyPegen_expect_token(p, 525)) // token='False'
30146 )
30147 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030148 D(fprintf(stderr, "%*c+ _tmp_147[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030149 _res = _keyword;
30150 goto done;
30151 }
30152 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030153 D(fprintf(stderr, "%*c%s _tmp_147[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030154 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'False'"));
30155 }
30156 _res = NULL;
30157 done:
30158 D(p->level--);
30159 return _res;
30160}
30161
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030162// _tmp_148: '=' | ':='
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030163static void *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030164_tmp_148_rule(Parser *p)
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030165{
30166 D(p->level++);
30167 if (p->error_indicator) {
30168 D(p->level--);
30169 return NULL;
30170 }
30171 void * _res = NULL;
30172 int _mark = p->mark;
30173 { // '='
30174 if (p->error_indicator) {
30175 D(p->level--);
30176 return NULL;
30177 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030178 D(fprintf(stderr, "%*c> _tmp_148[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'='"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030179 Token * _literal;
30180 if (
30181 (_literal = _PyPegen_expect_token(p, 22)) // token='='
30182 )
30183 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030184 D(fprintf(stderr, "%*c+ _tmp_148[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'='"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030185 _res = _literal;
30186 goto done;
30187 }
30188 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030189 D(fprintf(stderr, "%*c%s _tmp_148[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030190 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'='"));
30191 }
30192 { // ':='
30193 if (p->error_indicator) {
30194 D(p->level--);
30195 return NULL;
30196 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030197 D(fprintf(stderr, "%*c> _tmp_148[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':='"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030198 Token * _literal;
30199 if (
30200 (_literal = _PyPegen_expect_token(p, 53)) // token=':='
30201 )
30202 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030203 D(fprintf(stderr, "%*c+ _tmp_148[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':='"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030204 _res = _literal;
30205 goto done;
30206 }
30207 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030208 D(fprintf(stderr, "%*c%s _tmp_148[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030209 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':='"));
30210 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030211 _res = NULL;
30212 done:
30213 D(p->level--);
30214 return _res;
30215}
30216
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030217// _loop0_149: star_named_expressions
Pablo Galindo58fb1562021-02-02 19:54:22 +000030218static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030219_loop0_149_rule(Parser *p)
Pablo Galindo58fb1562021-02-02 19:54:22 +000030220{
30221 D(p->level++);
30222 if (p->error_indicator) {
30223 D(p->level--);
30224 return NULL;
30225 }
30226 void *_res = NULL;
30227 int _mark = p->mark;
30228 int _start_mark = p->mark;
30229 void **_children = PyMem_Malloc(sizeof(void *));
30230 if (!_children) {
30231 p->error_indicator = 1;
30232 PyErr_NoMemory();
30233 D(p->level--);
30234 return NULL;
30235 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010030236 Py_ssize_t _children_capacity = 1;
30237 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080030238 { // star_named_expressions
Pablo Galindo58fb1562021-02-02 19:54:22 +000030239 if (p->error_indicator) {
30240 D(p->level--);
30241 return NULL;
30242 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030243 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 -080030244 asdl_expr_seq* star_named_expressions_var;
30245 while (
30246 (star_named_expressions_var = star_named_expressions_rule(p)) // star_named_expressions
30247 )
30248 {
30249 _res = star_named_expressions_var;
30250 if (_n == _children_capacity) {
30251 _children_capacity *= 2;
30252 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
30253 if (!_new_children) {
30254 p->error_indicator = 1;
30255 PyErr_NoMemory();
30256 D(p->level--);
30257 return NULL;
30258 }
30259 _children = _new_children;
30260 }
30261 _children[_n++] = _res;
30262 _mark = p->mark;
30263 }
30264 p->mark = _mark;
Pablo Galindob2802482021-04-15 21:38:45 +010030265 D(fprintf(stderr, "%*c%s _loop0_149[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030266 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expressions"));
Pablo Galindob2802482021-04-15 21:38:45 +010030267 }
30268 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
30269 if (!_seq) {
30270 PyMem_Free(_children);
30271 p->error_indicator = 1;
30272 PyErr_NoMemory();
30273 D(p->level--);
30274 return NULL;
30275 }
30276 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
30277 PyMem_Free(_children);
30278 _PyPegen_insert_memo(p, _start_mark, _loop0_149_type, _seq);
30279 D(p->level--);
30280 return _seq;
30281}
30282
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070030283// _loop0_150: (star_targets '=')
30284static asdl_seq *
30285_loop0_150_rule(Parser *p)
30286{
30287 D(p->level++);
30288 if (p->error_indicator) {
30289 D(p->level--);
30290 return NULL;
30291 }
30292 void *_res = NULL;
30293 int _mark = p->mark;
30294 int _start_mark = p->mark;
30295 void **_children = PyMem_Malloc(sizeof(void *));
30296 if (!_children) {
30297 p->error_indicator = 1;
30298 PyErr_NoMemory();
30299 D(p->level--);
30300 return NULL;
30301 }
30302 Py_ssize_t _children_capacity = 1;
30303 Py_ssize_t _n = 0;
30304 { // (star_targets '=')
30305 if (p->error_indicator) {
30306 D(p->level--);
30307 return NULL;
30308 }
30309 D(fprintf(stderr, "%*c> _loop0_150[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')"));
Pablo Galindoe53f72a2021-06-04 00:11:43 +010030310 void *_tmp_193_var;
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070030311 while (
Pablo Galindoe53f72a2021-06-04 00:11:43 +010030312 (_tmp_193_var = _tmp_193_rule(p)) // star_targets '='
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070030313 )
30314 {
Pablo Galindoe53f72a2021-06-04 00:11:43 +010030315 _res = _tmp_193_var;
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070030316 if (_n == _children_capacity) {
30317 _children_capacity *= 2;
30318 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
30319 if (!_new_children) {
30320 p->error_indicator = 1;
30321 PyErr_NoMemory();
30322 D(p->level--);
30323 return NULL;
30324 }
30325 _children = _new_children;
30326 }
30327 _children[_n++] = _res;
30328 _mark = p->mark;
30329 }
30330 p->mark = _mark;
30331 D(fprintf(stderr, "%*c%s _loop0_150[%d-%d]: %s failed!\n", p->level, ' ',
30332 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(star_targets '=')"));
30333 }
30334 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
30335 if (!_seq) {
30336 PyMem_Free(_children);
30337 p->error_indicator = 1;
30338 PyErr_NoMemory();
30339 D(p->level--);
30340 return NULL;
30341 }
30342 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
30343 PyMem_Free(_children);
30344 _PyPegen_insert_memo(p, _start_mark, _loop0_150_type, _seq);
30345 D(p->level--);
30346 return _seq;
30347}
30348
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030349// _loop0_151: (star_targets '=')
30350static asdl_seq *
30351_loop0_151_rule(Parser *p)
30352{
30353 D(p->level++);
30354 if (p->error_indicator) {
30355 D(p->level--);
30356 return NULL;
30357 }
30358 void *_res = NULL;
30359 int _mark = p->mark;
30360 int _start_mark = p->mark;
30361 void **_children = PyMem_Malloc(sizeof(void *));
30362 if (!_children) {
30363 p->error_indicator = 1;
30364 PyErr_NoMemory();
30365 D(p->level--);
30366 return NULL;
30367 }
30368 Py_ssize_t _children_capacity = 1;
30369 Py_ssize_t _n = 0;
30370 { // (star_targets '=')
30371 if (p->error_indicator) {
30372 D(p->level--);
30373 return NULL;
30374 }
30375 D(fprintf(stderr, "%*c> _loop0_151[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')"));
Pablo Galindoe53f72a2021-06-04 00:11:43 +010030376 void *_tmp_194_var;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030377 while (
Pablo Galindoe53f72a2021-06-04 00:11:43 +010030378 (_tmp_194_var = _tmp_194_rule(p)) // star_targets '='
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030379 )
30380 {
Pablo Galindoe53f72a2021-06-04 00:11:43 +010030381 _res = _tmp_194_var;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030382 if (_n == _children_capacity) {
30383 _children_capacity *= 2;
30384 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
30385 if (!_new_children) {
30386 p->error_indicator = 1;
30387 PyErr_NoMemory();
30388 D(p->level--);
30389 return NULL;
30390 }
30391 _children = _new_children;
30392 }
30393 _children[_n++] = _res;
30394 _mark = p->mark;
30395 }
30396 p->mark = _mark;
30397 D(fprintf(stderr, "%*c%s _loop0_151[%d-%d]: %s failed!\n", p->level, ' ',
30398 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(star_targets '=')"));
30399 }
30400 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
30401 if (!_seq) {
30402 PyMem_Free(_children);
30403 p->error_indicator = 1;
30404 PyErr_NoMemory();
30405 D(p->level--);
30406 return NULL;
30407 }
30408 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
30409 PyMem_Free(_children);
30410 _PyPegen_insert_memo(p, _start_mark, _loop0_151_type, _seq);
30411 D(p->level--);
30412 return _seq;
30413}
30414
30415// _tmp_152: yield_expr | star_expressions
Brandt Bucher145bf262021-02-26 14:51:55 -080030416static void *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030417_tmp_152_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080030418{
30419 D(p->level++);
30420 if (p->error_indicator) {
30421 D(p->level--);
30422 return NULL;
30423 }
30424 void * _res = NULL;
30425 int _mark = p->mark;
30426 { // yield_expr
30427 if (p->error_indicator) {
30428 D(p->level--);
30429 return NULL;
30430 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030431 D(fprintf(stderr, "%*c> _tmp_152[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
Brandt Bucher145bf262021-02-26 14:51:55 -080030432 expr_ty yield_expr_var;
30433 if (
30434 (yield_expr_var = yield_expr_rule(p)) // yield_expr
30435 )
30436 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030437 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 -080030438 _res = yield_expr_var;
30439 goto done;
30440 }
30441 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030442 D(fprintf(stderr, "%*c%s _tmp_152[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080030443 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
30444 }
30445 { // star_expressions
30446 if (p->error_indicator) {
30447 D(p->level--);
30448 return NULL;
30449 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030450 D(fprintf(stderr, "%*c> _tmp_152[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
Brandt Bucher145bf262021-02-26 14:51:55 -080030451 expr_ty star_expressions_var;
30452 if (
30453 (star_expressions_var = star_expressions_rule(p)) // star_expressions
30454 )
30455 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030456 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 -080030457 _res = star_expressions_var;
30458 goto done;
30459 }
30460 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030461 D(fprintf(stderr, "%*c%s _tmp_152[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080030462 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
30463 }
30464 _res = NULL;
30465 done:
30466 D(p->level--);
30467 return _res;
30468}
30469
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030470// _tmp_153: '[' | '(' | '{'
Pablo Galindoa77aac42021-04-23 14:27:05 +010030471static void *
30472_tmp_153_rule(Parser *p)
30473{
30474 D(p->level++);
30475 if (p->error_indicator) {
30476 D(p->level--);
30477 return NULL;
30478 }
30479 void * _res = NULL;
30480 int _mark = p->mark;
30481 { // '['
30482 if (p->error_indicator) {
30483 D(p->level--);
30484 return NULL;
30485 }
30486 D(fprintf(stderr, "%*c> _tmp_153[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['"));
30487 Token * _literal;
30488 if (
30489 (_literal = _PyPegen_expect_token(p, 9)) // token='['
30490 )
30491 {
30492 D(fprintf(stderr, "%*c+ _tmp_153[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['"));
30493 _res = _literal;
30494 goto done;
30495 }
30496 p->mark = _mark;
30497 D(fprintf(stderr, "%*c%s _tmp_153[%d-%d]: %s failed!\n", p->level, ' ',
30498 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'['"));
30499 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030500 { // '('
30501 if (p->error_indicator) {
30502 D(p->level--);
30503 return NULL;
30504 }
30505 D(fprintf(stderr, "%*c> _tmp_153[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'('"));
30506 Token * _literal;
30507 if (
30508 (_literal = _PyPegen_expect_token(p, 7)) // token='('
30509 )
30510 {
30511 D(fprintf(stderr, "%*c+ _tmp_153[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'('"));
30512 _res = _literal;
30513 goto done;
30514 }
30515 p->mark = _mark;
30516 D(fprintf(stderr, "%*c%s _tmp_153[%d-%d]: %s failed!\n", p->level, ' ',
30517 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'('"));
30518 }
Pablo Galindoa77aac42021-04-23 14:27:05 +010030519 { // '{'
30520 if (p->error_indicator) {
30521 D(p->level--);
30522 return NULL;
30523 }
30524 D(fprintf(stderr, "%*c> _tmp_153[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{'"));
30525 Token * _literal;
30526 if (
30527 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
30528 )
30529 {
30530 D(fprintf(stderr, "%*c+ _tmp_153[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{'"));
30531 _res = _literal;
30532 goto done;
30533 }
30534 p->mark = _mark;
30535 D(fprintf(stderr, "%*c%s _tmp_153[%d-%d]: %s failed!\n", p->level, ' ',
30536 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{'"));
30537 }
30538 _res = NULL;
30539 done:
30540 D(p->level--);
30541 return _res;
30542}
30543
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070030544// _tmp_154: '[' | '{'
30545static void *
30546_tmp_154_rule(Parser *p)
30547{
30548 D(p->level++);
30549 if (p->error_indicator) {
30550 D(p->level--);
30551 return NULL;
30552 }
30553 void * _res = NULL;
30554 int _mark = p->mark;
30555 { // '['
30556 if (p->error_indicator) {
30557 D(p->level--);
30558 return NULL;
30559 }
30560 D(fprintf(stderr, "%*c> _tmp_154[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['"));
30561 Token * _literal;
30562 if (
30563 (_literal = _PyPegen_expect_token(p, 9)) // token='['
30564 )
30565 {
30566 D(fprintf(stderr, "%*c+ _tmp_154[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['"));
30567 _res = _literal;
30568 goto done;
30569 }
30570 p->mark = _mark;
30571 D(fprintf(stderr, "%*c%s _tmp_154[%d-%d]: %s failed!\n", p->level, ' ',
30572 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'['"));
30573 }
30574 { // '{'
30575 if (p->error_indicator) {
30576 D(p->level--);
30577 return NULL;
30578 }
30579 D(fprintf(stderr, "%*c> _tmp_154[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{'"));
30580 Token * _literal;
30581 if (
30582 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
30583 )
30584 {
30585 D(fprintf(stderr, "%*c+ _tmp_154[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{'"));
30586 _res = _literal;
30587 goto done;
30588 }
30589 p->mark = _mark;
30590 D(fprintf(stderr, "%*c%s _tmp_154[%d-%d]: %s failed!\n", p->level, ' ',
30591 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{'"));
30592 }
30593 _res = NULL;
30594 done:
30595 D(p->level--);
30596 return _res;
30597}
30598
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030599// _tmp_155: '[' | '{'
30600static void *
30601_tmp_155_rule(Parser *p)
30602{
30603 D(p->level++);
30604 if (p->error_indicator) {
30605 D(p->level--);
30606 return NULL;
30607 }
30608 void * _res = NULL;
30609 int _mark = p->mark;
30610 { // '['
30611 if (p->error_indicator) {
30612 D(p->level--);
30613 return NULL;
30614 }
30615 D(fprintf(stderr, "%*c> _tmp_155[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['"));
30616 Token * _literal;
30617 if (
30618 (_literal = _PyPegen_expect_token(p, 9)) // token='['
30619 )
30620 {
30621 D(fprintf(stderr, "%*c+ _tmp_155[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['"));
30622 _res = _literal;
30623 goto done;
30624 }
30625 p->mark = _mark;
30626 D(fprintf(stderr, "%*c%s _tmp_155[%d-%d]: %s failed!\n", p->level, ' ',
30627 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'['"));
30628 }
30629 { // '{'
30630 if (p->error_indicator) {
30631 D(p->level--);
30632 return NULL;
30633 }
30634 D(fprintf(stderr, "%*c> _tmp_155[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{'"));
30635 Token * _literal;
30636 if (
30637 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
30638 )
30639 {
30640 D(fprintf(stderr, "%*c+ _tmp_155[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{'"));
30641 _res = _literal;
30642 goto done;
30643 }
30644 p->mark = _mark;
30645 D(fprintf(stderr, "%*c%s _tmp_155[%d-%d]: %s failed!\n", p->level, ' ',
30646 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{'"));
30647 }
30648 _res = NULL;
30649 done:
30650 D(p->level--);
30651 return _res;
30652}
30653
30654// _loop0_156: param_no_default
Brandt Bucher145bf262021-02-26 14:51:55 -080030655static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030656_loop0_156_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080030657{
30658 D(p->level++);
30659 if (p->error_indicator) {
30660 D(p->level--);
30661 return NULL;
30662 }
30663 void *_res = NULL;
30664 int _mark = p->mark;
30665 int _start_mark = p->mark;
30666 void **_children = PyMem_Malloc(sizeof(void *));
30667 if (!_children) {
30668 p->error_indicator = 1;
30669 PyErr_NoMemory();
30670 D(p->level--);
30671 return NULL;
30672 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010030673 Py_ssize_t _children_capacity = 1;
30674 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080030675 { // param_no_default
30676 if (p->error_indicator) {
30677 D(p->level--);
30678 return NULL;
30679 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030680 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 -080030681 arg_ty param_no_default_var;
30682 while (
30683 (param_no_default_var = param_no_default_rule(p)) // param_no_default
30684 )
30685 {
30686 _res = param_no_default_var;
30687 if (_n == _children_capacity) {
30688 _children_capacity *= 2;
30689 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
30690 if (!_new_children) {
30691 p->error_indicator = 1;
30692 PyErr_NoMemory();
30693 D(p->level--);
30694 return NULL;
30695 }
30696 _children = _new_children;
30697 }
30698 _children[_n++] = _res;
30699 _mark = p->mark;
30700 }
30701 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030702 D(fprintf(stderr, "%*c%s _loop0_156[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080030703 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
30704 }
30705 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
30706 if (!_seq) {
30707 PyMem_Free(_children);
30708 p->error_indicator = 1;
30709 PyErr_NoMemory();
30710 D(p->level--);
30711 return NULL;
30712 }
30713 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
30714 PyMem_Free(_children);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030715 _PyPegen_insert_memo(p, _start_mark, _loop0_156_type, _seq);
Brandt Bucher145bf262021-02-26 14:51:55 -080030716 D(p->level--);
30717 return _seq;
30718}
30719
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030720// _loop1_157: param_with_default
Brandt Bucher145bf262021-02-26 14:51:55 -080030721static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030722_loop1_157_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080030723{
30724 D(p->level++);
30725 if (p->error_indicator) {
30726 D(p->level--);
30727 return NULL;
30728 }
30729 void *_res = NULL;
30730 int _mark = p->mark;
30731 int _start_mark = p->mark;
30732 void **_children = PyMem_Malloc(sizeof(void *));
30733 if (!_children) {
30734 p->error_indicator = 1;
30735 PyErr_NoMemory();
30736 D(p->level--);
30737 return NULL;
30738 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010030739 Py_ssize_t _children_capacity = 1;
30740 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080030741 { // param_with_default
30742 if (p->error_indicator) {
30743 D(p->level--);
30744 return NULL;
30745 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030746 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 -080030747 NameDefaultPair* param_with_default_var;
30748 while (
30749 (param_with_default_var = param_with_default_rule(p)) // param_with_default
30750 )
30751 {
30752 _res = param_with_default_var;
30753 if (_n == _children_capacity) {
30754 _children_capacity *= 2;
30755 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
30756 if (!_new_children) {
30757 p->error_indicator = 1;
30758 PyErr_NoMemory();
30759 D(p->level--);
30760 return NULL;
30761 }
30762 _children = _new_children;
30763 }
30764 _children[_n++] = _res;
30765 _mark = p->mark;
30766 }
30767 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030768 D(fprintf(stderr, "%*c%s _loop1_157[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080030769 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
30770 }
30771 if (_n == 0 || p->error_indicator) {
30772 PyMem_Free(_children);
30773 D(p->level--);
30774 return NULL;
30775 }
30776 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
30777 if (!_seq) {
30778 PyMem_Free(_children);
30779 p->error_indicator = 1;
30780 PyErr_NoMemory();
30781 D(p->level--);
30782 return NULL;
30783 }
30784 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
30785 PyMem_Free(_children);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030786 _PyPegen_insert_memo(p, _start_mark, _loop1_157_type, _seq);
Brandt Bucher145bf262021-02-26 14:51:55 -080030787 D(p->level--);
30788 return _seq;
30789}
30790
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030791// _loop0_158: lambda_param_no_default
Brandt Bucher145bf262021-02-26 14:51:55 -080030792static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030793_loop0_158_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080030794{
30795 D(p->level++);
30796 if (p->error_indicator) {
30797 D(p->level--);
30798 return NULL;
30799 }
30800 void *_res = NULL;
30801 int _mark = p->mark;
30802 int _start_mark = p->mark;
30803 void **_children = PyMem_Malloc(sizeof(void *));
30804 if (!_children) {
30805 p->error_indicator = 1;
30806 PyErr_NoMemory();
30807 D(p->level--);
30808 return NULL;
30809 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010030810 Py_ssize_t _children_capacity = 1;
30811 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080030812 { // lambda_param_no_default
30813 if (p->error_indicator) {
30814 D(p->level--);
30815 return NULL;
30816 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030817 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 -080030818 arg_ty lambda_param_no_default_var;
30819 while (
30820 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
30821 )
30822 {
30823 _res = lambda_param_no_default_var;
30824 if (_n == _children_capacity) {
30825 _children_capacity *= 2;
30826 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
30827 if (!_new_children) {
30828 p->error_indicator = 1;
30829 PyErr_NoMemory();
30830 D(p->level--);
30831 return NULL;
30832 }
30833 _children = _new_children;
30834 }
30835 _children[_n++] = _res;
30836 _mark = p->mark;
30837 }
30838 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030839 D(fprintf(stderr, "%*c%s _loop0_158[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080030840 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
30841 }
30842 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
30843 if (!_seq) {
30844 PyMem_Free(_children);
30845 p->error_indicator = 1;
30846 PyErr_NoMemory();
30847 D(p->level--);
30848 return NULL;
30849 }
30850 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
30851 PyMem_Free(_children);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030852 _PyPegen_insert_memo(p, _start_mark, _loop0_158_type, _seq);
Brandt Bucher145bf262021-02-26 14:51:55 -080030853 D(p->level--);
30854 return _seq;
30855}
30856
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030857// _loop1_159: lambda_param_with_default
Brandt Bucher145bf262021-02-26 14:51:55 -080030858static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030859_loop1_159_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080030860{
30861 D(p->level++);
30862 if (p->error_indicator) {
30863 D(p->level--);
30864 return NULL;
30865 }
30866 void *_res = NULL;
30867 int _mark = p->mark;
30868 int _start_mark = p->mark;
30869 void **_children = PyMem_Malloc(sizeof(void *));
30870 if (!_children) {
30871 p->error_indicator = 1;
30872 PyErr_NoMemory();
30873 D(p->level--);
30874 return NULL;
30875 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010030876 Py_ssize_t _children_capacity = 1;
30877 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080030878 { // lambda_param_with_default
30879 if (p->error_indicator) {
30880 D(p->level--);
30881 return NULL;
30882 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030883 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 -080030884 NameDefaultPair* lambda_param_with_default_var;
30885 while (
30886 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
30887 )
30888 {
30889 _res = lambda_param_with_default_var;
30890 if (_n == _children_capacity) {
30891 _children_capacity *= 2;
30892 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
30893 if (!_new_children) {
30894 p->error_indicator = 1;
30895 PyErr_NoMemory();
30896 D(p->level--);
30897 return NULL;
30898 }
30899 _children = _new_children;
30900 }
30901 _children[_n++] = _res;
30902 _mark = p->mark;
30903 }
30904 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030905 D(fprintf(stderr, "%*c%s _loop1_159[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080030906 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
30907 }
30908 if (_n == 0 || p->error_indicator) {
30909 PyMem_Free(_children);
30910 D(p->level--);
30911 return NULL;
30912 }
30913 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
30914 if (!_seq) {
30915 PyMem_Free(_children);
30916 p->error_indicator = 1;
30917 PyErr_NoMemory();
30918 D(p->level--);
30919 return NULL;
30920 }
30921 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
30922 PyMem_Free(_children);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030923 _PyPegen_insert_memo(p, _start_mark, _loop1_159_type, _seq);
Brandt Bucher145bf262021-02-26 14:51:55 -080030924 D(p->level--);
30925 return _seq;
30926}
30927
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030928// _tmp_160: ')' | ',' (')' | '**')
Pablo Galindo56c95df2021-04-21 15:28:21 +010030929static void *
Pablo Galindoa77aac42021-04-23 14:27:05 +010030930_tmp_160_rule(Parser *p)
Pablo Galindo56c95df2021-04-21 15:28:21 +010030931{
30932 D(p->level++);
30933 if (p->error_indicator) {
30934 D(p->level--);
30935 return NULL;
30936 }
30937 void * _res = NULL;
30938 int _mark = p->mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030939 { // ')'
Pablo Galindoa77aac42021-04-23 14:27:05 +010030940 if (p->error_indicator) {
30941 D(p->level--);
30942 return NULL;
30943 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030944 D(fprintf(stderr, "%*c> _tmp_160[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010030945 Token * _literal;
30946 if (
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030947 (_literal = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoa77aac42021-04-23 14:27:05 +010030948 )
30949 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030950 D(fprintf(stderr, "%*c+ _tmp_160[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010030951 _res = _literal;
30952 goto done;
30953 }
30954 p->mark = _mark;
30955 D(fprintf(stderr, "%*c%s _tmp_160[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030956 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010030957 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030958 { // ',' (')' | '**')
Pablo Galindoa77aac42021-04-23 14:27:05 +010030959 if (p->error_indicator) {
30960 D(p->level--);
30961 return NULL;
30962 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030963 D(fprintf(stderr, "%*c> _tmp_160[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (')' | '**')"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010030964 Token * _literal;
Pablo Galindoe53f72a2021-06-04 00:11:43 +010030965 void *_tmp_195_var;
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070030966 if (
Pablo Galindoa77aac42021-04-23 14:27:05 +010030967 (_literal = _PyPegen_expect_token(p, 12)) // token=','
30968 &&
Pablo Galindoe53f72a2021-06-04 00:11:43 +010030969 (_tmp_195_var = _tmp_195_rule(p)) // ')' | '**'
Pablo Galindoa77aac42021-04-23 14:27:05 +010030970 )
30971 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030972 D(fprintf(stderr, "%*c+ _tmp_160[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' (')' | '**')"));
Pablo Galindoe53f72a2021-06-04 00:11:43 +010030973 _res = _PyPegen_dummy_name(p, _literal, _tmp_195_var);
Pablo Galindoa77aac42021-04-23 14:27:05 +010030974 goto done;
30975 }
30976 p->mark = _mark;
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070030977 D(fprintf(stderr, "%*c%s _tmp_160[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030978 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (')' | '**')"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010030979 }
30980 _res = NULL;
30981 done:
30982 D(p->level--);
30983 return _res;
30984}
30985
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030986// _tmp_161: ':' | ',' (':' | '**')
Pablo Galindo56c95df2021-04-21 15:28:21 +010030987static void *
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070030988_tmp_161_rule(Parser *p)
Pablo Galindo56c95df2021-04-21 15:28:21 +010030989{
30990 D(p->level++);
30991 if (p->error_indicator) {
30992 D(p->level--);
30993 return NULL;
30994 }
30995 void * _res = NULL;
30996 int _mark = p->mark;
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070030997 { // ':'
30998 if (p->error_indicator) {
30999 D(p->level--);
31000 return NULL;
31001 }
31002 D(fprintf(stderr, "%*c> _tmp_161[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
31003 Token * _literal;
31004 if (
31005 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
31006 )
31007 {
31008 D(fprintf(stderr, "%*c+ _tmp_161[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
31009 _res = _literal;
31010 goto done;
31011 }
31012 p->mark = _mark;
31013 D(fprintf(stderr, "%*c%s _tmp_161[%d-%d]: %s failed!\n", p->level, ' ',
31014 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
31015 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070031016 { // ',' (':' | '**')
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070031017 if (p->error_indicator) {
31018 D(p->level--);
31019 return NULL;
31020 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070031021 D(fprintf(stderr, "%*c> _tmp_161[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (':' | '**')"));
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070031022 Token * _literal;
Pablo Galindoe53f72a2021-06-04 00:11:43 +010031023 void *_tmp_196_var;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070031024 if (
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070031025 (_literal = _PyPegen_expect_token(p, 12)) // token=','
31026 &&
Pablo Galindoe53f72a2021-06-04 00:11:43 +010031027 (_tmp_196_var = _tmp_196_rule(p)) // ':' | '**'
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070031028 )
31029 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070031030 D(fprintf(stderr, "%*c+ _tmp_161[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' (':' | '**')"));
Pablo Galindoe53f72a2021-06-04 00:11:43 +010031031 _res = _PyPegen_dummy_name(p, _literal, _tmp_196_var);
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070031032 goto done;
31033 }
31034 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070031035 D(fprintf(stderr, "%*c%s _tmp_161[%d-%d]: %s failed!\n", p->level, ' ',
31036 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (':' | '**')"));
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070031037 }
31038 _res = NULL;
31039 done:
31040 D(p->level--);
31041 return _res;
31042}
31043
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070031044// _tmp_162: ',' | ')' | ':'
Pablo Galindo56c95df2021-04-21 15:28:21 +010031045static void *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070031046_tmp_162_rule(Parser *p)
Pablo Galindo56c95df2021-04-21 15:28:21 +010031047{
31048 D(p->level++);
31049 if (p->error_indicator) {
31050 D(p->level--);
31051 return NULL;
31052 }
31053 void * _res = NULL;
31054 int _mark = p->mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070031055 { // ','
Pablo Galindo56c95df2021-04-21 15:28:21 +010031056 if (p->error_indicator) {
31057 D(p->level--);
31058 return NULL;
31059 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070031060 D(fprintf(stderr, "%*c> _tmp_162[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','"));
31061 Token * _literal;
Pablo Galindo56c95df2021-04-21 15:28:21 +010031062 if (
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070031063 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindo56c95df2021-04-21 15:28:21 +010031064 )
31065 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070031066 D(fprintf(stderr, "%*c+ _tmp_162[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','"));
31067 _res = _literal;
Pablo Galindo56c95df2021-04-21 15:28:21 +010031068 goto done;
31069 }
31070 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070031071 D(fprintf(stderr, "%*c%s _tmp_162[%d-%d]: %s failed!\n", p->level, ' ',
31072 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','"));
31073 }
31074 { // ')'
31075 if (p->error_indicator) {
31076 D(p->level--);
31077 return NULL;
31078 }
31079 D(fprintf(stderr, "%*c> _tmp_162[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
31080 Token * _literal;
31081 if (
31082 (_literal = _PyPegen_expect_token(p, 8)) // token=')'
31083 )
31084 {
31085 D(fprintf(stderr, "%*c+ _tmp_162[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
31086 _res = _literal;
31087 goto done;
31088 }
31089 p->mark = _mark;
31090 D(fprintf(stderr, "%*c%s _tmp_162[%d-%d]: %s failed!\n", p->level, ' ',
31091 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
31092 }
31093 { // ':'
31094 if (p->error_indicator) {
31095 D(p->level--);
31096 return NULL;
31097 }
31098 D(fprintf(stderr, "%*c> _tmp_162[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
31099 Token * _literal;
31100 if (
31101 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
31102 )
31103 {
31104 D(fprintf(stderr, "%*c+ _tmp_162[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
31105 _res = _literal;
31106 goto done;
31107 }
31108 p->mark = _mark;
31109 D(fprintf(stderr, "%*c%s _tmp_162[%d-%d]: %s failed!\n", p->level, ' ',
31110 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
31111 }
31112 _res = NULL;
31113 done:
31114 D(p->level--);
31115 return _res;
31116}
31117
31118// _loop0_164: ',' (expression ['as' star_target])
31119static asdl_seq *
31120_loop0_164_rule(Parser *p)
31121{
31122 D(p->level++);
31123 if (p->error_indicator) {
31124 D(p->level--);
31125 return NULL;
31126 }
31127 void *_res = NULL;
31128 int _mark = p->mark;
31129 int _start_mark = p->mark;
31130 void **_children = PyMem_Malloc(sizeof(void *));
31131 if (!_children) {
31132 p->error_indicator = 1;
31133 PyErr_NoMemory();
31134 D(p->level--);
31135 return NULL;
31136 }
31137 Py_ssize_t _children_capacity = 1;
31138 Py_ssize_t _n = 0;
31139 { // ',' (expression ['as' star_target])
31140 if (p->error_indicator) {
31141 D(p->level--);
31142 return NULL;
31143 }
31144 D(fprintf(stderr, "%*c> _loop0_164[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (expression ['as' star_target])"));
31145 Token * _literal;
31146 void *elem;
31147 while (
31148 (_literal = _PyPegen_expect_token(p, 12)) // token=','
31149 &&
Pablo Galindoe53f72a2021-06-04 00:11:43 +010031150 (elem = _tmp_197_rule(p)) // expression ['as' star_target]
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070031151 )
31152 {
31153 _res = elem;
31154 if (_res == NULL && PyErr_Occurred()) {
31155 p->error_indicator = 1;
31156 PyMem_Free(_children);
31157 D(p->level--);
31158 return NULL;
31159 }
31160 if (_n == _children_capacity) {
31161 _children_capacity *= 2;
31162 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
31163 if (!_new_children) {
31164 p->error_indicator = 1;
31165 PyErr_NoMemory();
31166 D(p->level--);
31167 return NULL;
31168 }
31169 _children = _new_children;
31170 }
31171 _children[_n++] = _res;
31172 _mark = p->mark;
31173 }
31174 p->mark = _mark;
31175 D(fprintf(stderr, "%*c%s _loop0_164[%d-%d]: %s failed!\n", p->level, ' ',
31176 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (expression ['as' star_target])"));
31177 }
31178 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
31179 if (!_seq) {
31180 PyMem_Free(_children);
31181 p->error_indicator = 1;
31182 PyErr_NoMemory();
31183 D(p->level--);
31184 return NULL;
31185 }
31186 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
31187 PyMem_Free(_children);
31188 _PyPegen_insert_memo(p, _start_mark, _loop0_164_type, _seq);
31189 D(p->level--);
31190 return _seq;
31191}
31192
31193// _gather_163: (expression ['as' star_target]) _loop0_164
31194static asdl_seq *
31195_gather_163_rule(Parser *p)
31196{
31197 D(p->level++);
31198 if (p->error_indicator) {
31199 D(p->level--);
31200 return NULL;
31201 }
31202 asdl_seq * _res = NULL;
31203 int _mark = p->mark;
31204 { // (expression ['as' star_target]) _loop0_164
31205 if (p->error_indicator) {
31206 D(p->level--);
31207 return NULL;
31208 }
31209 D(fprintf(stderr, "%*c> _gather_163[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(expression ['as' star_target]) _loop0_164"));
31210 void *elem;
31211 asdl_seq * seq;
31212 if (
Pablo Galindoe53f72a2021-06-04 00:11:43 +010031213 (elem = _tmp_197_rule(p)) // expression ['as' star_target]
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070031214 &&
31215 (seq = _loop0_164_rule(p)) // _loop0_164
31216 )
31217 {
31218 D(fprintf(stderr, "%*c+ _gather_163[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(expression ['as' star_target]) _loop0_164"));
31219 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
31220 goto done;
31221 }
31222 p->mark = _mark;
31223 D(fprintf(stderr, "%*c%s _gather_163[%d-%d]: %s failed!\n", p->level, ' ',
31224 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(expression ['as' star_target]) _loop0_164"));
31225 }
31226 _res = NULL;
31227 done:
31228 D(p->level--);
31229 return _res;
31230}
31231
31232// _loop0_166: ',' (expressions ['as' star_target])
31233static asdl_seq *
31234_loop0_166_rule(Parser *p)
31235{
31236 D(p->level++);
31237 if (p->error_indicator) {
31238 D(p->level--);
31239 return NULL;
31240 }
31241 void *_res = NULL;
31242 int _mark = p->mark;
31243 int _start_mark = p->mark;
31244 void **_children = PyMem_Malloc(sizeof(void *));
31245 if (!_children) {
31246 p->error_indicator = 1;
31247 PyErr_NoMemory();
31248 D(p->level--);
31249 return NULL;
31250 }
31251 Py_ssize_t _children_capacity = 1;
31252 Py_ssize_t _n = 0;
31253 { // ',' (expressions ['as' star_target])
31254 if (p->error_indicator) {
31255 D(p->level--);
31256 return NULL;
31257 }
31258 D(fprintf(stderr, "%*c> _loop0_166[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (expressions ['as' star_target])"));
31259 Token * _literal;
31260 void *elem;
31261 while (
31262 (_literal = _PyPegen_expect_token(p, 12)) // token=','
31263 &&
Pablo Galindoe53f72a2021-06-04 00:11:43 +010031264 (elem = _tmp_198_rule(p)) // expressions ['as' star_target]
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070031265 )
31266 {
31267 _res = elem;
31268 if (_res == NULL && PyErr_Occurred()) {
31269 p->error_indicator = 1;
31270 PyMem_Free(_children);
31271 D(p->level--);
31272 return NULL;
31273 }
31274 if (_n == _children_capacity) {
31275 _children_capacity *= 2;
31276 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
31277 if (!_new_children) {
31278 p->error_indicator = 1;
31279 PyErr_NoMemory();
31280 D(p->level--);
31281 return NULL;
31282 }
31283 _children = _new_children;
31284 }
31285 _children[_n++] = _res;
31286 _mark = p->mark;
31287 }
31288 p->mark = _mark;
31289 D(fprintf(stderr, "%*c%s _loop0_166[%d-%d]: %s failed!\n", p->level, ' ',
31290 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (expressions ['as' star_target])"));
31291 }
31292 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
31293 if (!_seq) {
31294 PyMem_Free(_children);
31295 p->error_indicator = 1;
31296 PyErr_NoMemory();
31297 D(p->level--);
31298 return NULL;
31299 }
31300 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
31301 PyMem_Free(_children);
31302 _PyPegen_insert_memo(p, _start_mark, _loop0_166_type, _seq);
31303 D(p->level--);
31304 return _seq;
31305}
31306
31307// _gather_165: (expressions ['as' star_target]) _loop0_166
31308static asdl_seq *
31309_gather_165_rule(Parser *p)
31310{
31311 D(p->level++);
31312 if (p->error_indicator) {
31313 D(p->level--);
31314 return NULL;
31315 }
31316 asdl_seq * _res = NULL;
31317 int _mark = p->mark;
31318 { // (expressions ['as' star_target]) _loop0_166
31319 if (p->error_indicator) {
31320 D(p->level--);
31321 return NULL;
31322 }
31323 D(fprintf(stderr, "%*c> _gather_165[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(expressions ['as' star_target]) _loop0_166"));
31324 void *elem;
31325 asdl_seq * seq;
31326 if (
Pablo Galindoe53f72a2021-06-04 00:11:43 +010031327 (elem = _tmp_198_rule(p)) // expressions ['as' star_target]
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070031328 &&
31329 (seq = _loop0_166_rule(p)) // _loop0_166
31330 )
31331 {
31332 D(fprintf(stderr, "%*c+ _gather_165[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(expressions ['as' star_target]) _loop0_166"));
31333 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
31334 goto done;
31335 }
31336 p->mark = _mark;
31337 D(fprintf(stderr, "%*c%s _gather_165[%d-%d]: %s failed!\n", p->level, ' ',
31338 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(expressions ['as' star_target]) _loop0_166"));
31339 }
31340 _res = NULL;
31341 done:
31342 D(p->level--);
31343 return _res;
31344}
31345
31346// _loop0_168: ',' (expression ['as' star_target])
31347static asdl_seq *
31348_loop0_168_rule(Parser *p)
31349{
31350 D(p->level++);
31351 if (p->error_indicator) {
31352 D(p->level--);
31353 return NULL;
31354 }
31355 void *_res = NULL;
31356 int _mark = p->mark;
31357 int _start_mark = p->mark;
31358 void **_children = PyMem_Malloc(sizeof(void *));
31359 if (!_children) {
31360 p->error_indicator = 1;
31361 PyErr_NoMemory();
31362 D(p->level--);
31363 return NULL;
31364 }
31365 Py_ssize_t _children_capacity = 1;
31366 Py_ssize_t _n = 0;
31367 { // ',' (expression ['as' star_target])
31368 if (p->error_indicator) {
31369 D(p->level--);
31370 return NULL;
31371 }
31372 D(fprintf(stderr, "%*c> _loop0_168[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (expression ['as' star_target])"));
31373 Token * _literal;
31374 void *elem;
31375 while (
31376 (_literal = _PyPegen_expect_token(p, 12)) // token=','
31377 &&
Pablo Galindoe53f72a2021-06-04 00:11:43 +010031378 (elem = _tmp_199_rule(p)) // expression ['as' star_target]
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070031379 )
31380 {
31381 _res = elem;
31382 if (_res == NULL && PyErr_Occurred()) {
31383 p->error_indicator = 1;
31384 PyMem_Free(_children);
31385 D(p->level--);
31386 return NULL;
31387 }
31388 if (_n == _children_capacity) {
31389 _children_capacity *= 2;
31390 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
31391 if (!_new_children) {
31392 p->error_indicator = 1;
31393 PyErr_NoMemory();
31394 D(p->level--);
31395 return NULL;
31396 }
31397 _children = _new_children;
31398 }
31399 _children[_n++] = _res;
31400 _mark = p->mark;
31401 }
31402 p->mark = _mark;
31403 D(fprintf(stderr, "%*c%s _loop0_168[%d-%d]: %s failed!\n", p->level, ' ',
31404 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (expression ['as' star_target])"));
31405 }
31406 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
31407 if (!_seq) {
31408 PyMem_Free(_children);
31409 p->error_indicator = 1;
31410 PyErr_NoMemory();
31411 D(p->level--);
31412 return NULL;
31413 }
31414 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
31415 PyMem_Free(_children);
31416 _PyPegen_insert_memo(p, _start_mark, _loop0_168_type, _seq);
31417 D(p->level--);
31418 return _seq;
31419}
31420
31421// _gather_167: (expression ['as' star_target]) _loop0_168
31422static asdl_seq *
31423_gather_167_rule(Parser *p)
31424{
31425 D(p->level++);
31426 if (p->error_indicator) {
31427 D(p->level--);
31428 return NULL;
31429 }
31430 asdl_seq * _res = NULL;
31431 int _mark = p->mark;
31432 { // (expression ['as' star_target]) _loop0_168
31433 if (p->error_indicator) {
31434 D(p->level--);
31435 return NULL;
31436 }
31437 D(fprintf(stderr, "%*c> _gather_167[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(expression ['as' star_target]) _loop0_168"));
31438 void *elem;
31439 asdl_seq * seq;
31440 if (
Pablo Galindoe53f72a2021-06-04 00:11:43 +010031441 (elem = _tmp_199_rule(p)) // expression ['as' star_target]
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070031442 &&
31443 (seq = _loop0_168_rule(p)) // _loop0_168
31444 )
31445 {
31446 D(fprintf(stderr, "%*c+ _gather_167[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(expression ['as' star_target]) _loop0_168"));
31447 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
31448 goto done;
31449 }
31450 p->mark = _mark;
31451 D(fprintf(stderr, "%*c%s _gather_167[%d-%d]: %s failed!\n", p->level, ' ',
31452 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(expression ['as' star_target]) _loop0_168"));
31453 }
31454 _res = NULL;
31455 done:
31456 D(p->level--);
31457 return _res;
31458}
31459
31460// _loop0_170: ',' (expressions ['as' star_target])
31461static asdl_seq *
31462_loop0_170_rule(Parser *p)
31463{
31464 D(p->level++);
31465 if (p->error_indicator) {
31466 D(p->level--);
31467 return NULL;
31468 }
31469 void *_res = NULL;
31470 int _mark = p->mark;
31471 int _start_mark = p->mark;
31472 void **_children = PyMem_Malloc(sizeof(void *));
31473 if (!_children) {
31474 p->error_indicator = 1;
31475 PyErr_NoMemory();
31476 D(p->level--);
31477 return NULL;
31478 }
31479 Py_ssize_t _children_capacity = 1;
31480 Py_ssize_t _n = 0;
31481 { // ',' (expressions ['as' star_target])
31482 if (p->error_indicator) {
31483 D(p->level--);
31484 return NULL;
31485 }
31486 D(fprintf(stderr, "%*c> _loop0_170[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (expressions ['as' star_target])"));
31487 Token * _literal;
31488 void *elem;
31489 while (
31490 (_literal = _PyPegen_expect_token(p, 12)) // token=','
31491 &&
Pablo Galindoe53f72a2021-06-04 00:11:43 +010031492 (elem = _tmp_200_rule(p)) // expressions ['as' star_target]
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070031493 )
31494 {
31495 _res = elem;
31496 if (_res == NULL && PyErr_Occurred()) {
31497 p->error_indicator = 1;
31498 PyMem_Free(_children);
31499 D(p->level--);
31500 return NULL;
31501 }
31502 if (_n == _children_capacity) {
31503 _children_capacity *= 2;
31504 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
31505 if (!_new_children) {
31506 p->error_indicator = 1;
31507 PyErr_NoMemory();
31508 D(p->level--);
31509 return NULL;
31510 }
31511 _children = _new_children;
31512 }
31513 _children[_n++] = _res;
31514 _mark = p->mark;
31515 }
31516 p->mark = _mark;
31517 D(fprintf(stderr, "%*c%s _loop0_170[%d-%d]: %s failed!\n", p->level, ' ',
31518 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (expressions ['as' star_target])"));
31519 }
31520 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
31521 if (!_seq) {
31522 PyMem_Free(_children);
31523 p->error_indicator = 1;
31524 PyErr_NoMemory();
31525 D(p->level--);
31526 return NULL;
31527 }
31528 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
31529 PyMem_Free(_children);
31530 _PyPegen_insert_memo(p, _start_mark, _loop0_170_type, _seq);
31531 D(p->level--);
31532 return _seq;
31533}
31534
31535// _gather_169: (expressions ['as' star_target]) _loop0_170
31536static asdl_seq *
31537_gather_169_rule(Parser *p)
31538{
31539 D(p->level++);
31540 if (p->error_indicator) {
31541 D(p->level--);
31542 return NULL;
31543 }
31544 asdl_seq * _res = NULL;
31545 int _mark = p->mark;
31546 { // (expressions ['as' star_target]) _loop0_170
31547 if (p->error_indicator) {
31548 D(p->level--);
31549 return NULL;
31550 }
31551 D(fprintf(stderr, "%*c> _gather_169[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(expressions ['as' star_target]) _loop0_170"));
31552 void *elem;
31553 asdl_seq * seq;
31554 if (
Pablo Galindoe53f72a2021-06-04 00:11:43 +010031555 (elem = _tmp_200_rule(p)) // expressions ['as' star_target]
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070031556 &&
31557 (seq = _loop0_170_rule(p)) // _loop0_170
31558 )
31559 {
31560 D(fprintf(stderr, "%*c+ _gather_169[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(expressions ['as' star_target]) _loop0_170"));
31561 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
31562 goto done;
31563 }
31564 p->mark = _mark;
31565 D(fprintf(stderr, "%*c%s _gather_169[%d-%d]: %s failed!\n", p->level, ' ',
31566 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(expressions ['as' star_target]) _loop0_170"));
Pablo Galindo56c95df2021-04-21 15:28:21 +010031567 }
31568 _res = NULL;
31569 done:
31570 D(p->level--);
31571 return _res;
31572}
31573
Pablo Galindoe53f72a2021-06-04 00:11:43 +010031574// _tmp_171: 'except' | 'finally'
Pablo Galindo56c95df2021-04-21 15:28:21 +010031575static void *
31576_tmp_171_rule(Parser *p)
31577{
31578 D(p->level++);
31579 if (p->error_indicator) {
31580 D(p->level--);
31581 return NULL;
31582 }
31583 void * _res = NULL;
31584 int _mark = p->mark;
Pablo Galindoe53f72a2021-06-04 00:11:43 +010031585 { // 'except'
Pablo Galindoa77aac42021-04-23 14:27:05 +010031586 if (p->error_indicator) {
31587 D(p->level--);
31588 return NULL;
31589 }
Pablo Galindoe53f72a2021-06-04 00:11:43 +010031590 D(fprintf(stderr, "%*c> _tmp_171[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except'"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010031591 Token * _keyword;
Pablo Galindoa77aac42021-04-23 14:27:05 +010031592 if (
Pablo Galindoe53f72a2021-06-04 00:11:43 +010031593 (_keyword = _PyPegen_expect_token(p, 521)) // token='except'
Pablo Galindoa77aac42021-04-23 14:27:05 +010031594 )
31595 {
Pablo Galindoe53f72a2021-06-04 00:11:43 +010031596 D(fprintf(stderr, "%*c+ _tmp_171[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except'"));
31597 _res = _keyword;
Pablo Galindoa77aac42021-04-23 14:27:05 +010031598 goto done;
31599 }
31600 p->mark = _mark;
31601 D(fprintf(stderr, "%*c%s _tmp_171[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindoe53f72a2021-06-04 00:11:43 +010031602 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except'"));
31603 }
31604 { // 'finally'
31605 if (p->error_indicator) {
31606 D(p->level--);
31607 return NULL;
31608 }
31609 D(fprintf(stderr, "%*c> _tmp_171[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'finally'"));
31610 Token * _keyword;
31611 if (
31612 (_keyword = _PyPegen_expect_token(p, 522)) // token='finally'
31613 )
31614 {
31615 D(fprintf(stderr, "%*c+ _tmp_171[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'finally'"));
31616 _res = _keyword;
31617 goto done;
31618 }
31619 p->mark = _mark;
31620 D(fprintf(stderr, "%*c%s _tmp_171[%d-%d]: %s failed!\n", p->level, ' ',
31621 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'finally'"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010031622 }
31623 _res = NULL;
31624 done:
31625 D(p->level--);
31626 return _res;
31627}
31628
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070031629// _tmp_172: 'as' NAME
Pablo Galindoa77aac42021-04-23 14:27:05 +010031630static void *
31631_tmp_172_rule(Parser *p)
31632{
31633 D(p->level++);
31634 if (p->error_indicator) {
31635 D(p->level--);
31636 return NULL;
31637 }
31638 void * _res = NULL;
31639 int _mark = p->mark;
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070031640 { // 'as' NAME
31641 if (p->error_indicator) {
31642 D(p->level--);
31643 return NULL;
31644 }
31645 D(fprintf(stderr, "%*c> _tmp_172[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
31646 Token * _keyword;
31647 expr_ty name_var;
31648 if (
31649 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
31650 &&
31651 (name_var = _PyPegen_name_token(p)) // NAME
31652 )
31653 {
31654 D(fprintf(stderr, "%*c+ _tmp_172[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
31655 _res = _PyPegen_dummy_name(p, _keyword, name_var);
31656 goto done;
31657 }
31658 p->mark = _mark;
31659 D(fprintf(stderr, "%*c%s _tmp_172[%d-%d]: %s failed!\n", p->level, ' ',
31660 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
31661 }
31662 _res = NULL;
31663 done:
31664 D(p->level--);
31665 return _res;
31666}
31667
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070031668// _tmp_173: 'as' NAME
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070031669static void *
31670_tmp_173_rule(Parser *p)
31671{
31672 D(p->level++);
31673 if (p->error_indicator) {
31674 D(p->level--);
31675 return NULL;
31676 }
31677 void * _res = NULL;
31678 int _mark = p->mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070031679 { // 'as' NAME
31680 if (p->error_indicator) {
31681 D(p->level--);
31682 return NULL;
31683 }
31684 D(fprintf(stderr, "%*c> _tmp_173[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
31685 Token * _keyword;
31686 expr_ty name_var;
31687 if (
31688 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
31689 &&
31690 (name_var = _PyPegen_name_token(p)) // NAME
31691 )
31692 {
31693 D(fprintf(stderr, "%*c+ _tmp_173[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
31694 _res = _PyPegen_dummy_name(p, _keyword, name_var);
31695 goto done;
31696 }
31697 p->mark = _mark;
31698 D(fprintf(stderr, "%*c%s _tmp_173[%d-%d]: %s failed!\n", p->level, ' ',
31699 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
31700 }
31701 _res = NULL;
31702 done:
31703 D(p->level--);
31704 return _res;
31705}
31706
Pablo Galindoe53f72a2021-06-04 00:11:43 +010031707// _tmp_174: 'as' NAME
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070031708static void *
31709_tmp_174_rule(Parser *p)
31710{
31711 D(p->level++);
31712 if (p->error_indicator) {
31713 D(p->level--);
31714 return NULL;
31715 }
31716 void * _res = NULL;
31717 int _mark = p->mark;
Pablo Galindoe53f72a2021-06-04 00:11:43 +010031718 { // 'as' NAME
31719 if (p->error_indicator) {
31720 D(p->level--);
31721 return NULL;
31722 }
31723 D(fprintf(stderr, "%*c> _tmp_174[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
31724 Token * _keyword;
31725 expr_ty name_var;
31726 if (
31727 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
31728 &&
31729 (name_var = _PyPegen_name_token(p)) // NAME
31730 )
31731 {
31732 D(fprintf(stderr, "%*c+ _tmp_174[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
31733 _res = _PyPegen_dummy_name(p, _keyword, name_var);
31734 goto done;
31735 }
31736 p->mark = _mark;
31737 D(fprintf(stderr, "%*c%s _tmp_174[%d-%d]: %s failed!\n", p->level, ' ',
31738 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
31739 }
31740 _res = NULL;
31741 done:
31742 D(p->level--);
31743 return _res;
31744}
31745
31746// _tmp_175: '->' expression
31747static void *
31748_tmp_175_rule(Parser *p)
31749{
31750 D(p->level++);
31751 if (p->error_indicator) {
31752 D(p->level--);
31753 return NULL;
31754 }
31755 void * _res = NULL;
31756 int _mark = p->mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +010031757 { // '->' expression
31758 if (p->error_indicator) {
31759 D(p->level--);
31760 return NULL;
31761 }
Pablo Galindoe53f72a2021-06-04 00:11:43 +010031762 D(fprintf(stderr, "%*c> _tmp_175[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'->' expression"));
Pablo Galindo56c95df2021-04-21 15:28:21 +010031763 Token * _literal;
31764 expr_ty expression_var;
31765 if (
31766 (_literal = _PyPegen_expect_token(p, 51)) // token='->'
31767 &&
31768 (expression_var = expression_rule(p)) // expression
31769 )
31770 {
Pablo Galindoe53f72a2021-06-04 00:11:43 +010031771 D(fprintf(stderr, "%*c+ _tmp_175[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'->' expression"));
Pablo Galindo56c95df2021-04-21 15:28:21 +010031772 _res = _PyPegen_dummy_name(p, _literal, expression_var);
31773 goto done;
31774 }
31775 p->mark = _mark;
Pablo Galindoe53f72a2021-06-04 00:11:43 +010031776 D(fprintf(stderr, "%*c%s _tmp_175[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo56c95df2021-04-21 15:28:21 +010031777 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'->' expression"));
31778 }
31779 _res = NULL;
31780 done:
31781 D(p->level--);
31782 return _res;
31783}
31784
Pablo Galindoe53f72a2021-06-04 00:11:43 +010031785// _tmp_176: '(' arguments? ')'
Pablo Galindo56c95df2021-04-21 15:28:21 +010031786static void *
Pablo Galindoe53f72a2021-06-04 00:11:43 +010031787_tmp_176_rule(Parser *p)
Pablo Galindo56c95df2021-04-21 15:28:21 +010031788{
31789 D(p->level++);
31790 if (p->error_indicator) {
31791 D(p->level--);
31792 return NULL;
31793 }
31794 void * _res = NULL;
31795 int _mark = p->mark;
31796 { // '(' arguments? ')'
31797 if (p->error_indicator) {
31798 D(p->level--);
31799 return NULL;
31800 }
Pablo Galindoe53f72a2021-06-04 00:11:43 +010031801 D(fprintf(stderr, "%*c> _tmp_176[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'"));
Pablo Galindo56c95df2021-04-21 15:28:21 +010031802 Token * _literal;
31803 Token * _literal_1;
31804 void *_opt_var;
31805 UNUSED(_opt_var); // Silence compiler warnings
31806 if (
31807 (_literal = _PyPegen_expect_token(p, 7)) // token='('
31808 &&
31809 (_opt_var = arguments_rule(p), 1) // arguments?
31810 &&
31811 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
31812 )
31813 {
Pablo Galindoe53f72a2021-06-04 00:11:43 +010031814 D(fprintf(stderr, "%*c+ _tmp_176[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'"));
Pablo Galindo56c95df2021-04-21 15:28:21 +010031815 _res = _PyPegen_dummy_name(p, _literal, _opt_var, _literal_1);
31816 goto done;
31817 }
31818 p->mark = _mark;
Pablo Galindoe53f72a2021-06-04 00:11:43 +010031819 D(fprintf(stderr, "%*c%s _tmp_176[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo56c95df2021-04-21 15:28:21 +010031820 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' arguments? ')'"));
31821 }
31822 _res = NULL;
31823 done:
31824 D(p->level--);
31825 return _res;
31826}
31827
Pablo Galindoe53f72a2021-06-04 00:11:43 +010031828// _loop0_178: ',' double_starred_kvpair
Pablo Galindo56c95df2021-04-21 15:28:21 +010031829static asdl_seq *
Pablo Galindoe53f72a2021-06-04 00:11:43 +010031830_loop0_178_rule(Parser *p)
Pablo Galindo56c95df2021-04-21 15:28:21 +010031831{
31832 D(p->level++);
31833 if (p->error_indicator) {
31834 D(p->level--);
31835 return NULL;
31836 }
31837 void *_res = NULL;
31838 int _mark = p->mark;
31839 int _start_mark = p->mark;
31840 void **_children = PyMem_Malloc(sizeof(void *));
31841 if (!_children) {
31842 p->error_indicator = 1;
31843 PyErr_NoMemory();
31844 D(p->level--);
31845 return NULL;
31846 }
31847 Py_ssize_t _children_capacity = 1;
31848 Py_ssize_t _n = 0;
Pablo Galindoda743502021-04-15 14:06:39 +010031849 { // ',' double_starred_kvpair
31850 if (p->error_indicator) {
31851 D(p->level--);
31852 return NULL;
31853 }
Pablo Galindoe53f72a2021-06-04 00:11:43 +010031854 D(fprintf(stderr, "%*c> _loop0_178[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' double_starred_kvpair"));
Pablo Galindoda743502021-04-15 14:06:39 +010031855 Token * _literal;
31856 KeyValuePair* elem;
31857 while (
31858 (_literal = _PyPegen_expect_token(p, 12)) // token=','
31859 &&
31860 (elem = double_starred_kvpair_rule(p)) // double_starred_kvpair
31861 )
31862 {
31863 _res = elem;
31864 if (_res == NULL && PyErr_Occurred()) {
31865 p->error_indicator = 1;
31866 PyMem_Free(_children);
31867 D(p->level--);
31868 return NULL;
31869 }
31870 if (_n == _children_capacity) {
31871 _children_capacity *= 2;
31872 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
31873 if (!_new_children) {
31874 p->error_indicator = 1;
31875 PyErr_NoMemory();
31876 D(p->level--);
31877 return NULL;
31878 }
31879 _children = _new_children;
31880 }
31881 _children[_n++] = _res;
31882 _mark = p->mark;
31883 }
31884 p->mark = _mark;
Pablo Galindoe53f72a2021-06-04 00:11:43 +010031885 D(fprintf(stderr, "%*c%s _loop0_178[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindoda743502021-04-15 14:06:39 +010031886 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' double_starred_kvpair"));
31887 }
31888 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
31889 if (!_seq) {
31890 PyMem_Free(_children);
31891 p->error_indicator = 1;
31892 PyErr_NoMemory();
31893 D(p->level--);
31894 return NULL;
31895 }
31896 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
31897 PyMem_Free(_children);
Pablo Galindoe53f72a2021-06-04 00:11:43 +010031898 _PyPegen_insert_memo(p, _start_mark, _loop0_178_type, _seq);
Pablo Galindoda743502021-04-15 14:06:39 +010031899 D(p->level--);
31900 return _seq;
31901}
31902
Pablo Galindoe53f72a2021-06-04 00:11:43 +010031903// _gather_177: double_starred_kvpair _loop0_178
Pablo Galindoda743502021-04-15 14:06:39 +010031904static asdl_seq *
Pablo Galindoe53f72a2021-06-04 00:11:43 +010031905_gather_177_rule(Parser *p)
Pablo Galindoda743502021-04-15 14:06:39 +010031906{
31907 D(p->level++);
31908 if (p->error_indicator) {
31909 D(p->level--);
31910 return NULL;
31911 }
31912 asdl_seq * _res = NULL;
31913 int _mark = p->mark;
Pablo Galindoe53f72a2021-06-04 00:11:43 +010031914 { // double_starred_kvpair _loop0_178
Pablo Galindoda743502021-04-15 14:06:39 +010031915 if (p->error_indicator) {
31916 D(p->level--);
31917 return NULL;
31918 }
Pablo Galindoe53f72a2021-06-04 00:11:43 +010031919 D(fprintf(stderr, "%*c> _gather_177[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "double_starred_kvpair _loop0_178"));
Pablo Galindoda743502021-04-15 14:06:39 +010031920 KeyValuePair* elem;
31921 asdl_seq * seq;
31922 if (
31923 (elem = double_starred_kvpair_rule(p)) // double_starred_kvpair
31924 &&
Pablo Galindoe53f72a2021-06-04 00:11:43 +010031925 (seq = _loop0_178_rule(p)) // _loop0_178
Pablo Galindoda743502021-04-15 14:06:39 +010031926 )
31927 {
Pablo Galindoe53f72a2021-06-04 00:11:43 +010031928 D(fprintf(stderr, "%*c+ _gather_177[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "double_starred_kvpair _loop0_178"));
Pablo Galindoda743502021-04-15 14:06:39 +010031929 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
31930 goto done;
31931 }
31932 p->mark = _mark;
Pablo Galindoe53f72a2021-06-04 00:11:43 +010031933 D(fprintf(stderr, "%*c%s _gather_177[%d-%d]: %s failed!\n", p->level, ' ',
31934 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "double_starred_kvpair _loop0_178"));
Pablo Galindoda743502021-04-15 14:06:39 +010031935 }
31936 _res = NULL;
31937 done:
31938 D(p->level--);
31939 return _res;
31940}
31941
Pablo Galindoe53f72a2021-06-04 00:11:43 +010031942// _tmp_179: '}' | ','
Pablo Galindo206cbda2021-02-07 18:42:21 +000031943static void *
Pablo Galindoe53f72a2021-06-04 00:11:43 +010031944_tmp_179_rule(Parser *p)
Pablo Galindoda743502021-04-15 14:06:39 +010031945{
31946 D(p->level++);
31947 if (p->error_indicator) {
31948 D(p->level--);
31949 return NULL;
31950 }
31951 void * _res = NULL;
31952 int _mark = p->mark;
31953 { // '}'
31954 if (p->error_indicator) {
31955 D(p->level--);
31956 return NULL;
31957 }
Pablo Galindoe53f72a2021-06-04 00:11:43 +010031958 D(fprintf(stderr, "%*c> _tmp_179[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'}'"));
Pablo Galindoda743502021-04-15 14:06:39 +010031959 Token * _literal;
31960 if (
31961 (_literal = _PyPegen_expect_token(p, 26)) // token='}'
31962 )
31963 {
Pablo Galindoe53f72a2021-06-04 00:11:43 +010031964 D(fprintf(stderr, "%*c+ _tmp_179[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'}'"));
Pablo Galindoda743502021-04-15 14:06:39 +010031965 _res = _literal;
31966 goto done;
31967 }
31968 p->mark = _mark;
Pablo Galindoe53f72a2021-06-04 00:11:43 +010031969 D(fprintf(stderr, "%*c%s _tmp_179[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindoda743502021-04-15 14:06:39 +010031970 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'}'"));
31971 }
31972 { // ','
31973 if (p->error_indicator) {
31974 D(p->level--);
31975 return NULL;
31976 }
Pablo Galindoe53f72a2021-06-04 00:11:43 +010031977 D(fprintf(stderr, "%*c> _tmp_179[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','"));
Pablo Galindoda743502021-04-15 14:06:39 +010031978 Token * _literal;
31979 if (
31980 (_literal = _PyPegen_expect_token(p, 12)) // token=','
31981 )
31982 {
Pablo Galindoe53f72a2021-06-04 00:11:43 +010031983 D(fprintf(stderr, "%*c+ _tmp_179[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','"));
Pablo Galindoda743502021-04-15 14:06:39 +010031984 _res = _literal;
31985 goto done;
31986 }
31987 p->mark = _mark;
Pablo Galindoe53f72a2021-06-04 00:11:43 +010031988 D(fprintf(stderr, "%*c%s _tmp_179[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindoda743502021-04-15 14:06:39 +010031989 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','"));
31990 }
31991 _res = NULL;
31992 done:
31993 D(p->level--);
31994 return _res;
31995}
31996
Pablo Galindoe53f72a2021-06-04 00:11:43 +010031997// _tmp_180: star_targets '='
Pablo Galindoda743502021-04-15 14:06:39 +010031998static void *
Pablo Galindoe53f72a2021-06-04 00:11:43 +010031999_tmp_180_rule(Parser *p)
Pablo Galindo206cbda2021-02-07 18:42:21 +000032000{
32001 D(p->level++);
32002 if (p->error_indicator) {
32003 D(p->level--);
32004 return NULL;
32005 }
32006 void * _res = NULL;
32007 int _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032008 { // star_targets '='
32009 if (p->error_indicator) {
32010 D(p->level--);
32011 return NULL;
32012 }
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032013 D(fprintf(stderr, "%*c> _tmp_180[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032014 Token * _literal;
32015 expr_ty z;
32016 if (
32017 (z = star_targets_rule(p)) // star_targets
32018 &&
32019 (_literal = _PyPegen_expect_token(p, 22)) // token='='
32020 )
32021 {
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032022 D(fprintf(stderr, "%*c+ _tmp_180[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032023 _res = z;
32024 if (_res == NULL && PyErr_Occurred()) {
32025 p->error_indicator = 1;
32026 D(p->level--);
32027 return NULL;
32028 }
32029 goto done;
32030 }
32031 p->mark = _mark;
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032032 D(fprintf(stderr, "%*c%s _tmp_180[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032033 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_targets '='"));
32034 }
32035 _res = NULL;
32036 done:
32037 D(p->level--);
32038 return _res;
32039}
32040
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032041// _tmp_181: '.' | '...'
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032042static void *
32043_tmp_181_rule(Parser *p)
32044{
32045 D(p->level++);
32046 if (p->error_indicator) {
32047 D(p->level--);
32048 return NULL;
32049 }
32050 void * _res = NULL;
32051 int _mark = p->mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032052 { // '.'
32053 if (p->error_indicator) {
32054 D(p->level--);
32055 return NULL;
32056 }
32057 D(fprintf(stderr, "%*c> _tmp_181[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
32058 Token * _literal;
32059 if (
32060 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
32061 )
32062 {
32063 D(fprintf(stderr, "%*c+ _tmp_181[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
32064 _res = _literal;
32065 goto done;
32066 }
32067 p->mark = _mark;
32068 D(fprintf(stderr, "%*c%s _tmp_181[%d-%d]: %s failed!\n", p->level, ' ',
32069 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
32070 }
32071 { // '...'
32072 if (p->error_indicator) {
32073 D(p->level--);
32074 return NULL;
32075 }
32076 D(fprintf(stderr, "%*c> _tmp_181[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'"));
32077 Token * _literal;
32078 if (
32079 (_literal = _PyPegen_expect_token(p, 52)) // token='...'
32080 )
32081 {
32082 D(fprintf(stderr, "%*c+ _tmp_181[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'"));
32083 _res = _literal;
32084 goto done;
32085 }
32086 p->mark = _mark;
32087 D(fprintf(stderr, "%*c%s _tmp_181[%d-%d]: %s failed!\n", p->level, ' ',
32088 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'...'"));
32089 }
32090 _res = NULL;
32091 done:
32092 D(p->level--);
32093 return _res;
32094}
32095
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032096// _tmp_182: '.' | '...'
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032097static void *
32098_tmp_182_rule(Parser *p)
32099{
32100 D(p->level++);
32101 if (p->error_indicator) {
32102 D(p->level--);
32103 return NULL;
32104 }
32105 void * _res = NULL;
32106 int _mark = p->mark;
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032107 { // '.'
32108 if (p->error_indicator) {
32109 D(p->level--);
32110 return NULL;
32111 }
32112 D(fprintf(stderr, "%*c> _tmp_182[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
32113 Token * _literal;
32114 if (
32115 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
32116 )
32117 {
32118 D(fprintf(stderr, "%*c+ _tmp_182[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
32119 _res = _literal;
32120 goto done;
32121 }
32122 p->mark = _mark;
32123 D(fprintf(stderr, "%*c%s _tmp_182[%d-%d]: %s failed!\n", p->level, ' ',
32124 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
32125 }
32126 { // '...'
32127 if (p->error_indicator) {
32128 D(p->level--);
32129 return NULL;
32130 }
32131 D(fprintf(stderr, "%*c> _tmp_182[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'"));
32132 Token * _literal;
32133 if (
32134 (_literal = _PyPegen_expect_token(p, 52)) // token='...'
32135 )
32136 {
32137 D(fprintf(stderr, "%*c+ _tmp_182[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'"));
32138 _res = _literal;
32139 goto done;
32140 }
32141 p->mark = _mark;
32142 D(fprintf(stderr, "%*c%s _tmp_182[%d-%d]: %s failed!\n", p->level, ' ',
32143 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'...'"));
32144 }
32145 _res = NULL;
32146 done:
32147 D(p->level--);
32148 return _res;
32149}
32150
32151// _tmp_183: '@' named_expression NEWLINE
32152static void *
32153_tmp_183_rule(Parser *p)
32154{
32155 D(p->level++);
32156 if (p->error_indicator) {
32157 D(p->level--);
32158 return NULL;
32159 }
32160 void * _res = NULL;
32161 int _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032162 { // '@' named_expression NEWLINE
32163 if (p->error_indicator) {
32164 D(p->level--);
32165 return NULL;
32166 }
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032167 D(fprintf(stderr, "%*c> _tmp_183[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@' named_expression NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032168 Token * _literal;
32169 expr_ty f;
32170 Token * newline_var;
32171 if (
32172 (_literal = _PyPegen_expect_token(p, 49)) // token='@'
32173 &&
32174 (f = named_expression_rule(p)) // named_expression
32175 &&
32176 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
32177 )
32178 {
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032179 D(fprintf(stderr, "%*c+ _tmp_183[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@' named_expression NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032180 _res = f;
32181 if (_res == NULL && PyErr_Occurred()) {
32182 p->error_indicator = 1;
32183 D(p->level--);
32184 return NULL;
32185 }
32186 goto done;
32187 }
32188 p->mark = _mark;
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032189 D(fprintf(stderr, "%*c%s _tmp_183[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032190 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@' named_expression NEWLINE"));
32191 }
32192 _res = NULL;
32193 done:
32194 D(p->level--);
32195 return _res;
32196}
32197
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032198// _tmp_184: ',' star_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032199static void *
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032200_tmp_184_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032201{
32202 D(p->level++);
32203 if (p->error_indicator) {
32204 D(p->level--);
32205 return NULL;
32206 }
32207 void * _res = NULL;
32208 int _mark = p->mark;
32209 { // ',' star_expression
32210 if (p->error_indicator) {
32211 D(p->level--);
32212 return NULL;
32213 }
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032214 D(fprintf(stderr, "%*c> _tmp_184[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032215 Token * _literal;
32216 expr_ty c;
32217 if (
32218 (_literal = _PyPegen_expect_token(p, 12)) // token=','
32219 &&
32220 (c = star_expression_rule(p)) // star_expression
32221 )
32222 {
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032223 D(fprintf(stderr, "%*c+ _tmp_184[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032224 _res = c;
32225 if (_res == NULL && PyErr_Occurred()) {
32226 p->error_indicator = 1;
32227 D(p->level--);
32228 return NULL;
32229 }
32230 goto done;
32231 }
32232 p->mark = _mark;
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032233 D(fprintf(stderr, "%*c%s _tmp_184[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032234 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_expression"));
32235 }
32236 _res = NULL;
32237 done:
32238 D(p->level--);
32239 return _res;
32240}
32241
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032242// _tmp_185: ',' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032243static void *
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032244_tmp_185_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032245{
32246 D(p->level++);
32247 if (p->error_indicator) {
32248 D(p->level--);
32249 return NULL;
32250 }
32251 void * _res = NULL;
32252 int _mark = p->mark;
32253 { // ',' expression
32254 if (p->error_indicator) {
32255 D(p->level--);
32256 return NULL;
32257 }
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032258 D(fprintf(stderr, "%*c> _tmp_185[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032259 Token * _literal;
32260 expr_ty c;
32261 if (
32262 (_literal = _PyPegen_expect_token(p, 12)) // token=','
32263 &&
32264 (c = expression_rule(p)) // expression
32265 )
32266 {
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032267 D(fprintf(stderr, "%*c+ _tmp_185[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032268 _res = c;
32269 if (_res == NULL && PyErr_Occurred()) {
32270 p->error_indicator = 1;
32271 D(p->level--);
32272 return NULL;
32273 }
32274 goto done;
32275 }
32276 p->mark = _mark;
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032277 D(fprintf(stderr, "%*c%s _tmp_185[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032278 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
32279 }
32280 _res = NULL;
32281 done:
32282 D(p->level--);
32283 return _res;
32284}
32285
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032286// _tmp_186: 'or' conjunction
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032287static void *
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032288_tmp_186_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032289{
32290 D(p->level++);
32291 if (p->error_indicator) {
32292 D(p->level--);
32293 return NULL;
32294 }
32295 void * _res = NULL;
32296 int _mark = p->mark;
32297 { // 'or' conjunction
32298 if (p->error_indicator) {
32299 D(p->level--);
32300 return NULL;
32301 }
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032302 D(fprintf(stderr, "%*c> _tmp_186[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'or' conjunction"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032303 Token * _keyword;
32304 expr_ty c;
32305 if (
32306 (_keyword = _PyPegen_expect_token(p, 531)) // token='or'
32307 &&
32308 (c = conjunction_rule(p)) // conjunction
32309 )
32310 {
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032311 D(fprintf(stderr, "%*c+ _tmp_186[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'or' conjunction"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032312 _res = c;
32313 if (_res == NULL && PyErr_Occurred()) {
32314 p->error_indicator = 1;
32315 D(p->level--);
32316 return NULL;
32317 }
32318 goto done;
32319 }
32320 p->mark = _mark;
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032321 D(fprintf(stderr, "%*c%s _tmp_186[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032322 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'or' conjunction"));
32323 }
32324 _res = NULL;
32325 done:
32326 D(p->level--);
32327 return _res;
32328}
32329
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032330// _tmp_187: 'and' inversion
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032331static void *
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032332_tmp_187_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032333{
32334 D(p->level++);
32335 if (p->error_indicator) {
32336 D(p->level--);
32337 return NULL;
32338 }
32339 void * _res = NULL;
32340 int _mark = p->mark;
32341 { // 'and' inversion
32342 if (p->error_indicator) {
32343 D(p->level--);
32344 return NULL;
32345 }
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032346 D(fprintf(stderr, "%*c> _tmp_187[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'and' inversion"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032347 Token * _keyword;
32348 expr_ty c;
32349 if (
32350 (_keyword = _PyPegen_expect_token(p, 532)) // token='and'
32351 &&
32352 (c = inversion_rule(p)) // inversion
32353 )
32354 {
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032355 D(fprintf(stderr, "%*c+ _tmp_187[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'and' inversion"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032356 _res = c;
32357 if (_res == NULL && PyErr_Occurred()) {
32358 p->error_indicator = 1;
32359 D(p->level--);
32360 return NULL;
32361 }
32362 goto done;
32363 }
32364 p->mark = _mark;
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032365 D(fprintf(stderr, "%*c%s _tmp_187[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032366 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'and' inversion"));
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032367 }
32368 _res = NULL;
32369 done:
32370 D(p->level--);
32371 return _res;
32372}
32373
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032374// _tmp_188: 'if' disjunction
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032375static void *
32376_tmp_188_rule(Parser *p)
32377{
32378 D(p->level++);
32379 if (p->error_indicator) {
32380 D(p->level--);
32381 return NULL;
32382 }
32383 void * _res = NULL;
32384 int _mark = p->mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032385 { // 'if' disjunction
32386 if (p->error_indicator) {
32387 D(p->level--);
32388 return NULL;
32389 }
32390 D(fprintf(stderr, "%*c> _tmp_188[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
32391 Token * _keyword;
32392 expr_ty z;
32393 if (
32394 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
32395 &&
32396 (z = disjunction_rule(p)) // disjunction
32397 )
32398 {
32399 D(fprintf(stderr, "%*c+ _tmp_188[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
32400 _res = z;
32401 if (_res == NULL && PyErr_Occurred()) {
32402 p->error_indicator = 1;
32403 D(p->level--);
32404 return NULL;
32405 }
32406 goto done;
32407 }
32408 p->mark = _mark;
32409 D(fprintf(stderr, "%*c%s _tmp_188[%d-%d]: %s failed!\n", p->level, ' ',
32410 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' disjunction"));
32411 }
32412 _res = NULL;
32413 done:
32414 D(p->level--);
32415 return _res;
32416}
32417
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032418// _tmp_189: 'if' disjunction
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032419static void *
32420_tmp_189_rule(Parser *p)
32421{
32422 D(p->level++);
32423 if (p->error_indicator) {
32424 D(p->level--);
32425 return NULL;
32426 }
32427 void * _res = NULL;
32428 int _mark = p->mark;
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032429 { // 'if' disjunction
32430 if (p->error_indicator) {
32431 D(p->level--);
32432 return NULL;
32433 }
32434 D(fprintf(stderr, "%*c> _tmp_189[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
32435 Token * _keyword;
32436 expr_ty z;
32437 if (
32438 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
32439 &&
32440 (z = disjunction_rule(p)) // disjunction
32441 )
32442 {
32443 D(fprintf(stderr, "%*c+ _tmp_189[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
32444 _res = z;
32445 if (_res == NULL && PyErr_Occurred()) {
32446 p->error_indicator = 1;
32447 D(p->level--);
32448 return NULL;
32449 }
32450 goto done;
32451 }
32452 p->mark = _mark;
32453 D(fprintf(stderr, "%*c%s _tmp_189[%d-%d]: %s failed!\n", p->level, ' ',
32454 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' disjunction"));
32455 }
32456 _res = NULL;
32457 done:
32458 D(p->level--);
32459 return _res;
32460}
32461
32462// _tmp_190: starred_expression | (assigment_expression | expression !':=') !'='
32463static void *
32464_tmp_190_rule(Parser *p)
32465{
32466 D(p->level++);
32467 if (p->error_indicator) {
32468 D(p->level--);
32469 return NULL;
32470 }
32471 void * _res = NULL;
32472 int _mark = p->mark;
Pablo Galindo4a97b152020-09-02 17:44:19 +010032473 { // starred_expression
32474 if (p->error_indicator) {
32475 D(p->level--);
32476 return NULL;
32477 }
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032478 D(fprintf(stderr, "%*c> _tmp_190[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "starred_expression"));
Pablo Galindo4a97b152020-09-02 17:44:19 +010032479 expr_ty starred_expression_var;
32480 if (
32481 (starred_expression_var = starred_expression_rule(p)) // starred_expression
32482 )
32483 {
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032484 D(fprintf(stderr, "%*c+ _tmp_190[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "starred_expression"));
Pablo Galindo4a97b152020-09-02 17:44:19 +010032485 _res = starred_expression_var;
32486 goto done;
32487 }
32488 p->mark = _mark;
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032489 D(fprintf(stderr, "%*c%s _tmp_190[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo4a97b152020-09-02 17:44:19 +010032490 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "starred_expression"));
32491 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032492 { // (assigment_expression | expression !':=') !'='
Pablo Galindo4a97b152020-09-02 17:44:19 +010032493 if (p->error_indicator) {
32494 D(p->level--);
32495 return NULL;
32496 }
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032497 D(fprintf(stderr, "%*c> _tmp_190[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(assigment_expression | expression !':=') !'='"));
32498 void *_tmp_201_var;
Pablo Galindo4a97b152020-09-02 17:44:19 +010032499 if (
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032500 (_tmp_201_var = _tmp_201_rule(p)) // assigment_expression | expression !':='
Pablo Galindo4a97b152020-09-02 17:44:19 +010032501 &&
32502 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 22) // token='='
32503 )
32504 {
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032505 D(fprintf(stderr, "%*c+ _tmp_190[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(assigment_expression | expression !':=') !'='"));
32506 _res = _tmp_201_var;
Pablo Galindob2802482021-04-15 21:38:45 +010032507 goto done;
32508 }
32509 p->mark = _mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +010032510 D(fprintf(stderr, "%*c%s _tmp_190[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032511 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(assigment_expression | expression !':=') !'='"));
Pablo Galindob2802482021-04-15 21:38:45 +010032512 }
32513 _res = NULL;
32514 done:
32515 D(p->level--);
32516 return _res;
32517}
32518
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032519// _tmp_191: ',' star_target
Pablo Galindob2802482021-04-15 21:38:45 +010032520static void *
Pablo Galindo56c95df2021-04-21 15:28:21 +010032521_tmp_191_rule(Parser *p)
Pablo Galindob2802482021-04-15 21:38:45 +010032522{
32523 D(p->level++);
32524 if (p->error_indicator) {
32525 D(p->level--);
32526 return NULL;
32527 }
32528 void * _res = NULL;
32529 int _mark = p->mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032530 { // ',' star_target
Pablo Galindoa77aac42021-04-23 14:27:05 +010032531 if (p->error_indicator) {
32532 D(p->level--);
32533 return NULL;
32534 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032535 D(fprintf(stderr, "%*c> _tmp_191[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_target"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010032536 Token * _literal;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032537 expr_ty c;
Pablo Galindoa77aac42021-04-23 14:27:05 +010032538 if (
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032539 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoa77aac42021-04-23 14:27:05 +010032540 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032541 (c = star_target_rule(p)) // star_target
Pablo Galindoa77aac42021-04-23 14:27:05 +010032542 )
32543 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032544 D(fprintf(stderr, "%*c+ _tmp_191[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_target"));
32545 _res = c;
32546 if (_res == NULL && PyErr_Occurred()) {
32547 p->error_indicator = 1;
32548 D(p->level--);
32549 return NULL;
32550 }
Pablo Galindoa77aac42021-04-23 14:27:05 +010032551 goto done;
32552 }
32553 p->mark = _mark;
32554 D(fprintf(stderr, "%*c%s _tmp_191[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032555 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_target"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010032556 }
32557 _res = NULL;
32558 done:
32559 D(p->level--);
32560 return _res;
32561}
32562
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032563// _tmp_192: ',' star_target
Pablo Galindoa77aac42021-04-23 14:27:05 +010032564static void *
32565_tmp_192_rule(Parser *p)
32566{
32567 D(p->level++);
32568 if (p->error_indicator) {
32569 D(p->level--);
32570 return NULL;
32571 }
32572 void * _res = NULL;
32573 int _mark = p->mark;
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032574 { // ',' star_target
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032575 if (p->error_indicator) {
32576 D(p->level--);
32577 return NULL;
32578 }
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032579 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 -070032580 Token * _literal;
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032581 expr_ty c;
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032582 if (
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032583 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032584 &&
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032585 (c = star_target_rule(p)) // star_target
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032586 )
32587 {
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032588 D(fprintf(stderr, "%*c+ _tmp_192[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_target"));
32589 _res = c;
32590 if (_res == NULL && PyErr_Occurred()) {
32591 p->error_indicator = 1;
32592 D(p->level--);
32593 return NULL;
32594 }
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032595 goto done;
32596 }
32597 p->mark = _mark;
32598 D(fprintf(stderr, "%*c%s _tmp_192[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032599 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_target"));
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032600 }
32601 _res = NULL;
32602 done:
32603 D(p->level--);
32604 return _res;
32605}
32606
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032607// _tmp_193: star_targets '='
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032608static void *
32609_tmp_193_rule(Parser *p)
32610{
32611 D(p->level++);
32612 if (p->error_indicator) {
32613 D(p->level--);
32614 return NULL;
32615 }
32616 void * _res = NULL;
32617 int _mark = p->mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032618 { // star_targets '='
32619 if (p->error_indicator) {
32620 D(p->level--);
32621 return NULL;
32622 }
32623 D(fprintf(stderr, "%*c> _tmp_193[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
32624 Token * _literal;
32625 expr_ty star_targets_var;
32626 if (
32627 (star_targets_var = star_targets_rule(p)) // star_targets
32628 &&
32629 (_literal = _PyPegen_expect_token(p, 22)) // token='='
32630 )
32631 {
32632 D(fprintf(stderr, "%*c+ _tmp_193[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
32633 _res = _PyPegen_dummy_name(p, star_targets_var, _literal);
32634 goto done;
32635 }
32636 p->mark = _mark;
32637 D(fprintf(stderr, "%*c%s _tmp_193[%d-%d]: %s failed!\n", p->level, ' ',
32638 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_targets '='"));
32639 }
32640 _res = NULL;
32641 done:
32642 D(p->level--);
32643 return _res;
32644}
32645
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032646// _tmp_194: star_targets '='
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032647static void *
32648_tmp_194_rule(Parser *p)
32649{
32650 D(p->level++);
32651 if (p->error_indicator) {
32652 D(p->level--);
32653 return NULL;
32654 }
32655 void * _res = NULL;
32656 int _mark = p->mark;
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032657 { // star_targets '='
32658 if (p->error_indicator) {
32659 D(p->level--);
32660 return NULL;
32661 }
32662 D(fprintf(stderr, "%*c> _tmp_194[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
32663 Token * _literal;
32664 expr_ty star_targets_var;
32665 if (
32666 (star_targets_var = star_targets_rule(p)) // star_targets
32667 &&
32668 (_literal = _PyPegen_expect_token(p, 22)) // token='='
32669 )
32670 {
32671 D(fprintf(stderr, "%*c+ _tmp_194[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
32672 _res = _PyPegen_dummy_name(p, star_targets_var, _literal);
32673 goto done;
32674 }
32675 p->mark = _mark;
32676 D(fprintf(stderr, "%*c%s _tmp_194[%d-%d]: %s failed!\n", p->level, ' ',
32677 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_targets '='"));
32678 }
32679 _res = NULL;
32680 done:
32681 D(p->level--);
32682 return _res;
32683}
32684
32685// _tmp_195: ')' | '**'
32686static void *
32687_tmp_195_rule(Parser *p)
32688{
32689 D(p->level++);
32690 if (p->error_indicator) {
32691 D(p->level--);
32692 return NULL;
32693 }
32694 void * _res = NULL;
32695 int _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032696 { // ')'
32697 if (p->error_indicator) {
32698 D(p->level--);
32699 return NULL;
32700 }
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032701 D(fprintf(stderr, "%*c> _tmp_195[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032702 Token * _literal;
32703 if (
32704 (_literal = _PyPegen_expect_token(p, 8)) // token=')'
32705 )
32706 {
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032707 D(fprintf(stderr, "%*c+ _tmp_195[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032708 _res = _literal;
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032709 goto done;
32710 }
32711 p->mark = _mark;
32712 D(fprintf(stderr, "%*c%s _tmp_195[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032713 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032714 }
32715 { // '**'
32716 if (p->error_indicator) {
32717 D(p->level--);
32718 return NULL;
32719 }
32720 D(fprintf(stderr, "%*c> _tmp_195[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**'"));
32721 Token * _literal;
32722 if (
32723 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
32724 )
32725 {
32726 D(fprintf(stderr, "%*c+ _tmp_195[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**'"));
32727 _res = _literal;
32728 goto done;
32729 }
32730 p->mark = _mark;
32731 D(fprintf(stderr, "%*c%s _tmp_195[%d-%d]: %s failed!\n", p->level, ' ',
32732 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**'"));
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032733 }
32734 _res = NULL;
32735 done:
32736 D(p->level--);
32737 return _res;
32738}
32739
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032740// _tmp_196: ':' | '**'
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032741static void *
32742_tmp_196_rule(Parser *p)
32743{
32744 D(p->level++);
32745 if (p->error_indicator) {
32746 D(p->level--);
32747 return NULL;
32748 }
32749 void * _res = NULL;
32750 int _mark = p->mark;
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032751 { // ':'
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032752 if (p->error_indicator) {
32753 D(p->level--);
32754 return NULL;
32755 }
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032756 D(fprintf(stderr, "%*c> _tmp_196[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
32757 Token * _literal;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032758 if (
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032759 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032760 )
32761 {
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032762 D(fprintf(stderr, "%*c+ _tmp_196[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
32763 _res = _literal;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032764 goto done;
32765 }
32766 p->mark = _mark;
32767 D(fprintf(stderr, "%*c%s _tmp_196[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032768 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
32769 }
32770 { // '**'
32771 if (p->error_indicator) {
32772 D(p->level--);
32773 return NULL;
32774 }
32775 D(fprintf(stderr, "%*c> _tmp_196[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**'"));
32776 Token * _literal;
32777 if (
32778 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
32779 )
32780 {
32781 D(fprintf(stderr, "%*c+ _tmp_196[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**'"));
32782 _res = _literal;
32783 goto done;
32784 }
32785 p->mark = _mark;
32786 D(fprintf(stderr, "%*c%s _tmp_196[%d-%d]: %s failed!\n", p->level, ' ',
32787 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**'"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032788 }
32789 _res = NULL;
32790 done:
32791 D(p->level--);
32792 return _res;
32793}
32794
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032795// _tmp_197: expression ['as' star_target]
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032796static void *
32797_tmp_197_rule(Parser *p)
32798{
32799 D(p->level++);
32800 if (p->error_indicator) {
32801 D(p->level--);
32802 return NULL;
32803 }
32804 void * _res = NULL;
32805 int _mark = p->mark;
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032806 { // expression ['as' star_target]
32807 if (p->error_indicator) {
32808 D(p->level--);
32809 return NULL;
32810 }
32811 D(fprintf(stderr, "%*c> _tmp_197[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]"));
32812 void *_opt_var;
32813 UNUSED(_opt_var); // Silence compiler warnings
32814 expr_ty expression_var;
32815 if (
32816 (expression_var = expression_rule(p)) // expression
32817 &&
32818 (_opt_var = _tmp_202_rule(p), 1) // ['as' star_target]
32819 )
32820 {
32821 D(fprintf(stderr, "%*c+ _tmp_197[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]"));
32822 _res = _PyPegen_dummy_name(p, expression_var, _opt_var);
32823 goto done;
32824 }
32825 p->mark = _mark;
32826 D(fprintf(stderr, "%*c%s _tmp_197[%d-%d]: %s failed!\n", p->level, ' ',
32827 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ['as' star_target]"));
32828 }
32829 _res = NULL;
32830 done:
32831 D(p->level--);
32832 return _res;
32833}
32834
32835// _tmp_198: expressions ['as' star_target]
32836static void *
32837_tmp_198_rule(Parser *p)
32838{
32839 D(p->level++);
32840 if (p->error_indicator) {
32841 D(p->level--);
32842 return NULL;
32843 }
32844 void * _res = NULL;
32845 int _mark = p->mark;
Pablo Galindo58fb1562021-02-02 19:54:22 +000032846 { // expressions ['as' star_target]
32847 if (p->error_indicator) {
32848 D(p->level--);
32849 return NULL;
32850 }
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032851 D(fprintf(stderr, "%*c> _tmp_198[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000032852 void *_opt_var;
32853 UNUSED(_opt_var); // Silence compiler warnings
32854 expr_ty expressions_var;
32855 if (
32856 (expressions_var = expressions_rule(p)) // expressions
32857 &&
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032858 (_opt_var = _tmp_203_rule(p), 1) // ['as' star_target]
Pablo Galindo58fb1562021-02-02 19:54:22 +000032859 )
32860 {
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032861 D(fprintf(stderr, "%*c+ _tmp_198[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000032862 _res = _PyPegen_dummy_name(p, expressions_var, _opt_var);
32863 goto done;
32864 }
32865 p->mark = _mark;
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032866 D(fprintf(stderr, "%*c%s _tmp_198[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob2802482021-04-15 21:38:45 +010032867 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expressions ['as' star_target]"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000032868 }
32869 _res = NULL;
32870 done:
32871 D(p->level--);
32872 return _res;
32873}
32874
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032875// _tmp_199: expression ['as' star_target]
Pablo Galindo58fb1562021-02-02 19:54:22 +000032876static void *
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032877_tmp_199_rule(Parser *p)
Pablo Galindo56c95df2021-04-21 15:28:21 +010032878{
32879 D(p->level++);
32880 if (p->error_indicator) {
32881 D(p->level--);
32882 return NULL;
32883 }
32884 void * _res = NULL;
32885 int _mark = p->mark;
32886 { // expression ['as' star_target]
32887 if (p->error_indicator) {
32888 D(p->level--);
32889 return NULL;
32890 }
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032891 D(fprintf(stderr, "%*c> _tmp_199[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]"));
Pablo Galindo56c95df2021-04-21 15:28:21 +010032892 void *_opt_var;
32893 UNUSED(_opt_var); // Silence compiler warnings
32894 expr_ty expression_var;
32895 if (
32896 (expression_var = expression_rule(p)) // expression
32897 &&
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032898 (_opt_var = _tmp_204_rule(p), 1) // ['as' star_target]
Pablo Galindo56c95df2021-04-21 15:28:21 +010032899 )
32900 {
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032901 D(fprintf(stderr, "%*c+ _tmp_199[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]"));
Pablo Galindo56c95df2021-04-21 15:28:21 +010032902 _res = _PyPegen_dummy_name(p, expression_var, _opt_var);
32903 goto done;
32904 }
32905 p->mark = _mark;
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032906 D(fprintf(stderr, "%*c%s _tmp_199[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo56c95df2021-04-21 15:28:21 +010032907 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ['as' star_target]"));
32908 }
32909 _res = NULL;
32910 done:
32911 D(p->level--);
32912 return _res;
32913}
32914
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032915// _tmp_200: expressions ['as' star_target]
Pablo Galindo56c95df2021-04-21 15:28:21 +010032916static void *
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032917_tmp_200_rule(Parser *p)
Pablo Galindo56c95df2021-04-21 15:28:21 +010032918{
32919 D(p->level++);
32920 if (p->error_indicator) {
32921 D(p->level--);
32922 return NULL;
32923 }
32924 void * _res = NULL;
32925 int _mark = p->mark;
32926 { // expressions ['as' star_target]
32927 if (p->error_indicator) {
32928 D(p->level--);
32929 return NULL;
32930 }
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032931 D(fprintf(stderr, "%*c> _tmp_200[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]"));
Pablo Galindo56c95df2021-04-21 15:28:21 +010032932 void *_opt_var;
32933 UNUSED(_opt_var); // Silence compiler warnings
32934 expr_ty expressions_var;
32935 if (
32936 (expressions_var = expressions_rule(p)) // expressions
32937 &&
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032938 (_opt_var = _tmp_205_rule(p), 1) // ['as' star_target]
Pablo Galindo56c95df2021-04-21 15:28:21 +010032939 )
32940 {
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032941 D(fprintf(stderr, "%*c+ _tmp_200[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]"));
Pablo Galindo56c95df2021-04-21 15:28:21 +010032942 _res = _PyPegen_dummy_name(p, expressions_var, _opt_var);
32943 goto done;
32944 }
32945 p->mark = _mark;
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032946 D(fprintf(stderr, "%*c%s _tmp_200[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032947 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expressions ['as' star_target]"));
Pablo Galindo56c95df2021-04-21 15:28:21 +010032948 }
32949 _res = NULL;
32950 done:
32951 D(p->level--);
32952 return _res;
32953}
32954
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032955// _tmp_201: assigment_expression | expression !':='
Pablo Galindo56c95df2021-04-21 15:28:21 +010032956static void *
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032957_tmp_201_rule(Parser *p)
Pablo Galindo56c95df2021-04-21 15:28:21 +010032958{
32959 D(p->level++);
32960 if (p->error_indicator) {
32961 D(p->level--);
32962 return NULL;
32963 }
32964 void * _res = NULL;
32965 int _mark = p->mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032966 { // assigment_expression
Pablo Galindo56c95df2021-04-21 15:28:21 +010032967 if (p->error_indicator) {
32968 D(p->level--);
32969 return NULL;
32970 }
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032971 D(fprintf(stderr, "%*c> _tmp_201[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "assigment_expression"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032972 expr_ty assigment_expression_var;
Pablo Galindo56c95df2021-04-21 15:28:21 +010032973 if (
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032974 (assigment_expression_var = assigment_expression_rule(p)) // assigment_expression
Pablo Galindo56c95df2021-04-21 15:28:21 +010032975 )
32976 {
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032977 D(fprintf(stderr, "%*c+ _tmp_201[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "assigment_expression"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032978 _res = assigment_expression_var;
Pablo Galindo56c95df2021-04-21 15:28:21 +010032979 goto done;
32980 }
32981 p->mark = _mark;
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032982 D(fprintf(stderr, "%*c%s _tmp_201[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032983 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "assigment_expression"));
32984 }
32985 { // expression !':='
32986 if (p->error_indicator) {
32987 D(p->level--);
32988 return NULL;
32989 }
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032990 D(fprintf(stderr, "%*c> _tmp_201[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression !':='"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032991 expr_ty expression_var;
32992 if (
32993 (expression_var = expression_rule(p)) // expression
32994 &&
32995 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 53) // token=':='
32996 )
32997 {
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032998 D(fprintf(stderr, "%*c+ _tmp_201[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression !':='"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032999 _res = expression_var;
33000 goto done;
33001 }
33002 p->mark = _mark;
Pablo Galindoa77aac42021-04-23 14:27:05 +010033003 D(fprintf(stderr, "%*c%s _tmp_201[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindoe53f72a2021-06-04 00:11:43 +010033004 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression !':='"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010033005 }
33006 _res = NULL;
33007 done:
33008 D(p->level--);
33009 return _res;
33010}
33011
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070033012// _tmp_202: 'as' star_target
33013static void *
33014_tmp_202_rule(Parser *p)
33015{
33016 D(p->level++);
33017 if (p->error_indicator) {
33018 D(p->level--);
33019 return NULL;
33020 }
33021 void * _res = NULL;
33022 int _mark = p->mark;
33023 { // 'as' star_target
33024 if (p->error_indicator) {
33025 D(p->level--);
33026 return NULL;
33027 }
33028 D(fprintf(stderr, "%*c> _tmp_202[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
33029 Token * _keyword;
33030 expr_ty star_target_var;
33031 if (
33032 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
33033 &&
33034 (star_target_var = star_target_rule(p)) // star_target
33035 )
33036 {
33037 D(fprintf(stderr, "%*c+ _tmp_202[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
33038 _res = _PyPegen_dummy_name(p, _keyword, star_target_var);
33039 goto done;
33040 }
33041 p->mark = _mark;
33042 D(fprintf(stderr, "%*c%s _tmp_202[%d-%d]: %s failed!\n", p->level, ' ',
33043 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' star_target"));
33044 }
33045 _res = NULL;
33046 done:
33047 D(p->level--);
33048 return _res;
33049}
33050
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070033051// _tmp_203: 'as' star_target
33052static void *
33053_tmp_203_rule(Parser *p)
33054{
33055 D(p->level++);
33056 if (p->error_indicator) {
33057 D(p->level--);
33058 return NULL;
33059 }
33060 void * _res = NULL;
33061 int _mark = p->mark;
33062 { // 'as' star_target
33063 if (p->error_indicator) {
33064 D(p->level--);
33065 return NULL;
33066 }
33067 D(fprintf(stderr, "%*c> _tmp_203[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
33068 Token * _keyword;
33069 expr_ty star_target_var;
33070 if (
33071 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
33072 &&
33073 (star_target_var = star_target_rule(p)) // star_target
33074 )
33075 {
33076 D(fprintf(stderr, "%*c+ _tmp_203[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
33077 _res = _PyPegen_dummy_name(p, _keyword, star_target_var);
33078 goto done;
33079 }
33080 p->mark = _mark;
33081 D(fprintf(stderr, "%*c%s _tmp_203[%d-%d]: %s failed!\n", p->level, ' ',
33082 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' star_target"));
33083 }
33084 _res = NULL;
33085 done:
33086 D(p->level--);
33087 return _res;
33088}
33089
33090// _tmp_204: 'as' star_target
33091static void *
33092_tmp_204_rule(Parser *p)
33093{
33094 D(p->level++);
33095 if (p->error_indicator) {
33096 D(p->level--);
33097 return NULL;
33098 }
33099 void * _res = NULL;
33100 int _mark = p->mark;
33101 { // 'as' star_target
33102 if (p->error_indicator) {
33103 D(p->level--);
33104 return NULL;
33105 }
33106 D(fprintf(stderr, "%*c> _tmp_204[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
33107 Token * _keyword;
33108 expr_ty star_target_var;
33109 if (
33110 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
33111 &&
33112 (star_target_var = star_target_rule(p)) // star_target
33113 )
33114 {
33115 D(fprintf(stderr, "%*c+ _tmp_204[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
33116 _res = _PyPegen_dummy_name(p, _keyword, star_target_var);
33117 goto done;
33118 }
33119 p->mark = _mark;
33120 D(fprintf(stderr, "%*c%s _tmp_204[%d-%d]: %s failed!\n", p->level, ' ',
33121 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' star_target"));
33122 }
33123 _res = NULL;
33124 done:
33125 D(p->level--);
33126 return _res;
33127}
33128
Pablo Galindoe53f72a2021-06-04 00:11:43 +010033129// _tmp_205: 'as' star_target
33130static void *
33131_tmp_205_rule(Parser *p)
33132{
33133 D(p->level++);
33134 if (p->error_indicator) {
33135 D(p->level--);
33136 return NULL;
33137 }
33138 void * _res = NULL;
33139 int _mark = p->mark;
33140 { // 'as' star_target
33141 if (p->error_indicator) {
33142 D(p->level--);
33143 return NULL;
33144 }
33145 D(fprintf(stderr, "%*c> _tmp_205[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
33146 Token * _keyword;
33147 expr_ty star_target_var;
33148 if (
33149 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
33150 &&
33151 (star_target_var = star_target_rule(p)) // star_target
33152 )
33153 {
33154 D(fprintf(stderr, "%*c+ _tmp_205[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
33155 _res = _PyPegen_dummy_name(p, _keyword, star_target_var);
33156 goto done;
33157 }
33158 p->mark = _mark;
33159 D(fprintf(stderr, "%*c%s _tmp_205[%d-%d]: %s failed!\n", p->level, ' ',
33160 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' star_target"));
33161 }
33162 _res = NULL;
33163 done:
33164 D(p->level--);
33165 return _res;
33166}
33167
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010033168void *
33169_PyPegen_parse(Parser *p)
33170{
33171 // Initialize keywords
33172 p->keywords = reserved_keywords;
33173 p->n_keyword_lists = n_keyword_lists;
Pablo Galindob2802482021-04-15 21:38:45 +010033174 p->soft_keywords = soft_keywords;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010033175
33176 // Run parser
33177 void *result = NULL;
33178 if (p->start_rule == Py_file_input) {
33179 result = file_rule(p);
33180 } else if (p->start_rule == Py_single_input) {
33181 result = interactive_rule(p);
33182 } else if (p->start_rule == Py_eval_input) {
33183 result = eval_rule(p);
33184 } else if (p->start_rule == Py_func_type_input) {
33185 result = func_type_rule(p);
33186 } else if (p->start_rule == Py_fstring_input) {
33187 result = fstring_rule(p);
33188 }
33189
33190 return result;
33191}
33192
33193// The end