blob: 4e8a14c36160fb82e5401e4cdf8c1786ad3e8eb5 [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
470#define _loop0_177_type 1396
471#define _gather_176_type 1397
472#define _tmp_178_type 1398
473#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 Galindo1ed83ad2020-06-11 17:30:46 +0100499
500static mod_ty file_rule(Parser *p);
501static mod_ty interactive_rule(Parser *p);
502static mod_ty eval_rule(Parser *p);
503static mod_ty func_type_rule(Parser *p);
504static expr_ty fstring_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100505static asdl_expr_seq* type_expressions_rule(Parser *p);
506static asdl_stmt_seq* statements_rule(Parser *p);
507static asdl_stmt_seq* statement_rule(Parser *p);
508static asdl_stmt_seq* statement_newline_rule(Parser *p);
Pablo Galindo9bdc40e2020-11-30 19:42:38 +0000509static asdl_stmt_seq* simple_stmts_rule(Parser *p);
510static stmt_ty simple_stmt_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100511static stmt_ty compound_stmt_rule(Parser *p);
512static stmt_ty assignment_rule(Parser *p);
513static AugOperator* augassign_rule(Parser *p);
514static stmt_ty global_stmt_rule(Parser *p);
515static stmt_ty nonlocal_stmt_rule(Parser *p);
516static stmt_ty yield_stmt_rule(Parser *p);
517static stmt_ty assert_stmt_rule(Parser *p);
518static stmt_ty del_stmt_rule(Parser *p);
519static stmt_ty import_stmt_rule(Parser *p);
520static stmt_ty import_name_rule(Parser *p);
521static stmt_ty import_from_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100522static asdl_alias_seq* import_from_targets_rule(Parser *p);
523static asdl_alias_seq* import_from_as_names_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100524static alias_ty import_from_as_name_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100525static asdl_alias_seq* dotted_as_names_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100526static alias_ty dotted_as_name_rule(Parser *p);
527static expr_ty dotted_name_rule(Parser *p);
528static stmt_ty if_stmt_rule(Parser *p);
529static stmt_ty elif_stmt_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100530static asdl_stmt_seq* else_block_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100531static stmt_ty while_stmt_rule(Parser *p);
532static stmt_ty for_stmt_rule(Parser *p);
533static stmt_ty with_stmt_rule(Parser *p);
534static withitem_ty with_item_rule(Parser *p);
535static stmt_ty try_stmt_rule(Parser *p);
536static excepthandler_ty except_block_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100537static asdl_stmt_seq* finally_block_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800538static stmt_ty match_stmt_rule(Parser *p);
539static expr_ty subject_expr_rule(Parser *p);
540static match_case_ty case_block_rule(Parser *p);
541static expr_ty guard_rule(Parser *p);
Nick Coghlan1e7b8582021-04-29 15:58:44 +1000542static pattern_ty patterns_rule(Parser *p);
543static pattern_ty pattern_rule(Parser *p);
544static pattern_ty as_pattern_rule(Parser *p);
545static pattern_ty or_pattern_rule(Parser *p);
546static pattern_ty closed_pattern_rule(Parser *p);
547static pattern_ty literal_pattern_rule(Parser *p);
548static expr_ty literal_expr_rule(Parser *p);
549static expr_ty complex_number_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800550static expr_ty signed_number_rule(Parser *p);
Brandt Bucherdbe60ee2021-04-29 17:19:28 -0700551static expr_ty signed_real_number_rule(Parser *p);
552static expr_ty real_number_rule(Parser *p);
Nick Coghlan1e7b8582021-04-29 15:58:44 +1000553static expr_ty imaginary_number_rule(Parser *p);
554static pattern_ty capture_pattern_rule(Parser *p);
555static expr_ty pattern_capture_target_rule(Parser *p);
556static pattern_ty wildcard_pattern_rule(Parser *p);
557static pattern_ty value_pattern_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800558static expr_ty attr_rule(Parser *p);
559static expr_ty name_or_attr_rule(Parser *p);
Nick Coghlan1e7b8582021-04-29 15:58:44 +1000560static pattern_ty group_pattern_rule(Parser *p);
561static pattern_ty sequence_pattern_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800562static asdl_seq* open_sequence_pattern_rule(Parser *p);
563static asdl_seq* maybe_sequence_pattern_rule(Parser *p);
Nick Coghlan1e7b8582021-04-29 15:58:44 +1000564static pattern_ty maybe_star_pattern_rule(Parser *p);
565static pattern_ty star_pattern_rule(Parser *p);
566static pattern_ty mapping_pattern_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800567static asdl_seq* items_pattern_rule(Parser *p);
Nick Coghlan1e7b8582021-04-29 15:58:44 +1000568static KeyPatternPair* key_value_pattern_rule(Parser *p);
569static expr_ty double_star_pattern_rule(Parser *p);
570static pattern_ty class_pattern_rule(Parser *p);
571static asdl_pattern_seq* positional_patterns_rule(Parser *p);
572static asdl_seq* keyword_patterns_rule(Parser *p);
573static KeyPatternPair* keyword_pattern_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100574static stmt_ty return_stmt_rule(Parser *p);
575static stmt_ty raise_stmt_rule(Parser *p);
576static stmt_ty function_def_rule(Parser *p);
577static stmt_ty function_def_raw_rule(Parser *p);
578static Token* func_type_comment_rule(Parser *p);
579static arguments_ty params_rule(Parser *p);
580static arguments_ty parameters_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100581static asdl_arg_seq* slash_no_default_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100582static SlashWithDefault* slash_with_default_rule(Parser *p);
583static StarEtc* star_etc_rule(Parser *p);
584static arg_ty kwds_rule(Parser *p);
585static arg_ty param_no_default_rule(Parser *p);
586static NameDefaultPair* param_with_default_rule(Parser *p);
587static NameDefaultPair* param_maybe_default_rule(Parser *p);
588static arg_ty param_rule(Parser *p);
589static expr_ty annotation_rule(Parser *p);
590static expr_ty default_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100591static asdl_expr_seq* decorators_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100592static stmt_ty class_def_rule(Parser *p);
593static stmt_ty class_def_raw_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100594static asdl_stmt_seq* block_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100595static expr_ty star_expressions_rule(Parser *p);
596static expr_ty star_expression_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100597static asdl_expr_seq* star_named_expressions_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100598static expr_ty star_named_expression_rule(Parser *p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -0700599static expr_ty assigment_expression_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100600static expr_ty named_expression_rule(Parser *p);
601static expr_ty annotated_rhs_rule(Parser *p);
602static expr_ty expressions_rule(Parser *p);
603static expr_ty expression_rule(Parser *p);
604static expr_ty lambdef_rule(Parser *p);
605static arguments_ty lambda_params_rule(Parser *p);
606static arguments_ty lambda_parameters_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100607static asdl_arg_seq* lambda_slash_no_default_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100608static SlashWithDefault* lambda_slash_with_default_rule(Parser *p);
609static StarEtc* lambda_star_etc_rule(Parser *p);
610static arg_ty lambda_kwds_rule(Parser *p);
611static arg_ty lambda_param_no_default_rule(Parser *p);
612static NameDefaultPair* lambda_param_with_default_rule(Parser *p);
613static NameDefaultPair* lambda_param_maybe_default_rule(Parser *p);
614static arg_ty lambda_param_rule(Parser *p);
615static expr_ty disjunction_rule(Parser *p);
616static expr_ty conjunction_rule(Parser *p);
617static expr_ty inversion_rule(Parser *p);
618static expr_ty comparison_rule(Parser *p);
619static CmpopExprPair* compare_op_bitwise_or_pair_rule(Parser *p);
620static CmpopExprPair* eq_bitwise_or_rule(Parser *p);
621static CmpopExprPair* noteq_bitwise_or_rule(Parser *p);
622static CmpopExprPair* lte_bitwise_or_rule(Parser *p);
623static CmpopExprPair* lt_bitwise_or_rule(Parser *p);
624static CmpopExprPair* gte_bitwise_or_rule(Parser *p);
625static CmpopExprPair* gt_bitwise_or_rule(Parser *p);
626static CmpopExprPair* notin_bitwise_or_rule(Parser *p);
627static CmpopExprPair* in_bitwise_or_rule(Parser *p);
628static CmpopExprPair* isnot_bitwise_or_rule(Parser *p);
629static CmpopExprPair* is_bitwise_or_rule(Parser *p);
630static expr_ty bitwise_or_rule(Parser *p);
631static expr_ty bitwise_xor_rule(Parser *p);
632static expr_ty bitwise_and_rule(Parser *p);
633static expr_ty shift_expr_rule(Parser *p);
634static expr_ty sum_rule(Parser *p);
635static expr_ty term_rule(Parser *p);
636static expr_ty factor_rule(Parser *p);
637static expr_ty power_rule(Parser *p);
638static expr_ty await_primary_rule(Parser *p);
639static expr_ty primary_rule(Parser *p);
640static expr_ty slices_rule(Parser *p);
641static expr_ty slice_rule(Parser *p);
642static expr_ty atom_rule(Parser *p);
643static expr_ty strings_rule(Parser *p);
644static expr_ty list_rule(Parser *p);
645static expr_ty listcomp_rule(Parser *p);
646static expr_ty tuple_rule(Parser *p);
647static expr_ty group_rule(Parser *p);
648static expr_ty genexp_rule(Parser *p);
649static expr_ty set_rule(Parser *p);
650static expr_ty setcomp_rule(Parser *p);
651static expr_ty dict_rule(Parser *p);
652static expr_ty dictcomp_rule(Parser *p);
653static asdl_seq* double_starred_kvpairs_rule(Parser *p);
654static KeyValuePair* double_starred_kvpair_rule(Parser *p);
655static KeyValuePair* kvpair_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100656static asdl_comprehension_seq* for_if_clauses_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100657static comprehension_ty for_if_clause_rule(Parser *p);
658static expr_ty yield_expr_rule(Parser *p);
659static expr_ty arguments_rule(Parser *p);
660static expr_ty args_rule(Parser *p);
661static asdl_seq* kwargs_rule(Parser *p);
662static expr_ty starred_expression_rule(Parser *p);
663static KeywordOrStarred* kwarg_or_starred_rule(Parser *p);
664static KeywordOrStarred* kwarg_or_double_starred_rule(Parser *p);
665static expr_ty star_targets_rule(Parser *p);
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +0200666static asdl_expr_seq* star_targets_list_seq_rule(Parser *p);
667static asdl_expr_seq* star_targets_tuple_seq_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100668static expr_ty star_target_rule(Parser *p);
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +0200669static expr_ty target_with_star_atom_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100670static expr_ty star_atom_rule(Parser *p);
671static expr_ty single_target_rule(Parser *p);
672static expr_ty single_subscript_attribute_target_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100673static asdl_expr_seq* del_targets_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100674static expr_ty del_target_rule(Parser *p);
675static expr_ty del_t_atom_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100676static asdl_expr_seq* targets_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100677static expr_ty target_rule(Parser *p);
678static expr_ty t_primary_rule(Parser *p);
679static void *t_lookahead_rule(Parser *p);
680static expr_ty t_atom_rule(Parser *p);
Lysandros Nikolaoubca70142020-10-27 00:42:04 +0200681static void *invalid_arguments_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100682static void *invalid_kwarg_rule(Parser *p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -0700683static expr_ty expression_without_invalid_rule(Parser *p);
Pablo Galindob2802482021-04-15 21:38:45 +0100684static void *invalid_expression_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100685static void *invalid_named_expression_rule(Parser *p);
686static void *invalid_assignment_rule(Parser *p);
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +0300687static expr_ty invalid_ann_assign_target_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300688static void *invalid_del_stmt_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100689static void *invalid_block_rule(Parser *p);
Lysandros Nikolaou15acc4e2020-10-27 20:54:20 +0200690static void *invalid_primary_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100691static void *invalid_comprehension_rule(Parser *p);
692static void *invalid_dict_comprehension_rule(Parser *p);
693static void *invalid_parameters_rule(Parser *p);
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +0200694static void *invalid_parameters_helper_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100695static void *invalid_lambda_parameters_rule(Parser *p);
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +0200696static void *invalid_lambda_parameters_helper_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100697static void *invalid_star_etc_rule(Parser *p);
698static void *invalid_lambda_star_etc_rule(Parser *p);
699static void *invalid_double_type_comments_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300700static void *invalid_with_item_rule(Parser *p);
701static void *invalid_for_target_rule(Parser *p);
702static void *invalid_group_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100703static void *invalid_import_from_targets_rule(Parser *p);
Pablo Galindo58fb1562021-02-02 19:54:22 +0000704static void *invalid_with_stmt_rule(Parser *p);
Pablo Galindo56c95df2021-04-21 15:28:21 +0100705static void *invalid_with_stmt_indent_rule(Parser *p);
706static void *invalid_try_stmt_rule(Parser *p);
707static void *invalid_except_stmt_rule(Parser *p);
708static void *invalid_finally_stmt_rule(Parser *p);
709static void *invalid_except_stmt_indent_rule(Parser *p);
Pablo Galindo08fb8ac2021-03-18 01:03:11 +0000710static void *invalid_match_stmt_rule(Parser *p);
711static void *invalid_case_block_rule(Parser *p);
Pablo Galindob86ed8e2021-04-12 16:59:30 +0100712static void *invalid_if_stmt_rule(Parser *p);
713static void *invalid_elif_stmt_rule(Parser *p);
Pablo Galindo56c95df2021-04-21 15:28:21 +0100714static void *invalid_else_stmt_rule(Parser *p);
Pablo Galindob86ed8e2021-04-12 16:59:30 +0100715static void *invalid_while_stmt_rule(Parser *p);
Pablo Galindo56c95df2021-04-21 15:28:21 +0100716static void *invalid_for_stmt_rule(Parser *p);
717static void *invalid_def_raw_rule(Parser *p);
718static void *invalid_class_def_raw_rule(Parser *p);
Pablo Galindoda743502021-04-15 14:06:39 +0100719static void *invalid_double_starred_kvpairs_rule(Parser *p);
720static void *invalid_kvpair_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100721static asdl_seq *_loop0_1_rule(Parser *p);
722static asdl_seq *_loop0_2_rule(Parser *p);
723static asdl_seq *_loop0_4_rule(Parser *p);
724static asdl_seq *_gather_3_rule(Parser *p);
725static asdl_seq *_loop0_6_rule(Parser *p);
726static asdl_seq *_gather_5_rule(Parser *p);
727static asdl_seq *_loop0_8_rule(Parser *p);
728static asdl_seq *_gather_7_rule(Parser *p);
729static asdl_seq *_loop0_10_rule(Parser *p);
730static asdl_seq *_gather_9_rule(Parser *p);
731static asdl_seq *_loop1_11_rule(Parser *p);
732static asdl_seq *_loop0_13_rule(Parser *p);
733static asdl_seq *_gather_12_rule(Parser *p);
734static void *_tmp_14_rule(Parser *p);
735static void *_tmp_15_rule(Parser *p);
736static void *_tmp_16_rule(Parser *p);
737static void *_tmp_17_rule(Parser *p);
738static void *_tmp_18_rule(Parser *p);
739static void *_tmp_19_rule(Parser *p);
740static void *_tmp_20_rule(Parser *p);
741static void *_tmp_21_rule(Parser *p);
742static asdl_seq *_loop1_22_rule(Parser *p);
743static void *_tmp_23_rule(Parser *p);
744static void *_tmp_24_rule(Parser *p);
745static asdl_seq *_loop0_26_rule(Parser *p);
746static asdl_seq *_gather_25_rule(Parser *p);
747static asdl_seq *_loop0_28_rule(Parser *p);
748static asdl_seq *_gather_27_rule(Parser *p);
749static void *_tmp_29_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300750static void *_tmp_30_rule(Parser *p);
751static asdl_seq *_loop0_31_rule(Parser *p);
752static asdl_seq *_loop1_32_rule(Parser *p);
753static asdl_seq *_loop0_34_rule(Parser *p);
754static asdl_seq *_gather_33_rule(Parser *p);
755static void *_tmp_35_rule(Parser *p);
756static asdl_seq *_loop0_37_rule(Parser *p);
757static asdl_seq *_gather_36_rule(Parser *p);
758static void *_tmp_38_rule(Parser *p);
759static asdl_seq *_loop0_40_rule(Parser *p);
760static asdl_seq *_gather_39_rule(Parser *p);
761static asdl_seq *_loop0_42_rule(Parser *p);
762static asdl_seq *_gather_41_rule(Parser *p);
763static asdl_seq *_loop0_44_rule(Parser *p);
764static asdl_seq *_gather_43_rule(Parser *p);
765static asdl_seq *_loop0_46_rule(Parser *p);
766static asdl_seq *_gather_45_rule(Parser *p);
767static void *_tmp_47_rule(Parser *p);
768static asdl_seq *_loop1_48_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100769static void *_tmp_49_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800770static asdl_seq *_loop1_50_rule(Parser *p);
771static asdl_seq *_loop0_52_rule(Parser *p);
772static asdl_seq *_gather_51_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300773static void *_tmp_53_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800774static void *_tmp_54_rule(Parser *p);
775static void *_tmp_55_rule(Parser *p);
Nick Coghlan1e7b8582021-04-29 15:58:44 +1000776static void *_tmp_56_rule(Parser *p);
777static asdl_seq *_loop0_58_rule(Parser *p);
778static asdl_seq *_gather_57_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800779static asdl_seq *_loop0_60_rule(Parser *p);
780static asdl_seq *_gather_59_rule(Parser *p);
781static void *_tmp_61_rule(Parser *p);
782static asdl_seq *_loop0_63_rule(Parser *p);
783static asdl_seq *_gather_62_rule(Parser *p);
784static asdl_seq *_loop0_65_rule(Parser *p);
785static asdl_seq *_gather_64_rule(Parser *p);
786static void *_tmp_66_rule(Parser *p);
787static void *_tmp_67_rule(Parser *p);
788static void *_tmp_68_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300789static void *_tmp_69_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800790static asdl_seq *_loop0_70_rule(Parser *p);
791static asdl_seq *_loop0_71_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000792static asdl_seq *_loop0_72_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000793static asdl_seq *_loop1_73_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300794static asdl_seq *_loop0_74_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800795static asdl_seq *_loop1_75_rule(Parser *p);
796static asdl_seq *_loop1_76_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000797static asdl_seq *_loop1_77_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300798static asdl_seq *_loop0_78_rule(Parser *p);
799static asdl_seq *_loop1_79_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800800static asdl_seq *_loop0_80_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100801static asdl_seq *_loop1_81_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000802static asdl_seq *_loop0_82_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300803static asdl_seq *_loop1_83_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800804static asdl_seq *_loop1_84_rule(Parser *p);
805static void *_tmp_85_rule(Parser *p);
806static asdl_seq *_loop1_86_rule(Parser *p);
807static asdl_seq *_loop0_88_rule(Parser *p);
808static asdl_seq *_gather_87_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100809static asdl_seq *_loop1_89_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800810static asdl_seq *_loop0_90_rule(Parser *p);
811static asdl_seq *_loop0_91_rule(Parser *p);
812static asdl_seq *_loop0_92_rule(Parser *p);
813static asdl_seq *_loop1_93_rule(Parser *p);
814static asdl_seq *_loop0_94_rule(Parser *p);
815static asdl_seq *_loop1_95_rule(Parser *p);
816static asdl_seq *_loop1_96_rule(Parser *p);
817static asdl_seq *_loop1_97_rule(Parser *p);
818static asdl_seq *_loop0_98_rule(Parser *p);
819static asdl_seq *_loop1_99_rule(Parser *p);
820static asdl_seq *_loop0_100_rule(Parser *p);
821static asdl_seq *_loop1_101_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000822static asdl_seq *_loop0_102_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000823static asdl_seq *_loop1_103_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800824static asdl_seq *_loop1_104_rule(Parser *p);
825static asdl_seq *_loop1_105_rule(Parser *p);
826static asdl_seq *_loop1_106_rule(Parser *p);
827static void *_tmp_107_rule(Parser *p);
828static asdl_seq *_loop0_109_rule(Parser *p);
829static asdl_seq *_gather_108_rule(Parser *p);
830static void *_tmp_110_rule(Parser *p);
831static void *_tmp_111_rule(Parser *p);
832static void *_tmp_112_rule(Parser *p);
833static void *_tmp_113_rule(Parser *p);
834static asdl_seq *_loop1_114_rule(Parser *p);
835static void *_tmp_115_rule(Parser *p);
836static void *_tmp_116_rule(Parser *p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -0700837static void *_tmp_117_rule(Parser *p);
838static asdl_seq *_loop0_119_rule(Parser *p);
839static asdl_seq *_gather_118_rule(Parser *p);
840static asdl_seq *_loop1_120_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800841static asdl_seq *_loop0_121_rule(Parser *p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -0700842static asdl_seq *_loop0_122_rule(Parser *p);
843static asdl_seq *_loop0_124_rule(Parser *p);
844static asdl_seq *_gather_123_rule(Parser *p);
845static void *_tmp_125_rule(Parser *p);
846static asdl_seq *_loop0_127_rule(Parser *p);
847static asdl_seq *_gather_126_rule(Parser *p);
848static asdl_seq *_loop0_129_rule(Parser *p);
849static asdl_seq *_gather_128_rule(Parser *p);
850static asdl_seq *_loop0_131_rule(Parser *p);
851static asdl_seq *_gather_130_rule(Parser *p);
Pablo Galindo835f14f2021-01-31 22:52:56 +0000852static asdl_seq *_loop0_133_rule(Parser *p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -0700853static asdl_seq *_gather_132_rule(Parser *p);
854static asdl_seq *_loop0_134_rule(Parser *p);
855static asdl_seq *_loop0_136_rule(Parser *p);
856static asdl_seq *_gather_135_rule(Parser *p);
857static asdl_seq *_loop1_137_rule(Parser *p);
858static void *_tmp_138_rule(Parser *p);
859static asdl_seq *_loop0_140_rule(Parser *p);
860static asdl_seq *_gather_139_rule(Parser *p);
861static asdl_seq *_loop0_142_rule(Parser *p);
862static asdl_seq *_gather_141_rule(Parser *p);
Pablo Galindob86ed8e2021-04-12 16:59:30 +0100863static void *_tmp_143_rule(Parser *p);
864static void *_tmp_144_rule(Parser *p);
865static void *_tmp_145_rule(Parser *p);
Pablo Galindob2802482021-04-15 21:38:45 +0100866static void *_tmp_146_rule(Parser *p);
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -0700867static void *_tmp_147_rule(Parser *p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -0700868static void *_tmp_148_rule(Parser *p);
Pablo Galindob2802482021-04-15 21:38:45 +0100869static asdl_seq *_loop0_149_rule(Parser *p);
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -0700870static asdl_seq *_loop0_150_rule(Parser *p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -0700871static asdl_seq *_loop0_151_rule(Parser *p);
Pablo Galindob2802482021-04-15 21:38:45 +0100872static void *_tmp_152_rule(Parser *p);
Pablo Galindoa77aac42021-04-23 14:27:05 +0100873static void *_tmp_153_rule(Parser *p);
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -0700874static void *_tmp_154_rule(Parser *p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -0700875static void *_tmp_155_rule(Parser *p);
876static asdl_seq *_loop0_156_rule(Parser *p);
877static asdl_seq *_loop1_157_rule(Parser *p);
878static asdl_seq *_loop0_158_rule(Parser *p);
879static asdl_seq *_loop1_159_rule(Parser *p);
Pablo Galindoa77aac42021-04-23 14:27:05 +0100880static void *_tmp_160_rule(Parser *p);
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -0700881static void *_tmp_161_rule(Parser *p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -0700882static void *_tmp_162_rule(Parser *p);
883static asdl_seq *_loop0_164_rule(Parser *p);
884static asdl_seq *_gather_163_rule(Parser *p);
885static asdl_seq *_loop0_166_rule(Parser *p);
886static asdl_seq *_gather_165_rule(Parser *p);
887static asdl_seq *_loop0_168_rule(Parser *p);
888static asdl_seq *_gather_167_rule(Parser *p);
889static asdl_seq *_loop0_170_rule(Parser *p);
890static asdl_seq *_gather_169_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800891static void *_tmp_171_rule(Parser *p);
892static void *_tmp_172_rule(Parser *p);
Pablo Galindoa77aac42021-04-23 14:27:05 +0100893static void *_tmp_173_rule(Parser *p);
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -0700894static void *_tmp_174_rule(Parser *p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -0700895static void *_tmp_175_rule(Parser *p);
896static asdl_seq *_loop0_177_rule(Parser *p);
897static asdl_seq *_gather_176_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800898static void *_tmp_178_rule(Parser *p);
899static void *_tmp_179_rule(Parser *p);
900static void *_tmp_180_rule(Parser *p);
901static void *_tmp_181_rule(Parser *p);
902static void *_tmp_182_rule(Parser *p);
Pablo Galindob86ed8e2021-04-12 16:59:30 +0100903static void *_tmp_183_rule(Parser *p);
904static void *_tmp_184_rule(Parser *p);
905static void *_tmp_185_rule(Parser *p);
Pablo Galindoda743502021-04-15 14:06:39 +0100906static void *_tmp_186_rule(Parser *p);
907static void *_tmp_187_rule(Parser *p);
908static void *_tmp_188_rule(Parser *p);
Pablo Galindob2802482021-04-15 21:38:45 +0100909static void *_tmp_189_rule(Parser *p);
Pablo Galindo56c95df2021-04-21 15:28:21 +0100910static void *_tmp_190_rule(Parser *p);
911static void *_tmp_191_rule(Parser *p);
912static void *_tmp_192_rule(Parser *p);
913static void *_tmp_193_rule(Parser *p);
914static void *_tmp_194_rule(Parser *p);
915static void *_tmp_195_rule(Parser *p);
916static void *_tmp_196_rule(Parser *p);
917static void *_tmp_197_rule(Parser *p);
918static void *_tmp_198_rule(Parser *p);
919static void *_tmp_199_rule(Parser *p);
920static void *_tmp_200_rule(Parser *p);
Pablo Galindoa77aac42021-04-23 14:27:05 +0100921static void *_tmp_201_rule(Parser *p);
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -0700922static void *_tmp_202_rule(Parser *p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -0700923static void *_tmp_203_rule(Parser *p);
924static void *_tmp_204_rule(Parser *p);
Guido van Rossum85a5fbb1990-10-14 12:07:46 +0000925
926
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100927// file: statements? $
928static mod_ty
929file_rule(Parser *p)
Guido van Rossum85a5fbb1990-10-14 12:07:46 +0000930{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100931 D(p->level++);
932 if (p->error_indicator) {
933 D(p->level--);
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000934 return NULL;
935 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100936 mod_ty _res = NULL;
937 int _mark = p->mark;
938 { // statements? $
939 if (p->error_indicator) {
940 D(p->level--);
941 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000942 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100943 D(fprintf(stderr, "%*c> file[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statements? $"));
944 void *a;
945 Token * endmarker_var;
946 if (
947 (a = statements_rule(p), 1) // statements?
948 &&
949 (endmarker_var = _PyPegen_expect_token(p, ENDMARKER)) // token='ENDMARKER'
950 )
951 {
952 D(fprintf(stderr, "%*c+ file[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "statements? $"));
953 _res = _PyPegen_make_module ( p , a );
954 if (_res == NULL && PyErr_Occurred()) {
955 p->error_indicator = 1;
956 D(p->level--);
957 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000958 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100959 goto done;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000960 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100961 p->mark = _mark;
962 D(fprintf(stderr, "%*c%s file[%d-%d]: %s failed!\n", p->level, ' ',
963 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statements? $"));
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000964 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100965 _res = NULL;
966 done:
967 D(p->level--);
968 return _res;
Guido van Rossum85a5fbb1990-10-14 12:07:46 +0000969}
970
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100971// interactive: statement_newline
972static mod_ty
973interactive_rule(Parser *p)
Guido van Rossumb09f7ed2001-07-15 21:08:29 +0000974{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100975 D(p->level++);
976 if (p->error_indicator) {
977 D(p->level--);
978 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000979 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100980 mod_ty _res = NULL;
981 int _mark = p->mark;
982 { // statement_newline
983 if (p->error_indicator) {
984 D(p->level--);
985 return NULL;
986 }
987 D(fprintf(stderr, "%*c> interactive[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statement_newline"));
Pablo Galindoa5634c42020-09-16 19:42:00 +0100988 asdl_stmt_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100989 if (
990 (a = statement_newline_rule(p)) // statement_newline
991 )
992 {
993 D(fprintf(stderr, "%*c+ interactive[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "statement_newline"));
Victor Stinnerd27f8d22021-04-07 21:34:22 +0200994 _res = _PyAST_Interactive ( a , p -> arena );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100995 if (_res == NULL && PyErr_Occurred()) {
996 p->error_indicator = 1;
997 D(p->level--);
998 return NULL;
999 }
1000 goto done;
1001 }
1002 p->mark = _mark;
1003 D(fprintf(stderr, "%*c%s interactive[%d-%d]: %s failed!\n", p->level, ' ',
1004 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statement_newline"));
1005 }
1006 _res = NULL;
1007 done:
1008 D(p->level--);
1009 return _res;
Guido van Rossumb09f7ed2001-07-15 21:08:29 +00001010}
1011
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001012// eval: expressions NEWLINE* $
1013static mod_ty
1014eval_rule(Parser *p)
Guido van Rossum85a5fbb1990-10-14 12:07:46 +00001015{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001016 D(p->level++);
1017 if (p->error_indicator) {
1018 D(p->level--);
1019 return NULL;
1020 }
1021 mod_ty _res = NULL;
1022 int _mark = p->mark;
1023 { // expressions NEWLINE* $
1024 if (p->error_indicator) {
1025 D(p->level--);
1026 return NULL;
1027 }
1028 D(fprintf(stderr, "%*c> eval[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expressions NEWLINE* $"));
1029 asdl_seq * _loop0_1_var;
1030 expr_ty a;
1031 Token * endmarker_var;
1032 if (
1033 (a = expressions_rule(p)) // expressions
1034 &&
1035 (_loop0_1_var = _loop0_1_rule(p)) // NEWLINE*
1036 &&
1037 (endmarker_var = _PyPegen_expect_token(p, ENDMARKER)) // token='ENDMARKER'
1038 )
1039 {
1040 D(fprintf(stderr, "%*c+ eval[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expressions NEWLINE* $"));
Victor Stinnerd27f8d22021-04-07 21:34:22 +02001041 _res = _PyAST_Expression ( a , p -> arena );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001042 if (_res == NULL && PyErr_Occurred()) {
1043 p->error_indicator = 1;
1044 D(p->level--);
1045 return NULL;
1046 }
1047 goto done;
1048 }
1049 p->mark = _mark;
1050 D(fprintf(stderr, "%*c%s eval[%d-%d]: %s failed!\n", p->level, ' ',
1051 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expressions NEWLINE* $"));
1052 }
1053 _res = NULL;
1054 done:
1055 D(p->level--);
1056 return _res;
1057}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +00001058
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001059// func_type: '(' type_expressions? ')' '->' expression NEWLINE* $
1060static mod_ty
1061func_type_rule(Parser *p)
1062{
1063 D(p->level++);
1064 if (p->error_indicator) {
1065 D(p->level--);
1066 return NULL;
1067 }
1068 mod_ty _res = NULL;
1069 int _mark = p->mark;
1070 { // '(' type_expressions? ')' '->' expression NEWLINE* $
1071 if (p->error_indicator) {
1072 D(p->level--);
1073 return NULL;
1074 }
1075 D(fprintf(stderr, "%*c> func_type[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' type_expressions? ')' '->' expression NEWLINE* $"));
1076 Token * _literal;
1077 Token * _literal_1;
1078 Token * _literal_2;
1079 asdl_seq * _loop0_2_var;
1080 void *a;
1081 expr_ty b;
1082 Token * endmarker_var;
1083 if (
1084 (_literal = _PyPegen_expect_token(p, 7)) // token='('
1085 &&
1086 (a = type_expressions_rule(p), 1) // type_expressions?
1087 &&
1088 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
1089 &&
1090 (_literal_2 = _PyPegen_expect_token(p, 51)) // token='->'
1091 &&
1092 (b = expression_rule(p)) // expression
1093 &&
1094 (_loop0_2_var = _loop0_2_rule(p)) // NEWLINE*
1095 &&
1096 (endmarker_var = _PyPegen_expect_token(p, ENDMARKER)) // token='ENDMARKER'
1097 )
1098 {
1099 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 +02001100 _res = _PyAST_FunctionType ( a , b , p -> arena );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001101 if (_res == NULL && PyErr_Occurred()) {
1102 p->error_indicator = 1;
1103 D(p->level--);
1104 return NULL;
1105 }
1106 goto done;
1107 }
1108 p->mark = _mark;
1109 D(fprintf(stderr, "%*c%s func_type[%d-%d]: %s failed!\n", p->level, ' ',
1110 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' type_expressions? ')' '->' expression NEWLINE* $"));
1111 }
1112 _res = NULL;
1113 done:
1114 D(p->level--);
1115 return _res;
1116}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +00001117
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001118// fstring: star_expressions
1119static expr_ty
1120fstring_rule(Parser *p)
1121{
1122 D(p->level++);
1123 if (p->error_indicator) {
1124 D(p->level--);
1125 return NULL;
1126 }
1127 expr_ty _res = NULL;
1128 int _mark = p->mark;
1129 { // star_expressions
1130 if (p->error_indicator) {
1131 D(p->level--);
1132 return NULL;
1133 }
1134 D(fprintf(stderr, "%*c> fstring[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
1135 expr_ty star_expressions_var;
1136 if (
1137 (star_expressions_var = star_expressions_rule(p)) // star_expressions
1138 )
1139 {
1140 D(fprintf(stderr, "%*c+ fstring[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
1141 _res = star_expressions_var;
1142 goto done;
1143 }
1144 p->mark = _mark;
1145 D(fprintf(stderr, "%*c%s fstring[%d-%d]: %s failed!\n", p->level, ' ',
1146 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
1147 }
1148 _res = NULL;
1149 done:
1150 D(p->level--);
1151 return _res;
1152}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +00001153
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001154// type_expressions:
1155// | ','.expression+ ',' '*' expression ',' '**' expression
1156// | ','.expression+ ',' '*' expression
1157// | ','.expression+ ',' '**' expression
1158// | '*' expression ',' '**' expression
1159// | '*' expression
1160// | '**' expression
1161// | ','.expression+
Pablo Galindoa5634c42020-09-16 19:42:00 +01001162static asdl_expr_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001163type_expressions_rule(Parser *p)
1164{
1165 D(p->level++);
1166 if (p->error_indicator) {
1167 D(p->level--);
1168 return NULL;
1169 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01001170 asdl_expr_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001171 int _mark = p->mark;
1172 { // ','.expression+ ',' '*' expression ',' '**' expression
1173 if (p->error_indicator) {
1174 D(p->level--);
1175 return NULL;
1176 }
1177 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.expression+ ',' '*' expression ',' '**' expression"));
1178 Token * _literal;
1179 Token * _literal_1;
1180 Token * _literal_2;
1181 Token * _literal_3;
1182 asdl_seq * a;
1183 expr_ty b;
1184 expr_ty c;
1185 if (
1186 (a = _gather_3_rule(p)) // ','.expression+
1187 &&
1188 (_literal = _PyPegen_expect_token(p, 12)) // token=','
1189 &&
1190 (_literal_1 = _PyPegen_expect_token(p, 16)) // token='*'
1191 &&
1192 (b = expression_rule(p)) // expression
1193 &&
1194 (_literal_2 = _PyPegen_expect_token(p, 12)) // token=','
1195 &&
1196 (_literal_3 = _PyPegen_expect_token(p, 35)) // token='**'
1197 &&
1198 (c = expression_rule(p)) // expression
1199 )
1200 {
1201 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 +03001202 _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 +01001203 if (_res == NULL && PyErr_Occurred()) {
1204 p->error_indicator = 1;
1205 D(p->level--);
1206 return NULL;
1207 }
1208 goto done;
1209 }
1210 p->mark = _mark;
1211 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1212 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+ ',' '*' expression ',' '**' expression"));
1213 }
1214 { // ','.expression+ ',' '*' expression
1215 if (p->error_indicator) {
1216 D(p->level--);
1217 return NULL;
1218 }
1219 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.expression+ ',' '*' expression"));
1220 Token * _literal;
1221 Token * _literal_1;
1222 asdl_seq * a;
1223 expr_ty b;
1224 if (
1225 (a = _gather_5_rule(p)) // ','.expression+
1226 &&
1227 (_literal = _PyPegen_expect_token(p, 12)) // token=','
1228 &&
1229 (_literal_1 = _PyPegen_expect_token(p, 16)) // token='*'
1230 &&
1231 (b = expression_rule(p)) // expression
1232 )
1233 {
1234 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 +01001235 _res = ( asdl_expr_seq * ) _PyPegen_seq_append_to_end ( p , a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001236 if (_res == NULL && PyErr_Occurred()) {
1237 p->error_indicator = 1;
1238 D(p->level--);
1239 return NULL;
1240 }
1241 goto done;
1242 }
1243 p->mark = _mark;
1244 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1245 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+ ',' '*' expression"));
1246 }
1247 { // ','.expression+ ',' '**' expression
1248 if (p->error_indicator) {
1249 D(p->level--);
1250 return NULL;
1251 }
1252 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.expression+ ',' '**' expression"));
1253 Token * _literal;
1254 Token * _literal_1;
1255 asdl_seq * a;
1256 expr_ty b;
1257 if (
1258 (a = _gather_7_rule(p)) // ','.expression+
1259 &&
1260 (_literal = _PyPegen_expect_token(p, 12)) // token=','
1261 &&
1262 (_literal_1 = _PyPegen_expect_token(p, 35)) // token='**'
1263 &&
1264 (b = expression_rule(p)) // expression
1265 )
1266 {
1267 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 +01001268 _res = ( asdl_expr_seq * ) _PyPegen_seq_append_to_end ( p , a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001269 if (_res == NULL && PyErr_Occurred()) {
1270 p->error_indicator = 1;
1271 D(p->level--);
1272 return NULL;
1273 }
1274 goto done;
1275 }
1276 p->mark = _mark;
1277 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1278 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+ ',' '**' expression"));
1279 }
1280 { // '*' expression ',' '**' expression
1281 if (p->error_indicator) {
1282 D(p->level--);
1283 return NULL;
1284 }
1285 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' expression ',' '**' expression"));
1286 Token * _literal;
1287 Token * _literal_1;
1288 Token * _literal_2;
1289 expr_ty a;
1290 expr_ty b;
1291 if (
1292 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
1293 &&
1294 (a = expression_rule(p)) // expression
1295 &&
1296 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
1297 &&
1298 (_literal_2 = _PyPegen_expect_token(p, 35)) // token='**'
1299 &&
1300 (b = expression_rule(p)) // expression
1301 )
1302 {
1303 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 +03001304 _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 +01001305 if (_res == NULL && PyErr_Occurred()) {
1306 p->error_indicator = 1;
1307 D(p->level--);
1308 return NULL;
1309 }
1310 goto done;
1311 }
1312 p->mark = _mark;
1313 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1314 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' expression ',' '**' expression"));
1315 }
1316 { // '*' expression
1317 if (p->error_indicator) {
1318 D(p->level--);
1319 return NULL;
1320 }
1321 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' expression"));
1322 Token * _literal;
1323 expr_ty a;
1324 if (
1325 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
1326 &&
1327 (a = expression_rule(p)) // expression
1328 )
1329 {
1330 D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' expression"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001331 _res = ( asdl_expr_seq * ) _PyPegen_singleton_seq ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001332 if (_res == NULL && PyErr_Occurred()) {
1333 p->error_indicator = 1;
1334 D(p->level--);
1335 return NULL;
1336 }
1337 goto done;
1338 }
1339 p->mark = _mark;
1340 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1341 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' expression"));
1342 }
1343 { // '**' expression
1344 if (p->error_indicator) {
1345 D(p->level--);
1346 return NULL;
1347 }
1348 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' expression"));
1349 Token * _literal;
1350 expr_ty a;
1351 if (
1352 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
1353 &&
1354 (a = expression_rule(p)) // expression
1355 )
1356 {
1357 D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' expression"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001358 _res = ( asdl_expr_seq * ) _PyPegen_singleton_seq ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001359 if (_res == NULL && PyErr_Occurred()) {
1360 p->error_indicator = 1;
1361 D(p->level--);
1362 return NULL;
1363 }
1364 goto done;
1365 }
1366 p->mark = _mark;
1367 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1368 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' expression"));
1369 }
1370 { // ','.expression+
1371 if (p->error_indicator) {
1372 D(p->level--);
1373 return NULL;
1374 }
1375 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.expression+"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001376 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001377 if (
Pablo Galindoa5634c42020-09-16 19:42:00 +01001378 (a = (asdl_expr_seq*)_gather_9_rule(p)) // ','.expression+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001379 )
1380 {
1381 D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.expression+"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001382 _res = a;
1383 if (_res == NULL && PyErr_Occurred()) {
1384 p->error_indicator = 1;
1385 D(p->level--);
1386 return NULL;
1387 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001388 goto done;
1389 }
1390 p->mark = _mark;
1391 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1392 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+"));
1393 }
1394 _res = NULL;
1395 done:
1396 D(p->level--);
1397 return _res;
1398}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +00001399
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001400// statements: statement+
Pablo Galindoa5634c42020-09-16 19:42:00 +01001401static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001402statements_rule(Parser *p)
1403{
1404 D(p->level++);
1405 if (p->error_indicator) {
1406 D(p->level--);
1407 return NULL;
1408 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01001409 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001410 int _mark = p->mark;
1411 { // statement+
1412 if (p->error_indicator) {
1413 D(p->level--);
1414 return NULL;
1415 }
1416 D(fprintf(stderr, "%*c> statements[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statement+"));
1417 asdl_seq * a;
1418 if (
1419 (a = _loop1_11_rule(p)) // statement+
1420 )
1421 {
1422 D(fprintf(stderr, "%*c+ statements[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "statement+"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001423 _res = ( asdl_stmt_seq * ) _PyPegen_seq_flatten ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001424 if (_res == NULL && PyErr_Occurred()) {
1425 p->error_indicator = 1;
1426 D(p->level--);
1427 return NULL;
1428 }
1429 goto done;
1430 }
1431 p->mark = _mark;
1432 D(fprintf(stderr, "%*c%s statements[%d-%d]: %s failed!\n", p->level, ' ',
1433 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statement+"));
1434 }
1435 _res = NULL;
1436 done:
1437 D(p->level--);
1438 return _res;
1439}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +00001440
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001441// statement: compound_stmt | simple_stmts
Pablo Galindoa5634c42020-09-16 19:42:00 +01001442static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001443statement_rule(Parser *p)
1444{
1445 D(p->level++);
1446 if (p->error_indicator) {
1447 D(p->level--);
1448 return NULL;
1449 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01001450 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001451 int _mark = p->mark;
1452 { // compound_stmt
1453 if (p->error_indicator) {
1454 D(p->level--);
1455 return NULL;
1456 }
1457 D(fprintf(stderr, "%*c> statement[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "compound_stmt"));
1458 stmt_ty a;
1459 if (
1460 (a = compound_stmt_rule(p)) // compound_stmt
1461 )
1462 {
1463 D(fprintf(stderr, "%*c+ statement[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "compound_stmt"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001464 _res = ( asdl_stmt_seq * ) _PyPegen_singleton_seq ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001465 if (_res == NULL && PyErr_Occurred()) {
1466 p->error_indicator = 1;
1467 D(p->level--);
1468 return NULL;
1469 }
1470 goto done;
1471 }
1472 p->mark = _mark;
1473 D(fprintf(stderr, "%*c%s statement[%d-%d]: %s failed!\n", p->level, ' ',
1474 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "compound_stmt"));
1475 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001476 { // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001477 if (p->error_indicator) {
1478 D(p->level--);
1479 return NULL;
1480 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001481 D(fprintf(stderr, "%*c> statement[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001482 asdl_stmt_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001483 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001484 (a = (asdl_stmt_seq*)simple_stmts_rule(p)) // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001485 )
1486 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001487 D(fprintf(stderr, "%*c+ statement[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001488 _res = a;
1489 if (_res == NULL && PyErr_Occurred()) {
1490 p->error_indicator = 1;
1491 D(p->level--);
1492 return NULL;
1493 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001494 goto done;
1495 }
1496 p->mark = _mark;
1497 D(fprintf(stderr, "%*c%s statement[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001498 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmts"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001499 }
1500 _res = NULL;
1501 done:
1502 D(p->level--);
1503 return _res;
1504}
1505
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001506// statement_newline: compound_stmt NEWLINE | simple_stmts | NEWLINE | $
Pablo Galindoa5634c42020-09-16 19:42:00 +01001507static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001508statement_newline_rule(Parser *p)
1509{
1510 D(p->level++);
1511 if (p->error_indicator) {
1512 D(p->level--);
1513 return NULL;
1514 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01001515 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001516 int _mark = p->mark;
1517 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
1518 p->error_indicator = 1;
1519 D(p->level--);
1520 return NULL;
1521 }
1522 int _start_lineno = p->tokens[_mark]->lineno;
1523 UNUSED(_start_lineno); // Only used by EXTRA macro
1524 int _start_col_offset = p->tokens[_mark]->col_offset;
1525 UNUSED(_start_col_offset); // Only used by EXTRA macro
1526 { // compound_stmt NEWLINE
1527 if (p->error_indicator) {
1528 D(p->level--);
1529 return NULL;
1530 }
1531 D(fprintf(stderr, "%*c> statement_newline[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "compound_stmt NEWLINE"));
1532 stmt_ty a;
1533 Token * newline_var;
1534 if (
1535 (a = compound_stmt_rule(p)) // compound_stmt
1536 &&
1537 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
1538 )
1539 {
1540 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 +01001541 _res = ( asdl_stmt_seq * ) _PyPegen_singleton_seq ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001542 if (_res == NULL && PyErr_Occurred()) {
1543 p->error_indicator = 1;
1544 D(p->level--);
1545 return NULL;
1546 }
1547 goto done;
1548 }
1549 p->mark = _mark;
1550 D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ',
1551 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "compound_stmt NEWLINE"));
1552 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001553 { // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001554 if (p->error_indicator) {
1555 D(p->level--);
1556 return NULL;
1557 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001558 D(fprintf(stderr, "%*c> statement_newline[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
1559 asdl_stmt_seq* simple_stmts_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001560 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001561 (simple_stmts_var = simple_stmts_rule(p)) // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001562 )
1563 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001564 D(fprintf(stderr, "%*c+ statement_newline[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
1565 _res = simple_stmts_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001566 goto done;
1567 }
1568 p->mark = _mark;
1569 D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001570 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmts"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001571 }
1572 { // NEWLINE
1573 if (p->error_indicator) {
1574 D(p->level--);
1575 return NULL;
1576 }
1577 D(fprintf(stderr, "%*c> statement_newline[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
1578 Token * newline_var;
1579 if (
1580 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
1581 )
1582 {
1583 D(fprintf(stderr, "%*c+ statement_newline[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
1584 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1585 if (_token == NULL) {
1586 D(p->level--);
1587 return NULL;
1588 }
1589 int _end_lineno = _token->end_lineno;
1590 UNUSED(_end_lineno); // Only used by EXTRA macro
1591 int _end_col_offset = _token->end_col_offset;
1592 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02001593 _res = ( asdl_stmt_seq * ) _PyPegen_singleton_seq ( p , CHECK ( stmt_ty , _PyAST_Pass ( EXTRA ) ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001594 if (_res == NULL && PyErr_Occurred()) {
1595 p->error_indicator = 1;
1596 D(p->level--);
1597 return NULL;
1598 }
1599 goto done;
1600 }
1601 p->mark = _mark;
1602 D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ',
1603 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
1604 }
1605 { // $
1606 if (p->error_indicator) {
1607 D(p->level--);
1608 return NULL;
1609 }
1610 D(fprintf(stderr, "%*c> statement_newline[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "$"));
1611 Token * endmarker_var;
1612 if (
1613 (endmarker_var = _PyPegen_expect_token(p, ENDMARKER)) // token='ENDMARKER'
1614 )
1615 {
1616 D(fprintf(stderr, "%*c+ statement_newline[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "$"));
1617 _res = _PyPegen_interactive_exit ( p );
1618 if (_res == NULL && PyErr_Occurred()) {
1619 p->error_indicator = 1;
1620 D(p->level--);
1621 return NULL;
1622 }
1623 goto done;
1624 }
1625 p->mark = _mark;
1626 D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ',
1627 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "$"));
1628 }
1629 _res = NULL;
1630 done:
1631 D(p->level--);
1632 return _res;
1633}
1634
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001635// simple_stmts: simple_stmt !';' NEWLINE | ';'.simple_stmt+ ';'? NEWLINE
Pablo Galindoa5634c42020-09-16 19:42:00 +01001636static asdl_stmt_seq*
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001637simple_stmts_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001638{
1639 D(p->level++);
1640 if (p->error_indicator) {
1641 D(p->level--);
1642 return NULL;
1643 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01001644 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001645 int _mark = p->mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001646 { // simple_stmt !';' NEWLINE
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001647 if (p->error_indicator) {
1648 D(p->level--);
1649 return NULL;
1650 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001651 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 +01001652 stmt_ty a;
1653 Token * newline_var;
1654 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001655 (a = simple_stmt_rule(p)) // simple_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001656 &&
1657 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 13) // token=';'
1658 &&
1659 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
1660 )
1661 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001662 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 +01001663 _res = ( asdl_stmt_seq * ) _PyPegen_singleton_seq ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001664 if (_res == NULL && PyErr_Occurred()) {
1665 p->error_indicator = 1;
1666 D(p->level--);
1667 return NULL;
1668 }
1669 goto done;
1670 }
1671 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001672 D(fprintf(stderr, "%*c%s simple_stmts[%d-%d]: %s failed!\n", p->level, ' ',
1673 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmt !';' NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001674 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001675 { // ';'.simple_stmt+ ';'? NEWLINE
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001676 if (p->error_indicator) {
1677 D(p->level--);
1678 return NULL;
1679 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001680 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 +01001681 void *_opt_var;
1682 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +01001683 asdl_stmt_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001684 Token * newline_var;
1685 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001686 (a = (asdl_stmt_seq*)_gather_12_rule(p)) // ';'.simple_stmt+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001687 &&
1688 (_opt_var = _PyPegen_expect_token(p, 13), 1) // ';'?
1689 &&
1690 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
1691 )
1692 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001693 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 +01001694 _res = a;
1695 if (_res == NULL && PyErr_Occurred()) {
1696 p->error_indicator = 1;
1697 D(p->level--);
1698 return NULL;
1699 }
1700 goto done;
1701 }
1702 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001703 D(fprintf(stderr, "%*c%s simple_stmts[%d-%d]: %s failed!\n", p->level, ' ',
1704 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "';'.simple_stmt+ ';'? NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001705 }
1706 _res = NULL;
1707 done:
1708 D(p->level--);
1709 return _res;
1710}
1711
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001712// simple_stmt:
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001713// | assignment
1714// | star_expressions
1715// | &'return' return_stmt
1716// | &('import' | 'from') import_stmt
1717// | &'raise' raise_stmt
1718// | 'pass'
1719// | &'del' del_stmt
1720// | &'yield' yield_stmt
1721// | &'assert' assert_stmt
1722// | 'break'
1723// | 'continue'
1724// | &'global' global_stmt
1725// | &'nonlocal' nonlocal_stmt
1726static stmt_ty
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001727simple_stmt_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001728{
1729 D(p->level++);
1730 if (p->error_indicator) {
1731 D(p->level--);
1732 return NULL;
1733 }
1734 stmt_ty _res = NULL;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001735 if (_PyPegen_is_memoized(p, simple_stmt_type, &_res)) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001736 D(p->level--);
1737 return _res;
1738 }
1739 int _mark = p->mark;
1740 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
1741 p->error_indicator = 1;
1742 D(p->level--);
1743 return NULL;
1744 }
1745 int _start_lineno = p->tokens[_mark]->lineno;
1746 UNUSED(_start_lineno); // Only used by EXTRA macro
1747 int _start_col_offset = p->tokens[_mark]->col_offset;
1748 UNUSED(_start_col_offset); // Only used by EXTRA macro
1749 { // assignment
1750 if (p->error_indicator) {
1751 D(p->level--);
1752 return NULL;
1753 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001754 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "assignment"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001755 stmt_ty assignment_var;
1756 if (
1757 (assignment_var = assignment_rule(p)) // assignment
1758 )
1759 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001760 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "assignment"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001761 _res = assignment_var;
1762 goto done;
1763 }
1764 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001765 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001766 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "assignment"));
1767 }
1768 { // star_expressions
1769 if (p->error_indicator) {
1770 D(p->level--);
1771 return NULL;
1772 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001773 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001774 expr_ty e;
1775 if (
1776 (e = star_expressions_rule(p)) // star_expressions
1777 )
1778 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001779 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 +01001780 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1781 if (_token == NULL) {
1782 D(p->level--);
1783 return NULL;
1784 }
1785 int _end_lineno = _token->end_lineno;
1786 UNUSED(_end_lineno); // Only used by EXTRA macro
1787 int _end_col_offset = _token->end_col_offset;
1788 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02001789 _res = _PyAST_Expr ( e , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001790 if (_res == NULL && PyErr_Occurred()) {
1791 p->error_indicator = 1;
1792 D(p->level--);
1793 return NULL;
1794 }
1795 goto done;
1796 }
1797 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001798 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001799 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
1800 }
1801 { // &'return' return_stmt
1802 if (p->error_indicator) {
1803 D(p->level--);
1804 return NULL;
1805 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001806 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 +01001807 stmt_ty return_stmt_var;
1808 if (
1809 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 500) // token='return'
1810 &&
1811 (return_stmt_var = return_stmt_rule(p)) // return_stmt
1812 )
1813 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001814 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 +01001815 _res = return_stmt_var;
1816 goto done;
1817 }
1818 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001819 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001820 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'return' return_stmt"));
1821 }
1822 { // &('import' | 'from') import_stmt
1823 if (p->error_indicator) {
1824 D(p->level--);
1825 return NULL;
1826 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001827 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 +01001828 stmt_ty import_stmt_var;
1829 if (
1830 _PyPegen_lookahead(1, _tmp_14_rule, p)
1831 &&
1832 (import_stmt_var = import_stmt_rule(p)) // import_stmt
1833 )
1834 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001835 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 +01001836 _res = import_stmt_var;
1837 goto done;
1838 }
1839 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001840 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001841 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('import' | 'from') import_stmt"));
1842 }
1843 { // &'raise' raise_stmt
1844 if (p->error_indicator) {
1845 D(p->level--);
1846 return NULL;
1847 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001848 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 +01001849 stmt_ty raise_stmt_var;
1850 if (
1851 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 501) // token='raise'
1852 &&
1853 (raise_stmt_var = raise_stmt_rule(p)) // raise_stmt
1854 )
1855 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001856 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 +01001857 _res = raise_stmt_var;
1858 goto done;
1859 }
1860 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001861 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001862 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'raise' raise_stmt"));
1863 }
1864 { // 'pass'
1865 if (p->error_indicator) {
1866 D(p->level--);
1867 return NULL;
1868 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001869 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'pass'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001870 Token * _keyword;
1871 if (
1872 (_keyword = _PyPegen_expect_token(p, 502)) // token='pass'
1873 )
1874 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001875 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'pass'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001876 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1877 if (_token == NULL) {
1878 D(p->level--);
1879 return NULL;
1880 }
1881 int _end_lineno = _token->end_lineno;
1882 UNUSED(_end_lineno); // Only used by EXTRA macro
1883 int _end_col_offset = _token->end_col_offset;
1884 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02001885 _res = _PyAST_Pass ( EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001886 if (_res == NULL && PyErr_Occurred()) {
1887 p->error_indicator = 1;
1888 D(p->level--);
1889 return NULL;
1890 }
1891 goto done;
1892 }
1893 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001894 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001895 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'pass'"));
1896 }
1897 { // &'del' del_stmt
1898 if (p->error_indicator) {
1899 D(p->level--);
1900 return NULL;
1901 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001902 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 +01001903 stmt_ty del_stmt_var;
1904 if (
1905 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 503) // token='del'
1906 &&
1907 (del_stmt_var = del_stmt_rule(p)) // del_stmt
1908 )
1909 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001910 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 +01001911 _res = del_stmt_var;
1912 goto done;
1913 }
1914 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001915 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001916 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'del' del_stmt"));
1917 }
1918 { // &'yield' yield_stmt
1919 if (p->error_indicator) {
1920 D(p->level--);
1921 return NULL;
1922 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001923 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 +01001924 stmt_ty yield_stmt_var;
1925 if (
1926 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 504) // token='yield'
1927 &&
1928 (yield_stmt_var = yield_stmt_rule(p)) // yield_stmt
1929 )
1930 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001931 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 +01001932 _res = yield_stmt_var;
1933 goto done;
1934 }
1935 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001936 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001937 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'yield' yield_stmt"));
1938 }
1939 { // &'assert' assert_stmt
1940 if (p->error_indicator) {
1941 D(p->level--);
1942 return NULL;
1943 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001944 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 +01001945 stmt_ty assert_stmt_var;
1946 if (
1947 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 505) // token='assert'
1948 &&
1949 (assert_stmt_var = assert_stmt_rule(p)) // assert_stmt
1950 )
1951 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001952 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 +01001953 _res = assert_stmt_var;
1954 goto done;
1955 }
1956 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001957 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001958 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'assert' assert_stmt"));
1959 }
1960 { // 'break'
1961 if (p->error_indicator) {
1962 D(p->level--);
1963 return NULL;
1964 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001965 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'break'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001966 Token * _keyword;
1967 if (
1968 (_keyword = _PyPegen_expect_token(p, 506)) // token='break'
1969 )
1970 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001971 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'break'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001972 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1973 if (_token == NULL) {
1974 D(p->level--);
1975 return NULL;
1976 }
1977 int _end_lineno = _token->end_lineno;
1978 UNUSED(_end_lineno); // Only used by EXTRA macro
1979 int _end_col_offset = _token->end_col_offset;
1980 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02001981 _res = _PyAST_Break ( EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001982 if (_res == NULL && PyErr_Occurred()) {
1983 p->error_indicator = 1;
1984 D(p->level--);
1985 return NULL;
1986 }
1987 goto done;
1988 }
1989 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001990 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001991 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'break'"));
1992 }
1993 { // 'continue'
1994 if (p->error_indicator) {
1995 D(p->level--);
1996 return NULL;
1997 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001998 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'continue'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001999 Token * _keyword;
2000 if (
2001 (_keyword = _PyPegen_expect_token(p, 507)) // token='continue'
2002 )
2003 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00002004 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'continue'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002005 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2006 if (_token == NULL) {
2007 D(p->level--);
2008 return NULL;
2009 }
2010 int _end_lineno = _token->end_lineno;
2011 UNUSED(_end_lineno); // Only used by EXTRA macro
2012 int _end_col_offset = _token->end_col_offset;
2013 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02002014 _res = _PyAST_Continue ( EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002015 if (_res == NULL && PyErr_Occurred()) {
2016 p->error_indicator = 1;
2017 D(p->level--);
2018 return NULL;
2019 }
2020 goto done;
2021 }
2022 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00002023 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002024 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'continue'"));
2025 }
2026 { // &'global' global_stmt
2027 if (p->error_indicator) {
2028 D(p->level--);
2029 return NULL;
2030 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00002031 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 +01002032 stmt_ty global_stmt_var;
2033 if (
2034 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 508) // token='global'
2035 &&
2036 (global_stmt_var = global_stmt_rule(p)) // global_stmt
2037 )
2038 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00002039 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 +01002040 _res = global_stmt_var;
2041 goto done;
2042 }
2043 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00002044 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002045 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'global' global_stmt"));
2046 }
2047 { // &'nonlocal' nonlocal_stmt
2048 if (p->error_indicator) {
2049 D(p->level--);
2050 return NULL;
2051 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00002052 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 +01002053 stmt_ty nonlocal_stmt_var;
2054 if (
2055 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 509) // token='nonlocal'
2056 &&
2057 (nonlocal_stmt_var = nonlocal_stmt_rule(p)) // nonlocal_stmt
2058 )
2059 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00002060 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 +01002061 _res = nonlocal_stmt_var;
2062 goto done;
2063 }
2064 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00002065 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002066 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'nonlocal' nonlocal_stmt"));
2067 }
2068 _res = NULL;
2069 done:
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00002070 _PyPegen_insert_memo(p, _mark, simple_stmt_type, _res);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002071 D(p->level--);
2072 return _res;
2073}
2074
2075// compound_stmt:
2076// | &('def' | '@' | ASYNC) function_def
2077// | &'if' if_stmt
2078// | &('class' | '@') class_def
2079// | &('with' | ASYNC) with_stmt
2080// | &('for' | ASYNC) for_stmt
2081// | &'try' try_stmt
2082// | &'while' while_stmt
Brandt Bucher145bf262021-02-26 14:51:55 -08002083// | match_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002084static stmt_ty
2085compound_stmt_rule(Parser *p)
2086{
2087 D(p->level++);
2088 if (p->error_indicator) {
2089 D(p->level--);
2090 return NULL;
2091 }
2092 stmt_ty _res = NULL;
2093 int _mark = p->mark;
2094 { // &('def' | '@' | ASYNC) function_def
2095 if (p->error_indicator) {
2096 D(p->level--);
2097 return NULL;
2098 }
2099 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('def' | '@' | ASYNC) function_def"));
2100 stmt_ty function_def_var;
2101 if (
2102 _PyPegen_lookahead(1, _tmp_15_rule, p)
2103 &&
2104 (function_def_var = function_def_rule(p)) // function_def
2105 )
2106 {
2107 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('def' | '@' | ASYNC) function_def"));
2108 _res = function_def_var;
2109 goto done;
2110 }
2111 p->mark = _mark;
2112 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2113 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('def' | '@' | ASYNC) function_def"));
2114 }
2115 { // &'if' if_stmt
2116 if (p->error_indicator) {
2117 D(p->level--);
2118 return NULL;
2119 }
2120 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'if' if_stmt"));
2121 stmt_ty if_stmt_var;
2122 if (
2123 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 510) // token='if'
2124 &&
2125 (if_stmt_var = if_stmt_rule(p)) // if_stmt
2126 )
2127 {
2128 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'if' if_stmt"));
2129 _res = if_stmt_var;
2130 goto done;
2131 }
2132 p->mark = _mark;
2133 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2134 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'if' if_stmt"));
2135 }
2136 { // &('class' | '@') class_def
2137 if (p->error_indicator) {
2138 D(p->level--);
2139 return NULL;
2140 }
2141 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('class' | '@') class_def"));
2142 stmt_ty class_def_var;
2143 if (
2144 _PyPegen_lookahead(1, _tmp_16_rule, p)
2145 &&
2146 (class_def_var = class_def_rule(p)) // class_def
2147 )
2148 {
2149 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('class' | '@') class_def"));
2150 _res = class_def_var;
2151 goto done;
2152 }
2153 p->mark = _mark;
2154 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2155 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('class' | '@') class_def"));
2156 }
2157 { // &('with' | ASYNC) with_stmt
2158 if (p->error_indicator) {
2159 D(p->level--);
2160 return NULL;
2161 }
2162 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('with' | ASYNC) with_stmt"));
2163 stmt_ty with_stmt_var;
2164 if (
2165 _PyPegen_lookahead(1, _tmp_17_rule, p)
2166 &&
2167 (with_stmt_var = with_stmt_rule(p)) // with_stmt
2168 )
2169 {
2170 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('with' | ASYNC) with_stmt"));
2171 _res = with_stmt_var;
2172 goto done;
2173 }
2174 p->mark = _mark;
2175 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2176 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('with' | ASYNC) with_stmt"));
2177 }
2178 { // &('for' | ASYNC) for_stmt
2179 if (p->error_indicator) {
2180 D(p->level--);
2181 return NULL;
2182 }
2183 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('for' | ASYNC) for_stmt"));
2184 stmt_ty for_stmt_var;
2185 if (
2186 _PyPegen_lookahead(1, _tmp_18_rule, p)
2187 &&
2188 (for_stmt_var = for_stmt_rule(p)) // for_stmt
2189 )
2190 {
2191 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('for' | ASYNC) for_stmt"));
2192 _res = for_stmt_var;
2193 goto done;
2194 }
2195 p->mark = _mark;
2196 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2197 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('for' | ASYNC) for_stmt"));
2198 }
2199 { // &'try' try_stmt
2200 if (p->error_indicator) {
2201 D(p->level--);
2202 return NULL;
2203 }
2204 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'try' try_stmt"));
2205 stmt_ty try_stmt_var;
2206 if (
2207 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 511) // token='try'
2208 &&
2209 (try_stmt_var = try_stmt_rule(p)) // try_stmt
2210 )
2211 {
2212 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'try' try_stmt"));
2213 _res = try_stmt_var;
2214 goto done;
2215 }
2216 p->mark = _mark;
2217 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2218 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'try' try_stmt"));
2219 }
2220 { // &'while' while_stmt
2221 if (p->error_indicator) {
2222 D(p->level--);
2223 return NULL;
2224 }
2225 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'while' while_stmt"));
2226 stmt_ty while_stmt_var;
2227 if (
2228 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 512) // token='while'
2229 &&
2230 (while_stmt_var = while_stmt_rule(p)) // while_stmt
2231 )
2232 {
2233 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'while' while_stmt"));
2234 _res = while_stmt_var;
2235 goto done;
2236 }
2237 p->mark = _mark;
2238 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2239 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'while' while_stmt"));
2240 }
Brandt Bucher145bf262021-02-26 14:51:55 -08002241 { // match_stmt
2242 if (p->error_indicator) {
2243 D(p->level--);
2244 return NULL;
2245 }
2246 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "match_stmt"));
2247 stmt_ty match_stmt_var;
2248 if (
2249 (match_stmt_var = match_stmt_rule(p)) // match_stmt
2250 )
2251 {
2252 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "match_stmt"));
2253 _res = match_stmt_var;
2254 goto done;
2255 }
2256 p->mark = _mark;
2257 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2258 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "match_stmt"));
2259 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002260 _res = NULL;
2261 done:
2262 D(p->level--);
2263 return _res;
2264}
2265
2266// assignment:
2267// | NAME ':' expression ['=' annotated_rhs]
2268// | ('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]
2269// | ((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002270// | single_target augassign ~ (yield_expr | star_expressions)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002271// | invalid_assignment
2272static stmt_ty
2273assignment_rule(Parser *p)
2274{
2275 D(p->level++);
2276 if (p->error_indicator) {
2277 D(p->level--);
2278 return NULL;
2279 }
2280 stmt_ty _res = NULL;
2281 int _mark = p->mark;
2282 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2283 p->error_indicator = 1;
2284 D(p->level--);
2285 return NULL;
2286 }
2287 int _start_lineno = p->tokens[_mark]->lineno;
2288 UNUSED(_start_lineno); // Only used by EXTRA macro
2289 int _start_col_offset = p->tokens[_mark]->col_offset;
2290 UNUSED(_start_col_offset); // Only used by EXTRA macro
2291 { // NAME ':' expression ['=' annotated_rhs]
2292 if (p->error_indicator) {
2293 D(p->level--);
2294 return NULL;
2295 }
2296 D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME ':' expression ['=' annotated_rhs]"));
2297 Token * _literal;
2298 expr_ty a;
2299 expr_ty b;
2300 void *c;
2301 if (
2302 (a = _PyPegen_name_token(p)) // NAME
2303 &&
2304 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
2305 &&
2306 (b = expression_rule(p)) // expression
2307 &&
2308 (c = _tmp_19_rule(p), 1) // ['=' annotated_rhs]
2309 )
2310 {
2311 D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME ':' expression ['=' annotated_rhs]"));
2312 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2313 if (_token == NULL) {
2314 D(p->level--);
2315 return NULL;
2316 }
2317 int _end_lineno = _token->end_lineno;
2318 UNUSED(_end_lineno); // Only used by EXTRA macro
2319 int _end_col_offset = _token->end_col_offset;
2320 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02002321 _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 +01002322 if (_res == NULL && PyErr_Occurred()) {
2323 p->error_indicator = 1;
2324 D(p->level--);
2325 return NULL;
2326 }
2327 goto done;
2328 }
2329 p->mark = _mark;
2330 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
2331 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME ':' expression ['=' annotated_rhs]"));
2332 }
2333 { // ('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]
2334 if (p->error_indicator) {
2335 D(p->level--);
2336 return NULL;
2337 }
2338 D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]"));
2339 Token * _literal;
2340 void *a;
2341 expr_ty b;
2342 void *c;
2343 if (
2344 (a = _tmp_20_rule(p)) // '(' single_target ')' | single_subscript_attribute_target
2345 &&
2346 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
2347 &&
2348 (b = expression_rule(p)) // expression
2349 &&
2350 (c = _tmp_21_rule(p), 1) // ['=' annotated_rhs]
2351 )
2352 {
2353 D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]"));
2354 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2355 if (_token == NULL) {
2356 D(p->level--);
2357 return NULL;
2358 }
2359 int _end_lineno = _token->end_lineno;
2360 UNUSED(_end_lineno); // Only used by EXTRA macro
2361 int _end_col_offset = _token->end_col_offset;
2362 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02002363 _res = CHECK_VERSION ( stmt_ty , 6 , "Variable annotations syntax is" , _PyAST_AnnAssign ( a , b , c , 0 , EXTRA ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002364 if (_res == NULL && PyErr_Occurred()) {
2365 p->error_indicator = 1;
2366 D(p->level--);
2367 return NULL;
2368 }
2369 goto done;
2370 }
2371 p->mark = _mark;
2372 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
2373 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]"));
2374 }
2375 { // ((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?
2376 if (p->error_indicator) {
2377 D(p->level--);
2378 return NULL;
2379 }
2380 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 +01002381 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002382 void *b;
2383 void *tc;
2384 if (
Pablo Galindoa5634c42020-09-16 19:42:00 +01002385 (a = (asdl_expr_seq*)_loop1_22_rule(p)) // ((star_targets '='))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002386 &&
2387 (b = _tmp_23_rule(p)) // yield_expr | star_expressions
2388 &&
2389 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 22) // token='='
2390 &&
2391 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
2392 )
2393 {
2394 D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?"));
2395 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2396 if (_token == NULL) {
2397 D(p->level--);
2398 return NULL;
2399 }
2400 int _end_lineno = _token->end_lineno;
2401 UNUSED(_end_lineno); // Only used by EXTRA macro
2402 int _end_col_offset = _token->end_col_offset;
2403 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02002404 _res = _PyAST_Assign ( a , b , NEW_TYPE_COMMENT ( p , tc ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002405 if (_res == NULL && PyErr_Occurred()) {
2406 p->error_indicator = 1;
2407 D(p->level--);
2408 return NULL;
2409 }
2410 goto done;
2411 }
2412 p->mark = _mark;
2413 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
2414 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?"));
2415 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002416 { // single_target augassign ~ (yield_expr | star_expressions)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002417 if (p->error_indicator) {
2418 D(p->level--);
2419 return NULL;
2420 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002421 D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "single_target augassign ~ (yield_expr | star_expressions)"));
2422 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002423 expr_ty a;
2424 AugOperator* b;
2425 void *c;
2426 if (
2427 (a = single_target_rule(p)) // single_target
2428 &&
2429 (b = augassign_rule(p)) // augassign
2430 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002431 (_cut_var = 1)
2432 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002433 (c = _tmp_24_rule(p)) // yield_expr | star_expressions
2434 )
2435 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002436 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 +01002437 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2438 if (_token == NULL) {
2439 D(p->level--);
2440 return NULL;
2441 }
2442 int _end_lineno = _token->end_lineno;
2443 UNUSED(_end_lineno); // Only used by EXTRA macro
2444 int _end_col_offset = _token->end_col_offset;
2445 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02002446 _res = _PyAST_AugAssign ( a , b -> kind , c , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002447 if (_res == NULL && PyErr_Occurred()) {
2448 p->error_indicator = 1;
2449 D(p->level--);
2450 return NULL;
2451 }
2452 goto done;
2453 }
2454 p->mark = _mark;
2455 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002456 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "single_target augassign ~ (yield_expr | star_expressions)"));
2457 if (_cut_var) {
2458 D(p->level--);
2459 return NULL;
2460 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002461 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02002462 if (p->call_invalid_rules) { // invalid_assignment
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002463 if (p->error_indicator) {
2464 D(p->level--);
2465 return NULL;
2466 }
2467 D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_assignment"));
2468 void *invalid_assignment_var;
2469 if (
2470 (invalid_assignment_var = invalid_assignment_rule(p)) // invalid_assignment
2471 )
2472 {
2473 D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_assignment"));
2474 _res = invalid_assignment_var;
2475 goto done;
2476 }
2477 p->mark = _mark;
2478 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
2479 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_assignment"));
2480 }
2481 _res = NULL;
2482 done:
2483 D(p->level--);
2484 return _res;
2485}
2486
2487// augassign:
2488// | '+='
2489// | '-='
2490// | '*='
2491// | '@='
2492// | '/='
2493// | '%='
2494// | '&='
2495// | '|='
2496// | '^='
2497// | '<<='
2498// | '>>='
2499// | '**='
2500// | '//='
2501static AugOperator*
2502augassign_rule(Parser *p)
2503{
2504 D(p->level++);
2505 if (p->error_indicator) {
2506 D(p->level--);
2507 return NULL;
2508 }
2509 AugOperator* _res = NULL;
2510 int _mark = p->mark;
2511 { // '+='
2512 if (p->error_indicator) {
2513 D(p->level--);
2514 return NULL;
2515 }
2516 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'+='"));
2517 Token * _literal;
2518 if (
2519 (_literal = _PyPegen_expect_token(p, 36)) // token='+='
2520 )
2521 {
2522 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'+='"));
2523 _res = _PyPegen_augoperator ( p , Add );
2524 if (_res == NULL && PyErr_Occurred()) {
2525 p->error_indicator = 1;
2526 D(p->level--);
2527 return NULL;
2528 }
2529 goto done;
2530 }
2531 p->mark = _mark;
2532 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2533 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'+='"));
2534 }
2535 { // '-='
2536 if (p->error_indicator) {
2537 D(p->level--);
2538 return NULL;
2539 }
2540 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-='"));
2541 Token * _literal;
2542 if (
2543 (_literal = _PyPegen_expect_token(p, 37)) // token='-='
2544 )
2545 {
2546 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-='"));
2547 _res = _PyPegen_augoperator ( p , Sub );
2548 if (_res == NULL && PyErr_Occurred()) {
2549 p->error_indicator = 1;
2550 D(p->level--);
2551 return NULL;
2552 }
2553 goto done;
2554 }
2555 p->mark = _mark;
2556 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2557 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-='"));
2558 }
2559 { // '*='
2560 if (p->error_indicator) {
2561 D(p->level--);
2562 return NULL;
2563 }
2564 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*='"));
2565 Token * _literal;
2566 if (
2567 (_literal = _PyPegen_expect_token(p, 38)) // token='*='
2568 )
2569 {
2570 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*='"));
2571 _res = _PyPegen_augoperator ( p , Mult );
2572 if (_res == NULL && PyErr_Occurred()) {
2573 p->error_indicator = 1;
2574 D(p->level--);
2575 return NULL;
2576 }
2577 goto done;
2578 }
2579 p->mark = _mark;
2580 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2581 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*='"));
2582 }
2583 { // '@='
2584 if (p->error_indicator) {
2585 D(p->level--);
2586 return NULL;
2587 }
2588 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@='"));
2589 Token * _literal;
2590 if (
2591 (_literal = _PyPegen_expect_token(p, 50)) // token='@='
2592 )
2593 {
2594 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@='"));
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03002595 _res = CHECK_VERSION ( AugOperator * , 5 , "The '@' operator is" , _PyPegen_augoperator ( p , MatMult ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002596 if (_res == NULL && PyErr_Occurred()) {
2597 p->error_indicator = 1;
2598 D(p->level--);
2599 return NULL;
2600 }
2601 goto done;
2602 }
2603 p->mark = _mark;
2604 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2605 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@='"));
2606 }
2607 { // '/='
2608 if (p->error_indicator) {
2609 D(p->level--);
2610 return NULL;
2611 }
2612 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'/='"));
2613 Token * _literal;
2614 if (
2615 (_literal = _PyPegen_expect_token(p, 39)) // token='/='
2616 )
2617 {
2618 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'/='"));
2619 _res = _PyPegen_augoperator ( p , Div );
2620 if (_res == NULL && PyErr_Occurred()) {
2621 p->error_indicator = 1;
2622 D(p->level--);
2623 return NULL;
2624 }
2625 goto done;
2626 }
2627 p->mark = _mark;
2628 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2629 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'/='"));
2630 }
2631 { // '%='
2632 if (p->error_indicator) {
2633 D(p->level--);
2634 return NULL;
2635 }
2636 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'%='"));
2637 Token * _literal;
2638 if (
2639 (_literal = _PyPegen_expect_token(p, 40)) // token='%='
2640 )
2641 {
2642 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'%='"));
2643 _res = _PyPegen_augoperator ( p , Mod );
2644 if (_res == NULL && PyErr_Occurred()) {
2645 p->error_indicator = 1;
2646 D(p->level--);
2647 return NULL;
2648 }
2649 goto done;
2650 }
2651 p->mark = _mark;
2652 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2653 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'%='"));
2654 }
2655 { // '&='
2656 if (p->error_indicator) {
2657 D(p->level--);
2658 return NULL;
2659 }
2660 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'&='"));
2661 Token * _literal;
2662 if (
2663 (_literal = _PyPegen_expect_token(p, 41)) // token='&='
2664 )
2665 {
2666 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'&='"));
2667 _res = _PyPegen_augoperator ( p , BitAnd );
2668 if (_res == NULL && PyErr_Occurred()) {
2669 p->error_indicator = 1;
2670 D(p->level--);
2671 return NULL;
2672 }
2673 goto done;
2674 }
2675 p->mark = _mark;
2676 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2677 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'&='"));
2678 }
2679 { // '|='
2680 if (p->error_indicator) {
2681 D(p->level--);
2682 return NULL;
2683 }
2684 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'|='"));
2685 Token * _literal;
2686 if (
2687 (_literal = _PyPegen_expect_token(p, 42)) // token='|='
2688 )
2689 {
2690 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'|='"));
2691 _res = _PyPegen_augoperator ( p , BitOr );
2692 if (_res == NULL && PyErr_Occurred()) {
2693 p->error_indicator = 1;
2694 D(p->level--);
2695 return NULL;
2696 }
2697 goto done;
2698 }
2699 p->mark = _mark;
2700 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2701 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'|='"));
2702 }
2703 { // '^='
2704 if (p->error_indicator) {
2705 D(p->level--);
2706 return NULL;
2707 }
2708 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'^='"));
2709 Token * _literal;
2710 if (
2711 (_literal = _PyPegen_expect_token(p, 43)) // token='^='
2712 )
2713 {
2714 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'^='"));
2715 _res = _PyPegen_augoperator ( p , BitXor );
2716 if (_res == NULL && PyErr_Occurred()) {
2717 p->error_indicator = 1;
2718 D(p->level--);
2719 return NULL;
2720 }
2721 goto done;
2722 }
2723 p->mark = _mark;
2724 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2725 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'^='"));
2726 }
2727 { // '<<='
2728 if (p->error_indicator) {
2729 D(p->level--);
2730 return NULL;
2731 }
2732 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'<<='"));
2733 Token * _literal;
2734 if (
2735 (_literal = _PyPegen_expect_token(p, 44)) // token='<<='
2736 )
2737 {
2738 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'<<='"));
2739 _res = _PyPegen_augoperator ( p , LShift );
2740 if (_res == NULL && PyErr_Occurred()) {
2741 p->error_indicator = 1;
2742 D(p->level--);
2743 return NULL;
2744 }
2745 goto done;
2746 }
2747 p->mark = _mark;
2748 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2749 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'<<='"));
2750 }
2751 { // '>>='
2752 if (p->error_indicator) {
2753 D(p->level--);
2754 return NULL;
2755 }
2756 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'>>='"));
2757 Token * _literal;
2758 if (
2759 (_literal = _PyPegen_expect_token(p, 45)) // token='>>='
2760 )
2761 {
2762 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'>>='"));
2763 _res = _PyPegen_augoperator ( p , RShift );
2764 if (_res == NULL && PyErr_Occurred()) {
2765 p->error_indicator = 1;
2766 D(p->level--);
2767 return NULL;
2768 }
2769 goto done;
2770 }
2771 p->mark = _mark;
2772 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2773 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'>>='"));
2774 }
2775 { // '**='
2776 if (p->error_indicator) {
2777 D(p->level--);
2778 return NULL;
2779 }
2780 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**='"));
2781 Token * _literal;
2782 if (
2783 (_literal = _PyPegen_expect_token(p, 46)) // token='**='
2784 )
2785 {
2786 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**='"));
2787 _res = _PyPegen_augoperator ( p , Pow );
2788 if (_res == NULL && PyErr_Occurred()) {
2789 p->error_indicator = 1;
2790 D(p->level--);
2791 return NULL;
2792 }
2793 goto done;
2794 }
2795 p->mark = _mark;
2796 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2797 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**='"));
2798 }
2799 { // '//='
2800 if (p->error_indicator) {
2801 D(p->level--);
2802 return NULL;
2803 }
2804 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'//='"));
2805 Token * _literal;
2806 if (
2807 (_literal = _PyPegen_expect_token(p, 48)) // token='//='
2808 )
2809 {
2810 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'//='"));
2811 _res = _PyPegen_augoperator ( p , FloorDiv );
2812 if (_res == NULL && PyErr_Occurred()) {
2813 p->error_indicator = 1;
2814 D(p->level--);
2815 return NULL;
2816 }
2817 goto done;
2818 }
2819 p->mark = _mark;
2820 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2821 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'//='"));
2822 }
2823 _res = NULL;
2824 done:
2825 D(p->level--);
2826 return _res;
2827}
2828
2829// global_stmt: 'global' ','.NAME+
2830static stmt_ty
2831global_stmt_rule(Parser *p)
2832{
2833 D(p->level++);
2834 if (p->error_indicator) {
2835 D(p->level--);
2836 return NULL;
2837 }
2838 stmt_ty _res = NULL;
2839 int _mark = p->mark;
2840 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2841 p->error_indicator = 1;
2842 D(p->level--);
2843 return NULL;
2844 }
2845 int _start_lineno = p->tokens[_mark]->lineno;
2846 UNUSED(_start_lineno); // Only used by EXTRA macro
2847 int _start_col_offset = p->tokens[_mark]->col_offset;
2848 UNUSED(_start_col_offset); // Only used by EXTRA macro
2849 { // 'global' ','.NAME+
2850 if (p->error_indicator) {
2851 D(p->level--);
2852 return NULL;
2853 }
2854 D(fprintf(stderr, "%*c> global_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'global' ','.NAME+"));
2855 Token * _keyword;
Pablo Galindoa5634c42020-09-16 19:42:00 +01002856 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002857 if (
2858 (_keyword = _PyPegen_expect_token(p, 508)) // token='global'
2859 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01002860 (a = (asdl_expr_seq*)_gather_25_rule(p)) // ','.NAME+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002861 )
2862 {
2863 D(fprintf(stderr, "%*c+ global_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'global' ','.NAME+"));
2864 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2865 if (_token == NULL) {
2866 D(p->level--);
2867 return NULL;
2868 }
2869 int _end_lineno = _token->end_lineno;
2870 UNUSED(_end_lineno); // Only used by EXTRA macro
2871 int _end_col_offset = _token->end_col_offset;
2872 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02002873 _res = _PyAST_Global ( CHECK ( asdl_identifier_seq * , _PyPegen_map_names_to_ids ( p , a ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002874 if (_res == NULL && PyErr_Occurred()) {
2875 p->error_indicator = 1;
2876 D(p->level--);
2877 return NULL;
2878 }
2879 goto done;
2880 }
2881 p->mark = _mark;
2882 D(fprintf(stderr, "%*c%s global_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2883 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'global' ','.NAME+"));
2884 }
2885 _res = NULL;
2886 done:
2887 D(p->level--);
2888 return _res;
2889}
2890
2891// nonlocal_stmt: 'nonlocal' ','.NAME+
2892static stmt_ty
2893nonlocal_stmt_rule(Parser *p)
2894{
2895 D(p->level++);
2896 if (p->error_indicator) {
2897 D(p->level--);
2898 return NULL;
2899 }
2900 stmt_ty _res = NULL;
2901 int _mark = p->mark;
2902 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2903 p->error_indicator = 1;
2904 D(p->level--);
2905 return NULL;
2906 }
2907 int _start_lineno = p->tokens[_mark]->lineno;
2908 UNUSED(_start_lineno); // Only used by EXTRA macro
2909 int _start_col_offset = p->tokens[_mark]->col_offset;
2910 UNUSED(_start_col_offset); // Only used by EXTRA macro
2911 { // 'nonlocal' ','.NAME+
2912 if (p->error_indicator) {
2913 D(p->level--);
2914 return NULL;
2915 }
2916 D(fprintf(stderr, "%*c> nonlocal_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'nonlocal' ','.NAME+"));
2917 Token * _keyword;
Pablo Galindoa5634c42020-09-16 19:42:00 +01002918 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002919 if (
2920 (_keyword = _PyPegen_expect_token(p, 509)) // token='nonlocal'
2921 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01002922 (a = (asdl_expr_seq*)_gather_27_rule(p)) // ','.NAME+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002923 )
2924 {
2925 D(fprintf(stderr, "%*c+ nonlocal_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'nonlocal' ','.NAME+"));
2926 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2927 if (_token == NULL) {
2928 D(p->level--);
2929 return NULL;
2930 }
2931 int _end_lineno = _token->end_lineno;
2932 UNUSED(_end_lineno); // Only used by EXTRA macro
2933 int _end_col_offset = _token->end_col_offset;
2934 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02002935 _res = _PyAST_Nonlocal ( CHECK ( asdl_identifier_seq * , _PyPegen_map_names_to_ids ( p , a ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002936 if (_res == NULL && PyErr_Occurred()) {
2937 p->error_indicator = 1;
2938 D(p->level--);
2939 return NULL;
2940 }
2941 goto done;
2942 }
2943 p->mark = _mark;
2944 D(fprintf(stderr, "%*c%s nonlocal_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2945 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'nonlocal' ','.NAME+"));
2946 }
2947 _res = NULL;
2948 done:
2949 D(p->level--);
2950 return _res;
2951}
2952
2953// yield_stmt: yield_expr
2954static stmt_ty
2955yield_stmt_rule(Parser *p)
2956{
2957 D(p->level++);
2958 if (p->error_indicator) {
2959 D(p->level--);
2960 return NULL;
2961 }
2962 stmt_ty _res = NULL;
2963 int _mark = p->mark;
2964 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2965 p->error_indicator = 1;
2966 D(p->level--);
2967 return NULL;
2968 }
2969 int _start_lineno = p->tokens[_mark]->lineno;
2970 UNUSED(_start_lineno); // Only used by EXTRA macro
2971 int _start_col_offset = p->tokens[_mark]->col_offset;
2972 UNUSED(_start_col_offset); // Only used by EXTRA macro
2973 { // yield_expr
2974 if (p->error_indicator) {
2975 D(p->level--);
2976 return NULL;
2977 }
2978 D(fprintf(stderr, "%*c> yield_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
2979 expr_ty y;
2980 if (
2981 (y = yield_expr_rule(p)) // yield_expr
2982 )
2983 {
2984 D(fprintf(stderr, "%*c+ yield_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
2985 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2986 if (_token == NULL) {
2987 D(p->level--);
2988 return NULL;
2989 }
2990 int _end_lineno = _token->end_lineno;
2991 UNUSED(_end_lineno); // Only used by EXTRA macro
2992 int _end_col_offset = _token->end_col_offset;
2993 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02002994 _res = _PyAST_Expr ( y , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002995 if (_res == NULL && PyErr_Occurred()) {
2996 p->error_indicator = 1;
2997 D(p->level--);
2998 return NULL;
2999 }
3000 goto done;
3001 }
3002 p->mark = _mark;
3003 D(fprintf(stderr, "%*c%s yield_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3004 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
3005 }
3006 _res = NULL;
3007 done:
3008 D(p->level--);
3009 return _res;
3010}
3011
3012// assert_stmt: 'assert' expression [',' expression]
3013static stmt_ty
3014assert_stmt_rule(Parser *p)
3015{
3016 D(p->level++);
3017 if (p->error_indicator) {
3018 D(p->level--);
3019 return NULL;
3020 }
3021 stmt_ty _res = NULL;
3022 int _mark = p->mark;
3023 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3024 p->error_indicator = 1;
3025 D(p->level--);
3026 return NULL;
3027 }
3028 int _start_lineno = p->tokens[_mark]->lineno;
3029 UNUSED(_start_lineno); // Only used by EXTRA macro
3030 int _start_col_offset = p->tokens[_mark]->col_offset;
3031 UNUSED(_start_col_offset); // Only used by EXTRA macro
3032 { // 'assert' expression [',' expression]
3033 if (p->error_indicator) {
3034 D(p->level--);
3035 return NULL;
3036 }
3037 D(fprintf(stderr, "%*c> assert_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'assert' expression [',' expression]"));
3038 Token * _keyword;
3039 expr_ty a;
3040 void *b;
3041 if (
3042 (_keyword = _PyPegen_expect_token(p, 505)) // token='assert'
3043 &&
3044 (a = expression_rule(p)) // expression
3045 &&
3046 (b = _tmp_29_rule(p), 1) // [',' expression]
3047 )
3048 {
3049 D(fprintf(stderr, "%*c+ assert_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'assert' expression [',' expression]"));
3050 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3051 if (_token == NULL) {
3052 D(p->level--);
3053 return NULL;
3054 }
3055 int _end_lineno = _token->end_lineno;
3056 UNUSED(_end_lineno); // Only used by EXTRA macro
3057 int _end_col_offset = _token->end_col_offset;
3058 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02003059 _res = _PyAST_Assert ( a , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003060 if (_res == NULL && PyErr_Occurred()) {
3061 p->error_indicator = 1;
3062 D(p->level--);
3063 return NULL;
3064 }
3065 goto done;
3066 }
3067 p->mark = _mark;
3068 D(fprintf(stderr, "%*c%s assert_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3069 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'assert' expression [',' expression]"));
3070 }
3071 _res = NULL;
3072 done:
3073 D(p->level--);
3074 return _res;
3075}
3076
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003077// del_stmt: 'del' del_targets &(';' | NEWLINE) | invalid_del_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003078static stmt_ty
3079del_stmt_rule(Parser *p)
3080{
3081 D(p->level++);
3082 if (p->error_indicator) {
3083 D(p->level--);
3084 return NULL;
3085 }
3086 stmt_ty _res = NULL;
3087 int _mark = p->mark;
3088 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3089 p->error_indicator = 1;
3090 D(p->level--);
3091 return NULL;
3092 }
3093 int _start_lineno = p->tokens[_mark]->lineno;
3094 UNUSED(_start_lineno); // Only used by EXTRA macro
3095 int _start_col_offset = p->tokens[_mark]->col_offset;
3096 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003097 { // 'del' del_targets &(';' | NEWLINE)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003098 if (p->error_indicator) {
3099 D(p->level--);
3100 return NULL;
3101 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003102 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 +01003103 Token * _keyword;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003104 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003105 if (
3106 (_keyword = _PyPegen_expect_token(p, 503)) // token='del'
3107 &&
3108 (a = del_targets_rule(p)) // del_targets
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003109 &&
3110 _PyPegen_lookahead(1, _tmp_30_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003111 )
3112 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003113 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 +01003114 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3115 if (_token == NULL) {
3116 D(p->level--);
3117 return NULL;
3118 }
3119 int _end_lineno = _token->end_lineno;
3120 UNUSED(_end_lineno); // Only used by EXTRA macro
3121 int _end_col_offset = _token->end_col_offset;
3122 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02003123 _res = _PyAST_Delete ( a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003124 if (_res == NULL && PyErr_Occurred()) {
3125 p->error_indicator = 1;
3126 D(p->level--);
3127 return NULL;
3128 }
3129 goto done;
3130 }
3131 p->mark = _mark;
3132 D(fprintf(stderr, "%*c%s del_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003133 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'del' del_targets &(';' | NEWLINE)"));
3134 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02003135 if (p->call_invalid_rules) { // invalid_del_stmt
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003136 if (p->error_indicator) {
3137 D(p->level--);
3138 return NULL;
3139 }
3140 D(fprintf(stderr, "%*c> del_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_del_stmt"));
3141 void *invalid_del_stmt_var;
3142 if (
3143 (invalid_del_stmt_var = invalid_del_stmt_rule(p)) // invalid_del_stmt
3144 )
3145 {
3146 D(fprintf(stderr, "%*c+ del_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_del_stmt"));
3147 _res = invalid_del_stmt_var;
3148 goto done;
3149 }
3150 p->mark = _mark;
3151 D(fprintf(stderr, "%*c%s del_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3152 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_del_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003153 }
3154 _res = NULL;
3155 done:
3156 D(p->level--);
3157 return _res;
3158}
3159
3160// import_stmt: import_name | import_from
3161static stmt_ty
3162import_stmt_rule(Parser *p)
3163{
3164 D(p->level++);
3165 if (p->error_indicator) {
3166 D(p->level--);
3167 return NULL;
3168 }
3169 stmt_ty _res = NULL;
3170 int _mark = p->mark;
3171 { // import_name
3172 if (p->error_indicator) {
3173 D(p->level--);
3174 return NULL;
3175 }
3176 D(fprintf(stderr, "%*c> import_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "import_name"));
3177 stmt_ty import_name_var;
3178 if (
3179 (import_name_var = import_name_rule(p)) // import_name
3180 )
3181 {
3182 D(fprintf(stderr, "%*c+ import_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "import_name"));
3183 _res = import_name_var;
3184 goto done;
3185 }
3186 p->mark = _mark;
3187 D(fprintf(stderr, "%*c%s import_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3188 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_name"));
3189 }
3190 { // import_from
3191 if (p->error_indicator) {
3192 D(p->level--);
3193 return NULL;
3194 }
3195 D(fprintf(stderr, "%*c> import_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "import_from"));
3196 stmt_ty import_from_var;
3197 if (
3198 (import_from_var = import_from_rule(p)) // import_from
3199 )
3200 {
3201 D(fprintf(stderr, "%*c+ import_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "import_from"));
3202 _res = import_from_var;
3203 goto done;
3204 }
3205 p->mark = _mark;
3206 D(fprintf(stderr, "%*c%s import_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3207 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from"));
3208 }
3209 _res = NULL;
3210 done:
3211 D(p->level--);
3212 return _res;
3213}
3214
3215// import_name: 'import' dotted_as_names
3216static stmt_ty
3217import_name_rule(Parser *p)
3218{
3219 D(p->level++);
3220 if (p->error_indicator) {
3221 D(p->level--);
3222 return NULL;
3223 }
3224 stmt_ty _res = NULL;
3225 int _mark = p->mark;
3226 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3227 p->error_indicator = 1;
3228 D(p->level--);
3229 return NULL;
3230 }
3231 int _start_lineno = p->tokens[_mark]->lineno;
3232 UNUSED(_start_lineno); // Only used by EXTRA macro
3233 int _start_col_offset = p->tokens[_mark]->col_offset;
3234 UNUSED(_start_col_offset); // Only used by EXTRA macro
3235 { // 'import' dotted_as_names
3236 if (p->error_indicator) {
3237 D(p->level--);
3238 return NULL;
3239 }
3240 D(fprintf(stderr, "%*c> import_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'import' dotted_as_names"));
3241 Token * _keyword;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003242 asdl_alias_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003243 if (
3244 (_keyword = _PyPegen_expect_token(p, 513)) // token='import'
3245 &&
3246 (a = dotted_as_names_rule(p)) // dotted_as_names
3247 )
3248 {
3249 D(fprintf(stderr, "%*c+ import_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'import' dotted_as_names"));
3250 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3251 if (_token == NULL) {
3252 D(p->level--);
3253 return NULL;
3254 }
3255 int _end_lineno = _token->end_lineno;
3256 UNUSED(_end_lineno); // Only used by EXTRA macro
3257 int _end_col_offset = _token->end_col_offset;
3258 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02003259 _res = _PyAST_Import ( a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003260 if (_res == NULL && PyErr_Occurred()) {
3261 p->error_indicator = 1;
3262 D(p->level--);
3263 return NULL;
3264 }
3265 goto done;
3266 }
3267 p->mark = _mark;
3268 D(fprintf(stderr, "%*c%s import_name[%d-%d]: %s failed!\n", p->level, ' ',
3269 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'import' dotted_as_names"));
3270 }
3271 _res = NULL;
3272 done:
3273 D(p->level--);
3274 return _res;
3275}
3276
3277// import_from:
3278// | 'from' (('.' | '...'))* dotted_name 'import' import_from_targets
3279// | 'from' (('.' | '...'))+ 'import' import_from_targets
3280static stmt_ty
3281import_from_rule(Parser *p)
3282{
3283 D(p->level++);
3284 if (p->error_indicator) {
3285 D(p->level--);
3286 return NULL;
3287 }
3288 stmt_ty _res = NULL;
3289 int _mark = p->mark;
3290 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3291 p->error_indicator = 1;
3292 D(p->level--);
3293 return NULL;
3294 }
3295 int _start_lineno = p->tokens[_mark]->lineno;
3296 UNUSED(_start_lineno); // Only used by EXTRA macro
3297 int _start_col_offset = p->tokens[_mark]->col_offset;
3298 UNUSED(_start_col_offset); // Only used by EXTRA macro
3299 { // 'from' (('.' | '...'))* dotted_name 'import' import_from_targets
3300 if (p->error_indicator) {
3301 D(p->level--);
3302 return NULL;
3303 }
3304 D(fprintf(stderr, "%*c> import_from[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from' (('.' | '...'))* dotted_name 'import' import_from_targets"));
3305 Token * _keyword;
3306 Token * _keyword_1;
3307 asdl_seq * a;
3308 expr_ty b;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003309 asdl_alias_seq* c;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003310 if (
3311 (_keyword = _PyPegen_expect_token(p, 514)) // token='from'
3312 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003313 (a = _loop0_31_rule(p)) // (('.' | '...'))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003314 &&
3315 (b = dotted_name_rule(p)) // dotted_name
3316 &&
3317 (_keyword_1 = _PyPegen_expect_token(p, 513)) // token='import'
3318 &&
3319 (c = import_from_targets_rule(p)) // import_from_targets
3320 )
3321 {
3322 D(fprintf(stderr, "%*c+ import_from[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'from' (('.' | '...'))* dotted_name 'import' import_from_targets"));
3323 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3324 if (_token == NULL) {
3325 D(p->level--);
3326 return NULL;
3327 }
3328 int _end_lineno = _token->end_lineno;
3329 UNUSED(_end_lineno); // Only used by EXTRA macro
3330 int _end_col_offset = _token->end_col_offset;
3331 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02003332 _res = _PyAST_ImportFrom ( b -> v . Name . id , c , _PyPegen_seq_count_dots ( a ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003333 if (_res == NULL && PyErr_Occurred()) {
3334 p->error_indicator = 1;
3335 D(p->level--);
3336 return NULL;
3337 }
3338 goto done;
3339 }
3340 p->mark = _mark;
3341 D(fprintf(stderr, "%*c%s import_from[%d-%d]: %s failed!\n", p->level, ' ',
3342 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from' (('.' | '...'))* dotted_name 'import' import_from_targets"));
3343 }
3344 { // 'from' (('.' | '...'))+ 'import' import_from_targets
3345 if (p->error_indicator) {
3346 D(p->level--);
3347 return NULL;
3348 }
3349 D(fprintf(stderr, "%*c> import_from[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from' (('.' | '...'))+ 'import' import_from_targets"));
3350 Token * _keyword;
3351 Token * _keyword_1;
3352 asdl_seq * a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003353 asdl_alias_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003354 if (
3355 (_keyword = _PyPegen_expect_token(p, 514)) // token='from'
3356 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003357 (a = _loop1_32_rule(p)) // (('.' | '...'))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003358 &&
3359 (_keyword_1 = _PyPegen_expect_token(p, 513)) // token='import'
3360 &&
3361 (b = import_from_targets_rule(p)) // import_from_targets
3362 )
3363 {
3364 D(fprintf(stderr, "%*c+ import_from[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'from' (('.' | '...'))+ 'import' import_from_targets"));
3365 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3366 if (_token == NULL) {
3367 D(p->level--);
3368 return NULL;
3369 }
3370 int _end_lineno = _token->end_lineno;
3371 UNUSED(_end_lineno); // Only used by EXTRA macro
3372 int _end_col_offset = _token->end_col_offset;
3373 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02003374 _res = _PyAST_ImportFrom ( NULL , b , _PyPegen_seq_count_dots ( a ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003375 if (_res == NULL && PyErr_Occurred()) {
3376 p->error_indicator = 1;
3377 D(p->level--);
3378 return NULL;
3379 }
3380 goto done;
3381 }
3382 p->mark = _mark;
3383 D(fprintf(stderr, "%*c%s import_from[%d-%d]: %s failed!\n", p->level, ' ',
3384 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from' (('.' | '...'))+ 'import' import_from_targets"));
3385 }
3386 _res = NULL;
3387 done:
3388 D(p->level--);
3389 return _res;
3390}
3391
3392// import_from_targets:
3393// | '(' import_from_as_names ','? ')'
3394// | import_from_as_names !','
3395// | '*'
3396// | invalid_import_from_targets
Pablo Galindoa5634c42020-09-16 19:42:00 +01003397static asdl_alias_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003398import_from_targets_rule(Parser *p)
3399{
3400 D(p->level++);
3401 if (p->error_indicator) {
3402 D(p->level--);
3403 return NULL;
3404 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01003405 asdl_alias_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003406 int _mark = p->mark;
Matthew Suozzo75a06f02021-04-10 16:56:28 -04003407 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3408 p->error_indicator = 1;
3409 D(p->level--);
3410 return NULL;
3411 }
3412 int _start_lineno = p->tokens[_mark]->lineno;
3413 UNUSED(_start_lineno); // Only used by EXTRA macro
3414 int _start_col_offset = p->tokens[_mark]->col_offset;
3415 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003416 { // '(' import_from_as_names ','? ')'
3417 if (p->error_indicator) {
3418 D(p->level--);
3419 return NULL;
3420 }
3421 D(fprintf(stderr, "%*c> import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' import_from_as_names ','? ')'"));
3422 Token * _literal;
3423 Token * _literal_1;
3424 void *_opt_var;
3425 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +01003426 asdl_alias_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003427 if (
3428 (_literal = _PyPegen_expect_token(p, 7)) // token='('
3429 &&
3430 (a = import_from_as_names_rule(p)) // import_from_as_names
3431 &&
3432 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
3433 &&
3434 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
3435 )
3436 {
3437 D(fprintf(stderr, "%*c+ import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' import_from_as_names ','? ')'"));
3438 _res = a;
3439 if (_res == NULL && PyErr_Occurred()) {
3440 p->error_indicator = 1;
3441 D(p->level--);
3442 return NULL;
3443 }
3444 goto done;
3445 }
3446 p->mark = _mark;
3447 D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
3448 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' import_from_as_names ','? ')'"));
3449 }
3450 { // import_from_as_names !','
3451 if (p->error_indicator) {
3452 D(p->level--);
3453 return NULL;
3454 }
3455 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 +01003456 asdl_alias_seq* import_from_as_names_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003457 if (
3458 (import_from_as_names_var = import_from_as_names_rule(p)) // import_from_as_names
3459 &&
3460 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 12) // token=','
3461 )
3462 {
3463 D(fprintf(stderr, "%*c+ import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "import_from_as_names !','"));
3464 _res = import_from_as_names_var;
3465 goto done;
3466 }
3467 p->mark = _mark;
3468 D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
3469 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from_as_names !','"));
3470 }
3471 { // '*'
3472 if (p->error_indicator) {
3473 D(p->level--);
3474 return NULL;
3475 }
3476 D(fprintf(stderr, "%*c> import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*'"));
3477 Token * _literal;
3478 if (
3479 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
3480 )
3481 {
3482 D(fprintf(stderr, "%*c+ import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*'"));
Matthew Suozzo75a06f02021-04-10 16:56:28 -04003483 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3484 if (_token == NULL) {
3485 D(p->level--);
3486 return NULL;
3487 }
3488 int _end_lineno = _token->end_lineno;
3489 UNUSED(_end_lineno); // Only used by EXTRA macro
3490 int _end_col_offset = _token->end_col_offset;
3491 UNUSED(_end_col_offset); // Only used by EXTRA macro
3492 _res = ( asdl_alias_seq * ) _PyPegen_singleton_seq ( p , CHECK ( alias_ty , _PyPegen_alias_for_star ( p , EXTRA ) ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003493 if (_res == NULL && PyErr_Occurred()) {
3494 p->error_indicator = 1;
3495 D(p->level--);
3496 return NULL;
3497 }
3498 goto done;
3499 }
3500 p->mark = _mark;
3501 D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
3502 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*'"));
3503 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02003504 if (p->call_invalid_rules) { // invalid_import_from_targets
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003505 if (p->error_indicator) {
3506 D(p->level--);
3507 return NULL;
3508 }
3509 D(fprintf(stderr, "%*c> import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_import_from_targets"));
3510 void *invalid_import_from_targets_var;
3511 if (
3512 (invalid_import_from_targets_var = invalid_import_from_targets_rule(p)) // invalid_import_from_targets
3513 )
3514 {
3515 D(fprintf(stderr, "%*c+ import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_import_from_targets"));
3516 _res = invalid_import_from_targets_var;
3517 goto done;
3518 }
3519 p->mark = _mark;
3520 D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
3521 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_import_from_targets"));
3522 }
3523 _res = NULL;
3524 done:
3525 D(p->level--);
3526 return _res;
3527}
3528
3529// import_from_as_names: ','.import_from_as_name+
Pablo Galindoa5634c42020-09-16 19:42:00 +01003530static asdl_alias_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003531import_from_as_names_rule(Parser *p)
3532{
3533 D(p->level++);
3534 if (p->error_indicator) {
3535 D(p->level--);
3536 return NULL;
3537 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01003538 asdl_alias_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003539 int _mark = p->mark;
3540 { // ','.import_from_as_name+
3541 if (p->error_indicator) {
3542 D(p->level--);
3543 return NULL;
3544 }
3545 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 +01003546 asdl_alias_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003547 if (
Pablo Galindoa5634c42020-09-16 19:42:00 +01003548 (a = (asdl_alias_seq*)_gather_33_rule(p)) // ','.import_from_as_name+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003549 )
3550 {
3551 D(fprintf(stderr, "%*c+ import_from_as_names[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.import_from_as_name+"));
3552 _res = a;
3553 if (_res == NULL && PyErr_Occurred()) {
3554 p->error_indicator = 1;
3555 D(p->level--);
3556 return NULL;
3557 }
3558 goto done;
3559 }
3560 p->mark = _mark;
3561 D(fprintf(stderr, "%*c%s import_from_as_names[%d-%d]: %s failed!\n", p->level, ' ',
3562 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.import_from_as_name+"));
3563 }
3564 _res = NULL;
3565 done:
3566 D(p->level--);
3567 return _res;
3568}
3569
3570// import_from_as_name: NAME ['as' NAME]
3571static alias_ty
3572import_from_as_name_rule(Parser *p)
3573{
3574 D(p->level++);
3575 if (p->error_indicator) {
3576 D(p->level--);
3577 return NULL;
3578 }
3579 alias_ty _res = NULL;
3580 int _mark = p->mark;
Matthew Suozzo75a06f02021-04-10 16:56:28 -04003581 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3582 p->error_indicator = 1;
3583 D(p->level--);
3584 return NULL;
3585 }
3586 int _start_lineno = p->tokens[_mark]->lineno;
3587 UNUSED(_start_lineno); // Only used by EXTRA macro
3588 int _start_col_offset = p->tokens[_mark]->col_offset;
3589 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003590 { // NAME ['as' NAME]
3591 if (p->error_indicator) {
3592 D(p->level--);
3593 return NULL;
3594 }
3595 D(fprintf(stderr, "%*c> import_from_as_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME ['as' NAME]"));
3596 expr_ty a;
3597 void *b;
3598 if (
3599 (a = _PyPegen_name_token(p)) // NAME
3600 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003601 (b = _tmp_35_rule(p), 1) // ['as' NAME]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003602 )
3603 {
3604 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 -04003605 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3606 if (_token == NULL) {
3607 D(p->level--);
3608 return NULL;
3609 }
3610 int _end_lineno = _token->end_lineno;
3611 UNUSED(_end_lineno); // Only used by EXTRA macro
3612 int _end_col_offset = _token->end_col_offset;
3613 UNUSED(_end_col_offset); // Only used by EXTRA macro
3614 _res = _PyAST_alias ( a -> v . Name . id , ( b ) ? ( ( expr_ty ) b ) -> v . Name . id : NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003615 if (_res == NULL && PyErr_Occurred()) {
3616 p->error_indicator = 1;
3617 D(p->level--);
3618 return NULL;
3619 }
3620 goto done;
3621 }
3622 p->mark = _mark;
3623 D(fprintf(stderr, "%*c%s import_from_as_name[%d-%d]: %s failed!\n", p->level, ' ',
3624 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME ['as' NAME]"));
3625 }
3626 _res = NULL;
3627 done:
3628 D(p->level--);
3629 return _res;
3630}
3631
3632// dotted_as_names: ','.dotted_as_name+
Pablo Galindoa5634c42020-09-16 19:42:00 +01003633static asdl_alias_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003634dotted_as_names_rule(Parser *p)
3635{
3636 D(p->level++);
3637 if (p->error_indicator) {
3638 D(p->level--);
3639 return NULL;
3640 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01003641 asdl_alias_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003642 int _mark = p->mark;
3643 { // ','.dotted_as_name+
3644 if (p->error_indicator) {
3645 D(p->level--);
3646 return NULL;
3647 }
3648 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 +01003649 asdl_alias_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003650 if (
Pablo Galindoa5634c42020-09-16 19:42:00 +01003651 (a = (asdl_alias_seq*)_gather_36_rule(p)) // ','.dotted_as_name+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003652 )
3653 {
3654 D(fprintf(stderr, "%*c+ dotted_as_names[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.dotted_as_name+"));
3655 _res = a;
3656 if (_res == NULL && PyErr_Occurred()) {
3657 p->error_indicator = 1;
3658 D(p->level--);
3659 return NULL;
3660 }
3661 goto done;
3662 }
3663 p->mark = _mark;
3664 D(fprintf(stderr, "%*c%s dotted_as_names[%d-%d]: %s failed!\n", p->level, ' ',
3665 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.dotted_as_name+"));
3666 }
3667 _res = NULL;
3668 done:
3669 D(p->level--);
3670 return _res;
3671}
3672
3673// dotted_as_name: dotted_name ['as' NAME]
3674static alias_ty
3675dotted_as_name_rule(Parser *p)
3676{
3677 D(p->level++);
3678 if (p->error_indicator) {
3679 D(p->level--);
3680 return NULL;
3681 }
3682 alias_ty _res = NULL;
3683 int _mark = p->mark;
Matthew Suozzo75a06f02021-04-10 16:56:28 -04003684 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3685 p->error_indicator = 1;
3686 D(p->level--);
3687 return NULL;
3688 }
3689 int _start_lineno = p->tokens[_mark]->lineno;
3690 UNUSED(_start_lineno); // Only used by EXTRA macro
3691 int _start_col_offset = p->tokens[_mark]->col_offset;
3692 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003693 { // dotted_name ['as' NAME]
3694 if (p->error_indicator) {
3695 D(p->level--);
3696 return NULL;
3697 }
3698 D(fprintf(stderr, "%*c> dotted_as_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dotted_name ['as' NAME]"));
3699 expr_ty a;
3700 void *b;
3701 if (
3702 (a = dotted_name_rule(p)) // dotted_name
3703 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003704 (b = _tmp_38_rule(p), 1) // ['as' NAME]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003705 )
3706 {
3707 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 -04003708 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3709 if (_token == NULL) {
3710 D(p->level--);
3711 return NULL;
3712 }
3713 int _end_lineno = _token->end_lineno;
3714 UNUSED(_end_lineno); // Only used by EXTRA macro
3715 int _end_col_offset = _token->end_col_offset;
3716 UNUSED(_end_col_offset); // Only used by EXTRA macro
3717 _res = _PyAST_alias ( a -> v . Name . id , ( b ) ? ( ( expr_ty ) b ) -> v . Name . id : NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003718 if (_res == NULL && PyErr_Occurred()) {
3719 p->error_indicator = 1;
3720 D(p->level--);
3721 return NULL;
3722 }
3723 goto done;
3724 }
3725 p->mark = _mark;
3726 D(fprintf(stderr, "%*c%s dotted_as_name[%d-%d]: %s failed!\n", p->level, ' ',
3727 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dotted_name ['as' NAME]"));
3728 }
3729 _res = NULL;
3730 done:
3731 D(p->level--);
3732 return _res;
3733}
3734
3735// Left-recursive
3736// dotted_name: dotted_name '.' NAME | NAME
3737static expr_ty dotted_name_raw(Parser *);
3738static expr_ty
3739dotted_name_rule(Parser *p)
3740{
3741 D(p->level++);
3742 expr_ty _res = NULL;
3743 if (_PyPegen_is_memoized(p, dotted_name_type, &_res)) {
3744 D(p->level--);
3745 return _res;
3746 }
3747 int _mark = p->mark;
3748 int _resmark = p->mark;
3749 while (1) {
3750 int tmpvar_0 = _PyPegen_update_memo(p, _mark, dotted_name_type, _res);
3751 if (tmpvar_0) {
3752 D(p->level--);
3753 return _res;
3754 }
3755 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -07003756 p->in_raw_rule++;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003757 void *_raw = dotted_name_raw(p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -07003758 p->in_raw_rule--;
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +02003759 if (p->error_indicator)
3760 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003761 if (_raw == NULL || p->mark <= _resmark)
3762 break;
3763 _resmark = p->mark;
3764 _res = _raw;
3765 }
3766 p->mark = _resmark;
3767 D(p->level--);
3768 return _res;
3769}
3770static expr_ty
3771dotted_name_raw(Parser *p)
3772{
3773 D(p->level++);
3774 if (p->error_indicator) {
3775 D(p->level--);
3776 return NULL;
3777 }
3778 expr_ty _res = NULL;
3779 int _mark = p->mark;
3780 { // dotted_name '.' NAME
3781 if (p->error_indicator) {
3782 D(p->level--);
3783 return NULL;
3784 }
3785 D(fprintf(stderr, "%*c> dotted_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dotted_name '.' NAME"));
3786 Token * _literal;
3787 expr_ty a;
3788 expr_ty b;
3789 if (
3790 (a = dotted_name_rule(p)) // dotted_name
3791 &&
3792 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
3793 &&
3794 (b = _PyPegen_name_token(p)) // NAME
3795 )
3796 {
3797 D(fprintf(stderr, "%*c+ dotted_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dotted_name '.' NAME"));
3798 _res = _PyPegen_join_names_with_dot ( p , a , b );
3799 if (_res == NULL && PyErr_Occurred()) {
3800 p->error_indicator = 1;
3801 D(p->level--);
3802 return NULL;
3803 }
3804 goto done;
3805 }
3806 p->mark = _mark;
3807 D(fprintf(stderr, "%*c%s dotted_name[%d-%d]: %s failed!\n", p->level, ' ',
3808 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dotted_name '.' NAME"));
3809 }
3810 { // NAME
3811 if (p->error_indicator) {
3812 D(p->level--);
3813 return NULL;
3814 }
3815 D(fprintf(stderr, "%*c> dotted_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
3816 expr_ty name_var;
3817 if (
3818 (name_var = _PyPegen_name_token(p)) // NAME
3819 )
3820 {
3821 D(fprintf(stderr, "%*c+ dotted_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
3822 _res = name_var;
3823 goto done;
3824 }
3825 p->mark = _mark;
3826 D(fprintf(stderr, "%*c%s dotted_name[%d-%d]: %s failed!\n", p->level, ' ',
3827 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
3828 }
3829 _res = NULL;
3830 done:
3831 D(p->level--);
3832 return _res;
3833}
3834
3835// if_stmt:
Pablo Galindo56c95df2021-04-21 15:28:21 +01003836// | invalid_if_stmt
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003837// | 'if' named_expression ':' block elif_stmt
3838// | 'if' named_expression ':' block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003839static stmt_ty
3840if_stmt_rule(Parser *p)
3841{
3842 D(p->level++);
3843 if (p->error_indicator) {
3844 D(p->level--);
3845 return NULL;
3846 }
3847 stmt_ty _res = NULL;
3848 int _mark = p->mark;
3849 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3850 p->error_indicator = 1;
3851 D(p->level--);
3852 return NULL;
3853 }
3854 int _start_lineno = p->tokens[_mark]->lineno;
3855 UNUSED(_start_lineno); // Only used by EXTRA macro
3856 int _start_col_offset = p->tokens[_mark]->col_offset;
3857 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo56c95df2021-04-21 15:28:21 +01003858 if (p->call_invalid_rules) { // invalid_if_stmt
3859 if (p->error_indicator) {
3860 D(p->level--);
3861 return NULL;
3862 }
3863 D(fprintf(stderr, "%*c> if_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_if_stmt"));
3864 void *invalid_if_stmt_var;
3865 if (
3866 (invalid_if_stmt_var = invalid_if_stmt_rule(p)) // invalid_if_stmt
3867 )
3868 {
3869 D(fprintf(stderr, "%*c+ if_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_if_stmt"));
3870 _res = invalid_if_stmt_var;
3871 goto done;
3872 }
3873 p->mark = _mark;
3874 D(fprintf(stderr, "%*c%s if_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3875 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_if_stmt"));
3876 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003877 { // 'if' named_expression ':' block elif_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003878 if (p->error_indicator) {
3879 D(p->level--);
3880 return NULL;
3881 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003882 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 +01003883 Token * _keyword;
3884 Token * _literal;
3885 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003886 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003887 stmt_ty c;
3888 if (
3889 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
3890 &&
3891 (a = named_expression_rule(p)) // named_expression
3892 &&
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003893 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003894 &&
3895 (b = block_rule(p)) // block
3896 &&
3897 (c = elif_stmt_rule(p)) // elif_stmt
3898 )
3899 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003900 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 +01003901 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3902 if (_token == NULL) {
3903 D(p->level--);
3904 return NULL;
3905 }
3906 int _end_lineno = _token->end_lineno;
3907 UNUSED(_end_lineno); // Only used by EXTRA macro
3908 int _end_col_offset = _token->end_col_offset;
3909 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02003910 _res = _PyAST_If ( a , b , CHECK ( asdl_stmt_seq * , _PyPegen_singleton_seq ( p , c ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003911 if (_res == NULL && PyErr_Occurred()) {
3912 p->error_indicator = 1;
3913 D(p->level--);
3914 return NULL;
3915 }
3916 goto done;
3917 }
3918 p->mark = _mark;
3919 D(fprintf(stderr, "%*c%s if_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003920 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' named_expression ':' block elif_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003921 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003922 { // 'if' named_expression ':' block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003923 if (p->error_indicator) {
3924 D(p->level--);
3925 return NULL;
3926 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003927 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 +01003928 Token * _keyword;
3929 Token * _literal;
3930 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003931 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003932 void *c;
3933 if (
3934 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
3935 &&
3936 (a = named_expression_rule(p)) // named_expression
3937 &&
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003938 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003939 &&
3940 (b = block_rule(p)) // block
3941 &&
3942 (c = else_block_rule(p), 1) // else_block?
3943 )
3944 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003945 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 +01003946 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3947 if (_token == NULL) {
3948 D(p->level--);
3949 return NULL;
3950 }
3951 int _end_lineno = _token->end_lineno;
3952 UNUSED(_end_lineno); // Only used by EXTRA macro
3953 int _end_col_offset = _token->end_col_offset;
3954 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02003955 _res = _PyAST_If ( a , b , c , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003956 if (_res == NULL && PyErr_Occurred()) {
3957 p->error_indicator = 1;
3958 D(p->level--);
3959 return NULL;
3960 }
3961 goto done;
3962 }
3963 p->mark = _mark;
3964 D(fprintf(stderr, "%*c%s if_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003965 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' named_expression ':' block else_block?"));
3966 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003967 _res = NULL;
3968 done:
3969 D(p->level--);
3970 return _res;
3971}
3972
3973// elif_stmt:
Pablo Galindo56c95df2021-04-21 15:28:21 +01003974// | invalid_elif_stmt
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003975// | 'elif' named_expression ':' block elif_stmt
3976// | 'elif' named_expression ':' block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003977static stmt_ty
3978elif_stmt_rule(Parser *p)
3979{
3980 D(p->level++);
3981 if (p->error_indicator) {
3982 D(p->level--);
3983 return NULL;
3984 }
3985 stmt_ty _res = NULL;
3986 int _mark = p->mark;
3987 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3988 p->error_indicator = 1;
3989 D(p->level--);
3990 return NULL;
3991 }
3992 int _start_lineno = p->tokens[_mark]->lineno;
3993 UNUSED(_start_lineno); // Only used by EXTRA macro
3994 int _start_col_offset = p->tokens[_mark]->col_offset;
3995 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo56c95df2021-04-21 15:28:21 +01003996 if (p->call_invalid_rules) { // invalid_elif_stmt
3997 if (p->error_indicator) {
3998 D(p->level--);
3999 return NULL;
4000 }
4001 D(fprintf(stderr, "%*c> elif_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_elif_stmt"));
4002 void *invalid_elif_stmt_var;
4003 if (
4004 (invalid_elif_stmt_var = invalid_elif_stmt_rule(p)) // invalid_elif_stmt
4005 )
4006 {
4007 D(fprintf(stderr, "%*c+ elif_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_elif_stmt"));
4008 _res = invalid_elif_stmt_var;
4009 goto done;
4010 }
4011 p->mark = _mark;
4012 D(fprintf(stderr, "%*c%s elif_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4013 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_elif_stmt"));
4014 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004015 { // 'elif' named_expression ':' block elif_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004016 if (p->error_indicator) {
4017 D(p->level--);
4018 return NULL;
4019 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004020 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 +01004021 Token * _keyword;
4022 Token * _literal;
4023 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004024 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004025 stmt_ty c;
4026 if (
4027 (_keyword = _PyPegen_expect_token(p, 515)) // token='elif'
4028 &&
4029 (a = named_expression_rule(p)) // named_expression
4030 &&
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004031 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004032 &&
4033 (b = block_rule(p)) // block
4034 &&
4035 (c = elif_stmt_rule(p)) // elif_stmt
4036 )
4037 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004038 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 +01004039 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4040 if (_token == NULL) {
4041 D(p->level--);
4042 return NULL;
4043 }
4044 int _end_lineno = _token->end_lineno;
4045 UNUSED(_end_lineno); // Only used by EXTRA macro
4046 int _end_col_offset = _token->end_col_offset;
4047 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004048 _res = _PyAST_If ( a , b , CHECK ( asdl_stmt_seq * , _PyPegen_singleton_seq ( p , c ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004049 if (_res == NULL && PyErr_Occurred()) {
4050 p->error_indicator = 1;
4051 D(p->level--);
4052 return NULL;
4053 }
4054 goto done;
4055 }
4056 p->mark = _mark;
4057 D(fprintf(stderr, "%*c%s elif_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004058 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'elif' named_expression ':' block elif_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004059 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004060 { // 'elif' named_expression ':' block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004061 if (p->error_indicator) {
4062 D(p->level--);
4063 return NULL;
4064 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004065 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 +01004066 Token * _keyword;
4067 Token * _literal;
4068 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004069 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004070 void *c;
4071 if (
4072 (_keyword = _PyPegen_expect_token(p, 515)) // token='elif'
4073 &&
4074 (a = named_expression_rule(p)) // named_expression
4075 &&
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004076 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004077 &&
4078 (b = block_rule(p)) // block
4079 &&
4080 (c = else_block_rule(p), 1) // else_block?
4081 )
4082 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004083 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 +01004084 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4085 if (_token == NULL) {
4086 D(p->level--);
4087 return NULL;
4088 }
4089 int _end_lineno = _token->end_lineno;
4090 UNUSED(_end_lineno); // Only used by EXTRA macro
4091 int _end_col_offset = _token->end_col_offset;
4092 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004093 _res = _PyAST_If ( a , b , c , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004094 if (_res == NULL && PyErr_Occurred()) {
4095 p->error_indicator = 1;
4096 D(p->level--);
4097 return NULL;
4098 }
4099 goto done;
4100 }
4101 p->mark = _mark;
4102 D(fprintf(stderr, "%*c%s elif_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004103 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'elif' named_expression ':' block else_block?"));
4104 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004105 _res = NULL;
4106 done:
4107 D(p->level--);
4108 return _res;
4109}
4110
Pablo Galindo56c95df2021-04-21 15:28:21 +01004111// else_block: invalid_else_stmt | 'else' &&':' block
Pablo Galindoa5634c42020-09-16 19:42:00 +01004112static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004113else_block_rule(Parser *p)
4114{
4115 D(p->level++);
4116 if (p->error_indicator) {
4117 D(p->level--);
4118 return NULL;
4119 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01004120 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004121 int _mark = p->mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +01004122 if (p->call_invalid_rules) { // invalid_else_stmt
4123 if (p->error_indicator) {
4124 D(p->level--);
4125 return NULL;
4126 }
4127 D(fprintf(stderr, "%*c> else_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_else_stmt"));
4128 void *invalid_else_stmt_var;
4129 if (
4130 (invalid_else_stmt_var = invalid_else_stmt_rule(p)) // invalid_else_stmt
4131 )
4132 {
4133 D(fprintf(stderr, "%*c+ else_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_else_stmt"));
4134 _res = invalid_else_stmt_var;
4135 goto done;
4136 }
4137 p->mark = _mark;
4138 D(fprintf(stderr, "%*c%s else_block[%d-%d]: %s failed!\n", p->level, ' ',
4139 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_else_stmt"));
4140 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004141 { // 'else' &&':' block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004142 if (p->error_indicator) {
4143 D(p->level--);
4144 return NULL;
4145 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004146 D(fprintf(stderr, "%*c> else_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'else' &&':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004147 Token * _keyword;
4148 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004149 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004150 if (
4151 (_keyword = _PyPegen_expect_token(p, 516)) // token='else'
4152 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00004153 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004154 &&
4155 (b = block_rule(p)) // block
4156 )
4157 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00004158 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 +01004159 _res = b;
4160 if (_res == NULL && PyErr_Occurred()) {
4161 p->error_indicator = 1;
4162 D(p->level--);
4163 return NULL;
4164 }
4165 goto done;
4166 }
4167 p->mark = _mark;
4168 D(fprintf(stderr, "%*c%s else_block[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00004169 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'else' &&':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004170 }
4171 _res = NULL;
4172 done:
4173 D(p->level--);
4174 return _res;
4175}
4176
Pablo Galindo56c95df2021-04-21 15:28:21 +01004177// while_stmt: invalid_while_stmt | 'while' named_expression ':' block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004178static stmt_ty
4179while_stmt_rule(Parser *p)
4180{
4181 D(p->level++);
4182 if (p->error_indicator) {
4183 D(p->level--);
4184 return NULL;
4185 }
4186 stmt_ty _res = NULL;
4187 int _mark = p->mark;
4188 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4189 p->error_indicator = 1;
4190 D(p->level--);
4191 return NULL;
4192 }
4193 int _start_lineno = p->tokens[_mark]->lineno;
4194 UNUSED(_start_lineno); // Only used by EXTRA macro
4195 int _start_col_offset = p->tokens[_mark]->col_offset;
4196 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo56c95df2021-04-21 15:28:21 +01004197 if (p->call_invalid_rules) { // invalid_while_stmt
4198 if (p->error_indicator) {
4199 D(p->level--);
4200 return NULL;
4201 }
4202 D(fprintf(stderr, "%*c> while_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_while_stmt"));
4203 void *invalid_while_stmt_var;
4204 if (
4205 (invalid_while_stmt_var = invalid_while_stmt_rule(p)) // invalid_while_stmt
4206 )
4207 {
4208 D(fprintf(stderr, "%*c+ while_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_while_stmt"));
4209 _res = invalid_while_stmt_var;
4210 goto done;
4211 }
4212 p->mark = _mark;
4213 D(fprintf(stderr, "%*c%s while_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4214 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_while_stmt"));
4215 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004216 { // 'while' named_expression ':' block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004217 if (p->error_indicator) {
4218 D(p->level--);
4219 return NULL;
4220 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004221 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 +01004222 Token * _keyword;
4223 Token * _literal;
4224 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004225 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004226 void *c;
4227 if (
4228 (_keyword = _PyPegen_expect_token(p, 512)) // token='while'
4229 &&
4230 (a = named_expression_rule(p)) // named_expression
4231 &&
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004232 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004233 &&
4234 (b = block_rule(p)) // block
4235 &&
4236 (c = else_block_rule(p), 1) // else_block?
4237 )
4238 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004239 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 +01004240 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4241 if (_token == NULL) {
4242 D(p->level--);
4243 return NULL;
4244 }
4245 int _end_lineno = _token->end_lineno;
4246 UNUSED(_end_lineno); // Only used by EXTRA macro
4247 int _end_col_offset = _token->end_col_offset;
4248 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004249 _res = _PyAST_While ( a , b , c , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004250 if (_res == NULL && PyErr_Occurred()) {
4251 p->error_indicator = 1;
4252 D(p->level--);
4253 return NULL;
4254 }
4255 goto done;
4256 }
4257 p->mark = _mark;
4258 D(fprintf(stderr, "%*c%s while_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004259 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'while' named_expression ':' block else_block?"));
4260 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004261 _res = NULL;
4262 done:
4263 D(p->level--);
4264 return _res;
4265}
4266
4267// for_stmt:
Pablo Galindo56c95df2021-04-21 15:28:21 +01004268// | invalid_for_stmt
Pablo Galindo58fb1562021-02-02 19:54:22 +00004269// | 'for' star_targets 'in' ~ star_expressions &&':' TYPE_COMMENT? block else_block?
4270// | ASYNC 'for' star_targets 'in' ~ star_expressions &&':' TYPE_COMMENT? block else_block?
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004271// | invalid_for_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004272static stmt_ty
4273for_stmt_rule(Parser *p)
4274{
4275 D(p->level++);
4276 if (p->error_indicator) {
4277 D(p->level--);
4278 return NULL;
4279 }
4280 stmt_ty _res = NULL;
4281 int _mark = p->mark;
4282 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4283 p->error_indicator = 1;
4284 D(p->level--);
4285 return NULL;
4286 }
4287 int _start_lineno = p->tokens[_mark]->lineno;
4288 UNUSED(_start_lineno); // Only used by EXTRA macro
4289 int _start_col_offset = p->tokens[_mark]->col_offset;
4290 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo56c95df2021-04-21 15:28:21 +01004291 if (p->call_invalid_rules) { // invalid_for_stmt
4292 if (p->error_indicator) {
4293 D(p->level--);
4294 return NULL;
4295 }
4296 D(fprintf(stderr, "%*c> for_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_for_stmt"));
4297 void *invalid_for_stmt_var;
4298 if (
4299 (invalid_for_stmt_var = invalid_for_stmt_rule(p)) // invalid_for_stmt
4300 )
4301 {
4302 D(fprintf(stderr, "%*c+ for_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_for_stmt"));
4303 _res = invalid_for_stmt_var;
4304 goto done;
4305 }
4306 p->mark = _mark;
4307 D(fprintf(stderr, "%*c%s for_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4308 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_for_stmt"));
4309 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004310 { // 'for' star_targets 'in' ~ star_expressions &&':' TYPE_COMMENT? block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004311 if (p->error_indicator) {
4312 D(p->level--);
4313 return NULL;
4314 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004315 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 +03004316 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004317 Token * _keyword;
4318 Token * _keyword_1;
4319 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004320 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004321 void *el;
4322 expr_ty ex;
4323 expr_ty t;
4324 void *tc;
4325 if (
4326 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
4327 &&
4328 (t = star_targets_rule(p)) // star_targets
4329 &&
4330 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
4331 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004332 (_cut_var = 1)
4333 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004334 (ex = star_expressions_rule(p)) // star_expressions
4335 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00004336 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004337 &&
4338 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
4339 &&
4340 (b = block_rule(p)) // block
4341 &&
4342 (el = else_block_rule(p), 1) // else_block?
4343 )
4344 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00004345 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 +01004346 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4347 if (_token == NULL) {
4348 D(p->level--);
4349 return NULL;
4350 }
4351 int _end_lineno = _token->end_lineno;
4352 UNUSED(_end_lineno); // Only used by EXTRA macro
4353 int _end_col_offset = _token->end_col_offset;
4354 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004355 _res = _PyAST_For ( t , ex , b , el , NEW_TYPE_COMMENT ( p , tc ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004356 if (_res == NULL && PyErr_Occurred()) {
4357 p->error_indicator = 1;
4358 D(p->level--);
4359 return NULL;
4360 }
4361 goto done;
4362 }
4363 p->mark = _mark;
4364 D(fprintf(stderr, "%*c%s for_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00004365 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 +03004366 if (_cut_var) {
4367 D(p->level--);
4368 return NULL;
4369 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004370 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004371 { // ASYNC 'for' star_targets 'in' ~ star_expressions &&':' TYPE_COMMENT? block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004372 if (p->error_indicator) {
4373 D(p->level--);
4374 return NULL;
4375 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004376 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 +03004377 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004378 Token * _keyword;
4379 Token * _keyword_1;
4380 Token * _literal;
4381 Token * async_var;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004382 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004383 void *el;
4384 expr_ty ex;
4385 expr_ty t;
4386 void *tc;
4387 if (
4388 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
4389 &&
4390 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
4391 &&
4392 (t = star_targets_rule(p)) // star_targets
4393 &&
4394 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
4395 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004396 (_cut_var = 1)
4397 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004398 (ex = star_expressions_rule(p)) // star_expressions
4399 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00004400 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004401 &&
4402 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
4403 &&
4404 (b = block_rule(p)) // block
4405 &&
4406 (el = else_block_rule(p), 1) // else_block?
4407 )
4408 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00004409 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 +01004410 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4411 if (_token == NULL) {
4412 D(p->level--);
4413 return NULL;
4414 }
4415 int _end_lineno = _token->end_lineno;
4416 UNUSED(_end_lineno); // Only used by EXTRA macro
4417 int _end_col_offset = _token->end_col_offset;
4418 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004419 _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 +01004420 if (_res == NULL && PyErr_Occurred()) {
4421 p->error_indicator = 1;
4422 D(p->level--);
4423 return NULL;
4424 }
4425 goto done;
4426 }
4427 p->mark = _mark;
4428 D(fprintf(stderr, "%*c%s for_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00004429 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 +03004430 if (_cut_var) {
4431 D(p->level--);
4432 return NULL;
4433 }
4434 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02004435 if (p->call_invalid_rules) { // invalid_for_target
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004436 if (p->error_indicator) {
4437 D(p->level--);
4438 return NULL;
4439 }
4440 D(fprintf(stderr, "%*c> for_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_for_target"));
4441 void *invalid_for_target_var;
4442 if (
4443 (invalid_for_target_var = invalid_for_target_rule(p)) // invalid_for_target
4444 )
4445 {
4446 D(fprintf(stderr, "%*c+ for_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_for_target"));
4447 _res = invalid_for_target_var;
4448 goto done;
4449 }
4450 p->mark = _mark;
4451 D(fprintf(stderr, "%*c%s for_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4452 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_for_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004453 }
4454 _res = NULL;
4455 done:
4456 D(p->level--);
4457 return _res;
4458}
4459
4460// with_stmt:
Pablo Galindo56c95df2021-04-21 15:28:21 +01004461// | invalid_with_stmt_indent
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004462// | 'with' '(' ','.with_item+ ','? ')' ':' block
4463// | 'with' ','.with_item+ ':' TYPE_COMMENT? block
4464// | ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block
4465// | ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block
Pablo Galindo58fb1562021-02-02 19:54:22 +00004466// | invalid_with_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004467static stmt_ty
4468with_stmt_rule(Parser *p)
4469{
4470 D(p->level++);
4471 if (p->error_indicator) {
4472 D(p->level--);
4473 return NULL;
4474 }
4475 stmt_ty _res = NULL;
4476 int _mark = p->mark;
4477 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4478 p->error_indicator = 1;
4479 D(p->level--);
4480 return NULL;
4481 }
4482 int _start_lineno = p->tokens[_mark]->lineno;
4483 UNUSED(_start_lineno); // Only used by EXTRA macro
4484 int _start_col_offset = p->tokens[_mark]->col_offset;
4485 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo56c95df2021-04-21 15:28:21 +01004486 if (p->call_invalid_rules) { // invalid_with_stmt_indent
4487 if (p->error_indicator) {
4488 D(p->level--);
4489 return NULL;
4490 }
4491 D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_with_stmt_indent"));
4492 void *invalid_with_stmt_indent_var;
4493 if (
4494 (invalid_with_stmt_indent_var = invalid_with_stmt_indent_rule(p)) // invalid_with_stmt_indent
4495 )
4496 {
4497 D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_with_stmt_indent"));
4498 _res = invalid_with_stmt_indent_var;
4499 goto done;
4500 }
4501 p->mark = _mark;
4502 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4503 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_with_stmt_indent"));
4504 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004505 { // 'with' '(' ','.with_item+ ','? ')' ':' block
4506 if (p->error_indicator) {
4507 D(p->level--);
4508 return NULL;
4509 }
4510 D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'with' '(' ','.with_item+ ','? ')' ':' block"));
4511 Token * _keyword;
4512 Token * _literal;
4513 Token * _literal_1;
4514 Token * _literal_2;
4515 void *_opt_var;
4516 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +01004517 asdl_withitem_seq* a;
4518 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004519 if (
4520 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
4521 &&
4522 (_literal = _PyPegen_expect_token(p, 7)) // token='('
4523 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01004524 (a = (asdl_withitem_seq*)_gather_39_rule(p)) // ','.with_item+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004525 &&
4526 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
4527 &&
4528 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
4529 &&
4530 (_literal_2 = _PyPegen_expect_token(p, 11)) // token=':'
4531 &&
4532 (b = block_rule(p)) // block
4533 )
4534 {
4535 D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'with' '(' ','.with_item+ ','? ')' ':' block"));
4536 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4537 if (_token == NULL) {
4538 D(p->level--);
4539 return NULL;
4540 }
4541 int _end_lineno = _token->end_lineno;
4542 UNUSED(_end_lineno); // Only used by EXTRA macro
4543 int _end_col_offset = _token->end_col_offset;
4544 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004545 _res = _PyAST_With ( a , b , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004546 if (_res == NULL && PyErr_Occurred()) {
4547 p->error_indicator = 1;
4548 D(p->level--);
4549 return NULL;
4550 }
4551 goto done;
4552 }
4553 p->mark = _mark;
4554 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4555 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'with' '(' ','.with_item+ ','? ')' ':' block"));
4556 }
4557 { // 'with' ','.with_item+ ':' TYPE_COMMENT? block
4558 if (p->error_indicator) {
4559 D(p->level--);
4560 return NULL;
4561 }
4562 D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4563 Token * _keyword;
4564 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004565 asdl_withitem_seq* a;
4566 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004567 void *tc;
4568 if (
4569 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
4570 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01004571 (a = (asdl_withitem_seq*)_gather_41_rule(p)) // ','.with_item+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004572 &&
4573 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
4574 &&
4575 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
4576 &&
4577 (b = block_rule(p)) // block
4578 )
4579 {
4580 D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4581 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4582 if (_token == NULL) {
4583 D(p->level--);
4584 return NULL;
4585 }
4586 int _end_lineno = _token->end_lineno;
4587 UNUSED(_end_lineno); // Only used by EXTRA macro
4588 int _end_col_offset = _token->end_col_offset;
4589 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004590 _res = _PyAST_With ( a , b , NEW_TYPE_COMMENT ( p , tc ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004591 if (_res == NULL && PyErr_Occurred()) {
4592 p->error_indicator = 1;
4593 D(p->level--);
4594 return NULL;
4595 }
4596 goto done;
4597 }
4598 p->mark = _mark;
4599 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4600 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4601 }
4602 { // ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block
4603 if (p->error_indicator) {
4604 D(p->level--);
4605 return NULL;
4606 }
4607 D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block"));
4608 Token * _keyword;
4609 Token * _literal;
4610 Token * _literal_1;
4611 Token * _literal_2;
4612 void *_opt_var;
4613 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +01004614 asdl_withitem_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004615 Token * async_var;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004616 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004617 if (
4618 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
4619 &&
4620 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
4621 &&
4622 (_literal = _PyPegen_expect_token(p, 7)) // token='('
4623 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01004624 (a = (asdl_withitem_seq*)_gather_43_rule(p)) // ','.with_item+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004625 &&
4626 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
4627 &&
4628 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
4629 &&
4630 (_literal_2 = _PyPegen_expect_token(p, 11)) // token=':'
4631 &&
4632 (b = block_rule(p)) // block
4633 )
4634 {
4635 D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block"));
4636 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4637 if (_token == NULL) {
4638 D(p->level--);
4639 return NULL;
4640 }
4641 int _end_lineno = _token->end_lineno;
4642 UNUSED(_end_lineno); // Only used by EXTRA macro
4643 int _end_col_offset = _token->end_col_offset;
4644 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004645 _res = CHECK_VERSION ( stmt_ty , 5 , "Async with statements are" , _PyAST_AsyncWith ( a , b , NULL , EXTRA ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004646 if (_res == NULL && PyErr_Occurred()) {
4647 p->error_indicator = 1;
4648 D(p->level--);
4649 return NULL;
4650 }
4651 goto done;
4652 }
4653 p->mark = _mark;
4654 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4655 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block"));
4656 }
4657 { // ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block
4658 if (p->error_indicator) {
4659 D(p->level--);
4660 return NULL;
4661 }
4662 D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4663 Token * _keyword;
4664 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004665 asdl_withitem_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004666 Token * async_var;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004667 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004668 void *tc;
4669 if (
4670 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
4671 &&
4672 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
4673 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01004674 (a = (asdl_withitem_seq*)_gather_45_rule(p)) // ','.with_item+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004675 &&
4676 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
4677 &&
4678 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
4679 &&
4680 (b = block_rule(p)) // block
4681 )
4682 {
4683 D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4684 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4685 if (_token == NULL) {
4686 D(p->level--);
4687 return NULL;
4688 }
4689 int _end_lineno = _token->end_lineno;
4690 UNUSED(_end_lineno); // Only used by EXTRA macro
4691 int _end_col_offset = _token->end_col_offset;
4692 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004693 _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 +01004694 if (_res == NULL && PyErr_Occurred()) {
4695 p->error_indicator = 1;
4696 D(p->level--);
4697 return NULL;
4698 }
4699 goto done;
4700 }
4701 p->mark = _mark;
4702 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4703 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4704 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004705 if (p->call_invalid_rules) { // invalid_with_stmt
4706 if (p->error_indicator) {
4707 D(p->level--);
4708 return NULL;
4709 }
4710 D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_with_stmt"));
4711 void *invalid_with_stmt_var;
4712 if (
4713 (invalid_with_stmt_var = invalid_with_stmt_rule(p)) // invalid_with_stmt
4714 )
4715 {
4716 D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_with_stmt"));
4717 _res = invalid_with_stmt_var;
4718 goto done;
4719 }
4720 p->mark = _mark;
4721 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4722 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_with_stmt"));
4723 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004724 _res = NULL;
4725 done:
4726 D(p->level--);
4727 return _res;
4728}
4729
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004730// with_item:
4731// | expression 'as' star_target &(',' | ')' | ':')
4732// | invalid_with_item
4733// | expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004734static withitem_ty
4735with_item_rule(Parser *p)
4736{
4737 D(p->level++);
4738 if (p->error_indicator) {
4739 D(p->level--);
4740 return NULL;
4741 }
4742 withitem_ty _res = NULL;
4743 int _mark = p->mark;
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004744 { // expression 'as' star_target &(',' | ')' | ':')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004745 if (p->error_indicator) {
4746 D(p->level--);
4747 return NULL;
4748 }
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004749 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 +03004750 Token * _keyword;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004751 expr_ty e;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004752 expr_ty t;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004753 if (
4754 (e = expression_rule(p)) // expression
4755 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004756 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
4757 &&
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004758 (t = star_target_rule(p)) // star_target
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004759 &&
4760 _PyPegen_lookahead(1, _tmp_47_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004761 )
4762 {
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004763 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 +02004764 _res = _PyAST_withitem ( e , t , p -> arena );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004765 if (_res == NULL && PyErr_Occurred()) {
4766 p->error_indicator = 1;
4767 D(p->level--);
4768 return NULL;
4769 }
4770 goto done;
4771 }
4772 p->mark = _mark;
4773 D(fprintf(stderr, "%*c%s with_item[%d-%d]: %s failed!\n", p->level, ' ',
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004774 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression 'as' star_target &(',' | ')' | ':')"));
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004775 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02004776 if (p->call_invalid_rules) { // invalid_with_item
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004777 if (p->error_indicator) {
4778 D(p->level--);
4779 return NULL;
4780 }
4781 D(fprintf(stderr, "%*c> with_item[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_with_item"));
4782 void *invalid_with_item_var;
4783 if (
4784 (invalid_with_item_var = invalid_with_item_rule(p)) // invalid_with_item
4785 )
4786 {
4787 D(fprintf(stderr, "%*c+ with_item[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_with_item"));
4788 _res = invalid_with_item_var;
4789 goto done;
4790 }
4791 p->mark = _mark;
4792 D(fprintf(stderr, "%*c%s with_item[%d-%d]: %s failed!\n", p->level, ' ',
4793 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_with_item"));
4794 }
4795 { // expression
4796 if (p->error_indicator) {
4797 D(p->level--);
4798 return NULL;
4799 }
4800 D(fprintf(stderr, "%*c> with_item[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression"));
4801 expr_ty e;
4802 if (
4803 (e = expression_rule(p)) // expression
4804 )
4805 {
4806 D(fprintf(stderr, "%*c+ with_item[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression"));
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004807 _res = _PyAST_withitem ( e , NULL , p -> arena );
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004808 if (_res == NULL && PyErr_Occurred()) {
4809 p->error_indicator = 1;
4810 D(p->level--);
4811 return NULL;
4812 }
4813 goto done;
4814 }
4815 p->mark = _mark;
4816 D(fprintf(stderr, "%*c%s with_item[%d-%d]: %s failed!\n", p->level, ' ',
4817 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004818 }
4819 _res = NULL;
4820 done:
4821 D(p->level--);
4822 return _res;
4823}
4824
4825// try_stmt:
Pablo Galindo56c95df2021-04-21 15:28:21 +01004826// | invalid_try_stmt
Pablo Galindo58fb1562021-02-02 19:54:22 +00004827// | 'try' &&':' block finally_block
4828// | 'try' &&':' block except_block+ else_block? finally_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004829static stmt_ty
4830try_stmt_rule(Parser *p)
4831{
4832 D(p->level++);
4833 if (p->error_indicator) {
4834 D(p->level--);
4835 return NULL;
4836 }
4837 stmt_ty _res = NULL;
4838 int _mark = p->mark;
4839 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4840 p->error_indicator = 1;
4841 D(p->level--);
4842 return NULL;
4843 }
4844 int _start_lineno = p->tokens[_mark]->lineno;
4845 UNUSED(_start_lineno); // Only used by EXTRA macro
4846 int _start_col_offset = p->tokens[_mark]->col_offset;
4847 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo56c95df2021-04-21 15:28:21 +01004848 if (p->call_invalid_rules) { // invalid_try_stmt
4849 if (p->error_indicator) {
4850 D(p->level--);
4851 return NULL;
4852 }
4853 D(fprintf(stderr, "%*c> try_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_try_stmt"));
4854 void *invalid_try_stmt_var;
4855 if (
4856 (invalid_try_stmt_var = invalid_try_stmt_rule(p)) // invalid_try_stmt
4857 )
4858 {
4859 D(fprintf(stderr, "%*c+ try_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_try_stmt"));
4860 _res = invalid_try_stmt_var;
4861 goto done;
4862 }
4863 p->mark = _mark;
4864 D(fprintf(stderr, "%*c%s try_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4865 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_try_stmt"));
4866 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004867 { // 'try' &&':' block finally_block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004868 if (p->error_indicator) {
4869 D(p->level--);
4870 return NULL;
4871 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004872 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 +01004873 Token * _keyword;
4874 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004875 asdl_stmt_seq* b;
4876 asdl_stmt_seq* f;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004877 if (
4878 (_keyword = _PyPegen_expect_token(p, 511)) // token='try'
4879 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00004880 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004881 &&
4882 (b = block_rule(p)) // block
4883 &&
4884 (f = finally_block_rule(p)) // finally_block
4885 )
4886 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00004887 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 +01004888 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4889 if (_token == NULL) {
4890 D(p->level--);
4891 return NULL;
4892 }
4893 int _end_lineno = _token->end_lineno;
4894 UNUSED(_end_lineno); // Only used by EXTRA macro
4895 int _end_col_offset = _token->end_col_offset;
4896 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004897 _res = _PyAST_Try ( b , NULL , NULL , f , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004898 if (_res == NULL && PyErr_Occurred()) {
4899 p->error_indicator = 1;
4900 D(p->level--);
4901 return NULL;
4902 }
4903 goto done;
4904 }
4905 p->mark = _mark;
4906 D(fprintf(stderr, "%*c%s try_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00004907 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'try' &&':' block finally_block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004908 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004909 { // 'try' &&':' block except_block+ else_block? finally_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004910 if (p->error_indicator) {
4911 D(p->level--);
4912 return NULL;
4913 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004914 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 +01004915 Token * _keyword;
4916 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004917 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004918 void *el;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004919 asdl_excepthandler_seq* ex;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004920 void *f;
4921 if (
4922 (_keyword = _PyPegen_expect_token(p, 511)) // token='try'
4923 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00004924 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004925 &&
4926 (b = block_rule(p)) // block
4927 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01004928 (ex = (asdl_excepthandler_seq*)_loop1_48_rule(p)) // except_block+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004929 &&
4930 (el = else_block_rule(p), 1) // else_block?
4931 &&
4932 (f = finally_block_rule(p), 1) // finally_block?
4933 )
4934 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00004935 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 +01004936 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4937 if (_token == NULL) {
4938 D(p->level--);
4939 return NULL;
4940 }
4941 int _end_lineno = _token->end_lineno;
4942 UNUSED(_end_lineno); // Only used by EXTRA macro
4943 int _end_col_offset = _token->end_col_offset;
4944 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004945 _res = _PyAST_Try ( b , ex , el , f , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004946 if (_res == NULL && PyErr_Occurred()) {
4947 p->error_indicator = 1;
4948 D(p->level--);
4949 return NULL;
4950 }
4951 goto done;
4952 }
4953 p->mark = _mark;
4954 D(fprintf(stderr, "%*c%s try_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00004955 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'try' &&':' block except_block+ else_block? finally_block?"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004956 }
4957 _res = NULL;
4958 done:
4959 D(p->level--);
4960 return _res;
4961}
4962
Pablo Galindo206cbda2021-02-07 18:42:21 +00004963// except_block:
Pablo Galindo56c95df2021-04-21 15:28:21 +01004964// | invalid_except_stmt_indent
Pablo Galindo206cbda2021-02-07 18:42:21 +00004965// | 'except' expression ['as' NAME] ':' block
4966// | 'except' ':' block
Pablo Galindo56c95df2021-04-21 15:28:21 +01004967// | invalid_except_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004968static excepthandler_ty
4969except_block_rule(Parser *p)
4970{
4971 D(p->level++);
4972 if (p->error_indicator) {
4973 D(p->level--);
4974 return NULL;
4975 }
4976 excepthandler_ty _res = NULL;
4977 int _mark = p->mark;
4978 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4979 p->error_indicator = 1;
4980 D(p->level--);
4981 return NULL;
4982 }
4983 int _start_lineno = p->tokens[_mark]->lineno;
4984 UNUSED(_start_lineno); // Only used by EXTRA macro
4985 int _start_col_offset = p->tokens[_mark]->col_offset;
4986 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo56c95df2021-04-21 15:28:21 +01004987 if (p->call_invalid_rules) { // invalid_except_stmt_indent
4988 if (p->error_indicator) {
4989 D(p->level--);
4990 return NULL;
4991 }
4992 D(fprintf(stderr, "%*c> except_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_except_stmt_indent"));
4993 void *invalid_except_stmt_indent_var;
4994 if (
4995 (invalid_except_stmt_indent_var = invalid_except_stmt_indent_rule(p)) // invalid_except_stmt_indent
4996 )
4997 {
4998 D(fprintf(stderr, "%*c+ except_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_except_stmt_indent"));
4999 _res = invalid_except_stmt_indent_var;
5000 goto done;
5001 }
5002 p->mark = _mark;
5003 D(fprintf(stderr, "%*c%s except_block[%d-%d]: %s failed!\n", p->level, ' ',
5004 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_except_stmt_indent"));
5005 }
Pablo Galindo206cbda2021-02-07 18:42:21 +00005006 { // 'except' expression ['as' NAME] ':' block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005007 if (p->error_indicator) {
5008 D(p->level--);
5009 return NULL;
5010 }
Pablo Galindo206cbda2021-02-07 18:42:21 +00005011 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 +01005012 Token * _keyword;
5013 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01005014 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005015 expr_ty e;
5016 void *t;
5017 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03005018 (_keyword = _PyPegen_expect_token(p, 521)) // token='except'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005019 &&
5020 (e = expression_rule(p)) // expression
5021 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03005022 (t = _tmp_49_rule(p), 1) // ['as' NAME]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005023 &&
Pablo Galindo206cbda2021-02-07 18:42:21 +00005024 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005025 &&
5026 (b = block_rule(p)) // block
5027 )
5028 {
Pablo Galindo206cbda2021-02-07 18:42:21 +00005029 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 +01005030 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5031 if (_token == NULL) {
5032 D(p->level--);
5033 return NULL;
5034 }
5035 int _end_lineno = _token->end_lineno;
5036 UNUSED(_end_lineno); // Only used by EXTRA macro
5037 int _end_col_offset = _token->end_col_offset;
5038 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02005039 _res = _PyAST_ExceptHandler ( e , ( t ) ? ( ( expr_ty ) t ) -> v . Name . id : NULL , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005040 if (_res == NULL && PyErr_Occurred()) {
5041 p->error_indicator = 1;
5042 D(p->level--);
5043 return NULL;
5044 }
5045 goto done;
5046 }
5047 p->mark = _mark;
5048 D(fprintf(stderr, "%*c%s except_block[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo206cbda2021-02-07 18:42:21 +00005049 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' expression ['as' NAME] ':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005050 }
Pablo Galindo206cbda2021-02-07 18:42:21 +00005051 { // 'except' ':' block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005052 if (p->error_indicator) {
5053 D(p->level--);
5054 return NULL;
5055 }
Pablo Galindo206cbda2021-02-07 18:42:21 +00005056 D(fprintf(stderr, "%*c> except_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' ':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005057 Token * _keyword;
5058 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01005059 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005060 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03005061 (_keyword = _PyPegen_expect_token(p, 521)) // token='except'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005062 &&
Pablo Galindo206cbda2021-02-07 18:42:21 +00005063 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005064 &&
5065 (b = block_rule(p)) // block
5066 )
5067 {
Pablo Galindo206cbda2021-02-07 18:42:21 +00005068 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 +01005069 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5070 if (_token == NULL) {
5071 D(p->level--);
5072 return NULL;
5073 }
5074 int _end_lineno = _token->end_lineno;
5075 UNUSED(_end_lineno); // Only used by EXTRA macro
5076 int _end_col_offset = _token->end_col_offset;
5077 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02005078 _res = _PyAST_ExceptHandler ( NULL , NULL , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005079 if (_res == NULL && PyErr_Occurred()) {
5080 p->error_indicator = 1;
5081 D(p->level--);
5082 return NULL;
5083 }
5084 goto done;
5085 }
5086 p->mark = _mark;
5087 D(fprintf(stderr, "%*c%s except_block[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo206cbda2021-02-07 18:42:21 +00005088 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' ':' block"));
5089 }
Pablo Galindo56c95df2021-04-21 15:28:21 +01005090 if (p->call_invalid_rules) { // invalid_except_stmt
Pablo Galindo206cbda2021-02-07 18:42:21 +00005091 if (p->error_indicator) {
5092 D(p->level--);
5093 return NULL;
5094 }
Pablo Galindo56c95df2021-04-21 15:28:21 +01005095 D(fprintf(stderr, "%*c> except_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_except_stmt"));
5096 void *invalid_except_stmt_var;
Pablo Galindo206cbda2021-02-07 18:42:21 +00005097 if (
Pablo Galindo56c95df2021-04-21 15:28:21 +01005098 (invalid_except_stmt_var = invalid_except_stmt_rule(p)) // invalid_except_stmt
Pablo Galindo206cbda2021-02-07 18:42:21 +00005099 )
5100 {
Pablo Galindo56c95df2021-04-21 15:28:21 +01005101 D(fprintf(stderr, "%*c+ except_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_except_stmt"));
5102 _res = invalid_except_stmt_var;
Pablo Galindo206cbda2021-02-07 18:42:21 +00005103 goto done;
5104 }
5105 p->mark = _mark;
5106 D(fprintf(stderr, "%*c%s except_block[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo56c95df2021-04-21 15:28:21 +01005107 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_except_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005108 }
5109 _res = NULL;
5110 done:
5111 D(p->level--);
5112 return _res;
5113}
5114
Pablo Galindo56c95df2021-04-21 15:28:21 +01005115// finally_block: invalid_finally_stmt | 'finally' &&':' block
Pablo Galindoa5634c42020-09-16 19:42:00 +01005116static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005117finally_block_rule(Parser *p)
5118{
5119 D(p->level++);
5120 if (p->error_indicator) {
5121 D(p->level--);
5122 return NULL;
5123 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01005124 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005125 int _mark = p->mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +01005126 if (p->call_invalid_rules) { // invalid_finally_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005127 if (p->error_indicator) {
5128 D(p->level--);
5129 return NULL;
5130 }
Pablo Galindo56c95df2021-04-21 15:28:21 +01005131 D(fprintf(stderr, "%*c> finally_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_finally_stmt"));
5132 void *invalid_finally_stmt_var;
5133 if (
5134 (invalid_finally_stmt_var = invalid_finally_stmt_rule(p)) // invalid_finally_stmt
5135 )
5136 {
5137 D(fprintf(stderr, "%*c+ finally_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_finally_stmt"));
5138 _res = invalid_finally_stmt_var;
5139 goto done;
5140 }
5141 p->mark = _mark;
5142 D(fprintf(stderr, "%*c%s finally_block[%d-%d]: %s failed!\n", p->level, ' ',
5143 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_finally_stmt"));
5144 }
5145 { // 'finally' &&':' block
5146 if (p->error_indicator) {
5147 D(p->level--);
5148 return NULL;
5149 }
5150 D(fprintf(stderr, "%*c> finally_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'finally' &&':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005151 Token * _keyword;
5152 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01005153 asdl_stmt_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005154 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03005155 (_keyword = _PyPegen_expect_token(p, 522)) // token='finally'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005156 &&
Pablo Galindo56c95df2021-04-21 15:28:21 +01005157 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005158 &&
5159 (a = block_rule(p)) // block
5160 )
5161 {
Pablo Galindo56c95df2021-04-21 15:28:21 +01005162 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 +01005163 _res = a;
5164 if (_res == NULL && PyErr_Occurred()) {
5165 p->error_indicator = 1;
5166 D(p->level--);
5167 return NULL;
5168 }
5169 goto done;
5170 }
5171 p->mark = _mark;
5172 D(fprintf(stderr, "%*c%s finally_block[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo56c95df2021-04-21 15:28:21 +01005173 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'finally' &&':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005174 }
5175 _res = NULL;
5176 done:
5177 D(p->level--);
5178 return _res;
5179}
5180
Pablo Galindo08fb8ac2021-03-18 01:03:11 +00005181// match_stmt:
5182// | "match" subject_expr ':' NEWLINE INDENT case_block+ DEDENT
5183// | invalid_match_stmt
Brandt Bucher145bf262021-02-26 14:51:55 -08005184static stmt_ty
5185match_stmt_rule(Parser *p)
5186{
5187 D(p->level++);
5188 if (p->error_indicator) {
5189 D(p->level--);
5190 return NULL;
5191 }
5192 stmt_ty _res = NULL;
5193 int _mark = p->mark;
5194 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
5195 p->error_indicator = 1;
5196 D(p->level--);
5197 return NULL;
5198 }
5199 int _start_lineno = p->tokens[_mark]->lineno;
5200 UNUSED(_start_lineno); // Only used by EXTRA macro
5201 int _start_col_offset = p->tokens[_mark]->col_offset;
5202 UNUSED(_start_col_offset); // Only used by EXTRA macro
5203 { // "match" subject_expr ':' NEWLINE INDENT case_block+ DEDENT
5204 if (p->error_indicator) {
5205 D(p->level--);
5206 return NULL;
5207 }
5208 D(fprintf(stderr, "%*c> match_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"match\" subject_expr ':' NEWLINE INDENT case_block+ DEDENT"));
5209 expr_ty _keyword;
5210 Token * _literal;
5211 asdl_match_case_seq* cases;
5212 Token * dedent_var;
5213 Token * indent_var;
5214 Token * newline_var;
5215 expr_ty subject;
5216 if (
5217 (_keyword = _PyPegen_expect_soft_keyword(p, "match")) // soft_keyword='"match"'
5218 &&
5219 (subject = subject_expr_rule(p)) // subject_expr
5220 &&
5221 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
5222 &&
5223 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
5224 &&
5225 (indent_var = _PyPegen_expect_token(p, INDENT)) // token='INDENT'
5226 &&
5227 (cases = (asdl_match_case_seq*)_loop1_50_rule(p)) // case_block+
5228 &&
5229 (dedent_var = _PyPegen_expect_token(p, DEDENT)) // token='DEDENT'
5230 )
5231 {
5232 D(fprintf(stderr, "%*c+ match_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"match\" subject_expr ':' NEWLINE INDENT case_block+ DEDENT"));
5233 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5234 if (_token == NULL) {
5235 D(p->level--);
5236 return NULL;
5237 }
5238 int _end_lineno = _token->end_lineno;
5239 UNUSED(_end_lineno); // Only used by EXTRA macro
5240 int _end_col_offset = _token->end_col_offset;
5241 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02005242 _res = CHECK_VERSION ( stmt_ty , 10 , "Pattern matching is" , _PyAST_Match ( subject , cases , EXTRA ) );
Brandt Bucher145bf262021-02-26 14:51:55 -08005243 if (_res == NULL && PyErr_Occurred()) {
5244 p->error_indicator = 1;
5245 D(p->level--);
5246 return NULL;
5247 }
5248 goto done;
5249 }
5250 p->mark = _mark;
5251 D(fprintf(stderr, "%*c%s match_stmt[%d-%d]: %s failed!\n", p->level, ' ',
5252 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"match\" subject_expr ':' NEWLINE INDENT case_block+ DEDENT"));
5253 }
Pablo Galindo08fb8ac2021-03-18 01:03:11 +00005254 if (p->call_invalid_rules) { // invalid_match_stmt
5255 if (p->error_indicator) {
5256 D(p->level--);
5257 return NULL;
5258 }
5259 D(fprintf(stderr, "%*c> match_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_match_stmt"));
5260 void *invalid_match_stmt_var;
5261 if (
5262 (invalid_match_stmt_var = invalid_match_stmt_rule(p)) // invalid_match_stmt
5263 )
5264 {
5265 D(fprintf(stderr, "%*c+ match_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_match_stmt"));
5266 _res = invalid_match_stmt_var;
5267 goto done;
5268 }
5269 p->mark = _mark;
5270 D(fprintf(stderr, "%*c%s match_stmt[%d-%d]: %s failed!\n", p->level, ' ',
5271 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_match_stmt"));
5272 }
Brandt Bucher145bf262021-02-26 14:51:55 -08005273 _res = NULL;
5274 done:
5275 D(p->level--);
5276 return _res;
5277}
5278
5279// subject_expr: star_named_expression ',' star_named_expressions? | named_expression
5280static expr_ty
5281subject_expr_rule(Parser *p)
5282{
5283 D(p->level++);
5284 if (p->error_indicator) {
5285 D(p->level--);
5286 return NULL;
5287 }
5288 expr_ty _res = NULL;
5289 int _mark = p->mark;
5290 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
5291 p->error_indicator = 1;
5292 D(p->level--);
5293 return NULL;
5294 }
5295 int _start_lineno = p->tokens[_mark]->lineno;
5296 UNUSED(_start_lineno); // Only used by EXTRA macro
5297 int _start_col_offset = p->tokens[_mark]->col_offset;
5298 UNUSED(_start_col_offset); // Only used by EXTRA macro
5299 { // star_named_expression ',' star_named_expressions?
5300 if (p->error_indicator) {
5301 D(p->level--);
5302 return NULL;
5303 }
5304 D(fprintf(stderr, "%*c> subject_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_named_expression ',' star_named_expressions?"));
5305 Token * _literal;
5306 expr_ty value;
5307 void *values;
5308 if (
5309 (value = star_named_expression_rule(p)) // star_named_expression
5310 &&
5311 (_literal = _PyPegen_expect_token(p, 12)) // token=','
5312 &&
5313 (values = star_named_expressions_rule(p), 1) // star_named_expressions?
5314 )
5315 {
5316 D(fprintf(stderr, "%*c+ subject_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_named_expression ',' star_named_expressions?"));
5317 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5318 if (_token == NULL) {
5319 D(p->level--);
5320 return NULL;
5321 }
5322 int _end_lineno = _token->end_lineno;
5323 UNUSED(_end_lineno); // Only used by EXTRA macro
5324 int _end_col_offset = _token->end_col_offset;
5325 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02005326 _res = _PyAST_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , value , values ) ) , Load , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08005327 if (_res == NULL && PyErr_Occurred()) {
5328 p->error_indicator = 1;
5329 D(p->level--);
5330 return NULL;
5331 }
5332 goto done;
5333 }
5334 p->mark = _mark;
5335 D(fprintf(stderr, "%*c%s subject_expr[%d-%d]: %s failed!\n", p->level, ' ',
5336 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression ',' star_named_expressions?"));
5337 }
5338 { // named_expression
5339 if (p->error_indicator) {
5340 D(p->level--);
5341 return NULL;
5342 }
5343 D(fprintf(stderr, "%*c> subject_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression"));
5344 expr_ty named_expression_var;
5345 if (
5346 (named_expression_var = named_expression_rule(p)) // named_expression
5347 )
5348 {
5349 D(fprintf(stderr, "%*c+ subject_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "named_expression"));
5350 _res = named_expression_var;
5351 goto done;
5352 }
5353 p->mark = _mark;
5354 D(fprintf(stderr, "%*c%s subject_expr[%d-%d]: %s failed!\n", p->level, ' ',
5355 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression"));
5356 }
5357 _res = NULL;
5358 done:
5359 D(p->level--);
5360 return _res;
5361}
5362
Pablo Galindo56c95df2021-04-21 15:28:21 +01005363// case_block: invalid_case_block | "case" patterns guard? ':' block
Brandt Bucher145bf262021-02-26 14:51:55 -08005364static match_case_ty
5365case_block_rule(Parser *p)
5366{
5367 D(p->level++);
5368 if (p->error_indicator) {
5369 D(p->level--);
5370 return NULL;
5371 }
5372 match_case_ty _res = NULL;
5373 int _mark = p->mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +01005374 if (p->call_invalid_rules) { // invalid_case_block
5375 if (p->error_indicator) {
5376 D(p->level--);
5377 return NULL;
5378 }
5379 D(fprintf(stderr, "%*c> case_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_case_block"));
5380 void *invalid_case_block_var;
5381 if (
5382 (invalid_case_block_var = invalid_case_block_rule(p)) // invalid_case_block
5383 )
5384 {
5385 D(fprintf(stderr, "%*c+ case_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_case_block"));
5386 _res = invalid_case_block_var;
5387 goto done;
5388 }
5389 p->mark = _mark;
5390 D(fprintf(stderr, "%*c%s case_block[%d-%d]: %s failed!\n", p->level, ' ',
5391 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_case_block"));
5392 }
Brandt Bucher145bf262021-02-26 14:51:55 -08005393 { // "case" patterns guard? ':' block
5394 if (p->error_indicator) {
5395 D(p->level--);
5396 return NULL;
5397 }
5398 D(fprintf(stderr, "%*c> case_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"case\" patterns guard? ':' block"));
5399 expr_ty _keyword;
5400 Token * _literal;
5401 asdl_stmt_seq* body;
5402 void *guard;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005403 pattern_ty pattern;
Brandt Bucher145bf262021-02-26 14:51:55 -08005404 if (
5405 (_keyword = _PyPegen_expect_soft_keyword(p, "case")) // soft_keyword='"case"'
5406 &&
5407 (pattern = patterns_rule(p)) // patterns
5408 &&
5409 (guard = guard_rule(p), 1) // guard?
5410 &&
5411 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
5412 &&
5413 (body = block_rule(p)) // block
5414 )
5415 {
5416 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 +02005417 _res = _PyAST_match_case ( pattern , guard , body , p -> arena );
Brandt Bucher145bf262021-02-26 14:51:55 -08005418 if (_res == NULL && PyErr_Occurred()) {
5419 p->error_indicator = 1;
5420 D(p->level--);
5421 return NULL;
5422 }
5423 goto done;
5424 }
5425 p->mark = _mark;
5426 D(fprintf(stderr, "%*c%s case_block[%d-%d]: %s failed!\n", p->level, ' ',
5427 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"case\" patterns guard? ':' block"));
5428 }
5429 _res = NULL;
5430 done:
5431 D(p->level--);
5432 return _res;
5433}
5434
5435// guard: 'if' named_expression
5436static expr_ty
5437guard_rule(Parser *p)
5438{
5439 D(p->level++);
5440 if (p->error_indicator) {
5441 D(p->level--);
5442 return NULL;
5443 }
5444 expr_ty _res = NULL;
5445 int _mark = p->mark;
5446 { // 'if' named_expression
5447 if (p->error_indicator) {
5448 D(p->level--);
5449 return NULL;
5450 }
5451 D(fprintf(stderr, "%*c> guard[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' named_expression"));
5452 Token * _keyword;
5453 expr_ty guard;
5454 if (
5455 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
5456 &&
5457 (guard = named_expression_rule(p)) // named_expression
5458 )
5459 {
5460 D(fprintf(stderr, "%*c+ guard[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' named_expression"));
5461 _res = guard;
5462 if (_res == NULL && PyErr_Occurred()) {
5463 p->error_indicator = 1;
5464 D(p->level--);
5465 return NULL;
5466 }
5467 goto done;
5468 }
5469 p->mark = _mark;
5470 D(fprintf(stderr, "%*c%s guard[%d-%d]: %s failed!\n", p->level, ' ',
5471 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' named_expression"));
5472 }
5473 _res = NULL;
5474 done:
5475 D(p->level--);
5476 return _res;
5477}
5478
5479// patterns: open_sequence_pattern | pattern
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005480static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08005481patterns_rule(Parser *p)
5482{
5483 D(p->level++);
5484 if (p->error_indicator) {
5485 D(p->level--);
5486 return NULL;
5487 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005488 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08005489 int _mark = p->mark;
5490 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
5491 p->error_indicator = 1;
5492 D(p->level--);
5493 return NULL;
5494 }
5495 int _start_lineno = p->tokens[_mark]->lineno;
5496 UNUSED(_start_lineno); // Only used by EXTRA macro
5497 int _start_col_offset = p->tokens[_mark]->col_offset;
5498 UNUSED(_start_col_offset); // Only used by EXTRA macro
5499 { // open_sequence_pattern
5500 if (p->error_indicator) {
5501 D(p->level--);
5502 return NULL;
5503 }
5504 D(fprintf(stderr, "%*c> patterns[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "open_sequence_pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005505 asdl_pattern_seq* patterns;
Brandt Bucher145bf262021-02-26 14:51:55 -08005506 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005507 (patterns = (asdl_pattern_seq*)open_sequence_pattern_rule(p)) // open_sequence_pattern
Brandt Bucher145bf262021-02-26 14:51:55 -08005508 )
5509 {
5510 D(fprintf(stderr, "%*c+ patterns[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "open_sequence_pattern"));
5511 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5512 if (_token == NULL) {
5513 D(p->level--);
5514 return NULL;
5515 }
5516 int _end_lineno = _token->end_lineno;
5517 UNUSED(_end_lineno); // Only used by EXTRA macro
5518 int _end_col_offset = _token->end_col_offset;
5519 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005520 _res = _PyAST_MatchSequence ( patterns , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08005521 if (_res == NULL && PyErr_Occurred()) {
5522 p->error_indicator = 1;
5523 D(p->level--);
5524 return NULL;
5525 }
5526 goto done;
5527 }
5528 p->mark = _mark;
5529 D(fprintf(stderr, "%*c%s patterns[%d-%d]: %s failed!\n", p->level, ' ',
5530 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "open_sequence_pattern"));
5531 }
5532 { // pattern
5533 if (p->error_indicator) {
5534 D(p->level--);
5535 return NULL;
5536 }
5537 D(fprintf(stderr, "%*c> patterns[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005538 pattern_ty pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08005539 if (
5540 (pattern_var = pattern_rule(p)) // pattern
5541 )
5542 {
5543 D(fprintf(stderr, "%*c+ patterns[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "pattern"));
5544 _res = pattern_var;
5545 goto done;
5546 }
5547 p->mark = _mark;
5548 D(fprintf(stderr, "%*c%s patterns[%d-%d]: %s failed!\n", p->level, ' ',
5549 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "pattern"));
5550 }
5551 _res = NULL;
5552 done:
5553 D(p->level--);
5554 return _res;
5555}
5556
5557// pattern: as_pattern | or_pattern
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005558static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08005559pattern_rule(Parser *p)
5560{
5561 D(p->level++);
5562 if (p->error_indicator) {
5563 D(p->level--);
5564 return NULL;
5565 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005566 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08005567 int _mark = p->mark;
5568 { // as_pattern
5569 if (p->error_indicator) {
5570 D(p->level--);
5571 return NULL;
5572 }
5573 D(fprintf(stderr, "%*c> pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "as_pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005574 pattern_ty as_pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08005575 if (
5576 (as_pattern_var = as_pattern_rule(p)) // as_pattern
5577 )
5578 {
5579 D(fprintf(stderr, "%*c+ pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "as_pattern"));
5580 _res = as_pattern_var;
5581 goto done;
5582 }
5583 p->mark = _mark;
5584 D(fprintf(stderr, "%*c%s pattern[%d-%d]: %s failed!\n", p->level, ' ',
5585 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "as_pattern"));
5586 }
5587 { // or_pattern
5588 if (p->error_indicator) {
5589 D(p->level--);
5590 return NULL;
5591 }
5592 D(fprintf(stderr, "%*c> pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "or_pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005593 pattern_ty or_pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08005594 if (
5595 (or_pattern_var = or_pattern_rule(p)) // or_pattern
5596 )
5597 {
5598 D(fprintf(stderr, "%*c+ pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "or_pattern"));
5599 _res = or_pattern_var;
5600 goto done;
5601 }
5602 p->mark = _mark;
5603 D(fprintf(stderr, "%*c%s pattern[%d-%d]: %s failed!\n", p->level, ' ',
5604 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "or_pattern"));
5605 }
5606 _res = NULL;
5607 done:
5608 D(p->level--);
5609 return _res;
5610}
5611
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005612// as_pattern: or_pattern 'as' pattern_capture_target
5613static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08005614as_pattern_rule(Parser *p)
5615{
5616 D(p->level++);
5617 if (p->error_indicator) {
5618 D(p->level--);
5619 return NULL;
5620 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005621 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08005622 int _mark = p->mark;
5623 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
5624 p->error_indicator = 1;
5625 D(p->level--);
5626 return NULL;
5627 }
5628 int _start_lineno = p->tokens[_mark]->lineno;
5629 UNUSED(_start_lineno); // Only used by EXTRA macro
5630 int _start_col_offset = p->tokens[_mark]->col_offset;
5631 UNUSED(_start_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005632 { // or_pattern 'as' pattern_capture_target
Brandt Bucher145bf262021-02-26 14:51:55 -08005633 if (p->error_indicator) {
5634 D(p->level--);
5635 return NULL;
5636 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005637 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 -08005638 Token * _keyword;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005639 pattern_ty pattern;
Brandt Bucher145bf262021-02-26 14:51:55 -08005640 expr_ty target;
5641 if (
5642 (pattern = or_pattern_rule(p)) // or_pattern
5643 &&
5644 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
5645 &&
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005646 (target = pattern_capture_target_rule(p)) // pattern_capture_target
Brandt Bucher145bf262021-02-26 14:51:55 -08005647 )
5648 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005649 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 -08005650 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5651 if (_token == NULL) {
5652 D(p->level--);
5653 return NULL;
5654 }
5655 int _end_lineno = _token->end_lineno;
5656 UNUSED(_end_lineno); // Only used by EXTRA macro
5657 int _end_col_offset = _token->end_col_offset;
5658 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02005659 _res = _PyAST_MatchAs ( pattern , target -> v . Name . id , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08005660 if (_res == NULL && PyErr_Occurred()) {
5661 p->error_indicator = 1;
5662 D(p->level--);
5663 return NULL;
5664 }
5665 goto done;
5666 }
5667 p->mark = _mark;
5668 D(fprintf(stderr, "%*c%s as_pattern[%d-%d]: %s failed!\n", p->level, ' ',
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005669 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "or_pattern 'as' pattern_capture_target"));
Brandt Bucher145bf262021-02-26 14:51:55 -08005670 }
5671 _res = NULL;
5672 done:
5673 D(p->level--);
5674 return _res;
5675}
5676
5677// or_pattern: '|'.closed_pattern+
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005678static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08005679or_pattern_rule(Parser *p)
5680{
5681 D(p->level++);
5682 if (p->error_indicator) {
5683 D(p->level--);
5684 return NULL;
5685 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005686 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08005687 int _mark = p->mark;
5688 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
5689 p->error_indicator = 1;
5690 D(p->level--);
5691 return NULL;
5692 }
5693 int _start_lineno = p->tokens[_mark]->lineno;
5694 UNUSED(_start_lineno); // Only used by EXTRA macro
5695 int _start_col_offset = p->tokens[_mark]->col_offset;
5696 UNUSED(_start_col_offset); // Only used by EXTRA macro
5697 { // '|'.closed_pattern+
5698 if (p->error_indicator) {
5699 D(p->level--);
5700 return NULL;
5701 }
5702 D(fprintf(stderr, "%*c> or_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'|'.closed_pattern+"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005703 asdl_pattern_seq* patterns;
Brandt Bucher145bf262021-02-26 14:51:55 -08005704 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005705 (patterns = (asdl_pattern_seq*)_gather_51_rule(p)) // '|'.closed_pattern+
Brandt Bucher145bf262021-02-26 14:51:55 -08005706 )
5707 {
5708 D(fprintf(stderr, "%*c+ or_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'|'.closed_pattern+"));
5709 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5710 if (_token == NULL) {
5711 D(p->level--);
5712 return NULL;
5713 }
5714 int _end_lineno = _token->end_lineno;
5715 UNUSED(_end_lineno); // Only used by EXTRA macro
5716 int _end_col_offset = _token->end_col_offset;
5717 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02005718 _res = asdl_seq_LEN ( patterns ) == 1 ? asdl_seq_GET ( patterns , 0 ) : _PyAST_MatchOr ( patterns , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08005719 if (_res == NULL && PyErr_Occurred()) {
5720 p->error_indicator = 1;
5721 D(p->level--);
5722 return NULL;
5723 }
5724 goto done;
5725 }
5726 p->mark = _mark;
5727 D(fprintf(stderr, "%*c%s or_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5728 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'|'.closed_pattern+"));
5729 }
5730 _res = NULL;
5731 done:
5732 D(p->level--);
5733 return _res;
5734}
5735
5736// closed_pattern:
5737// | literal_pattern
5738// | capture_pattern
5739// | wildcard_pattern
5740// | value_pattern
5741// | group_pattern
5742// | sequence_pattern
5743// | mapping_pattern
5744// | class_pattern
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005745static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08005746closed_pattern_rule(Parser *p)
5747{
5748 D(p->level++);
5749 if (p->error_indicator) {
5750 D(p->level--);
5751 return NULL;
5752 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005753 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08005754 int _mark = p->mark;
5755 { // literal_pattern
5756 if (p->error_indicator) {
5757 D(p->level--);
5758 return NULL;
5759 }
5760 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "literal_pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005761 pattern_ty literal_pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08005762 if (
5763 (literal_pattern_var = literal_pattern_rule(p)) // literal_pattern
5764 )
5765 {
5766 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "literal_pattern"));
5767 _res = literal_pattern_var;
5768 goto done;
5769 }
5770 p->mark = _mark;
5771 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5772 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "literal_pattern"));
5773 }
5774 { // capture_pattern
5775 if (p->error_indicator) {
5776 D(p->level--);
5777 return NULL;
5778 }
5779 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "capture_pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005780 pattern_ty capture_pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08005781 if (
5782 (capture_pattern_var = capture_pattern_rule(p)) // capture_pattern
5783 )
5784 {
5785 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "capture_pattern"));
5786 _res = capture_pattern_var;
5787 goto done;
5788 }
5789 p->mark = _mark;
5790 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5791 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "capture_pattern"));
5792 }
5793 { // wildcard_pattern
5794 if (p->error_indicator) {
5795 D(p->level--);
5796 return NULL;
5797 }
5798 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "wildcard_pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005799 pattern_ty wildcard_pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08005800 if (
5801 (wildcard_pattern_var = wildcard_pattern_rule(p)) // wildcard_pattern
5802 )
5803 {
5804 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "wildcard_pattern"));
5805 _res = wildcard_pattern_var;
5806 goto done;
5807 }
5808 p->mark = _mark;
5809 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5810 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "wildcard_pattern"));
5811 }
5812 { // value_pattern
5813 if (p->error_indicator) {
5814 D(p->level--);
5815 return NULL;
5816 }
5817 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "value_pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005818 pattern_ty value_pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08005819 if (
5820 (value_pattern_var = value_pattern_rule(p)) // value_pattern
5821 )
5822 {
5823 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "value_pattern"));
5824 _res = value_pattern_var;
5825 goto done;
5826 }
5827 p->mark = _mark;
5828 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5829 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "value_pattern"));
5830 }
5831 { // group_pattern
5832 if (p->error_indicator) {
5833 D(p->level--);
5834 return NULL;
5835 }
5836 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "group_pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005837 pattern_ty group_pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08005838 if (
5839 (group_pattern_var = group_pattern_rule(p)) // group_pattern
5840 )
5841 {
5842 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "group_pattern"));
5843 _res = group_pattern_var;
5844 goto done;
5845 }
5846 p->mark = _mark;
5847 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5848 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "group_pattern"));
5849 }
5850 { // sequence_pattern
5851 if (p->error_indicator) {
5852 D(p->level--);
5853 return NULL;
5854 }
5855 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "sequence_pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005856 pattern_ty sequence_pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08005857 if (
5858 (sequence_pattern_var = sequence_pattern_rule(p)) // sequence_pattern
5859 )
5860 {
5861 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "sequence_pattern"));
5862 _res = sequence_pattern_var;
5863 goto done;
5864 }
5865 p->mark = _mark;
5866 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5867 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "sequence_pattern"));
5868 }
5869 { // mapping_pattern
5870 if (p->error_indicator) {
5871 D(p->level--);
5872 return NULL;
5873 }
5874 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "mapping_pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005875 pattern_ty mapping_pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08005876 if (
5877 (mapping_pattern_var = mapping_pattern_rule(p)) // mapping_pattern
5878 )
5879 {
5880 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "mapping_pattern"));
5881 _res = mapping_pattern_var;
5882 goto done;
5883 }
5884 p->mark = _mark;
5885 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5886 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "mapping_pattern"));
5887 }
5888 { // class_pattern
5889 if (p->error_indicator) {
5890 D(p->level--);
5891 return NULL;
5892 }
5893 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "class_pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005894 pattern_ty class_pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08005895 if (
5896 (class_pattern_var = class_pattern_rule(p)) // class_pattern
5897 )
5898 {
5899 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "class_pattern"));
5900 _res = class_pattern_var;
5901 goto done;
5902 }
5903 p->mark = _mark;
5904 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5905 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "class_pattern"));
5906 }
5907 _res = NULL;
5908 done:
5909 D(p->level--);
5910 return _res;
5911}
5912
5913// literal_pattern:
5914// | signed_number !('+' | '-')
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005915// | complex_number
Brandt Bucher145bf262021-02-26 14:51:55 -08005916// | strings
5917// | 'None'
5918// | 'True'
5919// | 'False'
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005920static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08005921literal_pattern_rule(Parser *p)
5922{
5923 D(p->level++);
5924 if (p->error_indicator) {
5925 D(p->level--);
5926 return NULL;
5927 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005928 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08005929 int _mark = p->mark;
5930 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
5931 p->error_indicator = 1;
5932 D(p->level--);
5933 return NULL;
5934 }
5935 int _start_lineno = p->tokens[_mark]->lineno;
5936 UNUSED(_start_lineno); // Only used by EXTRA macro
5937 int _start_col_offset = p->tokens[_mark]->col_offset;
5938 UNUSED(_start_col_offset); // Only used by EXTRA macro
5939 { // signed_number !('+' | '-')
5940 if (p->error_indicator) {
5941 D(p->level--);
5942 return NULL;
5943 }
5944 D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "signed_number !('+' | '-')"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005945 expr_ty value;
Brandt Bucher145bf262021-02-26 14:51:55 -08005946 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005947 (value = signed_number_rule(p)) // signed_number
Brandt Bucher145bf262021-02-26 14:51:55 -08005948 &&
5949 _PyPegen_lookahead(0, _tmp_53_rule, p)
5950 )
5951 {
5952 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 +10005953 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5954 if (_token == NULL) {
5955 D(p->level--);
5956 return NULL;
5957 }
5958 int _end_lineno = _token->end_lineno;
5959 UNUSED(_end_lineno); // Only used by EXTRA macro
5960 int _end_col_offset = _token->end_col_offset;
5961 UNUSED(_end_col_offset); // Only used by EXTRA macro
5962 _res = _PyAST_MatchValue ( value , EXTRA );
5963 if (_res == NULL && PyErr_Occurred()) {
5964 p->error_indicator = 1;
5965 D(p->level--);
5966 return NULL;
5967 }
Brandt Bucher145bf262021-02-26 14:51:55 -08005968 goto done;
5969 }
5970 p->mark = _mark;
5971 D(fprintf(stderr, "%*c%s literal_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5972 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "signed_number !('+' | '-')"));
5973 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005974 { // complex_number
Brandt Bucher145bf262021-02-26 14:51:55 -08005975 if (p->error_indicator) {
5976 D(p->level--);
5977 return NULL;
5978 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005979 D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "complex_number"));
5980 expr_ty value;
Brandt Bucher145bf262021-02-26 14:51:55 -08005981 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005982 (value = complex_number_rule(p)) // complex_number
Brandt Bucher145bf262021-02-26 14:51:55 -08005983 )
5984 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005985 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 -08005986 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5987 if (_token == NULL) {
5988 D(p->level--);
5989 return NULL;
5990 }
5991 int _end_lineno = _token->end_lineno;
5992 UNUSED(_end_lineno); // Only used by EXTRA macro
5993 int _end_col_offset = _token->end_col_offset;
5994 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005995 _res = _PyAST_MatchValue ( value , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08005996 if (_res == NULL && PyErr_Occurred()) {
5997 p->error_indicator = 1;
5998 D(p->level--);
5999 return NULL;
6000 }
6001 goto done;
6002 }
6003 p->mark = _mark;
6004 D(fprintf(stderr, "%*c%s literal_pattern[%d-%d]: %s failed!\n", p->level, ' ',
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006005 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "complex_number"));
Brandt Bucher145bf262021-02-26 14:51:55 -08006006 }
6007 { // strings
6008 if (p->error_indicator) {
6009 D(p->level--);
6010 return NULL;
6011 }
6012 D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "strings"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006013 expr_ty value;
Brandt Bucher145bf262021-02-26 14:51:55 -08006014 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006015 (value = strings_rule(p)) // strings
Brandt Bucher145bf262021-02-26 14:51:55 -08006016 )
6017 {
6018 D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "strings"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006019 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6020 if (_token == NULL) {
6021 D(p->level--);
6022 return NULL;
6023 }
6024 int _end_lineno = _token->end_lineno;
6025 UNUSED(_end_lineno); // Only used by EXTRA macro
6026 int _end_col_offset = _token->end_col_offset;
6027 UNUSED(_end_col_offset); // Only used by EXTRA macro
6028 _res = _PyAST_MatchValue ( value , EXTRA );
6029 if (_res == NULL && PyErr_Occurred()) {
6030 p->error_indicator = 1;
6031 D(p->level--);
6032 return NULL;
6033 }
Brandt Bucher145bf262021-02-26 14:51:55 -08006034 goto done;
6035 }
6036 p->mark = _mark;
6037 D(fprintf(stderr, "%*c%s literal_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6038 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "strings"));
6039 }
6040 { // 'None'
6041 if (p->error_indicator) {
6042 D(p->level--);
6043 return NULL;
6044 }
6045 D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'None'"));
6046 Token * _keyword;
6047 if (
6048 (_keyword = _PyPegen_expect_token(p, 523)) // token='None'
6049 )
6050 {
6051 D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'"));
6052 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6053 if (_token == NULL) {
6054 D(p->level--);
6055 return NULL;
6056 }
6057 int _end_lineno = _token->end_lineno;
6058 UNUSED(_end_lineno); // Only used by EXTRA macro
6059 int _end_col_offset = _token->end_col_offset;
6060 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006061 _res = _PyAST_MatchSingleton ( Py_None , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08006062 if (_res == NULL && PyErr_Occurred()) {
6063 p->error_indicator = 1;
6064 D(p->level--);
6065 return NULL;
6066 }
6067 goto done;
6068 }
6069 p->mark = _mark;
6070 D(fprintf(stderr, "%*c%s literal_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6071 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'None'"));
6072 }
6073 { // 'True'
6074 if (p->error_indicator) {
6075 D(p->level--);
6076 return NULL;
6077 }
6078 D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'True'"));
6079 Token * _keyword;
6080 if (
6081 (_keyword = _PyPegen_expect_token(p, 524)) // token='True'
6082 )
6083 {
6084 D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'"));
6085 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6086 if (_token == NULL) {
6087 D(p->level--);
6088 return NULL;
6089 }
6090 int _end_lineno = _token->end_lineno;
6091 UNUSED(_end_lineno); // Only used by EXTRA macro
6092 int _end_col_offset = _token->end_col_offset;
6093 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006094 _res = _PyAST_MatchSingleton ( Py_True , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08006095 if (_res == NULL && PyErr_Occurred()) {
6096 p->error_indicator = 1;
6097 D(p->level--);
6098 return NULL;
6099 }
6100 goto done;
6101 }
6102 p->mark = _mark;
6103 D(fprintf(stderr, "%*c%s literal_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6104 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'True'"));
6105 }
6106 { // 'False'
6107 if (p->error_indicator) {
6108 D(p->level--);
6109 return NULL;
6110 }
6111 D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False'"));
6112 Token * _keyword;
6113 if (
6114 (_keyword = _PyPegen_expect_token(p, 525)) // token='False'
6115 )
6116 {
6117 D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'"));
6118 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6119 if (_token == NULL) {
6120 D(p->level--);
6121 return NULL;
6122 }
6123 int _end_lineno = _token->end_lineno;
6124 UNUSED(_end_lineno); // Only used by EXTRA macro
6125 int _end_col_offset = _token->end_col_offset;
6126 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006127 _res = _PyAST_MatchSingleton ( Py_False , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08006128 if (_res == NULL && PyErr_Occurred()) {
6129 p->error_indicator = 1;
6130 D(p->level--);
6131 return NULL;
6132 }
6133 goto done;
6134 }
6135 p->mark = _mark;
6136 D(fprintf(stderr, "%*c%s literal_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6137 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'False'"));
6138 }
6139 _res = NULL;
6140 done:
6141 D(p->level--);
6142 return _res;
6143}
6144
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006145// literal_expr:
6146// | signed_number !('+' | '-')
6147// | complex_number
6148// | strings
6149// | 'None'
6150// | 'True'
6151// | 'False'
6152static expr_ty
6153literal_expr_rule(Parser *p)
6154{
6155 D(p->level++);
6156 if (p->error_indicator) {
6157 D(p->level--);
6158 return NULL;
6159 }
6160 expr_ty _res = NULL;
6161 int _mark = p->mark;
6162 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6163 p->error_indicator = 1;
6164 D(p->level--);
6165 return NULL;
6166 }
6167 int _start_lineno = p->tokens[_mark]->lineno;
6168 UNUSED(_start_lineno); // Only used by EXTRA macro
6169 int _start_col_offset = p->tokens[_mark]->col_offset;
6170 UNUSED(_start_col_offset); // Only used by EXTRA macro
6171 { // signed_number !('+' | '-')
6172 if (p->error_indicator) {
6173 D(p->level--);
6174 return NULL;
6175 }
6176 D(fprintf(stderr, "%*c> literal_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "signed_number !('+' | '-')"));
6177 expr_ty signed_number_var;
6178 if (
6179 (signed_number_var = signed_number_rule(p)) // signed_number
6180 &&
6181 _PyPegen_lookahead(0, _tmp_54_rule, p)
6182 )
6183 {
6184 D(fprintf(stderr, "%*c+ literal_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "signed_number !('+' | '-')"));
6185 _res = signed_number_var;
6186 goto done;
6187 }
6188 p->mark = _mark;
6189 D(fprintf(stderr, "%*c%s literal_expr[%d-%d]: %s failed!\n", p->level, ' ',
6190 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "signed_number !('+' | '-')"));
6191 }
6192 { // complex_number
6193 if (p->error_indicator) {
6194 D(p->level--);
6195 return NULL;
6196 }
6197 D(fprintf(stderr, "%*c> literal_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "complex_number"));
6198 expr_ty complex_number_var;
6199 if (
6200 (complex_number_var = complex_number_rule(p)) // complex_number
6201 )
6202 {
6203 D(fprintf(stderr, "%*c+ literal_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "complex_number"));
6204 _res = complex_number_var;
6205 goto done;
6206 }
6207 p->mark = _mark;
6208 D(fprintf(stderr, "%*c%s literal_expr[%d-%d]: %s failed!\n", p->level, ' ',
6209 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "complex_number"));
6210 }
6211 { // strings
6212 if (p->error_indicator) {
6213 D(p->level--);
6214 return NULL;
6215 }
6216 D(fprintf(stderr, "%*c> literal_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "strings"));
6217 expr_ty strings_var;
6218 if (
6219 (strings_var = strings_rule(p)) // strings
6220 )
6221 {
6222 D(fprintf(stderr, "%*c+ literal_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "strings"));
6223 _res = strings_var;
6224 goto done;
6225 }
6226 p->mark = _mark;
6227 D(fprintf(stderr, "%*c%s literal_expr[%d-%d]: %s failed!\n", p->level, ' ',
6228 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "strings"));
6229 }
6230 { // 'None'
6231 if (p->error_indicator) {
6232 D(p->level--);
6233 return NULL;
6234 }
6235 D(fprintf(stderr, "%*c> literal_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'None'"));
6236 Token * _keyword;
6237 if (
6238 (_keyword = _PyPegen_expect_token(p, 523)) // token='None'
6239 )
6240 {
6241 D(fprintf(stderr, "%*c+ literal_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'"));
6242 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6243 if (_token == NULL) {
6244 D(p->level--);
6245 return NULL;
6246 }
6247 int _end_lineno = _token->end_lineno;
6248 UNUSED(_end_lineno); // Only used by EXTRA macro
6249 int _end_col_offset = _token->end_col_offset;
6250 UNUSED(_end_col_offset); // Only used by EXTRA macro
6251 _res = _PyAST_Constant ( Py_None , NULL , EXTRA );
6252 if (_res == NULL && PyErr_Occurred()) {
6253 p->error_indicator = 1;
6254 D(p->level--);
6255 return NULL;
6256 }
6257 goto done;
6258 }
6259 p->mark = _mark;
6260 D(fprintf(stderr, "%*c%s literal_expr[%d-%d]: %s failed!\n", p->level, ' ',
6261 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'None'"));
6262 }
6263 { // 'True'
6264 if (p->error_indicator) {
6265 D(p->level--);
6266 return NULL;
6267 }
6268 D(fprintf(stderr, "%*c> literal_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'True'"));
6269 Token * _keyword;
6270 if (
6271 (_keyword = _PyPegen_expect_token(p, 524)) // token='True'
6272 )
6273 {
6274 D(fprintf(stderr, "%*c+ literal_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'"));
6275 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6276 if (_token == NULL) {
6277 D(p->level--);
6278 return NULL;
6279 }
6280 int _end_lineno = _token->end_lineno;
6281 UNUSED(_end_lineno); // Only used by EXTRA macro
6282 int _end_col_offset = _token->end_col_offset;
6283 UNUSED(_end_col_offset); // Only used by EXTRA macro
6284 _res = _PyAST_Constant ( Py_True , NULL , EXTRA );
6285 if (_res == NULL && PyErr_Occurred()) {
6286 p->error_indicator = 1;
6287 D(p->level--);
6288 return NULL;
6289 }
6290 goto done;
6291 }
6292 p->mark = _mark;
6293 D(fprintf(stderr, "%*c%s literal_expr[%d-%d]: %s failed!\n", p->level, ' ',
6294 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'True'"));
6295 }
6296 { // 'False'
6297 if (p->error_indicator) {
6298 D(p->level--);
6299 return NULL;
6300 }
6301 D(fprintf(stderr, "%*c> literal_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False'"));
6302 Token * _keyword;
6303 if (
6304 (_keyword = _PyPegen_expect_token(p, 525)) // token='False'
6305 )
6306 {
6307 D(fprintf(stderr, "%*c+ literal_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'"));
6308 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6309 if (_token == NULL) {
6310 D(p->level--);
6311 return NULL;
6312 }
6313 int _end_lineno = _token->end_lineno;
6314 UNUSED(_end_lineno); // Only used by EXTRA macro
6315 int _end_col_offset = _token->end_col_offset;
6316 UNUSED(_end_col_offset); // Only used by EXTRA macro
6317 _res = _PyAST_Constant ( Py_False , NULL , EXTRA );
6318 if (_res == NULL && PyErr_Occurred()) {
6319 p->error_indicator = 1;
6320 D(p->level--);
6321 return NULL;
6322 }
6323 goto done;
6324 }
6325 p->mark = _mark;
6326 D(fprintf(stderr, "%*c%s literal_expr[%d-%d]: %s failed!\n", p->level, ' ',
6327 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'False'"));
6328 }
6329 _res = NULL;
6330 done:
6331 D(p->level--);
6332 return _res;
6333}
6334
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07006335// complex_number:
6336// | signed_real_number '+' imaginary_number
6337// | signed_real_number '-' imaginary_number
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006338static expr_ty
6339complex_number_rule(Parser *p)
6340{
6341 D(p->level++);
6342 if (p->error_indicator) {
6343 D(p->level--);
6344 return NULL;
6345 }
6346 expr_ty _res = NULL;
6347 int _mark = p->mark;
6348 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6349 p->error_indicator = 1;
6350 D(p->level--);
6351 return NULL;
6352 }
6353 int _start_lineno = p->tokens[_mark]->lineno;
6354 UNUSED(_start_lineno); // Only used by EXTRA macro
6355 int _start_col_offset = p->tokens[_mark]->col_offset;
6356 UNUSED(_start_col_offset); // Only used by EXTRA macro
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07006357 { // signed_real_number '+' imaginary_number
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006358 if (p->error_indicator) {
6359 D(p->level--);
6360 return NULL;
6361 }
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07006362 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 +10006363 Token * _literal;
6364 expr_ty imag;
6365 expr_ty real;
6366 if (
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07006367 (real = signed_real_number_rule(p)) // signed_real_number
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006368 &&
6369 (_literal = _PyPegen_expect_token(p, 14)) // token='+'
6370 &&
6371 (imag = imaginary_number_rule(p)) // imaginary_number
6372 )
6373 {
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07006374 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 +10006375 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6376 if (_token == NULL) {
6377 D(p->level--);
6378 return NULL;
6379 }
6380 int _end_lineno = _token->end_lineno;
6381 UNUSED(_end_lineno); // Only used by EXTRA macro
6382 int _end_col_offset = _token->end_col_offset;
6383 UNUSED(_end_col_offset); // Only used by EXTRA macro
6384 _res = _PyAST_BinOp ( real , Add , imag , EXTRA );
6385 if (_res == NULL && PyErr_Occurred()) {
6386 p->error_indicator = 1;
6387 D(p->level--);
6388 return NULL;
6389 }
6390 goto done;
6391 }
6392 p->mark = _mark;
6393 D(fprintf(stderr, "%*c%s complex_number[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07006394 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "signed_real_number '+' imaginary_number"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006395 }
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07006396 { // signed_real_number '-' imaginary_number
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006397 if (p->error_indicator) {
6398 D(p->level--);
6399 return NULL;
6400 }
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07006401 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 +10006402 Token * _literal;
6403 expr_ty imag;
6404 expr_ty real;
6405 if (
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07006406 (real = signed_real_number_rule(p)) // signed_real_number
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006407 &&
6408 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
6409 &&
6410 (imag = imaginary_number_rule(p)) // imaginary_number
6411 )
6412 {
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07006413 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 +10006414 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6415 if (_token == NULL) {
6416 D(p->level--);
6417 return NULL;
6418 }
6419 int _end_lineno = _token->end_lineno;
6420 UNUSED(_end_lineno); // Only used by EXTRA macro
6421 int _end_col_offset = _token->end_col_offset;
6422 UNUSED(_end_col_offset); // Only used by EXTRA macro
6423 _res = _PyAST_BinOp ( real , Sub , imag , EXTRA );
6424 if (_res == NULL && PyErr_Occurred()) {
6425 p->error_indicator = 1;
6426 D(p->level--);
6427 return NULL;
6428 }
6429 goto done;
6430 }
6431 p->mark = _mark;
6432 D(fprintf(stderr, "%*c%s complex_number[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07006433 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "signed_real_number '-' imaginary_number"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006434 }
6435 _res = NULL;
6436 done:
6437 D(p->level--);
6438 return _res;
6439}
6440
Brandt Bucher145bf262021-02-26 14:51:55 -08006441// signed_number: NUMBER | '-' NUMBER
6442static expr_ty
6443signed_number_rule(Parser *p)
6444{
6445 D(p->level++);
6446 if (p->error_indicator) {
6447 D(p->level--);
6448 return NULL;
6449 }
6450 expr_ty _res = NULL;
6451 int _mark = p->mark;
6452 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6453 p->error_indicator = 1;
6454 D(p->level--);
6455 return NULL;
6456 }
6457 int _start_lineno = p->tokens[_mark]->lineno;
6458 UNUSED(_start_lineno); // Only used by EXTRA macro
6459 int _start_col_offset = p->tokens[_mark]->col_offset;
6460 UNUSED(_start_col_offset); // Only used by EXTRA macro
6461 { // NUMBER
6462 if (p->error_indicator) {
6463 D(p->level--);
6464 return NULL;
6465 }
6466 D(fprintf(stderr, "%*c> signed_number[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NUMBER"));
6467 expr_ty number_var;
6468 if (
6469 (number_var = _PyPegen_number_token(p)) // NUMBER
6470 )
6471 {
6472 D(fprintf(stderr, "%*c+ signed_number[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NUMBER"));
6473 _res = number_var;
6474 goto done;
6475 }
6476 p->mark = _mark;
6477 D(fprintf(stderr, "%*c%s signed_number[%d-%d]: %s failed!\n", p->level, ' ',
6478 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NUMBER"));
6479 }
6480 { // '-' NUMBER
6481 if (p->error_indicator) {
6482 D(p->level--);
6483 return NULL;
6484 }
6485 D(fprintf(stderr, "%*c> signed_number[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-' NUMBER"));
6486 Token * _literal;
6487 expr_ty number;
6488 if (
6489 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
6490 &&
6491 (number = _PyPegen_number_token(p)) // NUMBER
6492 )
6493 {
6494 D(fprintf(stderr, "%*c+ signed_number[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-' NUMBER"));
6495 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6496 if (_token == NULL) {
6497 D(p->level--);
6498 return NULL;
6499 }
6500 int _end_lineno = _token->end_lineno;
6501 UNUSED(_end_lineno); // Only used by EXTRA macro
6502 int _end_col_offset = _token->end_col_offset;
6503 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02006504 _res = _PyAST_UnaryOp ( USub , number , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08006505 if (_res == NULL && PyErr_Occurred()) {
6506 p->error_indicator = 1;
6507 D(p->level--);
6508 return NULL;
6509 }
6510 goto done;
6511 }
6512 p->mark = _mark;
6513 D(fprintf(stderr, "%*c%s signed_number[%d-%d]: %s failed!\n", p->level, ' ',
6514 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-' NUMBER"));
6515 }
6516 _res = NULL;
6517 done:
6518 D(p->level--);
6519 return _res;
6520}
6521
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07006522// signed_real_number: real_number | '-' real_number
6523static expr_ty
6524signed_real_number_rule(Parser *p)
6525{
6526 D(p->level++);
6527 if (p->error_indicator) {
6528 D(p->level--);
6529 return NULL;
6530 }
6531 expr_ty _res = NULL;
6532 int _mark = p->mark;
6533 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6534 p->error_indicator = 1;
6535 D(p->level--);
6536 return NULL;
6537 }
6538 int _start_lineno = p->tokens[_mark]->lineno;
6539 UNUSED(_start_lineno); // Only used by EXTRA macro
6540 int _start_col_offset = p->tokens[_mark]->col_offset;
6541 UNUSED(_start_col_offset); // Only used by EXTRA macro
6542 { // real_number
6543 if (p->error_indicator) {
6544 D(p->level--);
6545 return NULL;
6546 }
6547 D(fprintf(stderr, "%*c> signed_real_number[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "real_number"));
6548 expr_ty real_number_var;
6549 if (
6550 (real_number_var = real_number_rule(p)) // real_number
6551 )
6552 {
6553 D(fprintf(stderr, "%*c+ signed_real_number[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "real_number"));
6554 _res = real_number_var;
6555 goto done;
6556 }
6557 p->mark = _mark;
6558 D(fprintf(stderr, "%*c%s signed_real_number[%d-%d]: %s failed!\n", p->level, ' ',
6559 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "real_number"));
6560 }
6561 { // '-' real_number
6562 if (p->error_indicator) {
6563 D(p->level--);
6564 return NULL;
6565 }
6566 D(fprintf(stderr, "%*c> signed_real_number[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-' real_number"));
6567 Token * _literal;
6568 expr_ty real;
6569 if (
6570 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
6571 &&
6572 (real = real_number_rule(p)) // real_number
6573 )
6574 {
6575 D(fprintf(stderr, "%*c+ signed_real_number[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-' real_number"));
6576 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6577 if (_token == NULL) {
6578 D(p->level--);
6579 return NULL;
6580 }
6581 int _end_lineno = _token->end_lineno;
6582 UNUSED(_end_lineno); // Only used by EXTRA macro
6583 int _end_col_offset = _token->end_col_offset;
6584 UNUSED(_end_col_offset); // Only used by EXTRA macro
6585 _res = _PyAST_UnaryOp ( USub , real , EXTRA );
6586 if (_res == NULL && PyErr_Occurred()) {
6587 p->error_indicator = 1;
6588 D(p->level--);
6589 return NULL;
6590 }
6591 goto done;
6592 }
6593 p->mark = _mark;
6594 D(fprintf(stderr, "%*c%s signed_real_number[%d-%d]: %s failed!\n", p->level, ' ',
6595 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-' real_number"));
6596 }
6597 _res = NULL;
6598 done:
6599 D(p->level--);
6600 return _res;
6601}
6602
6603// real_number: NUMBER
6604static expr_ty
6605real_number_rule(Parser *p)
6606{
6607 D(p->level++);
6608 if (p->error_indicator) {
6609 D(p->level--);
6610 return NULL;
6611 }
6612 expr_ty _res = NULL;
6613 int _mark = p->mark;
6614 { // NUMBER
6615 if (p->error_indicator) {
6616 D(p->level--);
6617 return NULL;
6618 }
6619 D(fprintf(stderr, "%*c> real_number[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NUMBER"));
6620 expr_ty real;
6621 if (
6622 (real = _PyPegen_number_token(p)) // NUMBER
6623 )
6624 {
6625 D(fprintf(stderr, "%*c+ real_number[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NUMBER"));
6626 _res = _PyPegen_ensure_real ( p , real );
6627 if (_res == NULL && PyErr_Occurred()) {
6628 p->error_indicator = 1;
6629 D(p->level--);
6630 return NULL;
6631 }
6632 goto done;
6633 }
6634 p->mark = _mark;
6635 D(fprintf(stderr, "%*c%s real_number[%d-%d]: %s failed!\n", p->level, ' ',
6636 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NUMBER"));
6637 }
6638 _res = NULL;
6639 done:
6640 D(p->level--);
6641 return _res;
6642}
6643
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006644// imaginary_number: NUMBER
Brandt Bucher145bf262021-02-26 14:51:55 -08006645static expr_ty
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006646imaginary_number_rule(Parser *p)
6647{
6648 D(p->level++);
6649 if (p->error_indicator) {
6650 D(p->level--);
6651 return NULL;
6652 }
6653 expr_ty _res = NULL;
6654 int _mark = p->mark;
6655 { // NUMBER
6656 if (p->error_indicator) {
6657 D(p->level--);
6658 return NULL;
6659 }
6660 D(fprintf(stderr, "%*c> imaginary_number[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NUMBER"));
6661 expr_ty imag;
6662 if (
6663 (imag = _PyPegen_number_token(p)) // NUMBER
6664 )
6665 {
6666 D(fprintf(stderr, "%*c+ imaginary_number[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NUMBER"));
6667 _res = _PyPegen_ensure_imaginary ( p , imag );
6668 if (_res == NULL && PyErr_Occurred()) {
6669 p->error_indicator = 1;
6670 D(p->level--);
6671 return NULL;
6672 }
6673 goto done;
6674 }
6675 p->mark = _mark;
6676 D(fprintf(stderr, "%*c%s imaginary_number[%d-%d]: %s failed!\n", p->level, ' ',
6677 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NUMBER"));
6678 }
6679 _res = NULL;
6680 done:
6681 D(p->level--);
6682 return _res;
6683}
6684
6685// capture_pattern: pattern_capture_target
6686static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08006687capture_pattern_rule(Parser *p)
6688{
6689 D(p->level++);
6690 if (p->error_indicator) {
6691 D(p->level--);
6692 return NULL;
6693 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006694 pattern_ty _res = NULL;
6695 int _mark = p->mark;
6696 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6697 p->error_indicator = 1;
6698 D(p->level--);
6699 return NULL;
6700 }
6701 int _start_lineno = p->tokens[_mark]->lineno;
6702 UNUSED(_start_lineno); // Only used by EXTRA macro
6703 int _start_col_offset = p->tokens[_mark]->col_offset;
6704 UNUSED(_start_col_offset); // Only used by EXTRA macro
6705 { // pattern_capture_target
6706 if (p->error_indicator) {
6707 D(p->level--);
6708 return NULL;
6709 }
6710 D(fprintf(stderr, "%*c> capture_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "pattern_capture_target"));
6711 expr_ty target;
6712 if (
6713 (target = pattern_capture_target_rule(p)) // pattern_capture_target
6714 )
6715 {
6716 D(fprintf(stderr, "%*c+ capture_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "pattern_capture_target"));
6717 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6718 if (_token == NULL) {
6719 D(p->level--);
6720 return NULL;
6721 }
6722 int _end_lineno = _token->end_lineno;
6723 UNUSED(_end_lineno); // Only used by EXTRA macro
6724 int _end_col_offset = _token->end_col_offset;
6725 UNUSED(_end_col_offset); // Only used by EXTRA macro
6726 _res = _PyAST_MatchAs ( NULL , target -> v . Name . id , EXTRA );
6727 if (_res == NULL && PyErr_Occurred()) {
6728 p->error_indicator = 1;
6729 D(p->level--);
6730 return NULL;
6731 }
6732 goto done;
6733 }
6734 p->mark = _mark;
6735 D(fprintf(stderr, "%*c%s capture_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6736 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "pattern_capture_target"));
6737 }
6738 _res = NULL;
6739 done:
6740 D(p->level--);
6741 return _res;
6742}
6743
6744// pattern_capture_target: !"_" NAME !('.' | '(' | '=')
6745static expr_ty
6746pattern_capture_target_rule(Parser *p)
6747{
6748 D(p->level++);
6749 if (p->error_indicator) {
6750 D(p->level--);
6751 return NULL;
6752 }
Brandt Bucher145bf262021-02-26 14:51:55 -08006753 expr_ty _res = NULL;
6754 int _mark = p->mark;
6755 { // !"_" NAME !('.' | '(' | '=')
6756 if (p->error_indicator) {
6757 D(p->level--);
6758 return NULL;
6759 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006760 D(fprintf(stderr, "%*c> pattern_capture_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "!\"_\" NAME !('.' | '(' | '=')"));
Brandt Bucher145bf262021-02-26 14:51:55 -08006761 expr_ty name;
6762 if (
6763 _PyPegen_lookahead_with_string(0, _PyPegen_expect_soft_keyword, p, "_")
6764 &&
6765 (name = _PyPegen_name_token(p)) // NAME
6766 &&
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006767 _PyPegen_lookahead(0, _tmp_55_rule, p)
Brandt Bucher145bf262021-02-26 14:51:55 -08006768 )
6769 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006770 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 -08006771 _res = _PyPegen_set_expr_context ( p , name , Store );
6772 if (_res == NULL && PyErr_Occurred()) {
6773 p->error_indicator = 1;
6774 D(p->level--);
6775 return NULL;
6776 }
6777 goto done;
6778 }
6779 p->mark = _mark;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006780 D(fprintf(stderr, "%*c%s pattern_capture_target[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -08006781 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "!\"_\" NAME !('.' | '(' | '=')"));
6782 }
6783 _res = NULL;
6784 done:
6785 D(p->level--);
6786 return _res;
6787}
6788
6789// wildcard_pattern: "_"
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006790static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08006791wildcard_pattern_rule(Parser *p)
6792{
6793 D(p->level++);
6794 if (p->error_indicator) {
6795 D(p->level--);
6796 return NULL;
6797 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006798 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08006799 int _mark = p->mark;
6800 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6801 p->error_indicator = 1;
6802 D(p->level--);
6803 return NULL;
6804 }
6805 int _start_lineno = p->tokens[_mark]->lineno;
6806 UNUSED(_start_lineno); // Only used by EXTRA macro
6807 int _start_col_offset = p->tokens[_mark]->col_offset;
6808 UNUSED(_start_col_offset); // Only used by EXTRA macro
6809 { // "_"
6810 if (p->error_indicator) {
6811 D(p->level--);
6812 return NULL;
6813 }
6814 D(fprintf(stderr, "%*c> wildcard_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"_\""));
6815 expr_ty _keyword;
6816 if (
6817 (_keyword = _PyPegen_expect_soft_keyword(p, "_")) // soft_keyword='"_"'
6818 )
6819 {
6820 D(fprintf(stderr, "%*c+ wildcard_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"_\""));
6821 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6822 if (_token == NULL) {
6823 D(p->level--);
6824 return NULL;
6825 }
6826 int _end_lineno = _token->end_lineno;
6827 UNUSED(_end_lineno); // Only used by EXTRA macro
6828 int _end_col_offset = _token->end_col_offset;
6829 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006830 _res = _PyAST_MatchAs ( NULL , NULL , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08006831 if (_res == NULL && PyErr_Occurred()) {
6832 p->error_indicator = 1;
6833 D(p->level--);
6834 return NULL;
6835 }
6836 goto done;
6837 }
6838 p->mark = _mark;
6839 D(fprintf(stderr, "%*c%s wildcard_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6840 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"_\""));
6841 }
6842 _res = NULL;
6843 done:
6844 D(p->level--);
6845 return _res;
6846}
6847
6848// value_pattern: attr !('.' | '(' | '=')
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006849static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08006850value_pattern_rule(Parser *p)
6851{
6852 D(p->level++);
6853 if (p->error_indicator) {
6854 D(p->level--);
6855 return NULL;
6856 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006857 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08006858 int _mark = p->mark;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006859 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6860 p->error_indicator = 1;
6861 D(p->level--);
6862 return NULL;
6863 }
6864 int _start_lineno = p->tokens[_mark]->lineno;
6865 UNUSED(_start_lineno); // Only used by EXTRA macro
6866 int _start_col_offset = p->tokens[_mark]->col_offset;
6867 UNUSED(_start_col_offset); // Only used by EXTRA macro
Brandt Bucher145bf262021-02-26 14:51:55 -08006868 { // attr !('.' | '(' | '=')
6869 if (p->error_indicator) {
6870 D(p->level--);
6871 return NULL;
6872 }
6873 D(fprintf(stderr, "%*c> value_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "attr !('.' | '(' | '=')"));
6874 expr_ty attr;
6875 if (
6876 (attr = attr_rule(p)) // attr
6877 &&
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006878 _PyPegen_lookahead(0, _tmp_56_rule, p)
Brandt Bucher145bf262021-02-26 14:51:55 -08006879 )
6880 {
6881 D(fprintf(stderr, "%*c+ value_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "attr !('.' | '(' | '=')"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006882 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6883 if (_token == NULL) {
6884 D(p->level--);
6885 return NULL;
6886 }
6887 int _end_lineno = _token->end_lineno;
6888 UNUSED(_end_lineno); // Only used by EXTRA macro
6889 int _end_col_offset = _token->end_col_offset;
6890 UNUSED(_end_col_offset); // Only used by EXTRA macro
6891 _res = _PyAST_MatchValue ( attr , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08006892 if (_res == NULL && PyErr_Occurred()) {
6893 p->error_indicator = 1;
6894 D(p->level--);
6895 return NULL;
6896 }
6897 goto done;
6898 }
6899 p->mark = _mark;
6900 D(fprintf(stderr, "%*c%s value_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6901 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "attr !('.' | '(' | '=')"));
6902 }
6903 _res = NULL;
6904 done:
6905 D(p->level--);
6906 return _res;
6907}
6908
6909// Left-recursive
6910// attr: name_or_attr '.' NAME
6911static expr_ty attr_raw(Parser *);
6912static expr_ty
6913attr_rule(Parser *p)
6914{
6915 D(p->level++);
6916 expr_ty _res = NULL;
6917 if (_PyPegen_is_memoized(p, attr_type, &_res)) {
6918 D(p->level--);
6919 return _res;
6920 }
6921 int _mark = p->mark;
6922 int _resmark = p->mark;
6923 while (1) {
6924 int tmpvar_1 = _PyPegen_update_memo(p, _mark, attr_type, _res);
6925 if (tmpvar_1) {
6926 D(p->level--);
6927 return _res;
6928 }
6929 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -07006930 p->in_raw_rule++;
Brandt Bucher145bf262021-02-26 14:51:55 -08006931 void *_raw = attr_raw(p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -07006932 p->in_raw_rule--;
Brandt Bucher145bf262021-02-26 14:51:55 -08006933 if (p->error_indicator)
6934 return NULL;
6935 if (_raw == NULL || p->mark <= _resmark)
6936 break;
6937 _resmark = p->mark;
6938 _res = _raw;
6939 }
6940 p->mark = _resmark;
6941 D(p->level--);
6942 return _res;
6943}
6944static expr_ty
6945attr_raw(Parser *p)
6946{
6947 D(p->level++);
6948 if (p->error_indicator) {
6949 D(p->level--);
6950 return NULL;
6951 }
6952 expr_ty _res = NULL;
6953 int _mark = p->mark;
6954 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6955 p->error_indicator = 1;
6956 D(p->level--);
6957 return NULL;
6958 }
6959 int _start_lineno = p->tokens[_mark]->lineno;
6960 UNUSED(_start_lineno); // Only used by EXTRA macro
6961 int _start_col_offset = p->tokens[_mark]->col_offset;
6962 UNUSED(_start_col_offset); // Only used by EXTRA macro
6963 { // name_or_attr '.' NAME
6964 if (p->error_indicator) {
6965 D(p->level--);
6966 return NULL;
6967 }
6968 D(fprintf(stderr, "%*c> attr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "name_or_attr '.' NAME"));
6969 Token * _literal;
6970 expr_ty attr;
6971 expr_ty value;
6972 if (
6973 (value = name_or_attr_rule(p)) // name_or_attr
6974 &&
6975 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
6976 &&
6977 (attr = _PyPegen_name_token(p)) // NAME
6978 )
6979 {
6980 D(fprintf(stderr, "%*c+ attr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "name_or_attr '.' NAME"));
6981 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6982 if (_token == NULL) {
6983 D(p->level--);
6984 return NULL;
6985 }
6986 int _end_lineno = _token->end_lineno;
6987 UNUSED(_end_lineno); // Only used by EXTRA macro
6988 int _end_col_offset = _token->end_col_offset;
6989 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02006990 _res = _PyAST_Attribute ( value , attr -> v . Name . id , Load , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08006991 if (_res == NULL && PyErr_Occurred()) {
6992 p->error_indicator = 1;
6993 D(p->level--);
6994 return NULL;
6995 }
6996 goto done;
6997 }
6998 p->mark = _mark;
6999 D(fprintf(stderr, "%*c%s attr[%d-%d]: %s failed!\n", p->level, ' ',
7000 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "name_or_attr '.' NAME"));
7001 }
7002 _res = NULL;
7003 done:
7004 D(p->level--);
7005 return _res;
7006}
7007
7008// Left-recursive
7009// name_or_attr: attr | NAME
7010static expr_ty
7011name_or_attr_rule(Parser *p)
7012{
7013 D(p->level++);
7014 if (p->error_indicator) {
7015 D(p->level--);
7016 return NULL;
7017 }
7018 expr_ty _res = NULL;
7019 int _mark = p->mark;
7020 { // attr
7021 if (p->error_indicator) {
7022 D(p->level--);
7023 return NULL;
7024 }
7025 D(fprintf(stderr, "%*c> name_or_attr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "attr"));
7026 expr_ty attr_var;
7027 if (
7028 (attr_var = attr_rule(p)) // attr
7029 )
7030 {
7031 D(fprintf(stderr, "%*c+ name_or_attr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "attr"));
7032 _res = attr_var;
7033 goto done;
7034 }
7035 p->mark = _mark;
7036 D(fprintf(stderr, "%*c%s name_or_attr[%d-%d]: %s failed!\n", p->level, ' ',
7037 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "attr"));
7038 }
7039 { // NAME
7040 if (p->error_indicator) {
7041 D(p->level--);
7042 return NULL;
7043 }
7044 D(fprintf(stderr, "%*c> name_or_attr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
7045 expr_ty name_var;
7046 if (
7047 (name_var = _PyPegen_name_token(p)) // NAME
7048 )
7049 {
7050 D(fprintf(stderr, "%*c+ name_or_attr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
7051 _res = name_var;
7052 goto done;
7053 }
7054 p->mark = _mark;
7055 D(fprintf(stderr, "%*c%s name_or_attr[%d-%d]: %s failed!\n", p->level, ' ',
7056 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
7057 }
7058 _res = NULL;
7059 done:
7060 D(p->level--);
7061 return _res;
7062}
7063
7064// group_pattern: '(' pattern ')'
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007065static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08007066group_pattern_rule(Parser *p)
7067{
7068 D(p->level++);
7069 if (p->error_indicator) {
7070 D(p->level--);
7071 return NULL;
7072 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007073 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08007074 int _mark = p->mark;
7075 { // '(' pattern ')'
7076 if (p->error_indicator) {
7077 D(p->level--);
7078 return NULL;
7079 }
7080 D(fprintf(stderr, "%*c> group_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' pattern ')'"));
7081 Token * _literal;
7082 Token * _literal_1;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007083 pattern_ty pattern;
Brandt Bucher145bf262021-02-26 14:51:55 -08007084 if (
7085 (_literal = _PyPegen_expect_token(p, 7)) // token='('
7086 &&
7087 (pattern = pattern_rule(p)) // pattern
7088 &&
7089 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
7090 )
7091 {
7092 D(fprintf(stderr, "%*c+ group_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' pattern ')'"));
7093 _res = pattern;
7094 if (_res == NULL && PyErr_Occurred()) {
7095 p->error_indicator = 1;
7096 D(p->level--);
7097 return NULL;
7098 }
7099 goto done;
7100 }
7101 p->mark = _mark;
7102 D(fprintf(stderr, "%*c%s group_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7103 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' pattern ')'"));
7104 }
7105 _res = NULL;
7106 done:
7107 D(p->level--);
7108 return _res;
7109}
7110
7111// sequence_pattern: '[' maybe_sequence_pattern? ']' | '(' open_sequence_pattern? ')'
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007112static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08007113sequence_pattern_rule(Parser *p)
7114{
7115 D(p->level++);
7116 if (p->error_indicator) {
7117 D(p->level--);
7118 return NULL;
7119 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007120 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08007121 int _mark = p->mark;
7122 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
7123 p->error_indicator = 1;
7124 D(p->level--);
7125 return NULL;
7126 }
7127 int _start_lineno = p->tokens[_mark]->lineno;
7128 UNUSED(_start_lineno); // Only used by EXTRA macro
7129 int _start_col_offset = p->tokens[_mark]->col_offset;
7130 UNUSED(_start_col_offset); // Only used by EXTRA macro
7131 { // '[' maybe_sequence_pattern? ']'
7132 if (p->error_indicator) {
7133 D(p->level--);
7134 return NULL;
7135 }
7136 D(fprintf(stderr, "%*c> sequence_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' maybe_sequence_pattern? ']'"));
7137 Token * _literal;
7138 Token * _literal_1;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007139 void *patterns;
Brandt Bucher145bf262021-02-26 14:51:55 -08007140 if (
7141 (_literal = _PyPegen_expect_token(p, 9)) // token='['
7142 &&
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007143 (patterns = maybe_sequence_pattern_rule(p), 1) // maybe_sequence_pattern?
Brandt Bucher145bf262021-02-26 14:51:55 -08007144 &&
7145 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
7146 )
7147 {
7148 D(fprintf(stderr, "%*c+ sequence_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'[' maybe_sequence_pattern? ']'"));
7149 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7150 if (_token == NULL) {
7151 D(p->level--);
7152 return NULL;
7153 }
7154 int _end_lineno = _token->end_lineno;
7155 UNUSED(_end_lineno); // Only used by EXTRA macro
7156 int _end_col_offset = _token->end_col_offset;
7157 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007158 _res = _PyAST_MatchSequence ( patterns , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08007159 if (_res == NULL && PyErr_Occurred()) {
7160 p->error_indicator = 1;
7161 D(p->level--);
7162 return NULL;
7163 }
7164 goto done;
7165 }
7166 p->mark = _mark;
7167 D(fprintf(stderr, "%*c%s sequence_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7168 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' maybe_sequence_pattern? ']'"));
7169 }
7170 { // '(' open_sequence_pattern? ')'
7171 if (p->error_indicator) {
7172 D(p->level--);
7173 return NULL;
7174 }
7175 D(fprintf(stderr, "%*c> sequence_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' open_sequence_pattern? ')'"));
7176 Token * _literal;
7177 Token * _literal_1;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007178 void *patterns;
Brandt Bucher145bf262021-02-26 14:51:55 -08007179 if (
7180 (_literal = _PyPegen_expect_token(p, 7)) // token='('
7181 &&
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007182 (patterns = open_sequence_pattern_rule(p), 1) // open_sequence_pattern?
Brandt Bucher145bf262021-02-26 14:51:55 -08007183 &&
7184 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
7185 )
7186 {
7187 D(fprintf(stderr, "%*c+ sequence_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' open_sequence_pattern? ')'"));
7188 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7189 if (_token == NULL) {
7190 D(p->level--);
7191 return NULL;
7192 }
7193 int _end_lineno = _token->end_lineno;
7194 UNUSED(_end_lineno); // Only used by EXTRA macro
7195 int _end_col_offset = _token->end_col_offset;
7196 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007197 _res = _PyAST_MatchSequence ( patterns , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08007198 if (_res == NULL && PyErr_Occurred()) {
7199 p->error_indicator = 1;
7200 D(p->level--);
7201 return NULL;
7202 }
7203 goto done;
7204 }
7205 p->mark = _mark;
7206 D(fprintf(stderr, "%*c%s sequence_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7207 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' open_sequence_pattern? ')'"));
7208 }
7209 _res = NULL;
7210 done:
7211 D(p->level--);
7212 return _res;
7213}
7214
7215// open_sequence_pattern: maybe_star_pattern ',' maybe_sequence_pattern?
7216static asdl_seq*
7217open_sequence_pattern_rule(Parser *p)
7218{
7219 D(p->level++);
7220 if (p->error_indicator) {
7221 D(p->level--);
7222 return NULL;
7223 }
7224 asdl_seq* _res = NULL;
7225 int _mark = p->mark;
7226 { // maybe_star_pattern ',' maybe_sequence_pattern?
7227 if (p->error_indicator) {
7228 D(p->level--);
7229 return NULL;
7230 }
7231 D(fprintf(stderr, "%*c> open_sequence_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "maybe_star_pattern ',' maybe_sequence_pattern?"));
7232 Token * _literal;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007233 pattern_ty pattern;
7234 void *patterns;
Brandt Bucher145bf262021-02-26 14:51:55 -08007235 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007236 (pattern = maybe_star_pattern_rule(p)) // maybe_star_pattern
Brandt Bucher145bf262021-02-26 14:51:55 -08007237 &&
7238 (_literal = _PyPegen_expect_token(p, 12)) // token=','
7239 &&
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007240 (patterns = maybe_sequence_pattern_rule(p), 1) // maybe_sequence_pattern?
Brandt Bucher145bf262021-02-26 14:51:55 -08007241 )
7242 {
7243 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 +10007244 _res = _PyPegen_seq_insert_in_front ( p , pattern , patterns );
Brandt Bucher145bf262021-02-26 14:51:55 -08007245 if (_res == NULL && PyErr_Occurred()) {
7246 p->error_indicator = 1;
7247 D(p->level--);
7248 return NULL;
7249 }
7250 goto done;
7251 }
7252 p->mark = _mark;
7253 D(fprintf(stderr, "%*c%s open_sequence_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7254 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "maybe_star_pattern ',' maybe_sequence_pattern?"));
7255 }
7256 _res = NULL;
7257 done:
7258 D(p->level--);
7259 return _res;
7260}
7261
7262// maybe_sequence_pattern: ','.maybe_star_pattern+ ','?
7263static asdl_seq*
7264maybe_sequence_pattern_rule(Parser *p)
7265{
7266 D(p->level++);
7267 if (p->error_indicator) {
7268 D(p->level--);
7269 return NULL;
7270 }
7271 asdl_seq* _res = NULL;
7272 int _mark = p->mark;
7273 { // ','.maybe_star_pattern+ ','?
7274 if (p->error_indicator) {
7275 D(p->level--);
7276 return NULL;
7277 }
7278 D(fprintf(stderr, "%*c> maybe_sequence_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.maybe_star_pattern+ ','?"));
7279 void *_opt_var;
7280 UNUSED(_opt_var); // Silence compiler warnings
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007281 asdl_seq * patterns;
Brandt Bucher145bf262021-02-26 14:51:55 -08007282 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007283 (patterns = _gather_57_rule(p)) // ','.maybe_star_pattern+
Brandt Bucher145bf262021-02-26 14:51:55 -08007284 &&
7285 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
7286 )
7287 {
7288 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 +10007289 _res = patterns;
Brandt Bucher145bf262021-02-26 14:51:55 -08007290 if (_res == NULL && PyErr_Occurred()) {
7291 p->error_indicator = 1;
7292 D(p->level--);
7293 return NULL;
7294 }
7295 goto done;
7296 }
7297 p->mark = _mark;
7298 D(fprintf(stderr, "%*c%s maybe_sequence_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7299 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.maybe_star_pattern+ ','?"));
7300 }
7301 _res = NULL;
7302 done:
7303 D(p->level--);
7304 return _res;
7305}
7306
7307// maybe_star_pattern: star_pattern | pattern
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007308static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08007309maybe_star_pattern_rule(Parser *p)
7310{
7311 D(p->level++);
7312 if (p->error_indicator) {
7313 D(p->level--);
7314 return NULL;
7315 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007316 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08007317 int _mark = p->mark;
7318 { // star_pattern
7319 if (p->error_indicator) {
7320 D(p->level--);
7321 return NULL;
7322 }
7323 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 +10007324 pattern_ty star_pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08007325 if (
7326 (star_pattern_var = star_pattern_rule(p)) // star_pattern
7327 )
7328 {
7329 D(fprintf(stderr, "%*c+ maybe_star_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_pattern"));
7330 _res = star_pattern_var;
7331 goto done;
7332 }
7333 p->mark = _mark;
7334 D(fprintf(stderr, "%*c%s maybe_star_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7335 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_pattern"));
7336 }
7337 { // pattern
7338 if (p->error_indicator) {
7339 D(p->level--);
7340 return NULL;
7341 }
7342 D(fprintf(stderr, "%*c> maybe_star_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007343 pattern_ty pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08007344 if (
7345 (pattern_var = pattern_rule(p)) // pattern
7346 )
7347 {
7348 D(fprintf(stderr, "%*c+ maybe_star_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "pattern"));
7349 _res = pattern_var;
7350 goto done;
7351 }
7352 p->mark = _mark;
7353 D(fprintf(stderr, "%*c%s maybe_star_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7354 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "pattern"));
7355 }
7356 _res = NULL;
7357 done:
7358 D(p->level--);
7359 return _res;
7360}
7361
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007362// star_pattern: '*' pattern_capture_target | '*' wildcard_pattern
7363static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08007364star_pattern_rule(Parser *p)
7365{
7366 D(p->level++);
7367 if (p->error_indicator) {
7368 D(p->level--);
7369 return NULL;
7370 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007371 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08007372 int _mark = p->mark;
7373 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
7374 p->error_indicator = 1;
7375 D(p->level--);
7376 return NULL;
7377 }
7378 int _start_lineno = p->tokens[_mark]->lineno;
7379 UNUSED(_start_lineno); // Only used by EXTRA macro
7380 int _start_col_offset = p->tokens[_mark]->col_offset;
7381 UNUSED(_start_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007382 { // '*' pattern_capture_target
Brandt Bucher145bf262021-02-26 14:51:55 -08007383 if (p->error_indicator) {
7384 D(p->level--);
7385 return NULL;
7386 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007387 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 -08007388 Token * _literal;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007389 expr_ty target;
Brandt Bucher145bf262021-02-26 14:51:55 -08007390 if (
7391 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
7392 &&
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007393 (target = pattern_capture_target_rule(p)) // pattern_capture_target
Brandt Bucher145bf262021-02-26 14:51:55 -08007394 )
7395 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007396 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 -08007397 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7398 if (_token == NULL) {
7399 D(p->level--);
7400 return NULL;
7401 }
7402 int _end_lineno = _token->end_lineno;
7403 UNUSED(_end_lineno); // Only used by EXTRA macro
7404 int _end_col_offset = _token->end_col_offset;
7405 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007406 _res = _PyAST_MatchStar ( target -> v . Name . id , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08007407 if (_res == NULL && PyErr_Occurred()) {
7408 p->error_indicator = 1;
7409 D(p->level--);
7410 return NULL;
7411 }
7412 goto done;
7413 }
7414 p->mark = _mark;
7415 D(fprintf(stderr, "%*c%s star_pattern[%d-%d]: %s failed!\n", p->level, ' ',
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007416 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' pattern_capture_target"));
7417 }
7418 { // '*' wildcard_pattern
7419 if (p->error_indicator) {
7420 D(p->level--);
7421 return NULL;
7422 }
7423 D(fprintf(stderr, "%*c> star_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' wildcard_pattern"));
7424 Token * _literal;
7425 pattern_ty wildcard_pattern_var;
7426 if (
7427 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
7428 &&
7429 (wildcard_pattern_var = wildcard_pattern_rule(p)) // wildcard_pattern
7430 )
7431 {
7432 D(fprintf(stderr, "%*c+ star_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' wildcard_pattern"));
7433 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7434 if (_token == NULL) {
7435 D(p->level--);
7436 return NULL;
7437 }
7438 int _end_lineno = _token->end_lineno;
7439 UNUSED(_end_lineno); // Only used by EXTRA macro
7440 int _end_col_offset = _token->end_col_offset;
7441 UNUSED(_end_col_offset); // Only used by EXTRA macro
7442 _res = _PyAST_MatchStar ( NULL , EXTRA );
7443 if (_res == NULL && PyErr_Occurred()) {
7444 p->error_indicator = 1;
7445 D(p->level--);
7446 return NULL;
7447 }
7448 goto done;
7449 }
7450 p->mark = _mark;
7451 D(fprintf(stderr, "%*c%s star_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7452 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' wildcard_pattern"));
Brandt Bucher145bf262021-02-26 14:51:55 -08007453 }
7454 _res = NULL;
7455 done:
7456 D(p->level--);
7457 return _res;
7458}
7459
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007460// mapping_pattern:
7461// | '{' '}'
7462// | '{' double_star_pattern ','? '}'
7463// | '{' items_pattern ',' double_star_pattern ','? '}'
7464// | '{' items_pattern ','? '}'
7465static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08007466mapping_pattern_rule(Parser *p)
7467{
7468 D(p->level++);
7469 if (p->error_indicator) {
7470 D(p->level--);
7471 return NULL;
7472 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007473 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08007474 int _mark = p->mark;
7475 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
7476 p->error_indicator = 1;
7477 D(p->level--);
7478 return NULL;
7479 }
7480 int _start_lineno = p->tokens[_mark]->lineno;
7481 UNUSED(_start_lineno); // Only used by EXTRA macro
7482 int _start_col_offset = p->tokens[_mark]->col_offset;
7483 UNUSED(_start_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007484 { // '{' '}'
Brandt Bucher145bf262021-02-26 14:51:55 -08007485 if (p->error_indicator) {
7486 D(p->level--);
7487 return NULL;
7488 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007489 D(fprintf(stderr, "%*c> mapping_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' '}'"));
Brandt Bucher145bf262021-02-26 14:51:55 -08007490 Token * _literal;
7491 Token * _literal_1;
Brandt Bucher145bf262021-02-26 14:51:55 -08007492 if (
7493 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
7494 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08007495 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
7496 )
7497 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007498 D(fprintf(stderr, "%*c+ mapping_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' '}'"));
Brandt Bucher145bf262021-02-26 14:51:55 -08007499 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7500 if (_token == NULL) {
7501 D(p->level--);
7502 return NULL;
7503 }
7504 int _end_lineno = _token->end_lineno;
7505 UNUSED(_end_lineno); // Only used by EXTRA macro
7506 int _end_col_offset = _token->end_col_offset;
7507 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007508 _res = _PyAST_MatchMapping ( NULL , NULL , NULL , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08007509 if (_res == NULL && PyErr_Occurred()) {
7510 p->error_indicator = 1;
7511 D(p->level--);
7512 return NULL;
7513 }
7514 goto done;
7515 }
7516 p->mark = _mark;
7517 D(fprintf(stderr, "%*c%s mapping_pattern[%d-%d]: %s failed!\n", p->level, ' ',
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007518 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' '}'"));
7519 }
7520 { // '{' double_star_pattern ','? '}'
7521 if (p->error_indicator) {
7522 D(p->level--);
7523 return NULL;
7524 }
7525 D(fprintf(stderr, "%*c> mapping_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' double_star_pattern ','? '}'"));
7526 Token * _literal;
7527 Token * _literal_1;
7528 void *_opt_var;
7529 UNUSED(_opt_var); // Silence compiler warnings
7530 expr_ty rest;
7531 if (
7532 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
7533 &&
7534 (rest = double_star_pattern_rule(p)) // double_star_pattern
7535 &&
7536 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
7537 &&
7538 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
7539 )
7540 {
7541 D(fprintf(stderr, "%*c+ mapping_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' double_star_pattern ','? '}'"));
7542 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7543 if (_token == NULL) {
7544 D(p->level--);
7545 return NULL;
7546 }
7547 int _end_lineno = _token->end_lineno;
7548 UNUSED(_end_lineno); // Only used by EXTRA macro
7549 int _end_col_offset = _token->end_col_offset;
7550 UNUSED(_end_col_offset); // Only used by EXTRA macro
7551 _res = _PyAST_MatchMapping ( NULL , NULL , rest -> v . Name . id , EXTRA );
7552 if (_res == NULL && PyErr_Occurred()) {
7553 p->error_indicator = 1;
7554 D(p->level--);
7555 return NULL;
7556 }
7557 goto done;
7558 }
7559 p->mark = _mark;
7560 D(fprintf(stderr, "%*c%s mapping_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7561 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' double_star_pattern ','? '}'"));
7562 }
7563 { // '{' items_pattern ',' double_star_pattern ','? '}'
7564 if (p->error_indicator) {
7565 D(p->level--);
7566 return NULL;
7567 }
7568 D(fprintf(stderr, "%*c> mapping_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' items_pattern ',' double_star_pattern ','? '}'"));
7569 Token * _literal;
7570 Token * _literal_1;
7571 Token * _literal_2;
7572 void *_opt_var;
7573 UNUSED(_opt_var); // Silence compiler warnings
7574 asdl_seq* items;
7575 expr_ty rest;
7576 if (
7577 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
7578 &&
7579 (items = items_pattern_rule(p)) // items_pattern
7580 &&
7581 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
7582 &&
7583 (rest = double_star_pattern_rule(p)) // double_star_pattern
7584 &&
7585 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
7586 &&
7587 (_literal_2 = _PyPegen_expect_token(p, 26)) // token='}'
7588 )
7589 {
7590 D(fprintf(stderr, "%*c+ mapping_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' items_pattern ',' double_star_pattern ','? '}'"));
7591 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7592 if (_token == NULL) {
7593 D(p->level--);
7594 return NULL;
7595 }
7596 int _end_lineno = _token->end_lineno;
7597 UNUSED(_end_lineno); // Only used by EXTRA macro
7598 int _end_col_offset = _token->end_col_offset;
7599 UNUSED(_end_col_offset); // Only used by EXTRA macro
7600 _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 );
7601 if (_res == NULL && PyErr_Occurred()) {
7602 p->error_indicator = 1;
7603 D(p->level--);
7604 return NULL;
7605 }
7606 goto done;
7607 }
7608 p->mark = _mark;
7609 D(fprintf(stderr, "%*c%s mapping_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7610 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' items_pattern ',' double_star_pattern ','? '}'"));
7611 }
7612 { // '{' items_pattern ','? '}'
7613 if (p->error_indicator) {
7614 D(p->level--);
7615 return NULL;
7616 }
7617 D(fprintf(stderr, "%*c> mapping_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' items_pattern ','? '}'"));
7618 Token * _literal;
7619 Token * _literal_1;
7620 void *_opt_var;
7621 UNUSED(_opt_var); // Silence compiler warnings
7622 asdl_seq* items;
7623 if (
7624 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
7625 &&
7626 (items = items_pattern_rule(p)) // items_pattern
7627 &&
7628 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
7629 &&
7630 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
7631 )
7632 {
7633 D(fprintf(stderr, "%*c+ mapping_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' items_pattern ','? '}'"));
7634 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7635 if (_token == NULL) {
7636 D(p->level--);
7637 return NULL;
7638 }
7639 int _end_lineno = _token->end_lineno;
7640 UNUSED(_end_lineno); // Only used by EXTRA macro
7641 int _end_col_offset = _token->end_col_offset;
7642 UNUSED(_end_col_offset); // Only used by EXTRA macro
7643 _res = _PyAST_MatchMapping ( CHECK ( asdl_expr_seq * , _PyPegen_get_pattern_keys ( p , items ) ) , CHECK ( asdl_pattern_seq * , _PyPegen_get_patterns ( p , items ) ) , NULL , EXTRA );
7644 if (_res == NULL && PyErr_Occurred()) {
7645 p->error_indicator = 1;
7646 D(p->level--);
7647 return NULL;
7648 }
7649 goto done;
7650 }
7651 p->mark = _mark;
7652 D(fprintf(stderr, "%*c%s mapping_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7653 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' items_pattern ','? '}'"));
Brandt Bucher145bf262021-02-26 14:51:55 -08007654 }
7655 _res = NULL;
7656 done:
7657 D(p->level--);
7658 return _res;
7659}
7660
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007661// items_pattern: ','.key_value_pattern+
Brandt Bucher145bf262021-02-26 14:51:55 -08007662static asdl_seq*
7663items_pattern_rule(Parser *p)
7664{
7665 D(p->level++);
7666 if (p->error_indicator) {
7667 D(p->level--);
7668 return NULL;
7669 }
7670 asdl_seq* _res = NULL;
7671 int _mark = p->mark;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007672 { // ','.key_value_pattern+
Brandt Bucher145bf262021-02-26 14:51:55 -08007673 if (p->error_indicator) {
7674 D(p->level--);
7675 return NULL;
7676 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007677 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 -07007678 asdl_seq * _gather_59_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08007679 if (
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07007680 (_gather_59_var = _gather_59_rule(p)) // ','.key_value_pattern+
Brandt Bucher145bf262021-02-26 14:51:55 -08007681 )
7682 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007683 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 -07007684 _res = _gather_59_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08007685 goto done;
7686 }
7687 p->mark = _mark;
7688 D(fprintf(stderr, "%*c%s items_pattern[%d-%d]: %s failed!\n", p->level, ' ',
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007689 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.key_value_pattern+"));
Brandt Bucher145bf262021-02-26 14:51:55 -08007690 }
7691 _res = NULL;
7692 done:
7693 D(p->level--);
7694 return _res;
7695}
7696
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007697// key_value_pattern: (literal_expr | attr) ':' pattern
7698static KeyPatternPair*
Brandt Bucher145bf262021-02-26 14:51:55 -08007699key_value_pattern_rule(Parser *p)
7700{
7701 D(p->level++);
7702 if (p->error_indicator) {
7703 D(p->level--);
7704 return NULL;
7705 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007706 KeyPatternPair* _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08007707 int _mark = p->mark;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007708 { // (literal_expr | attr) ':' pattern
Brandt Bucher145bf262021-02-26 14:51:55 -08007709 if (p->error_indicator) {
7710 D(p->level--);
7711 return NULL;
7712 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007713 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 -08007714 Token * _literal;
7715 void *key;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007716 pattern_ty pattern;
Brandt Bucher145bf262021-02-26 14:51:55 -08007717 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007718 (key = _tmp_61_rule(p)) // literal_expr | attr
Brandt Bucher145bf262021-02-26 14:51:55 -08007719 &&
7720 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
7721 &&
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007722 (pattern = pattern_rule(p)) // pattern
Brandt Bucher145bf262021-02-26 14:51:55 -08007723 )
7724 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007725 D(fprintf(stderr, "%*c+ key_value_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(literal_expr | attr) ':' pattern"));
7726 _res = _PyPegen_key_pattern_pair ( p , key , pattern );
Brandt Bucher145bf262021-02-26 14:51:55 -08007727 if (_res == NULL && PyErr_Occurred()) {
7728 p->error_indicator = 1;
7729 D(p->level--);
7730 return NULL;
7731 }
7732 goto done;
7733 }
7734 p->mark = _mark;
7735 D(fprintf(stderr, "%*c%s key_value_pattern[%d-%d]: %s failed!\n", p->level, ' ',
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007736 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(literal_expr | attr) ':' pattern"));
Brandt Bucher145bf262021-02-26 14:51:55 -08007737 }
7738 _res = NULL;
7739 done:
7740 D(p->level--);
7741 return _res;
7742}
7743
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007744// double_star_pattern: '**' pattern_capture_target
7745static expr_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08007746double_star_pattern_rule(Parser *p)
7747{
7748 D(p->level++);
7749 if (p->error_indicator) {
7750 D(p->level--);
7751 return NULL;
7752 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007753 expr_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08007754 int _mark = p->mark;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007755 { // '**' pattern_capture_target
Brandt Bucher145bf262021-02-26 14:51:55 -08007756 if (p->error_indicator) {
7757 D(p->level--);
7758 return NULL;
7759 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007760 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 -08007761 Token * _literal;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007762 expr_ty target;
Brandt Bucher145bf262021-02-26 14:51:55 -08007763 if (
7764 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
7765 &&
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007766 (target = pattern_capture_target_rule(p)) // pattern_capture_target
Brandt Bucher145bf262021-02-26 14:51:55 -08007767 )
7768 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007769 D(fprintf(stderr, "%*c+ double_star_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' pattern_capture_target"));
7770 _res = target;
Brandt Bucher145bf262021-02-26 14:51:55 -08007771 if (_res == NULL && PyErr_Occurred()) {
7772 p->error_indicator = 1;
7773 D(p->level--);
7774 return NULL;
7775 }
7776 goto done;
7777 }
7778 p->mark = _mark;
7779 D(fprintf(stderr, "%*c%s double_star_pattern[%d-%d]: %s failed!\n", p->level, ' ',
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007780 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' pattern_capture_target"));
Brandt Bucher145bf262021-02-26 14:51:55 -08007781 }
7782 _res = NULL;
7783 done:
7784 D(p->level--);
7785 return _res;
7786}
7787
7788// class_pattern:
7789// | name_or_attr '(' ')'
7790// | name_or_attr '(' positional_patterns ','? ')'
7791// | name_or_attr '(' keyword_patterns ','? ')'
7792// | name_or_attr '(' positional_patterns ',' keyword_patterns ','? ')'
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007793static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08007794class_pattern_rule(Parser *p)
7795{
7796 D(p->level++);
7797 if (p->error_indicator) {
7798 D(p->level--);
7799 return NULL;
7800 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007801 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08007802 int _mark = p->mark;
7803 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
7804 p->error_indicator = 1;
7805 D(p->level--);
7806 return NULL;
7807 }
7808 int _start_lineno = p->tokens[_mark]->lineno;
7809 UNUSED(_start_lineno); // Only used by EXTRA macro
7810 int _start_col_offset = p->tokens[_mark]->col_offset;
7811 UNUSED(_start_col_offset); // Only used by EXTRA macro
7812 { // name_or_attr '(' ')'
7813 if (p->error_indicator) {
7814 D(p->level--);
7815 return NULL;
7816 }
7817 D(fprintf(stderr, "%*c> class_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' ')'"));
7818 Token * _literal;
7819 Token * _literal_1;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007820 expr_ty cls;
Brandt Bucher145bf262021-02-26 14:51:55 -08007821 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007822 (cls = name_or_attr_rule(p)) // name_or_attr
Brandt Bucher145bf262021-02-26 14:51:55 -08007823 &&
7824 (_literal = _PyPegen_expect_token(p, 7)) // token='('
7825 &&
7826 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
7827 )
7828 {
7829 D(fprintf(stderr, "%*c+ class_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' ')'"));
7830 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7831 if (_token == NULL) {
7832 D(p->level--);
7833 return NULL;
7834 }
7835 int _end_lineno = _token->end_lineno;
7836 UNUSED(_end_lineno); // Only used by EXTRA macro
7837 int _end_col_offset = _token->end_col_offset;
7838 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007839 _res = _PyAST_MatchClass ( cls , NULL , NULL , NULL , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08007840 if (_res == NULL && PyErr_Occurred()) {
7841 p->error_indicator = 1;
7842 D(p->level--);
7843 return NULL;
7844 }
7845 goto done;
7846 }
7847 p->mark = _mark;
7848 D(fprintf(stderr, "%*c%s class_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7849 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "name_or_attr '(' ')'"));
7850 }
7851 { // name_or_attr '(' positional_patterns ','? ')'
7852 if (p->error_indicator) {
7853 D(p->level--);
7854 return NULL;
7855 }
7856 D(fprintf(stderr, "%*c> class_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' positional_patterns ','? ')'"));
7857 Token * _literal;
7858 Token * _literal_1;
7859 void *_opt_var;
7860 UNUSED(_opt_var); // Silence compiler warnings
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007861 expr_ty cls;
7862 asdl_pattern_seq* patterns;
Brandt Bucher145bf262021-02-26 14:51:55 -08007863 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007864 (cls = name_or_attr_rule(p)) // name_or_attr
Brandt Bucher145bf262021-02-26 14:51:55 -08007865 &&
7866 (_literal = _PyPegen_expect_token(p, 7)) // token='('
7867 &&
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007868 (patterns = positional_patterns_rule(p)) // positional_patterns
Brandt Bucher145bf262021-02-26 14:51:55 -08007869 &&
7870 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
7871 &&
7872 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
7873 )
7874 {
7875 D(fprintf(stderr, "%*c+ class_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' positional_patterns ','? ')'"));
7876 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7877 if (_token == NULL) {
7878 D(p->level--);
7879 return NULL;
7880 }
7881 int _end_lineno = _token->end_lineno;
7882 UNUSED(_end_lineno); // Only used by EXTRA macro
7883 int _end_col_offset = _token->end_col_offset;
7884 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007885 _res = _PyAST_MatchClass ( cls , patterns , NULL , NULL , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08007886 if (_res == NULL && PyErr_Occurred()) {
7887 p->error_indicator = 1;
7888 D(p->level--);
7889 return NULL;
7890 }
7891 goto done;
7892 }
7893 p->mark = _mark;
7894 D(fprintf(stderr, "%*c%s class_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7895 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "name_or_attr '(' positional_patterns ','? ')'"));
7896 }
7897 { // name_or_attr '(' keyword_patterns ','? ')'
7898 if (p->error_indicator) {
7899 D(p->level--);
7900 return NULL;
7901 }
7902 D(fprintf(stderr, "%*c> class_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' keyword_patterns ','? ')'"));
7903 Token * _literal;
7904 Token * _literal_1;
7905 void *_opt_var;
7906 UNUSED(_opt_var); // Silence compiler warnings
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007907 expr_ty cls;
7908 asdl_seq* keywords;
Brandt Bucher145bf262021-02-26 14:51:55 -08007909 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007910 (cls = name_or_attr_rule(p)) // name_or_attr
Brandt Bucher145bf262021-02-26 14:51:55 -08007911 &&
7912 (_literal = _PyPegen_expect_token(p, 7)) // token='('
7913 &&
7914 (keywords = keyword_patterns_rule(p)) // keyword_patterns
7915 &&
7916 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
7917 &&
7918 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
7919 )
7920 {
7921 D(fprintf(stderr, "%*c+ class_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' keyword_patterns ','? ')'"));
7922 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7923 if (_token == NULL) {
7924 D(p->level--);
7925 return NULL;
7926 }
7927 int _end_lineno = _token->end_lineno;
7928 UNUSED(_end_lineno); // Only used by EXTRA macro
7929 int _end_col_offset = _token->end_col_offset;
7930 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007931 _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 -08007932 if (_res == NULL && PyErr_Occurred()) {
7933 p->error_indicator = 1;
7934 D(p->level--);
7935 return NULL;
7936 }
7937 goto done;
7938 }
7939 p->mark = _mark;
7940 D(fprintf(stderr, "%*c%s class_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7941 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "name_or_attr '(' keyword_patterns ','? ')'"));
7942 }
7943 { // name_or_attr '(' positional_patterns ',' keyword_patterns ','? ')'
7944 if (p->error_indicator) {
7945 D(p->level--);
7946 return NULL;
7947 }
7948 D(fprintf(stderr, "%*c> class_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' positional_patterns ',' keyword_patterns ','? ')'"));
7949 Token * _literal;
7950 Token * _literal_1;
7951 Token * _literal_2;
7952 void *_opt_var;
7953 UNUSED(_opt_var); // Silence compiler warnings
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007954 expr_ty cls;
7955 asdl_seq* keywords;
7956 asdl_pattern_seq* patterns;
Brandt Bucher145bf262021-02-26 14:51:55 -08007957 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007958 (cls = name_or_attr_rule(p)) // name_or_attr
Brandt Bucher145bf262021-02-26 14:51:55 -08007959 &&
7960 (_literal = _PyPegen_expect_token(p, 7)) // token='('
7961 &&
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007962 (patterns = positional_patterns_rule(p)) // positional_patterns
Brandt Bucher145bf262021-02-26 14:51:55 -08007963 &&
7964 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
7965 &&
7966 (keywords = keyword_patterns_rule(p)) // keyword_patterns
7967 &&
7968 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
7969 &&
7970 (_literal_2 = _PyPegen_expect_token(p, 8)) // token=')'
7971 )
7972 {
7973 D(fprintf(stderr, "%*c+ class_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' positional_patterns ',' keyword_patterns ','? ')'"));
7974 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7975 if (_token == NULL) {
7976 D(p->level--);
7977 return NULL;
7978 }
7979 int _end_lineno = _token->end_lineno;
7980 UNUSED(_end_lineno); // Only used by EXTRA macro
7981 int _end_col_offset = _token->end_col_offset;
7982 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007983 _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 -08007984 if (_res == NULL && PyErr_Occurred()) {
7985 p->error_indicator = 1;
7986 D(p->level--);
7987 return NULL;
7988 }
7989 goto done;
7990 }
7991 p->mark = _mark;
7992 D(fprintf(stderr, "%*c%s class_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7993 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "name_or_attr '(' positional_patterns ',' keyword_patterns ','? ')'"));
7994 }
7995 _res = NULL;
7996 done:
7997 D(p->level--);
7998 return _res;
7999}
8000
8001// positional_patterns: ','.pattern+
Nick Coghlan1e7b8582021-04-29 15:58:44 +10008002static asdl_pattern_seq*
Brandt Bucher145bf262021-02-26 14:51:55 -08008003positional_patterns_rule(Parser *p)
8004{
8005 D(p->level++);
8006 if (p->error_indicator) {
8007 D(p->level--);
8008 return NULL;
8009 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10008010 asdl_pattern_seq* _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08008011 int _mark = p->mark;
8012 { // ','.pattern+
8013 if (p->error_indicator) {
8014 D(p->level--);
8015 return NULL;
8016 }
8017 D(fprintf(stderr, "%*c> positional_patterns[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.pattern+"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10008018 asdl_pattern_seq* args;
Brandt Bucher145bf262021-02-26 14:51:55 -08008019 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10008020 (args = (asdl_pattern_seq*)_gather_62_rule(p)) // ','.pattern+
Brandt Bucher145bf262021-02-26 14:51:55 -08008021 )
8022 {
8023 D(fprintf(stderr, "%*c+ positional_patterns[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.pattern+"));
8024 _res = args;
8025 if (_res == NULL && PyErr_Occurred()) {
8026 p->error_indicator = 1;
8027 D(p->level--);
8028 return NULL;
8029 }
8030 goto done;
8031 }
8032 p->mark = _mark;
8033 D(fprintf(stderr, "%*c%s positional_patterns[%d-%d]: %s failed!\n", p->level, ' ',
8034 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.pattern+"));
8035 }
8036 _res = NULL;
8037 done:
8038 D(p->level--);
8039 return _res;
8040}
8041
8042// keyword_patterns: ','.keyword_pattern+
Nick Coghlan1e7b8582021-04-29 15:58:44 +10008043static asdl_seq*
Brandt Bucher145bf262021-02-26 14:51:55 -08008044keyword_patterns_rule(Parser *p)
8045{
8046 D(p->level++);
8047 if (p->error_indicator) {
8048 D(p->level--);
8049 return NULL;
8050 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10008051 asdl_seq* _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08008052 int _mark = p->mark;
8053 { // ','.keyword_pattern+
8054 if (p->error_indicator) {
8055 D(p->level--);
8056 return NULL;
8057 }
8058 D(fprintf(stderr, "%*c> keyword_patterns[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.keyword_pattern+"));
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07008059 asdl_seq * _gather_64_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08008060 if (
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07008061 (_gather_64_var = _gather_64_rule(p)) // ','.keyword_pattern+
Brandt Bucher145bf262021-02-26 14:51:55 -08008062 )
8063 {
8064 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 -07008065 _res = _gather_64_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08008066 goto done;
8067 }
8068 p->mark = _mark;
8069 D(fprintf(stderr, "%*c%s keyword_patterns[%d-%d]: %s failed!\n", p->level, ' ',
8070 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.keyword_pattern+"));
8071 }
8072 _res = NULL;
8073 done:
8074 D(p->level--);
8075 return _res;
8076}
8077
8078// keyword_pattern: NAME '=' pattern
Nick Coghlan1e7b8582021-04-29 15:58:44 +10008079static KeyPatternPair*
Brandt Bucher145bf262021-02-26 14:51:55 -08008080keyword_pattern_rule(Parser *p)
8081{
8082 D(p->level++);
8083 if (p->error_indicator) {
8084 D(p->level--);
8085 return NULL;
8086 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10008087 KeyPatternPair* _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08008088 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -08008089 { // NAME '=' pattern
8090 if (p->error_indicator) {
8091 D(p->level--);
8092 return NULL;
8093 }
8094 D(fprintf(stderr, "%*c> keyword_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME '=' pattern"));
8095 Token * _literal;
8096 expr_ty arg;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10008097 pattern_ty value;
Brandt Bucher145bf262021-02-26 14:51:55 -08008098 if (
8099 (arg = _PyPegen_name_token(p)) // NAME
8100 &&
8101 (_literal = _PyPegen_expect_token(p, 22)) // token='='
8102 &&
8103 (value = pattern_rule(p)) // pattern
8104 )
8105 {
8106 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 +10008107 _res = _PyPegen_key_pattern_pair ( p , arg , value );
Brandt Bucher145bf262021-02-26 14:51:55 -08008108 if (_res == NULL && PyErr_Occurred()) {
8109 p->error_indicator = 1;
8110 D(p->level--);
8111 return NULL;
8112 }
8113 goto done;
8114 }
8115 p->mark = _mark;
8116 D(fprintf(stderr, "%*c%s keyword_pattern[%d-%d]: %s failed!\n", p->level, ' ',
8117 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' pattern"));
8118 }
8119 _res = NULL;
8120 done:
8121 D(p->level--);
8122 return _res;
8123}
8124
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008125// return_stmt: 'return' star_expressions?
8126static stmt_ty
8127return_stmt_rule(Parser *p)
8128{
8129 D(p->level++);
8130 if (p->error_indicator) {
8131 D(p->level--);
8132 return NULL;
8133 }
8134 stmt_ty _res = NULL;
8135 int _mark = p->mark;
8136 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
8137 p->error_indicator = 1;
8138 D(p->level--);
8139 return NULL;
8140 }
8141 int _start_lineno = p->tokens[_mark]->lineno;
8142 UNUSED(_start_lineno); // Only used by EXTRA macro
8143 int _start_col_offset = p->tokens[_mark]->col_offset;
8144 UNUSED(_start_col_offset); // Only used by EXTRA macro
8145 { // 'return' star_expressions?
8146 if (p->error_indicator) {
8147 D(p->level--);
8148 return NULL;
8149 }
8150 D(fprintf(stderr, "%*c> return_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'return' star_expressions?"));
8151 Token * _keyword;
8152 void *a;
8153 if (
8154 (_keyword = _PyPegen_expect_token(p, 500)) // token='return'
8155 &&
8156 (a = star_expressions_rule(p), 1) // star_expressions?
8157 )
8158 {
8159 D(fprintf(stderr, "%*c+ return_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'return' star_expressions?"));
8160 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8161 if (_token == NULL) {
8162 D(p->level--);
8163 return NULL;
8164 }
8165 int _end_lineno = _token->end_lineno;
8166 UNUSED(_end_lineno); // Only used by EXTRA macro
8167 int _end_col_offset = _token->end_col_offset;
8168 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02008169 _res = _PyAST_Return ( a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008170 if (_res == NULL && PyErr_Occurred()) {
8171 p->error_indicator = 1;
8172 D(p->level--);
8173 return NULL;
8174 }
8175 goto done;
8176 }
8177 p->mark = _mark;
8178 D(fprintf(stderr, "%*c%s return_stmt[%d-%d]: %s failed!\n", p->level, ' ',
8179 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'return' star_expressions?"));
8180 }
8181 _res = NULL;
8182 done:
8183 D(p->level--);
8184 return _res;
8185}
8186
8187// raise_stmt: 'raise' expression ['from' expression] | 'raise'
8188static stmt_ty
8189raise_stmt_rule(Parser *p)
8190{
8191 D(p->level++);
8192 if (p->error_indicator) {
8193 D(p->level--);
8194 return NULL;
8195 }
8196 stmt_ty _res = NULL;
8197 int _mark = p->mark;
8198 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
8199 p->error_indicator = 1;
8200 D(p->level--);
8201 return NULL;
8202 }
8203 int _start_lineno = p->tokens[_mark]->lineno;
8204 UNUSED(_start_lineno); // Only used by EXTRA macro
8205 int _start_col_offset = p->tokens[_mark]->col_offset;
8206 UNUSED(_start_col_offset); // Only used by EXTRA macro
8207 { // 'raise' expression ['from' expression]
8208 if (p->error_indicator) {
8209 D(p->level--);
8210 return NULL;
8211 }
8212 D(fprintf(stderr, "%*c> raise_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'raise' expression ['from' expression]"));
8213 Token * _keyword;
8214 expr_ty a;
8215 void *b;
8216 if (
8217 (_keyword = _PyPegen_expect_token(p, 501)) // token='raise'
8218 &&
8219 (a = expression_rule(p)) // expression
8220 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008221 (b = _tmp_66_rule(p), 1) // ['from' expression]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008222 )
8223 {
8224 D(fprintf(stderr, "%*c+ raise_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'raise' expression ['from' expression]"));
8225 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8226 if (_token == NULL) {
8227 D(p->level--);
8228 return NULL;
8229 }
8230 int _end_lineno = _token->end_lineno;
8231 UNUSED(_end_lineno); // Only used by EXTRA macro
8232 int _end_col_offset = _token->end_col_offset;
8233 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02008234 _res = _PyAST_Raise ( a , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008235 if (_res == NULL && PyErr_Occurred()) {
8236 p->error_indicator = 1;
8237 D(p->level--);
8238 return NULL;
8239 }
8240 goto done;
8241 }
8242 p->mark = _mark;
8243 D(fprintf(stderr, "%*c%s raise_stmt[%d-%d]: %s failed!\n", p->level, ' ',
8244 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'raise' expression ['from' expression]"));
8245 }
8246 { // 'raise'
8247 if (p->error_indicator) {
8248 D(p->level--);
8249 return NULL;
8250 }
8251 D(fprintf(stderr, "%*c> raise_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'raise'"));
8252 Token * _keyword;
8253 if (
8254 (_keyword = _PyPegen_expect_token(p, 501)) // token='raise'
8255 )
8256 {
8257 D(fprintf(stderr, "%*c+ raise_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'raise'"));
8258 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8259 if (_token == NULL) {
8260 D(p->level--);
8261 return NULL;
8262 }
8263 int _end_lineno = _token->end_lineno;
8264 UNUSED(_end_lineno); // Only used by EXTRA macro
8265 int _end_col_offset = _token->end_col_offset;
8266 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02008267 _res = _PyAST_Raise ( NULL , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008268 if (_res == NULL && PyErr_Occurred()) {
8269 p->error_indicator = 1;
8270 D(p->level--);
8271 return NULL;
8272 }
8273 goto done;
8274 }
8275 p->mark = _mark;
8276 D(fprintf(stderr, "%*c%s raise_stmt[%d-%d]: %s failed!\n", p->level, ' ',
8277 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'raise'"));
8278 }
8279 _res = NULL;
8280 done:
8281 D(p->level--);
8282 return _res;
8283}
8284
8285// function_def: decorators function_def_raw | function_def_raw
8286static stmt_ty
8287function_def_rule(Parser *p)
8288{
8289 D(p->level++);
8290 if (p->error_indicator) {
8291 D(p->level--);
8292 return NULL;
8293 }
8294 stmt_ty _res = NULL;
8295 int _mark = p->mark;
8296 { // decorators function_def_raw
8297 if (p->error_indicator) {
8298 D(p->level--);
8299 return NULL;
8300 }
8301 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 +01008302 asdl_expr_seq* d;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008303 stmt_ty f;
8304 if (
8305 (d = decorators_rule(p)) // decorators
8306 &&
8307 (f = function_def_raw_rule(p)) // function_def_raw
8308 )
8309 {
8310 D(fprintf(stderr, "%*c+ function_def[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "decorators function_def_raw"));
8311 _res = _PyPegen_function_def_decorators ( p , d , f );
8312 if (_res == NULL && PyErr_Occurred()) {
8313 p->error_indicator = 1;
8314 D(p->level--);
8315 return NULL;
8316 }
8317 goto done;
8318 }
8319 p->mark = _mark;
8320 D(fprintf(stderr, "%*c%s function_def[%d-%d]: %s failed!\n", p->level, ' ',
8321 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "decorators function_def_raw"));
8322 }
8323 { // function_def_raw
8324 if (p->error_indicator) {
8325 D(p->level--);
8326 return NULL;
8327 }
8328 D(fprintf(stderr, "%*c> function_def[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "function_def_raw"));
8329 stmt_ty function_def_raw_var;
8330 if (
8331 (function_def_raw_var = function_def_raw_rule(p)) // function_def_raw
8332 )
8333 {
8334 D(fprintf(stderr, "%*c+ function_def[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "function_def_raw"));
8335 _res = function_def_raw_var;
8336 goto done;
8337 }
8338 p->mark = _mark;
8339 D(fprintf(stderr, "%*c%s function_def[%d-%d]: %s failed!\n", p->level, ' ',
8340 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "function_def_raw"));
8341 }
8342 _res = NULL;
8343 done:
8344 D(p->level--);
8345 return _res;
8346}
8347
8348// function_def_raw:
Pablo Galindo56c95df2021-04-21 15:28:21 +01008349// | invalid_def_raw
Pablo Galindo58fb1562021-02-02 19:54:22 +00008350// | 'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block
8351// | ASYNC 'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008352static stmt_ty
8353function_def_raw_rule(Parser *p)
8354{
8355 D(p->level++);
8356 if (p->error_indicator) {
8357 D(p->level--);
8358 return NULL;
8359 }
8360 stmt_ty _res = NULL;
8361 int _mark = p->mark;
8362 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
8363 p->error_indicator = 1;
8364 D(p->level--);
8365 return NULL;
8366 }
8367 int _start_lineno = p->tokens[_mark]->lineno;
8368 UNUSED(_start_lineno); // Only used by EXTRA macro
8369 int _start_col_offset = p->tokens[_mark]->col_offset;
8370 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo56c95df2021-04-21 15:28:21 +01008371 if (p->call_invalid_rules) { // invalid_def_raw
8372 if (p->error_indicator) {
8373 D(p->level--);
8374 return NULL;
8375 }
8376 D(fprintf(stderr, "%*c> function_def_raw[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_def_raw"));
8377 void *invalid_def_raw_var;
8378 if (
8379 (invalid_def_raw_var = invalid_def_raw_rule(p)) // invalid_def_raw
8380 )
8381 {
8382 D(fprintf(stderr, "%*c+ function_def_raw[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_def_raw"));
8383 _res = invalid_def_raw_var;
8384 goto done;
8385 }
8386 p->mark = _mark;
8387 D(fprintf(stderr, "%*c%s function_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
8388 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_def_raw"));
8389 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00008390 { // 'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008391 if (p->error_indicator) {
8392 D(p->level--);
8393 return NULL;
8394 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00008395 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 +01008396 Token * _keyword;
8397 Token * _literal;
8398 Token * _literal_1;
8399 Token * _literal_2;
8400 void *a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01008401 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008402 expr_ty n;
8403 void *params;
8404 void *tc;
8405 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08008406 (_keyword = _PyPegen_expect_token(p, 526)) // token='def'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008407 &&
8408 (n = _PyPegen_name_token(p)) // NAME
8409 &&
8410 (_literal = _PyPegen_expect_token(p, 7)) // token='('
8411 &&
8412 (params = params_rule(p), 1) // params?
8413 &&
8414 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
8415 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008416 (a = _tmp_67_rule(p), 1) // ['->' expression]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008417 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00008418 (_literal_2 = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008419 &&
8420 (tc = func_type_comment_rule(p), 1) // func_type_comment?
8421 &&
8422 (b = block_rule(p)) // block
8423 )
8424 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00008425 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 +01008426 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8427 if (_token == NULL) {
8428 D(p->level--);
8429 return NULL;
8430 }
8431 int _end_lineno = _token->end_lineno;
8432 UNUSED(_end_lineno); // Only used by EXTRA macro
8433 int _end_col_offset = _token->end_col_offset;
8434 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02008435 _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 +01008436 if (_res == NULL && PyErr_Occurred()) {
8437 p->error_indicator = 1;
8438 D(p->level--);
8439 return NULL;
8440 }
8441 goto done;
8442 }
8443 p->mark = _mark;
8444 D(fprintf(stderr, "%*c%s function_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00008445 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008446 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00008447 { // ASYNC 'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008448 if (p->error_indicator) {
8449 D(p->level--);
8450 return NULL;
8451 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00008452 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 +01008453 Token * _keyword;
8454 Token * _literal;
8455 Token * _literal_1;
8456 Token * _literal_2;
8457 void *a;
8458 Token * async_var;
Pablo Galindoa5634c42020-09-16 19:42:00 +01008459 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008460 expr_ty n;
8461 void *params;
8462 void *tc;
8463 if (
8464 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
8465 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008466 (_keyword = _PyPegen_expect_token(p, 526)) // token='def'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008467 &&
8468 (n = _PyPegen_name_token(p)) // NAME
8469 &&
8470 (_literal = _PyPegen_expect_token(p, 7)) // token='('
8471 &&
8472 (params = params_rule(p), 1) // params?
8473 &&
8474 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
8475 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008476 (a = _tmp_68_rule(p), 1) // ['->' expression]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008477 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00008478 (_literal_2 = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008479 &&
8480 (tc = func_type_comment_rule(p), 1) // func_type_comment?
8481 &&
8482 (b = block_rule(p)) // block
8483 )
8484 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00008485 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 +01008486 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8487 if (_token == NULL) {
8488 D(p->level--);
8489 return NULL;
8490 }
8491 int _end_lineno = _token->end_lineno;
8492 UNUSED(_end_lineno); // Only used by EXTRA macro
8493 int _end_col_offset = _token->end_col_offset;
8494 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02008495 _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 +01008496 if (_res == NULL && PyErr_Occurred()) {
8497 p->error_indicator = 1;
8498 D(p->level--);
8499 return NULL;
8500 }
8501 goto done;
8502 }
8503 p->mark = _mark;
8504 D(fprintf(stderr, "%*c%s function_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00008505 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008506 }
8507 _res = NULL;
8508 done:
8509 D(p->level--);
8510 return _res;
8511}
8512
8513// func_type_comment:
8514// | NEWLINE TYPE_COMMENT &(NEWLINE INDENT)
8515// | invalid_double_type_comments
8516// | TYPE_COMMENT
8517static Token*
8518func_type_comment_rule(Parser *p)
8519{
8520 D(p->level++);
8521 if (p->error_indicator) {
8522 D(p->level--);
8523 return NULL;
8524 }
8525 Token* _res = NULL;
8526 int _mark = p->mark;
8527 { // NEWLINE TYPE_COMMENT &(NEWLINE INDENT)
8528 if (p->error_indicator) {
8529 D(p->level--);
8530 return NULL;
8531 }
8532 D(fprintf(stderr, "%*c> func_type_comment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE TYPE_COMMENT &(NEWLINE INDENT)"));
8533 Token * newline_var;
8534 Token * t;
8535 if (
8536 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
8537 &&
8538 (t = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
8539 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008540 _PyPegen_lookahead(1, _tmp_69_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008541 )
8542 {
8543 D(fprintf(stderr, "%*c+ func_type_comment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE TYPE_COMMENT &(NEWLINE INDENT)"));
8544 _res = t;
8545 if (_res == NULL && PyErr_Occurred()) {
8546 p->error_indicator = 1;
8547 D(p->level--);
8548 return NULL;
8549 }
8550 goto done;
8551 }
8552 p->mark = _mark;
8553 D(fprintf(stderr, "%*c%s func_type_comment[%d-%d]: %s failed!\n", p->level, ' ',
8554 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE TYPE_COMMENT &(NEWLINE INDENT)"));
8555 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02008556 if (p->call_invalid_rules) { // invalid_double_type_comments
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008557 if (p->error_indicator) {
8558 D(p->level--);
8559 return NULL;
8560 }
8561 D(fprintf(stderr, "%*c> func_type_comment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_double_type_comments"));
8562 void *invalid_double_type_comments_var;
8563 if (
8564 (invalid_double_type_comments_var = invalid_double_type_comments_rule(p)) // invalid_double_type_comments
8565 )
8566 {
8567 D(fprintf(stderr, "%*c+ func_type_comment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_double_type_comments"));
8568 _res = invalid_double_type_comments_var;
8569 goto done;
8570 }
8571 p->mark = _mark;
8572 D(fprintf(stderr, "%*c%s func_type_comment[%d-%d]: %s failed!\n", p->level, ' ',
8573 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_double_type_comments"));
8574 }
8575 { // TYPE_COMMENT
8576 if (p->error_indicator) {
8577 D(p->level--);
8578 return NULL;
8579 }
8580 D(fprintf(stderr, "%*c> func_type_comment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "TYPE_COMMENT"));
8581 Token * type_comment_var;
8582 if (
8583 (type_comment_var = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
8584 )
8585 {
8586 D(fprintf(stderr, "%*c+ func_type_comment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "TYPE_COMMENT"));
8587 _res = type_comment_var;
8588 goto done;
8589 }
8590 p->mark = _mark;
8591 D(fprintf(stderr, "%*c%s func_type_comment[%d-%d]: %s failed!\n", p->level, ' ',
8592 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "TYPE_COMMENT"));
8593 }
8594 _res = NULL;
8595 done:
8596 D(p->level--);
8597 return _res;
8598}
8599
8600// params: invalid_parameters | parameters
8601static arguments_ty
8602params_rule(Parser *p)
8603{
8604 D(p->level++);
8605 if (p->error_indicator) {
8606 D(p->level--);
8607 return NULL;
8608 }
8609 arguments_ty _res = NULL;
8610 int _mark = p->mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02008611 if (p->call_invalid_rules) { // invalid_parameters
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008612 if (p->error_indicator) {
8613 D(p->level--);
8614 return NULL;
8615 }
8616 D(fprintf(stderr, "%*c> params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_parameters"));
8617 void *invalid_parameters_var;
8618 if (
8619 (invalid_parameters_var = invalid_parameters_rule(p)) // invalid_parameters
8620 )
8621 {
8622 D(fprintf(stderr, "%*c+ params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_parameters"));
8623 _res = invalid_parameters_var;
8624 goto done;
8625 }
8626 p->mark = _mark;
8627 D(fprintf(stderr, "%*c%s params[%d-%d]: %s failed!\n", p->level, ' ',
8628 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_parameters"));
8629 }
8630 { // parameters
8631 if (p->error_indicator) {
8632 D(p->level--);
8633 return NULL;
8634 }
8635 D(fprintf(stderr, "%*c> params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "parameters"));
8636 arguments_ty parameters_var;
8637 if (
8638 (parameters_var = parameters_rule(p)) // parameters
8639 )
8640 {
8641 D(fprintf(stderr, "%*c+ params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "parameters"));
8642 _res = parameters_var;
8643 goto done;
8644 }
8645 p->mark = _mark;
8646 D(fprintf(stderr, "%*c%s params[%d-%d]: %s failed!\n", p->level, ' ',
8647 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "parameters"));
8648 }
8649 _res = NULL;
8650 done:
8651 D(p->level--);
8652 return _res;
8653}
8654
8655// parameters:
8656// | slash_no_default param_no_default* param_with_default* star_etc?
8657// | slash_with_default param_with_default* star_etc?
8658// | param_no_default+ param_with_default* star_etc?
8659// | param_with_default+ star_etc?
8660// | star_etc
8661static arguments_ty
8662parameters_rule(Parser *p)
8663{
8664 D(p->level++);
8665 if (p->error_indicator) {
8666 D(p->level--);
8667 return NULL;
8668 }
8669 arguments_ty _res = NULL;
8670 int _mark = p->mark;
8671 { // slash_no_default param_no_default* param_with_default* star_etc?
8672 if (p->error_indicator) {
8673 D(p->level--);
8674 return NULL;
8675 }
8676 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 +01008677 asdl_arg_seq* a;
8678 asdl_arg_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008679 asdl_seq * c;
8680 void *d;
8681 if (
8682 (a = slash_no_default_rule(p)) // slash_no_default
8683 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008684 (b = (asdl_arg_seq*)_loop0_70_rule(p)) // param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008685 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008686 (c = _loop0_71_rule(p)) // param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008687 &&
8688 (d = star_etc_rule(p), 1) // star_etc?
8689 )
8690 {
8691 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?"));
8692 _res = _PyPegen_make_arguments ( p , a , NULL , b , c , d );
8693 if (_res == NULL && PyErr_Occurred()) {
8694 p->error_indicator = 1;
8695 D(p->level--);
8696 return NULL;
8697 }
8698 goto done;
8699 }
8700 p->mark = _mark;
8701 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
8702 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slash_no_default param_no_default* param_with_default* star_etc?"));
8703 }
8704 { // slash_with_default param_with_default* star_etc?
8705 if (p->error_indicator) {
8706 D(p->level--);
8707 return NULL;
8708 }
8709 D(fprintf(stderr, "%*c> parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slash_with_default param_with_default* star_etc?"));
8710 SlashWithDefault* a;
8711 asdl_seq * b;
8712 void *c;
8713 if (
8714 (a = slash_with_default_rule(p)) // slash_with_default
8715 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008716 (b = _loop0_72_rule(p)) // param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008717 &&
8718 (c = star_etc_rule(p), 1) // star_etc?
8719 )
8720 {
8721 D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slash_with_default param_with_default* star_etc?"));
8722 _res = _PyPegen_make_arguments ( p , NULL , a , NULL , b , c );
8723 if (_res == NULL && PyErr_Occurred()) {
8724 p->error_indicator = 1;
8725 D(p->level--);
8726 return NULL;
8727 }
8728 goto done;
8729 }
8730 p->mark = _mark;
8731 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
8732 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slash_with_default param_with_default* star_etc?"));
8733 }
8734 { // param_no_default+ param_with_default* star_etc?
8735 if (p->error_indicator) {
8736 D(p->level--);
8737 return NULL;
8738 }
8739 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 +01008740 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008741 asdl_seq * b;
8742 void *c;
8743 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08008744 (a = (asdl_arg_seq*)_loop1_73_rule(p)) // param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008745 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008746 (b = _loop0_74_rule(p)) // param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008747 &&
8748 (c = star_etc_rule(p), 1) // star_etc?
8749 )
8750 {
8751 D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default+ param_with_default* star_etc?"));
8752 _res = _PyPegen_make_arguments ( p , NULL , NULL , a , b , c );
8753 if (_res == NULL && PyErr_Occurred()) {
8754 p->error_indicator = 1;
8755 D(p->level--);
8756 return NULL;
8757 }
8758 goto done;
8759 }
8760 p->mark = _mark;
8761 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
8762 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default+ param_with_default* star_etc?"));
8763 }
8764 { // param_with_default+ star_etc?
8765 if (p->error_indicator) {
8766 D(p->level--);
8767 return NULL;
8768 }
8769 D(fprintf(stderr, "%*c> parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default+ star_etc?"));
8770 asdl_seq * a;
8771 void *b;
8772 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08008773 (a = _loop1_75_rule(p)) // param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008774 &&
8775 (b = star_etc_rule(p), 1) // star_etc?
8776 )
8777 {
8778 D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_with_default+ star_etc?"));
8779 _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , a , b );
8780 if (_res == NULL && PyErr_Occurred()) {
8781 p->error_indicator = 1;
8782 D(p->level--);
8783 return NULL;
8784 }
8785 goto done;
8786 }
8787 p->mark = _mark;
8788 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
8789 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default+ star_etc?"));
8790 }
8791 { // star_etc
8792 if (p->error_indicator) {
8793 D(p->level--);
8794 return NULL;
8795 }
8796 D(fprintf(stderr, "%*c> parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_etc"));
8797 StarEtc* a;
8798 if (
8799 (a = star_etc_rule(p)) // star_etc
8800 )
8801 {
8802 D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_etc"));
8803 _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , NULL , a );
8804 if (_res == NULL && PyErr_Occurred()) {
8805 p->error_indicator = 1;
8806 D(p->level--);
8807 return NULL;
8808 }
8809 goto done;
8810 }
8811 p->mark = _mark;
8812 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
8813 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_etc"));
8814 }
8815 _res = NULL;
8816 done:
8817 D(p->level--);
8818 return _res;
8819}
8820
8821// slash_no_default: param_no_default+ '/' ',' | param_no_default+ '/' &')'
Pablo Galindoa5634c42020-09-16 19:42:00 +01008822static asdl_arg_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008823slash_no_default_rule(Parser *p)
8824{
8825 D(p->level++);
8826 if (p->error_indicator) {
8827 D(p->level--);
8828 return NULL;
8829 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01008830 asdl_arg_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008831 int _mark = p->mark;
8832 { // param_no_default+ '/' ','
8833 if (p->error_indicator) {
8834 D(p->level--);
8835 return NULL;
8836 }
8837 D(fprintf(stderr, "%*c> slash_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default+ '/' ','"));
8838 Token * _literal;
8839 Token * _literal_1;
Pablo Galindoa5634c42020-09-16 19:42:00 +01008840 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008841 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08008842 (a = (asdl_arg_seq*)_loop1_76_rule(p)) // param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008843 &&
8844 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
8845 &&
8846 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
8847 )
8848 {
8849 D(fprintf(stderr, "%*c+ slash_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default+ '/' ','"));
8850 _res = a;
8851 if (_res == NULL && PyErr_Occurred()) {
8852 p->error_indicator = 1;
8853 D(p->level--);
8854 return NULL;
8855 }
8856 goto done;
8857 }
8858 p->mark = _mark;
8859 D(fprintf(stderr, "%*c%s slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
8860 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default+ '/' ','"));
8861 }
8862 { // param_no_default+ '/' &')'
8863 if (p->error_indicator) {
8864 D(p->level--);
8865 return NULL;
8866 }
8867 D(fprintf(stderr, "%*c> slash_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default+ '/' &')'"));
8868 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01008869 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008870 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08008871 (a = (asdl_arg_seq*)_loop1_77_rule(p)) // param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008872 &&
8873 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
8874 &&
8875 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
8876 )
8877 {
8878 D(fprintf(stderr, "%*c+ slash_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default+ '/' &')'"));
8879 _res = a;
8880 if (_res == NULL && PyErr_Occurred()) {
8881 p->error_indicator = 1;
8882 D(p->level--);
8883 return NULL;
8884 }
8885 goto done;
8886 }
8887 p->mark = _mark;
8888 D(fprintf(stderr, "%*c%s slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
8889 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default+ '/' &')'"));
8890 }
8891 _res = NULL;
8892 done:
8893 D(p->level--);
8894 return _res;
8895}
8896
8897// slash_with_default:
8898// | param_no_default* param_with_default+ '/' ','
8899// | param_no_default* param_with_default+ '/' &')'
8900static SlashWithDefault*
8901slash_with_default_rule(Parser *p)
8902{
8903 D(p->level++);
8904 if (p->error_indicator) {
8905 D(p->level--);
8906 return NULL;
8907 }
8908 SlashWithDefault* _res = NULL;
8909 int _mark = p->mark;
8910 { // param_no_default* param_with_default+ '/' ','
8911 if (p->error_indicator) {
8912 D(p->level--);
8913 return NULL;
8914 }
8915 D(fprintf(stderr, "%*c> slash_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default* param_with_default+ '/' ','"));
8916 Token * _literal;
8917 Token * _literal_1;
8918 asdl_seq * a;
8919 asdl_seq * b;
8920 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08008921 (a = _loop0_78_rule(p)) // param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008922 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008923 (b = _loop1_79_rule(p)) // param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008924 &&
8925 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
8926 &&
8927 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
8928 )
8929 {
8930 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 +01008931 _res = _PyPegen_slash_with_default ( p , ( asdl_arg_seq * ) a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008932 if (_res == NULL && PyErr_Occurred()) {
8933 p->error_indicator = 1;
8934 D(p->level--);
8935 return NULL;
8936 }
8937 goto done;
8938 }
8939 p->mark = _mark;
8940 D(fprintf(stderr, "%*c%s slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
8941 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default* param_with_default+ '/' ','"));
8942 }
8943 { // param_no_default* param_with_default+ '/' &')'
8944 if (p->error_indicator) {
8945 D(p->level--);
8946 return NULL;
8947 }
8948 D(fprintf(stderr, "%*c> slash_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default* param_with_default+ '/' &')'"));
8949 Token * _literal;
8950 asdl_seq * a;
8951 asdl_seq * b;
8952 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08008953 (a = _loop0_80_rule(p)) // param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008954 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008955 (b = _loop1_81_rule(p)) // param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008956 &&
8957 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
8958 &&
8959 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
8960 )
8961 {
8962 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 +01008963 _res = _PyPegen_slash_with_default ( p , ( asdl_arg_seq * ) a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008964 if (_res == NULL && PyErr_Occurred()) {
8965 p->error_indicator = 1;
8966 D(p->level--);
8967 return NULL;
8968 }
8969 goto done;
8970 }
8971 p->mark = _mark;
8972 D(fprintf(stderr, "%*c%s slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
8973 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default* param_with_default+ '/' &')'"));
8974 }
8975 _res = NULL;
8976 done:
8977 D(p->level--);
8978 return _res;
8979}
8980
8981// star_etc:
8982// | '*' param_no_default param_maybe_default* kwds?
8983// | '*' ',' param_maybe_default+ kwds?
8984// | kwds
8985// | invalid_star_etc
8986static StarEtc*
8987star_etc_rule(Parser *p)
8988{
8989 D(p->level++);
8990 if (p->error_indicator) {
8991 D(p->level--);
8992 return NULL;
8993 }
8994 StarEtc* _res = NULL;
8995 int _mark = p->mark;
8996 { // '*' param_no_default param_maybe_default* kwds?
8997 if (p->error_indicator) {
8998 D(p->level--);
8999 return NULL;
9000 }
9001 D(fprintf(stderr, "%*c> star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' param_no_default param_maybe_default* kwds?"));
9002 Token * _literal;
9003 arg_ty a;
9004 asdl_seq * b;
9005 void *c;
9006 if (
9007 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
9008 &&
9009 (a = param_no_default_rule(p)) // param_no_default
9010 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08009011 (b = _loop0_82_rule(p)) // param_maybe_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009012 &&
9013 (c = kwds_rule(p), 1) // kwds?
9014 )
9015 {
9016 D(fprintf(stderr, "%*c+ star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' param_no_default param_maybe_default* kwds?"));
9017 _res = _PyPegen_star_etc ( p , a , b , c );
9018 if (_res == NULL && PyErr_Occurred()) {
9019 p->error_indicator = 1;
9020 D(p->level--);
9021 return NULL;
9022 }
9023 goto done;
9024 }
9025 p->mark = _mark;
9026 D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
9027 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' param_no_default param_maybe_default* kwds?"));
9028 }
9029 { // '*' ',' param_maybe_default+ kwds?
9030 if (p->error_indicator) {
9031 D(p->level--);
9032 return NULL;
9033 }
9034 D(fprintf(stderr, "%*c> star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' ',' param_maybe_default+ kwds?"));
9035 Token * _literal;
9036 Token * _literal_1;
9037 asdl_seq * b;
9038 void *c;
9039 if (
9040 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
9041 &&
9042 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
9043 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08009044 (b = _loop1_83_rule(p)) // param_maybe_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009045 &&
9046 (c = kwds_rule(p), 1) // kwds?
9047 )
9048 {
9049 D(fprintf(stderr, "%*c+ star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' ',' param_maybe_default+ kwds?"));
9050 _res = _PyPegen_star_etc ( p , NULL , b , c );
9051 if (_res == NULL && PyErr_Occurred()) {
9052 p->error_indicator = 1;
9053 D(p->level--);
9054 return NULL;
9055 }
9056 goto done;
9057 }
9058 p->mark = _mark;
9059 D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
9060 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' ',' param_maybe_default+ kwds?"));
9061 }
9062 { // kwds
9063 if (p->error_indicator) {
9064 D(p->level--);
9065 return NULL;
9066 }
9067 D(fprintf(stderr, "%*c> star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwds"));
9068 arg_ty a;
9069 if (
9070 (a = kwds_rule(p)) // kwds
9071 )
9072 {
9073 D(fprintf(stderr, "%*c+ star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwds"));
9074 _res = _PyPegen_star_etc ( p , NULL , NULL , a );
9075 if (_res == NULL && PyErr_Occurred()) {
9076 p->error_indicator = 1;
9077 D(p->level--);
9078 return NULL;
9079 }
9080 goto done;
9081 }
9082 p->mark = _mark;
9083 D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
9084 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwds"));
9085 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02009086 if (p->call_invalid_rules) { // invalid_star_etc
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009087 if (p->error_indicator) {
9088 D(p->level--);
9089 return NULL;
9090 }
9091 D(fprintf(stderr, "%*c> star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_star_etc"));
9092 void *invalid_star_etc_var;
9093 if (
9094 (invalid_star_etc_var = invalid_star_etc_rule(p)) // invalid_star_etc
9095 )
9096 {
9097 D(fprintf(stderr, "%*c+ star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_star_etc"));
9098 _res = invalid_star_etc_var;
9099 goto done;
9100 }
9101 p->mark = _mark;
9102 D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
9103 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_star_etc"));
9104 }
9105 _res = NULL;
9106 done:
9107 D(p->level--);
9108 return _res;
9109}
9110
9111// kwds: '**' param_no_default
9112static arg_ty
9113kwds_rule(Parser *p)
9114{
9115 D(p->level++);
9116 if (p->error_indicator) {
9117 D(p->level--);
9118 return NULL;
9119 }
9120 arg_ty _res = NULL;
9121 int _mark = p->mark;
9122 { // '**' param_no_default
9123 if (p->error_indicator) {
9124 D(p->level--);
9125 return NULL;
9126 }
9127 D(fprintf(stderr, "%*c> kwds[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' param_no_default"));
9128 Token * _literal;
9129 arg_ty a;
9130 if (
9131 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
9132 &&
9133 (a = param_no_default_rule(p)) // param_no_default
9134 )
9135 {
9136 D(fprintf(stderr, "%*c+ kwds[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' param_no_default"));
9137 _res = a;
9138 if (_res == NULL && PyErr_Occurred()) {
9139 p->error_indicator = 1;
9140 D(p->level--);
9141 return NULL;
9142 }
9143 goto done;
9144 }
9145 p->mark = _mark;
9146 D(fprintf(stderr, "%*c%s kwds[%d-%d]: %s failed!\n", p->level, ' ',
9147 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' param_no_default"));
9148 }
9149 _res = NULL;
9150 done:
9151 D(p->level--);
9152 return _res;
9153}
9154
9155// param_no_default: param ',' TYPE_COMMENT? | param TYPE_COMMENT? &')'
9156static arg_ty
9157param_no_default_rule(Parser *p)
9158{
9159 D(p->level++);
9160 if (p->error_indicator) {
9161 D(p->level--);
9162 return NULL;
9163 }
9164 arg_ty _res = NULL;
9165 int _mark = p->mark;
9166 { // param ',' TYPE_COMMENT?
9167 if (p->error_indicator) {
9168 D(p->level--);
9169 return NULL;
9170 }
9171 D(fprintf(stderr, "%*c> param_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param ',' TYPE_COMMENT?"));
9172 Token * _literal;
9173 arg_ty a;
9174 void *tc;
9175 if (
9176 (a = param_rule(p)) // param
9177 &&
9178 (_literal = _PyPegen_expect_token(p, 12)) // token=','
9179 &&
9180 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
9181 )
9182 {
9183 D(fprintf(stderr, "%*c+ param_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param ',' TYPE_COMMENT?"));
9184 _res = _PyPegen_add_type_comment_to_arg ( p , a , tc );
9185 if (_res == NULL && PyErr_Occurred()) {
9186 p->error_indicator = 1;
9187 D(p->level--);
9188 return NULL;
9189 }
9190 goto done;
9191 }
9192 p->mark = _mark;
9193 D(fprintf(stderr, "%*c%s param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
9194 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param ',' TYPE_COMMENT?"));
9195 }
9196 { // param TYPE_COMMENT? &')'
9197 if (p->error_indicator) {
9198 D(p->level--);
9199 return NULL;
9200 }
9201 D(fprintf(stderr, "%*c> param_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param TYPE_COMMENT? &')'"));
9202 arg_ty a;
9203 void *tc;
9204 if (
9205 (a = param_rule(p)) // param
9206 &&
9207 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
9208 &&
9209 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
9210 )
9211 {
9212 D(fprintf(stderr, "%*c+ param_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param TYPE_COMMENT? &')'"));
9213 _res = _PyPegen_add_type_comment_to_arg ( p , a , tc );
9214 if (_res == NULL && PyErr_Occurred()) {
9215 p->error_indicator = 1;
9216 D(p->level--);
9217 return NULL;
9218 }
9219 goto done;
9220 }
9221 p->mark = _mark;
9222 D(fprintf(stderr, "%*c%s param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
9223 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param TYPE_COMMENT? &')'"));
9224 }
9225 _res = NULL;
9226 done:
9227 D(p->level--);
9228 return _res;
9229}
9230
9231// param_with_default: param default ',' TYPE_COMMENT? | param default TYPE_COMMENT? &')'
9232static NameDefaultPair*
9233param_with_default_rule(Parser *p)
9234{
9235 D(p->level++);
9236 if (p->error_indicator) {
9237 D(p->level--);
9238 return NULL;
9239 }
9240 NameDefaultPair* _res = NULL;
9241 int _mark = p->mark;
9242 { // param default ',' TYPE_COMMENT?
9243 if (p->error_indicator) {
9244 D(p->level--);
9245 return NULL;
9246 }
9247 D(fprintf(stderr, "%*c> param_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param default ',' TYPE_COMMENT?"));
9248 Token * _literal;
9249 arg_ty a;
9250 expr_ty c;
9251 void *tc;
9252 if (
9253 (a = param_rule(p)) // param
9254 &&
9255 (c = default_rule(p)) // default
9256 &&
9257 (_literal = _PyPegen_expect_token(p, 12)) // token=','
9258 &&
9259 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
9260 )
9261 {
9262 D(fprintf(stderr, "%*c+ param_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param default ',' TYPE_COMMENT?"));
9263 _res = _PyPegen_name_default_pair ( p , a , c , tc );
9264 if (_res == NULL && PyErr_Occurred()) {
9265 p->error_indicator = 1;
9266 D(p->level--);
9267 return NULL;
9268 }
9269 goto done;
9270 }
9271 p->mark = _mark;
9272 D(fprintf(stderr, "%*c%s param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
9273 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default ',' TYPE_COMMENT?"));
9274 }
9275 { // param default TYPE_COMMENT? &')'
9276 if (p->error_indicator) {
9277 D(p->level--);
9278 return NULL;
9279 }
9280 D(fprintf(stderr, "%*c> param_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param default TYPE_COMMENT? &')'"));
9281 arg_ty a;
9282 expr_ty c;
9283 void *tc;
9284 if (
9285 (a = param_rule(p)) // param
9286 &&
9287 (c = default_rule(p)) // default
9288 &&
9289 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
9290 &&
9291 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
9292 )
9293 {
9294 D(fprintf(stderr, "%*c+ param_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param default TYPE_COMMENT? &')'"));
9295 _res = _PyPegen_name_default_pair ( p , a , c , tc );
9296 if (_res == NULL && PyErr_Occurred()) {
9297 p->error_indicator = 1;
9298 D(p->level--);
9299 return NULL;
9300 }
9301 goto done;
9302 }
9303 p->mark = _mark;
9304 D(fprintf(stderr, "%*c%s param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
9305 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default TYPE_COMMENT? &')'"));
9306 }
9307 _res = NULL;
9308 done:
9309 D(p->level--);
9310 return _res;
9311}
9312
9313// param_maybe_default:
9314// | param default? ',' TYPE_COMMENT?
9315// | param default? TYPE_COMMENT? &')'
9316static NameDefaultPair*
9317param_maybe_default_rule(Parser *p)
9318{
9319 D(p->level++);
9320 if (p->error_indicator) {
9321 D(p->level--);
9322 return NULL;
9323 }
9324 NameDefaultPair* _res = NULL;
9325 int _mark = p->mark;
9326 { // param default? ',' TYPE_COMMENT?
9327 if (p->error_indicator) {
9328 D(p->level--);
9329 return NULL;
9330 }
9331 D(fprintf(stderr, "%*c> param_maybe_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param default? ',' TYPE_COMMENT?"));
9332 Token * _literal;
9333 arg_ty a;
9334 void *c;
9335 void *tc;
9336 if (
9337 (a = param_rule(p)) // param
9338 &&
9339 (c = default_rule(p), 1) // default?
9340 &&
9341 (_literal = _PyPegen_expect_token(p, 12)) // token=','
9342 &&
9343 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
9344 )
9345 {
9346 D(fprintf(stderr, "%*c+ param_maybe_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param default? ',' TYPE_COMMENT?"));
9347 _res = _PyPegen_name_default_pair ( p , a , c , tc );
9348 if (_res == NULL && PyErr_Occurred()) {
9349 p->error_indicator = 1;
9350 D(p->level--);
9351 return NULL;
9352 }
9353 goto done;
9354 }
9355 p->mark = _mark;
9356 D(fprintf(stderr, "%*c%s param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
9357 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default? ',' TYPE_COMMENT?"));
9358 }
9359 { // param default? TYPE_COMMENT? &')'
9360 if (p->error_indicator) {
9361 D(p->level--);
9362 return NULL;
9363 }
9364 D(fprintf(stderr, "%*c> param_maybe_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param default? TYPE_COMMENT? &')'"));
9365 arg_ty a;
9366 void *c;
9367 void *tc;
9368 if (
9369 (a = param_rule(p)) // param
9370 &&
9371 (c = default_rule(p), 1) // default?
9372 &&
9373 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
9374 &&
9375 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
9376 )
9377 {
9378 D(fprintf(stderr, "%*c+ param_maybe_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param default? TYPE_COMMENT? &')'"));
9379 _res = _PyPegen_name_default_pair ( p , a , c , tc );
9380 if (_res == NULL && PyErr_Occurred()) {
9381 p->error_indicator = 1;
9382 D(p->level--);
9383 return NULL;
9384 }
9385 goto done;
9386 }
9387 p->mark = _mark;
9388 D(fprintf(stderr, "%*c%s param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
9389 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default? TYPE_COMMENT? &')'"));
9390 }
9391 _res = NULL;
9392 done:
9393 D(p->level--);
9394 return _res;
9395}
9396
9397// param: NAME annotation?
9398static arg_ty
9399param_rule(Parser *p)
9400{
9401 D(p->level++);
9402 if (p->error_indicator) {
9403 D(p->level--);
9404 return NULL;
9405 }
9406 arg_ty _res = NULL;
9407 int _mark = p->mark;
9408 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9409 p->error_indicator = 1;
9410 D(p->level--);
9411 return NULL;
9412 }
9413 int _start_lineno = p->tokens[_mark]->lineno;
9414 UNUSED(_start_lineno); // Only used by EXTRA macro
9415 int _start_col_offset = p->tokens[_mark]->col_offset;
9416 UNUSED(_start_col_offset); // Only used by EXTRA macro
9417 { // NAME annotation?
9418 if (p->error_indicator) {
9419 D(p->level--);
9420 return NULL;
9421 }
9422 D(fprintf(stderr, "%*c> param[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME annotation?"));
9423 expr_ty a;
9424 void *b;
9425 if (
9426 (a = _PyPegen_name_token(p)) // NAME
9427 &&
9428 (b = annotation_rule(p), 1) // annotation?
9429 )
9430 {
9431 D(fprintf(stderr, "%*c+ param[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME annotation?"));
9432 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9433 if (_token == NULL) {
9434 D(p->level--);
9435 return NULL;
9436 }
9437 int _end_lineno = _token->end_lineno;
9438 UNUSED(_end_lineno); // Only used by EXTRA macro
9439 int _end_col_offset = _token->end_col_offset;
9440 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02009441 _res = _PyAST_arg ( a -> v . Name . id , b , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009442 if (_res == NULL && PyErr_Occurred()) {
9443 p->error_indicator = 1;
9444 D(p->level--);
9445 return NULL;
9446 }
9447 goto done;
9448 }
9449 p->mark = _mark;
9450 D(fprintf(stderr, "%*c%s param[%d-%d]: %s failed!\n", p->level, ' ',
9451 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME annotation?"));
9452 }
9453 _res = NULL;
9454 done:
9455 D(p->level--);
9456 return _res;
9457}
9458
9459// annotation: ':' expression
9460static expr_ty
9461annotation_rule(Parser *p)
9462{
9463 D(p->level++);
9464 if (p->error_indicator) {
9465 D(p->level--);
9466 return NULL;
9467 }
9468 expr_ty _res = NULL;
9469 int _mark = p->mark;
9470 { // ':' expression
9471 if (p->error_indicator) {
9472 D(p->level--);
9473 return NULL;
9474 }
9475 D(fprintf(stderr, "%*c> annotation[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':' expression"));
9476 Token * _literal;
9477 expr_ty a;
9478 if (
9479 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
9480 &&
9481 (a = expression_rule(p)) // expression
9482 )
9483 {
9484 D(fprintf(stderr, "%*c+ annotation[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':' expression"));
9485 _res = a;
9486 if (_res == NULL && PyErr_Occurred()) {
9487 p->error_indicator = 1;
9488 D(p->level--);
9489 return NULL;
9490 }
9491 goto done;
9492 }
9493 p->mark = _mark;
9494 D(fprintf(stderr, "%*c%s annotation[%d-%d]: %s failed!\n", p->level, ' ',
9495 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':' expression"));
9496 }
9497 _res = NULL;
9498 done:
9499 D(p->level--);
9500 return _res;
9501}
9502
9503// default: '=' expression
9504static expr_ty
9505default_rule(Parser *p)
9506{
9507 D(p->level++);
9508 if (p->error_indicator) {
9509 D(p->level--);
9510 return NULL;
9511 }
9512 expr_ty _res = NULL;
9513 int _mark = p->mark;
9514 { // '=' expression
9515 if (p->error_indicator) {
9516 D(p->level--);
9517 return NULL;
9518 }
9519 D(fprintf(stderr, "%*c> default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'=' expression"));
9520 Token * _literal;
9521 expr_ty a;
9522 if (
9523 (_literal = _PyPegen_expect_token(p, 22)) // token='='
9524 &&
9525 (a = expression_rule(p)) // expression
9526 )
9527 {
9528 D(fprintf(stderr, "%*c+ default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'=' expression"));
9529 _res = a;
9530 if (_res == NULL && PyErr_Occurred()) {
9531 p->error_indicator = 1;
9532 D(p->level--);
9533 return NULL;
9534 }
9535 goto done;
9536 }
9537 p->mark = _mark;
9538 D(fprintf(stderr, "%*c%s default[%d-%d]: %s failed!\n", p->level, ' ',
9539 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'=' expression"));
9540 }
9541 _res = NULL;
9542 done:
9543 D(p->level--);
9544 return _res;
9545}
9546
9547// decorators: (('@' named_expression NEWLINE))+
Pablo Galindoa5634c42020-09-16 19:42:00 +01009548static asdl_expr_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009549decorators_rule(Parser *p)
9550{
9551 D(p->level++);
9552 if (p->error_indicator) {
9553 D(p->level--);
9554 return NULL;
9555 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01009556 asdl_expr_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009557 int _mark = p->mark;
9558 { // (('@' named_expression NEWLINE))+
9559 if (p->error_indicator) {
9560 D(p->level--);
9561 return NULL;
9562 }
9563 D(fprintf(stderr, "%*c> decorators[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(('@' named_expression NEWLINE))+"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01009564 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009565 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08009566 (a = (asdl_expr_seq*)_loop1_84_rule(p)) // (('@' named_expression NEWLINE))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009567 )
9568 {
9569 D(fprintf(stderr, "%*c+ decorators[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(('@' named_expression NEWLINE))+"));
9570 _res = a;
9571 if (_res == NULL && PyErr_Occurred()) {
9572 p->error_indicator = 1;
9573 D(p->level--);
9574 return NULL;
9575 }
9576 goto done;
9577 }
9578 p->mark = _mark;
9579 D(fprintf(stderr, "%*c%s decorators[%d-%d]: %s failed!\n", p->level, ' ',
9580 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(('@' named_expression NEWLINE))+"));
9581 }
9582 _res = NULL;
9583 done:
9584 D(p->level--);
9585 return _res;
9586}
9587
9588// class_def: decorators class_def_raw | class_def_raw
9589static stmt_ty
9590class_def_rule(Parser *p)
9591{
9592 D(p->level++);
9593 if (p->error_indicator) {
9594 D(p->level--);
9595 return NULL;
9596 }
9597 stmt_ty _res = NULL;
9598 int _mark = p->mark;
9599 { // decorators class_def_raw
9600 if (p->error_indicator) {
9601 D(p->level--);
9602 return NULL;
9603 }
9604 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 +01009605 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009606 stmt_ty b;
9607 if (
9608 (a = decorators_rule(p)) // decorators
9609 &&
9610 (b = class_def_raw_rule(p)) // class_def_raw
9611 )
9612 {
9613 D(fprintf(stderr, "%*c+ class_def[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "decorators class_def_raw"));
9614 _res = _PyPegen_class_def_decorators ( p , a , b );
9615 if (_res == NULL && PyErr_Occurred()) {
9616 p->error_indicator = 1;
9617 D(p->level--);
9618 return NULL;
9619 }
9620 goto done;
9621 }
9622 p->mark = _mark;
9623 D(fprintf(stderr, "%*c%s class_def[%d-%d]: %s failed!\n", p->level, ' ',
9624 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "decorators class_def_raw"));
9625 }
9626 { // class_def_raw
9627 if (p->error_indicator) {
9628 D(p->level--);
9629 return NULL;
9630 }
9631 D(fprintf(stderr, "%*c> class_def[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "class_def_raw"));
9632 stmt_ty class_def_raw_var;
9633 if (
9634 (class_def_raw_var = class_def_raw_rule(p)) // class_def_raw
9635 )
9636 {
9637 D(fprintf(stderr, "%*c+ class_def[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "class_def_raw"));
9638 _res = class_def_raw_var;
9639 goto done;
9640 }
9641 p->mark = _mark;
9642 D(fprintf(stderr, "%*c%s class_def[%d-%d]: %s failed!\n", p->level, ' ',
9643 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "class_def_raw"));
9644 }
9645 _res = NULL;
9646 done:
9647 D(p->level--);
9648 return _res;
9649}
9650
Pablo Galindo56c95df2021-04-21 15:28:21 +01009651// class_def_raw: invalid_class_def_raw | 'class' NAME ['(' arguments? ')'] &&':' block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009652static stmt_ty
9653class_def_raw_rule(Parser *p)
9654{
9655 D(p->level++);
9656 if (p->error_indicator) {
9657 D(p->level--);
9658 return NULL;
9659 }
9660 stmt_ty _res = NULL;
9661 int _mark = p->mark;
9662 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9663 p->error_indicator = 1;
9664 D(p->level--);
9665 return NULL;
9666 }
9667 int _start_lineno = p->tokens[_mark]->lineno;
9668 UNUSED(_start_lineno); // Only used by EXTRA macro
9669 int _start_col_offset = p->tokens[_mark]->col_offset;
9670 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo56c95df2021-04-21 15:28:21 +01009671 if (p->call_invalid_rules) { // invalid_class_def_raw
9672 if (p->error_indicator) {
9673 D(p->level--);
9674 return NULL;
9675 }
9676 D(fprintf(stderr, "%*c> class_def_raw[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_class_def_raw"));
9677 void *invalid_class_def_raw_var;
9678 if (
9679 (invalid_class_def_raw_var = invalid_class_def_raw_rule(p)) // invalid_class_def_raw
9680 )
9681 {
9682 D(fprintf(stderr, "%*c+ class_def_raw[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_class_def_raw"));
9683 _res = invalid_class_def_raw_var;
9684 goto done;
9685 }
9686 p->mark = _mark;
9687 D(fprintf(stderr, "%*c%s class_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
9688 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_class_def_raw"));
9689 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00009690 { // 'class' NAME ['(' arguments? ')'] &&':' block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009691 if (p->error_indicator) {
9692 D(p->level--);
9693 return NULL;
9694 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00009695 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 +01009696 Token * _keyword;
9697 Token * _literal;
9698 expr_ty a;
9699 void *b;
Pablo Galindoa5634c42020-09-16 19:42:00 +01009700 asdl_stmt_seq* c;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009701 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08009702 (_keyword = _PyPegen_expect_token(p, 527)) // token='class'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009703 &&
9704 (a = _PyPegen_name_token(p)) // NAME
9705 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08009706 (b = _tmp_85_rule(p), 1) // ['(' arguments? ')']
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009707 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00009708 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009709 &&
9710 (c = block_rule(p)) // block
9711 )
9712 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00009713 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 +01009714 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9715 if (_token == NULL) {
9716 D(p->level--);
9717 return NULL;
9718 }
9719 int _end_lineno = _token->end_lineno;
9720 UNUSED(_end_lineno); // Only used by EXTRA macro
9721 int _end_col_offset = _token->end_col_offset;
9722 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02009723 _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 +01009724 if (_res == NULL && PyErr_Occurred()) {
9725 p->error_indicator = 1;
9726 D(p->level--);
9727 return NULL;
9728 }
9729 goto done;
9730 }
9731 p->mark = _mark;
9732 D(fprintf(stderr, "%*c%s class_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00009733 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'class' NAME ['(' arguments? ')'] &&':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009734 }
9735 _res = NULL;
9736 done:
9737 D(p->level--);
9738 return _res;
9739}
9740
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00009741// block: NEWLINE INDENT statements DEDENT | simple_stmts | invalid_block
Pablo Galindoa5634c42020-09-16 19:42:00 +01009742static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009743block_rule(Parser *p)
9744{
9745 D(p->level++);
9746 if (p->error_indicator) {
9747 D(p->level--);
9748 return NULL;
9749 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01009750 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009751 if (_PyPegen_is_memoized(p, block_type, &_res)) {
9752 D(p->level--);
9753 return _res;
9754 }
9755 int _mark = p->mark;
9756 { // NEWLINE INDENT statements DEDENT
9757 if (p->error_indicator) {
9758 D(p->level--);
9759 return NULL;
9760 }
9761 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 +01009762 asdl_stmt_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009763 Token * dedent_var;
9764 Token * indent_var;
9765 Token * newline_var;
9766 if (
9767 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
9768 &&
9769 (indent_var = _PyPegen_expect_token(p, INDENT)) // token='INDENT'
9770 &&
9771 (a = statements_rule(p)) // statements
9772 &&
9773 (dedent_var = _PyPegen_expect_token(p, DEDENT)) // token='DEDENT'
9774 )
9775 {
9776 D(fprintf(stderr, "%*c+ block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE INDENT statements DEDENT"));
9777 _res = a;
9778 if (_res == NULL && PyErr_Occurred()) {
9779 p->error_indicator = 1;
9780 D(p->level--);
9781 return NULL;
9782 }
9783 goto done;
9784 }
9785 p->mark = _mark;
9786 D(fprintf(stderr, "%*c%s block[%d-%d]: %s failed!\n", p->level, ' ',
9787 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE INDENT statements DEDENT"));
9788 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00009789 { // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009790 if (p->error_indicator) {
9791 D(p->level--);
9792 return NULL;
9793 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00009794 D(fprintf(stderr, "%*c> block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
9795 asdl_stmt_seq* simple_stmts_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009796 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00009797 (simple_stmts_var = simple_stmts_rule(p)) // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009798 )
9799 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00009800 D(fprintf(stderr, "%*c+ block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
9801 _res = simple_stmts_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009802 goto done;
9803 }
9804 p->mark = _mark;
9805 D(fprintf(stderr, "%*c%s block[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00009806 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmts"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009807 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02009808 if (p->call_invalid_rules) { // invalid_block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009809 if (p->error_indicator) {
9810 D(p->level--);
9811 return NULL;
9812 }
9813 D(fprintf(stderr, "%*c> block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_block"));
9814 void *invalid_block_var;
9815 if (
9816 (invalid_block_var = invalid_block_rule(p)) // invalid_block
9817 )
9818 {
9819 D(fprintf(stderr, "%*c+ block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_block"));
9820 _res = invalid_block_var;
9821 goto done;
9822 }
9823 p->mark = _mark;
9824 D(fprintf(stderr, "%*c%s block[%d-%d]: %s failed!\n", p->level, ' ',
9825 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_block"));
9826 }
9827 _res = NULL;
9828 done:
9829 _PyPegen_insert_memo(p, _mark, block_type, _res);
9830 D(p->level--);
9831 return _res;
9832}
9833
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009834// star_expressions:
9835// | star_expression ((',' star_expression))+ ','?
9836// | star_expression ','
9837// | star_expression
9838static expr_ty
9839star_expressions_rule(Parser *p)
9840{
9841 D(p->level++);
9842 if (p->error_indicator) {
9843 D(p->level--);
9844 return NULL;
9845 }
9846 expr_ty _res = NULL;
9847 int _mark = p->mark;
9848 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9849 p->error_indicator = 1;
9850 D(p->level--);
9851 return NULL;
9852 }
9853 int _start_lineno = p->tokens[_mark]->lineno;
9854 UNUSED(_start_lineno); // Only used by EXTRA macro
9855 int _start_col_offset = p->tokens[_mark]->col_offset;
9856 UNUSED(_start_col_offset); // Only used by EXTRA macro
9857 { // star_expression ((',' star_expression))+ ','?
9858 if (p->error_indicator) {
9859 D(p->level--);
9860 return NULL;
9861 }
9862 D(fprintf(stderr, "%*c> star_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expression ((',' star_expression))+ ','?"));
9863 void *_opt_var;
9864 UNUSED(_opt_var); // Silence compiler warnings
9865 expr_ty a;
9866 asdl_seq * b;
9867 if (
9868 (a = star_expression_rule(p)) // star_expression
9869 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08009870 (b = _loop1_86_rule(p)) // ((',' star_expression))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009871 &&
9872 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
9873 )
9874 {
9875 D(fprintf(stderr, "%*c+ star_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expression ((',' star_expression))+ ','?"));
9876 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9877 if (_token == NULL) {
9878 D(p->level--);
9879 return NULL;
9880 }
9881 int _end_lineno = _token->end_lineno;
9882 UNUSED(_end_lineno); // Only used by EXTRA macro
9883 int _end_col_offset = _token->end_col_offset;
9884 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02009885 _res = _PyAST_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , a , b ) ) , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009886 if (_res == NULL && PyErr_Occurred()) {
9887 p->error_indicator = 1;
9888 D(p->level--);
9889 return NULL;
9890 }
9891 goto done;
9892 }
9893 p->mark = _mark;
9894 D(fprintf(stderr, "%*c%s star_expressions[%d-%d]: %s failed!\n", p->level, ' ',
9895 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expression ((',' star_expression))+ ','?"));
9896 }
9897 { // star_expression ','
9898 if (p->error_indicator) {
9899 D(p->level--);
9900 return NULL;
9901 }
9902 D(fprintf(stderr, "%*c> star_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expression ','"));
9903 Token * _literal;
9904 expr_ty a;
9905 if (
9906 (a = star_expression_rule(p)) // star_expression
9907 &&
9908 (_literal = _PyPegen_expect_token(p, 12)) // token=','
9909 )
9910 {
9911 D(fprintf(stderr, "%*c+ star_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expression ','"));
9912 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9913 if (_token == NULL) {
9914 D(p->level--);
9915 return NULL;
9916 }
9917 int _end_lineno = _token->end_lineno;
9918 UNUSED(_end_lineno); // Only used by EXTRA macro
9919 int _end_col_offset = _token->end_col_offset;
9920 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02009921 _res = _PyAST_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_singleton_seq ( p , a ) ) , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009922 if (_res == NULL && PyErr_Occurred()) {
9923 p->error_indicator = 1;
9924 D(p->level--);
9925 return NULL;
9926 }
9927 goto done;
9928 }
9929 p->mark = _mark;
9930 D(fprintf(stderr, "%*c%s star_expressions[%d-%d]: %s failed!\n", p->level, ' ',
9931 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expression ','"));
9932 }
9933 { // star_expression
9934 if (p->error_indicator) {
9935 D(p->level--);
9936 return NULL;
9937 }
9938 D(fprintf(stderr, "%*c> star_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expression"));
9939 expr_ty star_expression_var;
9940 if (
9941 (star_expression_var = star_expression_rule(p)) // star_expression
9942 )
9943 {
9944 D(fprintf(stderr, "%*c+ star_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expression"));
9945 _res = star_expression_var;
9946 goto done;
9947 }
9948 p->mark = _mark;
9949 D(fprintf(stderr, "%*c%s star_expressions[%d-%d]: %s failed!\n", p->level, ' ',
9950 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expression"));
9951 }
9952 _res = NULL;
9953 done:
9954 D(p->level--);
9955 return _res;
9956}
9957
9958// star_expression: '*' bitwise_or | expression
9959static expr_ty
9960star_expression_rule(Parser *p)
9961{
9962 D(p->level++);
9963 if (p->error_indicator) {
9964 D(p->level--);
9965 return NULL;
9966 }
9967 expr_ty _res = NULL;
9968 if (_PyPegen_is_memoized(p, star_expression_type, &_res)) {
9969 D(p->level--);
9970 return _res;
9971 }
9972 int _mark = p->mark;
9973 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9974 p->error_indicator = 1;
9975 D(p->level--);
9976 return NULL;
9977 }
9978 int _start_lineno = p->tokens[_mark]->lineno;
9979 UNUSED(_start_lineno); // Only used by EXTRA macro
9980 int _start_col_offset = p->tokens[_mark]->col_offset;
9981 UNUSED(_start_col_offset); // Only used by EXTRA macro
9982 { // '*' bitwise_or
9983 if (p->error_indicator) {
9984 D(p->level--);
9985 return NULL;
9986 }
9987 D(fprintf(stderr, "%*c> star_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' bitwise_or"));
9988 Token * _literal;
9989 expr_ty a;
9990 if (
9991 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
9992 &&
9993 (a = bitwise_or_rule(p)) // bitwise_or
9994 )
9995 {
9996 D(fprintf(stderr, "%*c+ star_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' bitwise_or"));
9997 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9998 if (_token == NULL) {
9999 D(p->level--);
10000 return NULL;
10001 }
10002 int _end_lineno = _token->end_lineno;
10003 UNUSED(_end_lineno); // Only used by EXTRA macro
10004 int _end_col_offset = _token->end_col_offset;
10005 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020010006 _res = _PyAST_Starred ( a , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010007 if (_res == NULL && PyErr_Occurred()) {
10008 p->error_indicator = 1;
10009 D(p->level--);
10010 return NULL;
10011 }
10012 goto done;
10013 }
10014 p->mark = _mark;
10015 D(fprintf(stderr, "%*c%s star_expression[%d-%d]: %s failed!\n", p->level, ' ',
10016 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' bitwise_or"));
10017 }
10018 { // expression
10019 if (p->error_indicator) {
10020 D(p->level--);
10021 return NULL;
10022 }
10023 D(fprintf(stderr, "%*c> star_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression"));
10024 expr_ty expression_var;
10025 if (
10026 (expression_var = expression_rule(p)) // expression
10027 )
10028 {
10029 D(fprintf(stderr, "%*c+ star_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression"));
10030 _res = expression_var;
10031 goto done;
10032 }
10033 p->mark = _mark;
10034 D(fprintf(stderr, "%*c%s star_expression[%d-%d]: %s failed!\n", p->level, ' ',
10035 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression"));
10036 }
10037 _res = NULL;
10038 done:
10039 _PyPegen_insert_memo(p, _mark, star_expression_type, _res);
10040 D(p->level--);
10041 return _res;
10042}
10043
10044// star_named_expressions: ','.star_named_expression+ ','?
Pablo Galindoa5634c42020-09-16 19:42:00 +010010045static asdl_expr_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010046star_named_expressions_rule(Parser *p)
10047{
10048 D(p->level++);
10049 if (p->error_indicator) {
10050 D(p->level--);
10051 return NULL;
10052 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010010053 asdl_expr_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010054 int _mark = p->mark;
10055 { // ','.star_named_expression+ ','?
10056 if (p->error_indicator) {
10057 D(p->level--);
10058 return NULL;
10059 }
10060 D(fprintf(stderr, "%*c> star_named_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.star_named_expression+ ','?"));
10061 void *_opt_var;
10062 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +010010063 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010064 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080010065 (a = (asdl_expr_seq*)_gather_87_rule(p)) // ','.star_named_expression+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010066 &&
10067 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
10068 )
10069 {
10070 D(fprintf(stderr, "%*c+ star_named_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.star_named_expression+ ','?"));
10071 _res = a;
10072 if (_res == NULL && PyErr_Occurred()) {
10073 p->error_indicator = 1;
10074 D(p->level--);
10075 return NULL;
10076 }
10077 goto done;
10078 }
10079 p->mark = _mark;
10080 D(fprintf(stderr, "%*c%s star_named_expressions[%d-%d]: %s failed!\n", p->level, ' ',
10081 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.star_named_expression+ ','?"));
10082 }
10083 _res = NULL;
10084 done:
10085 D(p->level--);
10086 return _res;
10087}
10088
10089// star_named_expression: '*' bitwise_or | named_expression
10090static expr_ty
10091star_named_expression_rule(Parser *p)
10092{
10093 D(p->level++);
10094 if (p->error_indicator) {
10095 D(p->level--);
10096 return NULL;
10097 }
10098 expr_ty _res = NULL;
10099 int _mark = p->mark;
10100 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10101 p->error_indicator = 1;
10102 D(p->level--);
10103 return NULL;
10104 }
10105 int _start_lineno = p->tokens[_mark]->lineno;
10106 UNUSED(_start_lineno); // Only used by EXTRA macro
10107 int _start_col_offset = p->tokens[_mark]->col_offset;
10108 UNUSED(_start_col_offset); // Only used by EXTRA macro
10109 { // '*' bitwise_or
10110 if (p->error_indicator) {
10111 D(p->level--);
10112 return NULL;
10113 }
10114 D(fprintf(stderr, "%*c> star_named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' bitwise_or"));
10115 Token * _literal;
10116 expr_ty a;
10117 if (
10118 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
10119 &&
10120 (a = bitwise_or_rule(p)) // bitwise_or
10121 )
10122 {
10123 D(fprintf(stderr, "%*c+ star_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' bitwise_or"));
10124 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10125 if (_token == NULL) {
10126 D(p->level--);
10127 return NULL;
10128 }
10129 int _end_lineno = _token->end_lineno;
10130 UNUSED(_end_lineno); // Only used by EXTRA macro
10131 int _end_col_offset = _token->end_col_offset;
10132 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020010133 _res = _PyAST_Starred ( a , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010134 if (_res == NULL && PyErr_Occurred()) {
10135 p->error_indicator = 1;
10136 D(p->level--);
10137 return NULL;
10138 }
10139 goto done;
10140 }
10141 p->mark = _mark;
10142 D(fprintf(stderr, "%*c%s star_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
10143 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' bitwise_or"));
10144 }
10145 { // named_expression
10146 if (p->error_indicator) {
10147 D(p->level--);
10148 return NULL;
10149 }
10150 D(fprintf(stderr, "%*c> star_named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression"));
10151 expr_ty named_expression_var;
10152 if (
10153 (named_expression_var = named_expression_rule(p)) // named_expression
10154 )
10155 {
10156 D(fprintf(stderr, "%*c+ star_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "named_expression"));
10157 _res = named_expression_var;
10158 goto done;
10159 }
10160 p->mark = _mark;
10161 D(fprintf(stderr, "%*c%s star_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
10162 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression"));
10163 }
10164 _res = NULL;
10165 done:
10166 D(p->level--);
10167 return _res;
10168}
10169
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070010170// assigment_expression: NAME ':=' ~ expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010171static expr_ty
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070010172assigment_expression_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010173{
10174 D(p->level++);
10175 if (p->error_indicator) {
10176 D(p->level--);
10177 return NULL;
10178 }
10179 expr_ty _res = NULL;
10180 int _mark = p->mark;
10181 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10182 p->error_indicator = 1;
10183 D(p->level--);
10184 return NULL;
10185 }
10186 int _start_lineno = p->tokens[_mark]->lineno;
10187 UNUSED(_start_lineno); // Only used by EXTRA macro
10188 int _start_col_offset = p->tokens[_mark]->col_offset;
10189 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030010190 { // NAME ':=' ~ expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010191 if (p->error_indicator) {
10192 D(p->level--);
10193 return NULL;
10194 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070010195 D(fprintf(stderr, "%*c> assigment_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME ':=' ~ expression"));
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030010196 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010197 Token * _literal;
10198 expr_ty a;
10199 expr_ty b;
10200 if (
10201 (a = _PyPegen_name_token(p)) // NAME
10202 &&
10203 (_literal = _PyPegen_expect_token(p, 53)) // token=':='
10204 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030010205 (_cut_var = 1)
10206 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010207 (b = expression_rule(p)) // expression
10208 )
10209 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070010210 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 +010010211 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10212 if (_token == NULL) {
10213 D(p->level--);
10214 return NULL;
10215 }
10216 int _end_lineno = _token->end_lineno;
10217 UNUSED(_end_lineno); // Only used by EXTRA macro
10218 int _end_col_offset = _token->end_col_offset;
10219 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020010220 _res = _PyAST_NamedExpr ( CHECK ( expr_ty , _PyPegen_set_expr_context ( p , a , Store ) ) , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010221 if (_res == NULL && PyErr_Occurred()) {
10222 p->error_indicator = 1;
10223 D(p->level--);
10224 return NULL;
10225 }
10226 goto done;
10227 }
10228 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070010229 D(fprintf(stderr, "%*c%s assigment_expression[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030010230 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME ':=' ~ expression"));
10231 if (_cut_var) {
10232 D(p->level--);
10233 return NULL;
10234 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010235 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070010236 _res = NULL;
10237 done:
10238 D(p->level--);
10239 return _res;
10240}
10241
10242// named_expression: assigment_expression | invalid_named_expression | expression !':='
10243static expr_ty
10244named_expression_rule(Parser *p)
10245{
10246 D(p->level++);
10247 if (p->error_indicator) {
10248 D(p->level--);
10249 return NULL;
10250 }
10251 expr_ty _res = NULL;
10252 int _mark = p->mark;
10253 { // assigment_expression
10254 if (p->error_indicator) {
10255 D(p->level--);
10256 return NULL;
10257 }
10258 D(fprintf(stderr, "%*c> named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "assigment_expression"));
10259 expr_ty assigment_expression_var;
10260 if (
10261 (assigment_expression_var = assigment_expression_rule(p)) // assigment_expression
10262 )
10263 {
10264 D(fprintf(stderr, "%*c+ named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "assigment_expression"));
10265 _res = assigment_expression_var;
10266 goto done;
10267 }
10268 p->mark = _mark;
10269 D(fprintf(stderr, "%*c%s named_expression[%d-%d]: %s failed!\n", p->level, ' ',
10270 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "assigment_expression"));
10271 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010010272 if (p->call_invalid_rules) { // invalid_named_expression
10273 if (p->error_indicator) {
10274 D(p->level--);
10275 return NULL;
10276 }
10277 D(fprintf(stderr, "%*c> named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_named_expression"));
10278 void *invalid_named_expression_var;
10279 if (
10280 (invalid_named_expression_var = invalid_named_expression_rule(p)) // invalid_named_expression
10281 )
10282 {
10283 D(fprintf(stderr, "%*c+ named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_named_expression"));
10284 _res = invalid_named_expression_var;
10285 goto done;
10286 }
10287 p->mark = _mark;
10288 D(fprintf(stderr, "%*c%s named_expression[%d-%d]: %s failed!\n", p->level, ' ',
10289 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_named_expression"));
10290 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010291 { // expression !':='
10292 if (p->error_indicator) {
10293 D(p->level--);
10294 return NULL;
10295 }
10296 D(fprintf(stderr, "%*c> named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression !':='"));
10297 expr_ty expression_var;
10298 if (
10299 (expression_var = expression_rule(p)) // expression
10300 &&
10301 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 53) // token=':='
10302 )
10303 {
10304 D(fprintf(stderr, "%*c+ named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression !':='"));
10305 _res = expression_var;
10306 goto done;
10307 }
10308 p->mark = _mark;
10309 D(fprintf(stderr, "%*c%s named_expression[%d-%d]: %s failed!\n", p->level, ' ',
10310 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression !':='"));
10311 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010312 _res = NULL;
10313 done:
10314 D(p->level--);
10315 return _res;
10316}
10317
10318// annotated_rhs: yield_expr | star_expressions
10319static expr_ty
10320annotated_rhs_rule(Parser *p)
10321{
10322 D(p->level++);
10323 if (p->error_indicator) {
10324 D(p->level--);
10325 return NULL;
10326 }
10327 expr_ty _res = NULL;
10328 int _mark = p->mark;
10329 { // yield_expr
10330 if (p->error_indicator) {
10331 D(p->level--);
10332 return NULL;
10333 }
10334 D(fprintf(stderr, "%*c> annotated_rhs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
10335 expr_ty yield_expr_var;
10336 if (
10337 (yield_expr_var = yield_expr_rule(p)) // yield_expr
10338 )
10339 {
10340 D(fprintf(stderr, "%*c+ annotated_rhs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
10341 _res = yield_expr_var;
10342 goto done;
10343 }
10344 p->mark = _mark;
10345 D(fprintf(stderr, "%*c%s annotated_rhs[%d-%d]: %s failed!\n", p->level, ' ',
10346 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
10347 }
10348 { // star_expressions
10349 if (p->error_indicator) {
10350 D(p->level--);
10351 return NULL;
10352 }
10353 D(fprintf(stderr, "%*c> annotated_rhs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
10354 expr_ty star_expressions_var;
10355 if (
10356 (star_expressions_var = star_expressions_rule(p)) // star_expressions
10357 )
10358 {
10359 D(fprintf(stderr, "%*c+ annotated_rhs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
10360 _res = star_expressions_var;
10361 goto done;
10362 }
10363 p->mark = _mark;
10364 D(fprintf(stderr, "%*c%s annotated_rhs[%d-%d]: %s failed!\n", p->level, ' ',
10365 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
10366 }
10367 _res = NULL;
10368 done:
10369 D(p->level--);
10370 return _res;
10371}
10372
10373// expressions: expression ((',' expression))+ ','? | expression ',' | expression
10374static expr_ty
10375expressions_rule(Parser *p)
10376{
10377 D(p->level++);
10378 if (p->error_indicator) {
10379 D(p->level--);
10380 return NULL;
10381 }
10382 expr_ty _res = NULL;
10383 int _mark = p->mark;
10384 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10385 p->error_indicator = 1;
10386 D(p->level--);
10387 return NULL;
10388 }
10389 int _start_lineno = p->tokens[_mark]->lineno;
10390 UNUSED(_start_lineno); // Only used by EXTRA macro
10391 int _start_col_offset = p->tokens[_mark]->col_offset;
10392 UNUSED(_start_col_offset); // Only used by EXTRA macro
10393 { // expression ((',' expression))+ ','?
10394 if (p->error_indicator) {
10395 D(p->level--);
10396 return NULL;
10397 }
10398 D(fprintf(stderr, "%*c> expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ((',' expression))+ ','?"));
10399 void *_opt_var;
10400 UNUSED(_opt_var); // Silence compiler warnings
10401 expr_ty a;
10402 asdl_seq * b;
10403 if (
10404 (a = expression_rule(p)) // expression
10405 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080010406 (b = _loop1_89_rule(p)) // ((',' expression))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010407 &&
10408 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
10409 )
10410 {
10411 D(fprintf(stderr, "%*c+ expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ((',' expression))+ ','?"));
10412 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10413 if (_token == NULL) {
10414 D(p->level--);
10415 return NULL;
10416 }
10417 int _end_lineno = _token->end_lineno;
10418 UNUSED(_end_lineno); // Only used by EXTRA macro
10419 int _end_col_offset = _token->end_col_offset;
10420 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020010421 _res = _PyAST_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , a , b ) ) , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010422 if (_res == NULL && PyErr_Occurred()) {
10423 p->error_indicator = 1;
10424 D(p->level--);
10425 return NULL;
10426 }
10427 goto done;
10428 }
10429 p->mark = _mark;
10430 D(fprintf(stderr, "%*c%s expressions[%d-%d]: %s failed!\n", p->level, ' ',
10431 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ((',' expression))+ ','?"));
10432 }
10433 { // expression ','
10434 if (p->error_indicator) {
10435 D(p->level--);
10436 return NULL;
10437 }
10438 D(fprintf(stderr, "%*c> expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ','"));
10439 Token * _literal;
10440 expr_ty a;
10441 if (
10442 (a = expression_rule(p)) // expression
10443 &&
10444 (_literal = _PyPegen_expect_token(p, 12)) // token=','
10445 )
10446 {
10447 D(fprintf(stderr, "%*c+ expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ','"));
10448 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10449 if (_token == NULL) {
10450 D(p->level--);
10451 return NULL;
10452 }
10453 int _end_lineno = _token->end_lineno;
10454 UNUSED(_end_lineno); // Only used by EXTRA macro
10455 int _end_col_offset = _token->end_col_offset;
10456 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020010457 _res = _PyAST_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_singleton_seq ( p , a ) ) , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010458 if (_res == NULL && PyErr_Occurred()) {
10459 p->error_indicator = 1;
10460 D(p->level--);
10461 return NULL;
10462 }
10463 goto done;
10464 }
10465 p->mark = _mark;
10466 D(fprintf(stderr, "%*c%s expressions[%d-%d]: %s failed!\n", p->level, ' ',
10467 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ','"));
10468 }
10469 { // expression
10470 if (p->error_indicator) {
10471 D(p->level--);
10472 return NULL;
10473 }
10474 D(fprintf(stderr, "%*c> expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression"));
10475 expr_ty expression_var;
10476 if (
10477 (expression_var = expression_rule(p)) // expression
10478 )
10479 {
10480 D(fprintf(stderr, "%*c+ expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression"));
10481 _res = expression_var;
10482 goto done;
10483 }
10484 p->mark = _mark;
10485 D(fprintf(stderr, "%*c%s expressions[%d-%d]: %s failed!\n", p->level, ' ',
10486 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression"));
10487 }
10488 _res = NULL;
10489 done:
10490 D(p->level--);
10491 return _res;
10492}
10493
Pablo Galindob2802482021-04-15 21:38:45 +010010494// expression:
10495// | invalid_expression
10496// | disjunction 'if' disjunction 'else' expression
10497// | disjunction
10498// | lambdef
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010499static expr_ty
10500expression_rule(Parser *p)
10501{
10502 D(p->level++);
10503 if (p->error_indicator) {
10504 D(p->level--);
10505 return NULL;
10506 }
10507 expr_ty _res = NULL;
10508 if (_PyPegen_is_memoized(p, expression_type, &_res)) {
10509 D(p->level--);
10510 return _res;
10511 }
10512 int _mark = p->mark;
10513 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10514 p->error_indicator = 1;
10515 D(p->level--);
10516 return NULL;
10517 }
10518 int _start_lineno = p->tokens[_mark]->lineno;
10519 UNUSED(_start_lineno); // Only used by EXTRA macro
10520 int _start_col_offset = p->tokens[_mark]->col_offset;
10521 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindob2802482021-04-15 21:38:45 +010010522 if (p->call_invalid_rules) { // invalid_expression
10523 if (p->error_indicator) {
10524 D(p->level--);
10525 return NULL;
10526 }
10527 D(fprintf(stderr, "%*c> expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_expression"));
10528 void *invalid_expression_var;
10529 if (
10530 (invalid_expression_var = invalid_expression_rule(p)) // invalid_expression
10531 )
10532 {
10533 D(fprintf(stderr, "%*c+ expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_expression"));
10534 _res = invalid_expression_var;
10535 goto done;
10536 }
10537 p->mark = _mark;
10538 D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ',
10539 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_expression"));
10540 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010541 { // disjunction 'if' disjunction 'else' expression
10542 if (p->error_indicator) {
10543 D(p->level--);
10544 return NULL;
10545 }
10546 D(fprintf(stderr, "%*c> expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "disjunction 'if' disjunction 'else' expression"));
10547 Token * _keyword;
10548 Token * _keyword_1;
10549 expr_ty a;
10550 expr_ty b;
10551 expr_ty c;
10552 if (
10553 (a = disjunction_rule(p)) // disjunction
10554 &&
10555 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
10556 &&
10557 (b = disjunction_rule(p)) // disjunction
10558 &&
10559 (_keyword_1 = _PyPegen_expect_token(p, 516)) // token='else'
10560 &&
10561 (c = expression_rule(p)) // expression
10562 )
10563 {
10564 D(fprintf(stderr, "%*c+ expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "disjunction 'if' disjunction 'else' expression"));
10565 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10566 if (_token == NULL) {
10567 D(p->level--);
10568 return NULL;
10569 }
10570 int _end_lineno = _token->end_lineno;
10571 UNUSED(_end_lineno); // Only used by EXTRA macro
10572 int _end_col_offset = _token->end_col_offset;
10573 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020010574 _res = _PyAST_IfExp ( b , a , c , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010575 if (_res == NULL && PyErr_Occurred()) {
10576 p->error_indicator = 1;
10577 D(p->level--);
10578 return NULL;
10579 }
10580 goto done;
10581 }
10582 p->mark = _mark;
10583 D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ',
10584 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "disjunction 'if' disjunction 'else' expression"));
10585 }
10586 { // disjunction
10587 if (p->error_indicator) {
10588 D(p->level--);
10589 return NULL;
10590 }
10591 D(fprintf(stderr, "%*c> expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "disjunction"));
10592 expr_ty disjunction_var;
10593 if (
10594 (disjunction_var = disjunction_rule(p)) // disjunction
10595 )
10596 {
10597 D(fprintf(stderr, "%*c+ expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "disjunction"));
10598 _res = disjunction_var;
10599 goto done;
10600 }
10601 p->mark = _mark;
10602 D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ',
10603 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "disjunction"));
10604 }
10605 { // lambdef
10606 if (p->error_indicator) {
10607 D(p->level--);
10608 return NULL;
10609 }
10610 D(fprintf(stderr, "%*c> expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambdef"));
10611 expr_ty lambdef_var;
10612 if (
10613 (lambdef_var = lambdef_rule(p)) // lambdef
10614 )
10615 {
10616 D(fprintf(stderr, "%*c+ expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambdef"));
10617 _res = lambdef_var;
10618 goto done;
10619 }
10620 p->mark = _mark;
10621 D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ',
10622 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambdef"));
10623 }
10624 _res = NULL;
10625 done:
10626 _PyPegen_insert_memo(p, _mark, expression_type, _res);
10627 D(p->level--);
10628 return _res;
10629}
10630
10631// lambdef: 'lambda' lambda_params? ':' expression
10632static expr_ty
10633lambdef_rule(Parser *p)
10634{
10635 D(p->level++);
10636 if (p->error_indicator) {
10637 D(p->level--);
10638 return NULL;
10639 }
10640 expr_ty _res = NULL;
10641 int _mark = p->mark;
10642 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10643 p->error_indicator = 1;
10644 D(p->level--);
10645 return NULL;
10646 }
10647 int _start_lineno = p->tokens[_mark]->lineno;
10648 UNUSED(_start_lineno); // Only used by EXTRA macro
10649 int _start_col_offset = p->tokens[_mark]->col_offset;
10650 UNUSED(_start_col_offset); // Only used by EXTRA macro
10651 { // 'lambda' lambda_params? ':' expression
10652 if (p->error_indicator) {
10653 D(p->level--);
10654 return NULL;
10655 }
10656 D(fprintf(stderr, "%*c> lambdef[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'lambda' lambda_params? ':' expression"));
10657 Token * _keyword;
10658 Token * _literal;
10659 void *a;
10660 expr_ty b;
10661 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080010662 (_keyword = _PyPegen_expect_token(p, 528)) // token='lambda'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010663 &&
10664 (a = lambda_params_rule(p), 1) // lambda_params?
10665 &&
10666 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
10667 &&
10668 (b = expression_rule(p)) // expression
10669 )
10670 {
10671 D(fprintf(stderr, "%*c+ lambdef[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'lambda' lambda_params? ':' expression"));
10672 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10673 if (_token == NULL) {
10674 D(p->level--);
10675 return NULL;
10676 }
10677 int _end_lineno = _token->end_lineno;
10678 UNUSED(_end_lineno); // Only used by EXTRA macro
10679 int _end_col_offset = _token->end_col_offset;
10680 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020010681 _res = _PyAST_Lambda ( ( a ) ? a : CHECK ( arguments_ty , _PyPegen_empty_arguments ( p ) ) , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010682 if (_res == NULL && PyErr_Occurred()) {
10683 p->error_indicator = 1;
10684 D(p->level--);
10685 return NULL;
10686 }
10687 goto done;
10688 }
10689 p->mark = _mark;
10690 D(fprintf(stderr, "%*c%s lambdef[%d-%d]: %s failed!\n", p->level, ' ',
10691 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'lambda' lambda_params? ':' expression"));
10692 }
10693 _res = NULL;
10694 done:
10695 D(p->level--);
10696 return _res;
10697}
10698
10699// lambda_params: invalid_lambda_parameters | lambda_parameters
10700static arguments_ty
10701lambda_params_rule(Parser *p)
10702{
10703 D(p->level++);
10704 if (p->error_indicator) {
10705 D(p->level--);
10706 return NULL;
10707 }
10708 arguments_ty _res = NULL;
10709 int _mark = p->mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020010710 if (p->call_invalid_rules) { // invalid_lambda_parameters
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010711 if (p->error_indicator) {
10712 D(p->level--);
10713 return NULL;
10714 }
10715 D(fprintf(stderr, "%*c> lambda_params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_lambda_parameters"));
10716 void *invalid_lambda_parameters_var;
10717 if (
10718 (invalid_lambda_parameters_var = invalid_lambda_parameters_rule(p)) // invalid_lambda_parameters
10719 )
10720 {
10721 D(fprintf(stderr, "%*c+ lambda_params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_lambda_parameters"));
10722 _res = invalid_lambda_parameters_var;
10723 goto done;
10724 }
10725 p->mark = _mark;
10726 D(fprintf(stderr, "%*c%s lambda_params[%d-%d]: %s failed!\n", p->level, ' ',
10727 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_lambda_parameters"));
10728 }
10729 { // lambda_parameters
10730 if (p->error_indicator) {
10731 D(p->level--);
10732 return NULL;
10733 }
10734 D(fprintf(stderr, "%*c> lambda_params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_parameters"));
10735 arguments_ty lambda_parameters_var;
10736 if (
10737 (lambda_parameters_var = lambda_parameters_rule(p)) // lambda_parameters
10738 )
10739 {
10740 D(fprintf(stderr, "%*c+ lambda_params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_parameters"));
10741 _res = lambda_parameters_var;
10742 goto done;
10743 }
10744 p->mark = _mark;
10745 D(fprintf(stderr, "%*c%s lambda_params[%d-%d]: %s failed!\n", p->level, ' ',
10746 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_parameters"));
10747 }
10748 _res = NULL;
10749 done:
10750 D(p->level--);
10751 return _res;
10752}
10753
10754// lambda_parameters:
10755// | lambda_slash_no_default lambda_param_no_default* lambda_param_with_default* lambda_star_etc?
10756// | lambda_slash_with_default lambda_param_with_default* lambda_star_etc?
10757// | lambda_param_no_default+ lambda_param_with_default* lambda_star_etc?
10758// | lambda_param_with_default+ lambda_star_etc?
10759// | lambda_star_etc
10760static arguments_ty
10761lambda_parameters_rule(Parser *p)
10762{
10763 D(p->level++);
10764 if (p->error_indicator) {
10765 D(p->level--);
10766 return NULL;
10767 }
10768 arguments_ty _res = NULL;
10769 int _mark = p->mark;
10770 { // lambda_slash_no_default lambda_param_no_default* lambda_param_with_default* lambda_star_etc?
10771 if (p->error_indicator) {
10772 D(p->level--);
10773 return NULL;
10774 }
10775 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 +010010776 asdl_arg_seq* a;
10777 asdl_arg_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010778 asdl_seq * c;
10779 void *d;
10780 if (
10781 (a = lambda_slash_no_default_rule(p)) // lambda_slash_no_default
10782 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080010783 (b = (asdl_arg_seq*)_loop0_90_rule(p)) // lambda_param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010784 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080010785 (c = _loop0_91_rule(p)) // lambda_param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010786 &&
10787 (d = lambda_star_etc_rule(p), 1) // lambda_star_etc?
10788 )
10789 {
10790 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?"));
10791 _res = _PyPegen_make_arguments ( p , a , NULL , b , c , d );
10792 if (_res == NULL && PyErr_Occurred()) {
10793 p->error_indicator = 1;
10794 D(p->level--);
10795 return NULL;
10796 }
10797 goto done;
10798 }
10799 p->mark = _mark;
10800 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
10801 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_slash_no_default lambda_param_no_default* lambda_param_with_default* lambda_star_etc?"));
10802 }
10803 { // lambda_slash_with_default lambda_param_with_default* lambda_star_etc?
10804 if (p->error_indicator) {
10805 D(p->level--);
10806 return NULL;
10807 }
10808 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?"));
10809 SlashWithDefault* a;
10810 asdl_seq * b;
10811 void *c;
10812 if (
10813 (a = lambda_slash_with_default_rule(p)) // lambda_slash_with_default
10814 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080010815 (b = _loop0_92_rule(p)) // lambda_param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010816 &&
10817 (c = lambda_star_etc_rule(p), 1) // lambda_star_etc?
10818 )
10819 {
10820 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?"));
10821 _res = _PyPegen_make_arguments ( p , NULL , a , NULL , b , c );
10822 if (_res == NULL && PyErr_Occurred()) {
10823 p->error_indicator = 1;
10824 D(p->level--);
10825 return NULL;
10826 }
10827 goto done;
10828 }
10829 p->mark = _mark;
10830 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
10831 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_slash_with_default lambda_param_with_default* lambda_star_etc?"));
10832 }
10833 { // lambda_param_no_default+ lambda_param_with_default* lambda_star_etc?
10834 if (p->error_indicator) {
10835 D(p->level--);
10836 return NULL;
10837 }
10838 D(fprintf(stderr, "%*c> lambda_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default+ lambda_param_with_default* lambda_star_etc?"));
Pablo Galindoa5634c42020-09-16 19:42:00 +010010839 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010840 asdl_seq * b;
10841 void *c;
10842 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080010843 (a = (asdl_arg_seq*)_loop1_93_rule(p)) // lambda_param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010844 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080010845 (b = _loop0_94_rule(p)) // lambda_param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010846 &&
10847 (c = lambda_star_etc_rule(p), 1) // lambda_star_etc?
10848 )
10849 {
10850 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?"));
10851 _res = _PyPegen_make_arguments ( p , NULL , NULL , a , b , c );
10852 if (_res == NULL && PyErr_Occurred()) {
10853 p->error_indicator = 1;
10854 D(p->level--);
10855 return NULL;
10856 }
10857 goto done;
10858 }
10859 p->mark = _mark;
10860 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
10861 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default+ lambda_param_with_default* lambda_star_etc?"));
10862 }
10863 { // lambda_param_with_default+ lambda_star_etc?
10864 if (p->error_indicator) {
10865 D(p->level--);
10866 return NULL;
10867 }
10868 D(fprintf(stderr, "%*c> lambda_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default+ lambda_star_etc?"));
10869 asdl_seq * a;
10870 void *b;
10871 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080010872 (a = _loop1_95_rule(p)) // lambda_param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010873 &&
10874 (b = lambda_star_etc_rule(p), 1) // lambda_star_etc?
10875 )
10876 {
10877 D(fprintf(stderr, "%*c+ lambda_parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default+ lambda_star_etc?"));
10878 _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , a , b );
10879 if (_res == NULL && PyErr_Occurred()) {
10880 p->error_indicator = 1;
10881 D(p->level--);
10882 return NULL;
10883 }
10884 goto done;
10885 }
10886 p->mark = _mark;
10887 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
10888 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default+ lambda_star_etc?"));
10889 }
10890 { // lambda_star_etc
10891 if (p->error_indicator) {
10892 D(p->level--);
10893 return NULL;
10894 }
10895 D(fprintf(stderr, "%*c> lambda_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_star_etc"));
10896 StarEtc* a;
10897 if (
10898 (a = lambda_star_etc_rule(p)) // lambda_star_etc
10899 )
10900 {
10901 D(fprintf(stderr, "%*c+ lambda_parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_star_etc"));
10902 _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , NULL , a );
10903 if (_res == NULL && PyErr_Occurred()) {
10904 p->error_indicator = 1;
10905 D(p->level--);
10906 return NULL;
10907 }
10908 goto done;
10909 }
10910 p->mark = _mark;
10911 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
10912 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_star_etc"));
10913 }
10914 _res = NULL;
10915 done:
10916 D(p->level--);
10917 return _res;
10918}
10919
10920// lambda_slash_no_default:
10921// | lambda_param_no_default+ '/' ','
10922// | lambda_param_no_default+ '/' &':'
Pablo Galindoa5634c42020-09-16 19:42:00 +010010923static asdl_arg_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010924lambda_slash_no_default_rule(Parser *p)
10925{
10926 D(p->level++);
10927 if (p->error_indicator) {
10928 D(p->level--);
10929 return NULL;
10930 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010010931 asdl_arg_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010932 int _mark = p->mark;
10933 { // lambda_param_no_default+ '/' ','
10934 if (p->error_indicator) {
10935 D(p->level--);
10936 return NULL;
10937 }
10938 D(fprintf(stderr, "%*c> lambda_slash_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default+ '/' ','"));
10939 Token * _literal;
10940 Token * _literal_1;
Pablo Galindoa5634c42020-09-16 19:42:00 +010010941 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010942 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080010943 (a = (asdl_arg_seq*)_loop1_96_rule(p)) // lambda_param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010944 &&
10945 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
10946 &&
10947 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
10948 )
10949 {
10950 D(fprintf(stderr, "%*c+ lambda_slash_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default+ '/' ','"));
10951 _res = a;
10952 if (_res == NULL && PyErr_Occurred()) {
10953 p->error_indicator = 1;
10954 D(p->level--);
10955 return NULL;
10956 }
10957 goto done;
10958 }
10959 p->mark = _mark;
10960 D(fprintf(stderr, "%*c%s lambda_slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
10961 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default+ '/' ','"));
10962 }
10963 { // lambda_param_no_default+ '/' &':'
10964 if (p->error_indicator) {
10965 D(p->level--);
10966 return NULL;
10967 }
10968 D(fprintf(stderr, "%*c> lambda_slash_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default+ '/' &':'"));
10969 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +010010970 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010971 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080010972 (a = (asdl_arg_seq*)_loop1_97_rule(p)) // lambda_param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010973 &&
10974 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
10975 &&
10976 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
10977 )
10978 {
10979 D(fprintf(stderr, "%*c+ lambda_slash_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default+ '/' &':'"));
10980 _res = a;
10981 if (_res == NULL && PyErr_Occurred()) {
10982 p->error_indicator = 1;
10983 D(p->level--);
10984 return NULL;
10985 }
10986 goto done;
10987 }
10988 p->mark = _mark;
10989 D(fprintf(stderr, "%*c%s lambda_slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
10990 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default+ '/' &':'"));
10991 }
10992 _res = NULL;
10993 done:
10994 D(p->level--);
10995 return _res;
10996}
10997
10998// lambda_slash_with_default:
10999// | lambda_param_no_default* lambda_param_with_default+ '/' ','
11000// | lambda_param_no_default* lambda_param_with_default+ '/' &':'
11001static SlashWithDefault*
11002lambda_slash_with_default_rule(Parser *p)
11003{
11004 D(p->level++);
11005 if (p->error_indicator) {
11006 D(p->level--);
11007 return NULL;
11008 }
11009 SlashWithDefault* _res = NULL;
11010 int _mark = p->mark;
11011 { // lambda_param_no_default* lambda_param_with_default+ '/' ','
11012 if (p->error_indicator) {
11013 D(p->level--);
11014 return NULL;
11015 }
11016 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+ '/' ','"));
11017 Token * _literal;
11018 Token * _literal_1;
11019 asdl_seq * a;
11020 asdl_seq * b;
11021 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080011022 (a = _loop0_98_rule(p)) // lambda_param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011023 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080011024 (b = _loop1_99_rule(p)) // lambda_param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011025 &&
11026 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
11027 &&
11028 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
11029 )
11030 {
11031 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 +010011032 _res = _PyPegen_slash_with_default ( p , ( asdl_arg_seq * ) a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011033 if (_res == NULL && PyErr_Occurred()) {
11034 p->error_indicator = 1;
11035 D(p->level--);
11036 return NULL;
11037 }
11038 goto done;
11039 }
11040 p->mark = _mark;
11041 D(fprintf(stderr, "%*c%s lambda_slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
11042 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default* lambda_param_with_default+ '/' ','"));
11043 }
11044 { // lambda_param_no_default* lambda_param_with_default+ '/' &':'
11045 if (p->error_indicator) {
11046 D(p->level--);
11047 return NULL;
11048 }
11049 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+ '/' &':'"));
11050 Token * _literal;
11051 asdl_seq * a;
11052 asdl_seq * b;
11053 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080011054 (a = _loop0_100_rule(p)) // lambda_param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011055 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080011056 (b = _loop1_101_rule(p)) // lambda_param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011057 &&
11058 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
11059 &&
11060 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
11061 )
11062 {
11063 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 +010011064 _res = _PyPegen_slash_with_default ( p , ( asdl_arg_seq * ) a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011065 if (_res == NULL && PyErr_Occurred()) {
11066 p->error_indicator = 1;
11067 D(p->level--);
11068 return NULL;
11069 }
11070 goto done;
11071 }
11072 p->mark = _mark;
11073 D(fprintf(stderr, "%*c%s lambda_slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
11074 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default* lambda_param_with_default+ '/' &':'"));
11075 }
11076 _res = NULL;
11077 done:
11078 D(p->level--);
11079 return _res;
11080}
11081
11082// lambda_star_etc:
11083// | '*' lambda_param_no_default lambda_param_maybe_default* lambda_kwds?
11084// | '*' ',' lambda_param_maybe_default+ lambda_kwds?
11085// | lambda_kwds
11086// | invalid_lambda_star_etc
11087static StarEtc*
11088lambda_star_etc_rule(Parser *p)
11089{
11090 D(p->level++);
11091 if (p->error_indicator) {
11092 D(p->level--);
11093 return NULL;
11094 }
11095 StarEtc* _res = NULL;
11096 int _mark = p->mark;
11097 { // '*' lambda_param_no_default lambda_param_maybe_default* lambda_kwds?
11098 if (p->error_indicator) {
11099 D(p->level--);
11100 return NULL;
11101 }
11102 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?"));
11103 Token * _literal;
11104 arg_ty a;
11105 asdl_seq * b;
11106 void *c;
11107 if (
11108 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
11109 &&
11110 (a = lambda_param_no_default_rule(p)) // lambda_param_no_default
11111 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080011112 (b = _loop0_102_rule(p)) // lambda_param_maybe_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011113 &&
11114 (c = lambda_kwds_rule(p), 1) // lambda_kwds?
11115 )
11116 {
11117 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?"));
11118 _res = _PyPegen_star_etc ( p , a , b , c );
11119 if (_res == NULL && PyErr_Occurred()) {
11120 p->error_indicator = 1;
11121 D(p->level--);
11122 return NULL;
11123 }
11124 goto done;
11125 }
11126 p->mark = _mark;
11127 D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
11128 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' lambda_param_no_default lambda_param_maybe_default* lambda_kwds?"));
11129 }
11130 { // '*' ',' lambda_param_maybe_default+ lambda_kwds?
11131 if (p->error_indicator) {
11132 D(p->level--);
11133 return NULL;
11134 }
11135 D(fprintf(stderr, "%*c> lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' ',' lambda_param_maybe_default+ lambda_kwds?"));
11136 Token * _literal;
11137 Token * _literal_1;
11138 asdl_seq * b;
11139 void *c;
11140 if (
11141 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
11142 &&
11143 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
11144 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080011145 (b = _loop1_103_rule(p)) // lambda_param_maybe_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011146 &&
11147 (c = lambda_kwds_rule(p), 1) // lambda_kwds?
11148 )
11149 {
11150 D(fprintf(stderr, "%*c+ lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' ',' lambda_param_maybe_default+ lambda_kwds?"));
11151 _res = _PyPegen_star_etc ( p , NULL , b , c );
11152 if (_res == NULL && PyErr_Occurred()) {
11153 p->error_indicator = 1;
11154 D(p->level--);
11155 return NULL;
11156 }
11157 goto done;
11158 }
11159 p->mark = _mark;
11160 D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
11161 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' ',' lambda_param_maybe_default+ lambda_kwds?"));
11162 }
11163 { // lambda_kwds
11164 if (p->error_indicator) {
11165 D(p->level--);
11166 return NULL;
11167 }
11168 D(fprintf(stderr, "%*c> lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_kwds"));
11169 arg_ty a;
11170 if (
11171 (a = lambda_kwds_rule(p)) // lambda_kwds
11172 )
11173 {
11174 D(fprintf(stderr, "%*c+ lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_kwds"));
11175 _res = _PyPegen_star_etc ( p , NULL , NULL , a );
11176 if (_res == NULL && PyErr_Occurred()) {
11177 p->error_indicator = 1;
11178 D(p->level--);
11179 return NULL;
11180 }
11181 goto done;
11182 }
11183 p->mark = _mark;
11184 D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
11185 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_kwds"));
11186 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020011187 if (p->call_invalid_rules) { // invalid_lambda_star_etc
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011188 if (p->error_indicator) {
11189 D(p->level--);
11190 return NULL;
11191 }
11192 D(fprintf(stderr, "%*c> lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_lambda_star_etc"));
11193 void *invalid_lambda_star_etc_var;
11194 if (
11195 (invalid_lambda_star_etc_var = invalid_lambda_star_etc_rule(p)) // invalid_lambda_star_etc
11196 )
11197 {
11198 D(fprintf(stderr, "%*c+ lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_lambda_star_etc"));
11199 _res = invalid_lambda_star_etc_var;
11200 goto done;
11201 }
11202 p->mark = _mark;
11203 D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
11204 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_lambda_star_etc"));
11205 }
11206 _res = NULL;
11207 done:
11208 D(p->level--);
11209 return _res;
11210}
11211
11212// lambda_kwds: '**' lambda_param_no_default
11213static arg_ty
11214lambda_kwds_rule(Parser *p)
11215{
11216 D(p->level++);
11217 if (p->error_indicator) {
11218 D(p->level--);
11219 return NULL;
11220 }
11221 arg_ty _res = NULL;
11222 int _mark = p->mark;
11223 { // '**' lambda_param_no_default
11224 if (p->error_indicator) {
11225 D(p->level--);
11226 return NULL;
11227 }
11228 D(fprintf(stderr, "%*c> lambda_kwds[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' lambda_param_no_default"));
11229 Token * _literal;
11230 arg_ty a;
11231 if (
11232 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
11233 &&
11234 (a = lambda_param_no_default_rule(p)) // lambda_param_no_default
11235 )
11236 {
11237 D(fprintf(stderr, "%*c+ lambda_kwds[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' lambda_param_no_default"));
11238 _res = a;
11239 if (_res == NULL && PyErr_Occurred()) {
11240 p->error_indicator = 1;
11241 D(p->level--);
11242 return NULL;
11243 }
11244 goto done;
11245 }
11246 p->mark = _mark;
11247 D(fprintf(stderr, "%*c%s lambda_kwds[%d-%d]: %s failed!\n", p->level, ' ',
11248 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' lambda_param_no_default"));
11249 }
11250 _res = NULL;
11251 done:
11252 D(p->level--);
11253 return _res;
11254}
11255
11256// lambda_param_no_default: lambda_param ',' | lambda_param &':'
11257static arg_ty
11258lambda_param_no_default_rule(Parser *p)
11259{
11260 D(p->level++);
11261 if (p->error_indicator) {
11262 D(p->level--);
11263 return NULL;
11264 }
11265 arg_ty _res = NULL;
11266 int _mark = p->mark;
11267 { // lambda_param ','
11268 if (p->error_indicator) {
11269 D(p->level--);
11270 return NULL;
11271 }
11272 D(fprintf(stderr, "%*c> lambda_param_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param ','"));
11273 Token * _literal;
11274 arg_ty a;
11275 if (
11276 (a = lambda_param_rule(p)) // lambda_param
11277 &&
11278 (_literal = _PyPegen_expect_token(p, 12)) // token=','
11279 )
11280 {
11281 D(fprintf(stderr, "%*c+ lambda_param_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param ','"));
11282 _res = a;
11283 if (_res == NULL && PyErr_Occurred()) {
11284 p->error_indicator = 1;
11285 D(p->level--);
11286 return NULL;
11287 }
11288 goto done;
11289 }
11290 p->mark = _mark;
11291 D(fprintf(stderr, "%*c%s lambda_param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
11292 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param ','"));
11293 }
11294 { // lambda_param &':'
11295 if (p->error_indicator) {
11296 D(p->level--);
11297 return NULL;
11298 }
11299 D(fprintf(stderr, "%*c> lambda_param_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param &':'"));
11300 arg_ty a;
11301 if (
11302 (a = lambda_param_rule(p)) // lambda_param
11303 &&
11304 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
11305 )
11306 {
11307 D(fprintf(stderr, "%*c+ lambda_param_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param &':'"));
11308 _res = a;
11309 if (_res == NULL && PyErr_Occurred()) {
11310 p->error_indicator = 1;
11311 D(p->level--);
11312 return NULL;
11313 }
11314 goto done;
11315 }
11316 p->mark = _mark;
11317 D(fprintf(stderr, "%*c%s lambda_param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
11318 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param &':'"));
11319 }
11320 _res = NULL;
11321 done:
11322 D(p->level--);
11323 return _res;
11324}
11325
11326// lambda_param_with_default: lambda_param default ',' | lambda_param default &':'
11327static NameDefaultPair*
11328lambda_param_with_default_rule(Parser *p)
11329{
11330 D(p->level++);
11331 if (p->error_indicator) {
11332 D(p->level--);
11333 return NULL;
11334 }
11335 NameDefaultPair* _res = NULL;
11336 int _mark = p->mark;
11337 { // lambda_param default ','
11338 if (p->error_indicator) {
11339 D(p->level--);
11340 return NULL;
11341 }
11342 D(fprintf(stderr, "%*c> lambda_param_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param default ','"));
11343 Token * _literal;
11344 arg_ty a;
11345 expr_ty c;
11346 if (
11347 (a = lambda_param_rule(p)) // lambda_param
11348 &&
11349 (c = default_rule(p)) // default
11350 &&
11351 (_literal = _PyPegen_expect_token(p, 12)) // token=','
11352 )
11353 {
11354 D(fprintf(stderr, "%*c+ lambda_param_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param default ','"));
11355 _res = _PyPegen_name_default_pair ( p , a , c , NULL );
11356 if (_res == NULL && PyErr_Occurred()) {
11357 p->error_indicator = 1;
11358 D(p->level--);
11359 return NULL;
11360 }
11361 goto done;
11362 }
11363 p->mark = _mark;
11364 D(fprintf(stderr, "%*c%s lambda_param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
11365 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default ','"));
11366 }
11367 { // lambda_param default &':'
11368 if (p->error_indicator) {
11369 D(p->level--);
11370 return NULL;
11371 }
11372 D(fprintf(stderr, "%*c> lambda_param_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param default &':'"));
11373 arg_ty a;
11374 expr_ty c;
11375 if (
11376 (a = lambda_param_rule(p)) // lambda_param
11377 &&
11378 (c = default_rule(p)) // default
11379 &&
11380 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
11381 )
11382 {
11383 D(fprintf(stderr, "%*c+ lambda_param_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param default &':'"));
11384 _res = _PyPegen_name_default_pair ( p , a , c , NULL );
11385 if (_res == NULL && PyErr_Occurred()) {
11386 p->error_indicator = 1;
11387 D(p->level--);
11388 return NULL;
11389 }
11390 goto done;
11391 }
11392 p->mark = _mark;
11393 D(fprintf(stderr, "%*c%s lambda_param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
11394 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default &':'"));
11395 }
11396 _res = NULL;
11397 done:
11398 D(p->level--);
11399 return _res;
11400}
11401
11402// lambda_param_maybe_default: lambda_param default? ',' | lambda_param default? &':'
11403static NameDefaultPair*
11404lambda_param_maybe_default_rule(Parser *p)
11405{
11406 D(p->level++);
11407 if (p->error_indicator) {
11408 D(p->level--);
11409 return NULL;
11410 }
11411 NameDefaultPair* _res = NULL;
11412 int _mark = p->mark;
11413 { // lambda_param default? ','
11414 if (p->error_indicator) {
11415 D(p->level--);
11416 return NULL;
11417 }
11418 D(fprintf(stderr, "%*c> lambda_param_maybe_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param default? ','"));
11419 Token * _literal;
11420 arg_ty a;
11421 void *c;
11422 if (
11423 (a = lambda_param_rule(p)) // lambda_param
11424 &&
11425 (c = default_rule(p), 1) // default?
11426 &&
11427 (_literal = _PyPegen_expect_token(p, 12)) // token=','
11428 )
11429 {
11430 D(fprintf(stderr, "%*c+ lambda_param_maybe_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param default? ','"));
11431 _res = _PyPegen_name_default_pair ( p , a , c , NULL );
11432 if (_res == NULL && PyErr_Occurred()) {
11433 p->error_indicator = 1;
11434 D(p->level--);
11435 return NULL;
11436 }
11437 goto done;
11438 }
11439 p->mark = _mark;
11440 D(fprintf(stderr, "%*c%s lambda_param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
11441 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default? ','"));
11442 }
11443 { // lambda_param default? &':'
11444 if (p->error_indicator) {
11445 D(p->level--);
11446 return NULL;
11447 }
11448 D(fprintf(stderr, "%*c> lambda_param_maybe_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param default? &':'"));
11449 arg_ty a;
11450 void *c;
11451 if (
11452 (a = lambda_param_rule(p)) // lambda_param
11453 &&
11454 (c = default_rule(p), 1) // default?
11455 &&
11456 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
11457 )
11458 {
11459 D(fprintf(stderr, "%*c+ lambda_param_maybe_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param default? &':'"));
11460 _res = _PyPegen_name_default_pair ( p , a , c , NULL );
11461 if (_res == NULL && PyErr_Occurred()) {
11462 p->error_indicator = 1;
11463 D(p->level--);
11464 return NULL;
11465 }
11466 goto done;
11467 }
11468 p->mark = _mark;
11469 D(fprintf(stderr, "%*c%s lambda_param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
11470 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default? &':'"));
11471 }
11472 _res = NULL;
11473 done:
11474 D(p->level--);
11475 return _res;
11476}
11477
11478// lambda_param: NAME
11479static arg_ty
11480lambda_param_rule(Parser *p)
11481{
11482 D(p->level++);
11483 if (p->error_indicator) {
11484 D(p->level--);
11485 return NULL;
11486 }
11487 arg_ty _res = NULL;
11488 int _mark = p->mark;
11489 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11490 p->error_indicator = 1;
11491 D(p->level--);
11492 return NULL;
11493 }
11494 int _start_lineno = p->tokens[_mark]->lineno;
11495 UNUSED(_start_lineno); // Only used by EXTRA macro
11496 int _start_col_offset = p->tokens[_mark]->col_offset;
11497 UNUSED(_start_col_offset); // Only used by EXTRA macro
11498 { // NAME
11499 if (p->error_indicator) {
11500 D(p->level--);
11501 return NULL;
11502 }
11503 D(fprintf(stderr, "%*c> lambda_param[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
11504 expr_ty a;
11505 if (
11506 (a = _PyPegen_name_token(p)) // NAME
11507 )
11508 {
11509 D(fprintf(stderr, "%*c+ lambda_param[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
11510 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11511 if (_token == NULL) {
11512 D(p->level--);
11513 return NULL;
11514 }
11515 int _end_lineno = _token->end_lineno;
11516 UNUSED(_end_lineno); // Only used by EXTRA macro
11517 int _end_col_offset = _token->end_col_offset;
11518 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020011519 _res = _PyAST_arg ( a -> v . Name . id , NULL , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011520 if (_res == NULL && PyErr_Occurred()) {
11521 p->error_indicator = 1;
11522 D(p->level--);
11523 return NULL;
11524 }
11525 goto done;
11526 }
11527 p->mark = _mark;
11528 D(fprintf(stderr, "%*c%s lambda_param[%d-%d]: %s failed!\n", p->level, ' ',
11529 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
11530 }
11531 _res = NULL;
11532 done:
11533 D(p->level--);
11534 return _res;
11535}
11536
11537// disjunction: conjunction (('or' conjunction))+ | conjunction
11538static expr_ty
11539disjunction_rule(Parser *p)
11540{
11541 D(p->level++);
11542 if (p->error_indicator) {
11543 D(p->level--);
11544 return NULL;
11545 }
11546 expr_ty _res = NULL;
11547 if (_PyPegen_is_memoized(p, disjunction_type, &_res)) {
11548 D(p->level--);
11549 return _res;
11550 }
11551 int _mark = p->mark;
11552 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11553 p->error_indicator = 1;
11554 D(p->level--);
11555 return NULL;
11556 }
11557 int _start_lineno = p->tokens[_mark]->lineno;
11558 UNUSED(_start_lineno); // Only used by EXTRA macro
11559 int _start_col_offset = p->tokens[_mark]->col_offset;
11560 UNUSED(_start_col_offset); // Only used by EXTRA macro
11561 { // conjunction (('or' conjunction))+
11562 if (p->error_indicator) {
11563 D(p->level--);
11564 return NULL;
11565 }
11566 D(fprintf(stderr, "%*c> disjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "conjunction (('or' conjunction))+"));
11567 expr_ty a;
11568 asdl_seq * b;
11569 if (
11570 (a = conjunction_rule(p)) // conjunction
11571 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080011572 (b = _loop1_104_rule(p)) // (('or' conjunction))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011573 )
11574 {
11575 D(fprintf(stderr, "%*c+ disjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "conjunction (('or' conjunction))+"));
11576 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11577 if (_token == NULL) {
11578 D(p->level--);
11579 return NULL;
11580 }
11581 int _end_lineno = _token->end_lineno;
11582 UNUSED(_end_lineno); // Only used by EXTRA macro
11583 int _end_col_offset = _token->end_col_offset;
11584 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020011585 _res = _PyAST_BoolOp ( Or , CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , a , b ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011586 if (_res == NULL && PyErr_Occurred()) {
11587 p->error_indicator = 1;
11588 D(p->level--);
11589 return NULL;
11590 }
11591 goto done;
11592 }
11593 p->mark = _mark;
11594 D(fprintf(stderr, "%*c%s disjunction[%d-%d]: %s failed!\n", p->level, ' ',
11595 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "conjunction (('or' conjunction))+"));
11596 }
11597 { // conjunction
11598 if (p->error_indicator) {
11599 D(p->level--);
11600 return NULL;
11601 }
11602 D(fprintf(stderr, "%*c> disjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "conjunction"));
11603 expr_ty conjunction_var;
11604 if (
11605 (conjunction_var = conjunction_rule(p)) // conjunction
11606 )
11607 {
11608 D(fprintf(stderr, "%*c+ disjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "conjunction"));
11609 _res = conjunction_var;
11610 goto done;
11611 }
11612 p->mark = _mark;
11613 D(fprintf(stderr, "%*c%s disjunction[%d-%d]: %s failed!\n", p->level, ' ',
11614 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "conjunction"));
11615 }
11616 _res = NULL;
11617 done:
11618 _PyPegen_insert_memo(p, _mark, disjunction_type, _res);
11619 D(p->level--);
11620 return _res;
11621}
11622
11623// conjunction: inversion (('and' inversion))+ | inversion
11624static expr_ty
11625conjunction_rule(Parser *p)
11626{
11627 D(p->level++);
11628 if (p->error_indicator) {
11629 D(p->level--);
11630 return NULL;
11631 }
11632 expr_ty _res = NULL;
11633 if (_PyPegen_is_memoized(p, conjunction_type, &_res)) {
11634 D(p->level--);
11635 return _res;
11636 }
11637 int _mark = p->mark;
11638 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11639 p->error_indicator = 1;
11640 D(p->level--);
11641 return NULL;
11642 }
11643 int _start_lineno = p->tokens[_mark]->lineno;
11644 UNUSED(_start_lineno); // Only used by EXTRA macro
11645 int _start_col_offset = p->tokens[_mark]->col_offset;
11646 UNUSED(_start_col_offset); // Only used by EXTRA macro
11647 { // inversion (('and' inversion))+
11648 if (p->error_indicator) {
11649 D(p->level--);
11650 return NULL;
11651 }
11652 D(fprintf(stderr, "%*c> conjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "inversion (('and' inversion))+"));
11653 expr_ty a;
11654 asdl_seq * b;
11655 if (
11656 (a = inversion_rule(p)) // inversion
11657 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080011658 (b = _loop1_105_rule(p)) // (('and' inversion))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011659 )
11660 {
11661 D(fprintf(stderr, "%*c+ conjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "inversion (('and' inversion))+"));
11662 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11663 if (_token == NULL) {
11664 D(p->level--);
11665 return NULL;
11666 }
11667 int _end_lineno = _token->end_lineno;
11668 UNUSED(_end_lineno); // Only used by EXTRA macro
11669 int _end_col_offset = _token->end_col_offset;
11670 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020011671 _res = _PyAST_BoolOp ( And , CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , a , b ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011672 if (_res == NULL && PyErr_Occurred()) {
11673 p->error_indicator = 1;
11674 D(p->level--);
11675 return NULL;
11676 }
11677 goto done;
11678 }
11679 p->mark = _mark;
11680 D(fprintf(stderr, "%*c%s conjunction[%d-%d]: %s failed!\n", p->level, ' ',
11681 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "inversion (('and' inversion))+"));
11682 }
11683 { // inversion
11684 if (p->error_indicator) {
11685 D(p->level--);
11686 return NULL;
11687 }
11688 D(fprintf(stderr, "%*c> conjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "inversion"));
11689 expr_ty inversion_var;
11690 if (
11691 (inversion_var = inversion_rule(p)) // inversion
11692 )
11693 {
11694 D(fprintf(stderr, "%*c+ conjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "inversion"));
11695 _res = inversion_var;
11696 goto done;
11697 }
11698 p->mark = _mark;
11699 D(fprintf(stderr, "%*c%s conjunction[%d-%d]: %s failed!\n", p->level, ' ',
11700 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "inversion"));
11701 }
11702 _res = NULL;
11703 done:
11704 _PyPegen_insert_memo(p, _mark, conjunction_type, _res);
11705 D(p->level--);
11706 return _res;
11707}
11708
11709// inversion: 'not' inversion | comparison
11710static expr_ty
11711inversion_rule(Parser *p)
11712{
11713 D(p->level++);
11714 if (p->error_indicator) {
11715 D(p->level--);
11716 return NULL;
11717 }
11718 expr_ty _res = NULL;
11719 if (_PyPegen_is_memoized(p, inversion_type, &_res)) {
11720 D(p->level--);
11721 return _res;
11722 }
11723 int _mark = p->mark;
11724 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11725 p->error_indicator = 1;
11726 D(p->level--);
11727 return NULL;
11728 }
11729 int _start_lineno = p->tokens[_mark]->lineno;
11730 UNUSED(_start_lineno); // Only used by EXTRA macro
11731 int _start_col_offset = p->tokens[_mark]->col_offset;
11732 UNUSED(_start_col_offset); // Only used by EXTRA macro
11733 { // 'not' inversion
11734 if (p->error_indicator) {
11735 D(p->level--);
11736 return NULL;
11737 }
11738 D(fprintf(stderr, "%*c> inversion[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'not' inversion"));
11739 Token * _keyword;
11740 expr_ty a;
11741 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080011742 (_keyword = _PyPegen_expect_token(p, 529)) // token='not'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011743 &&
11744 (a = inversion_rule(p)) // inversion
11745 )
11746 {
11747 D(fprintf(stderr, "%*c+ inversion[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'not' inversion"));
11748 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11749 if (_token == NULL) {
11750 D(p->level--);
11751 return NULL;
11752 }
11753 int _end_lineno = _token->end_lineno;
11754 UNUSED(_end_lineno); // Only used by EXTRA macro
11755 int _end_col_offset = _token->end_col_offset;
11756 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020011757 _res = _PyAST_UnaryOp ( Not , a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011758 if (_res == NULL && PyErr_Occurred()) {
11759 p->error_indicator = 1;
11760 D(p->level--);
11761 return NULL;
11762 }
11763 goto done;
11764 }
11765 p->mark = _mark;
11766 D(fprintf(stderr, "%*c%s inversion[%d-%d]: %s failed!\n", p->level, ' ',
11767 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'not' inversion"));
11768 }
11769 { // comparison
11770 if (p->error_indicator) {
11771 D(p->level--);
11772 return NULL;
11773 }
11774 D(fprintf(stderr, "%*c> inversion[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "comparison"));
11775 expr_ty comparison_var;
11776 if (
11777 (comparison_var = comparison_rule(p)) // comparison
11778 )
11779 {
11780 D(fprintf(stderr, "%*c+ inversion[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "comparison"));
11781 _res = comparison_var;
11782 goto done;
11783 }
11784 p->mark = _mark;
11785 D(fprintf(stderr, "%*c%s inversion[%d-%d]: %s failed!\n", p->level, ' ',
11786 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "comparison"));
11787 }
11788 _res = NULL;
11789 done:
11790 _PyPegen_insert_memo(p, _mark, inversion_type, _res);
11791 D(p->level--);
11792 return _res;
11793}
11794
11795// comparison: bitwise_or compare_op_bitwise_or_pair+ | bitwise_or
11796static expr_ty
11797comparison_rule(Parser *p)
11798{
11799 D(p->level++);
11800 if (p->error_indicator) {
11801 D(p->level--);
11802 return NULL;
11803 }
11804 expr_ty _res = NULL;
11805 int _mark = p->mark;
11806 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11807 p->error_indicator = 1;
11808 D(p->level--);
11809 return NULL;
11810 }
11811 int _start_lineno = p->tokens[_mark]->lineno;
11812 UNUSED(_start_lineno); // Only used by EXTRA macro
11813 int _start_col_offset = p->tokens[_mark]->col_offset;
11814 UNUSED(_start_col_offset); // Only used by EXTRA macro
11815 { // bitwise_or compare_op_bitwise_or_pair+
11816 if (p->error_indicator) {
11817 D(p->level--);
11818 return NULL;
11819 }
11820 D(fprintf(stderr, "%*c> comparison[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_or compare_op_bitwise_or_pair+"));
11821 expr_ty a;
11822 asdl_seq * b;
11823 if (
11824 (a = bitwise_or_rule(p)) // bitwise_or
11825 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080011826 (b = _loop1_106_rule(p)) // compare_op_bitwise_or_pair+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011827 )
11828 {
11829 D(fprintf(stderr, "%*c+ comparison[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_or compare_op_bitwise_or_pair+"));
11830 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11831 if (_token == NULL) {
11832 D(p->level--);
11833 return NULL;
11834 }
11835 int _end_lineno = _token->end_lineno;
11836 UNUSED(_end_lineno); // Only used by EXTRA macro
11837 int _end_col_offset = _token->end_col_offset;
11838 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020011839 _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 +010011840 if (_res == NULL && PyErr_Occurred()) {
11841 p->error_indicator = 1;
11842 D(p->level--);
11843 return NULL;
11844 }
11845 goto done;
11846 }
11847 p->mark = _mark;
11848 D(fprintf(stderr, "%*c%s comparison[%d-%d]: %s failed!\n", p->level, ' ',
11849 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_or compare_op_bitwise_or_pair+"));
11850 }
11851 { // bitwise_or
11852 if (p->error_indicator) {
11853 D(p->level--);
11854 return NULL;
11855 }
11856 D(fprintf(stderr, "%*c> comparison[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_or"));
11857 expr_ty bitwise_or_var;
11858 if (
11859 (bitwise_or_var = bitwise_or_rule(p)) // bitwise_or
11860 )
11861 {
11862 D(fprintf(stderr, "%*c+ comparison[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_or"));
11863 _res = bitwise_or_var;
11864 goto done;
11865 }
11866 p->mark = _mark;
11867 D(fprintf(stderr, "%*c%s comparison[%d-%d]: %s failed!\n", p->level, ' ',
11868 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_or"));
11869 }
11870 _res = NULL;
11871 done:
11872 D(p->level--);
11873 return _res;
11874}
11875
11876// compare_op_bitwise_or_pair:
11877// | eq_bitwise_or
11878// | noteq_bitwise_or
11879// | lte_bitwise_or
11880// | lt_bitwise_or
11881// | gte_bitwise_or
11882// | gt_bitwise_or
11883// | notin_bitwise_or
11884// | in_bitwise_or
11885// | isnot_bitwise_or
11886// | is_bitwise_or
11887static CmpopExprPair*
11888compare_op_bitwise_or_pair_rule(Parser *p)
11889{
11890 D(p->level++);
11891 if (p->error_indicator) {
11892 D(p->level--);
11893 return NULL;
11894 }
11895 CmpopExprPair* _res = NULL;
11896 int _mark = p->mark;
11897 { // eq_bitwise_or
11898 if (p->error_indicator) {
11899 D(p->level--);
11900 return NULL;
11901 }
11902 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "eq_bitwise_or"));
11903 CmpopExprPair* eq_bitwise_or_var;
11904 if (
11905 (eq_bitwise_or_var = eq_bitwise_or_rule(p)) // eq_bitwise_or
11906 )
11907 {
11908 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "eq_bitwise_or"));
11909 _res = eq_bitwise_or_var;
11910 goto done;
11911 }
11912 p->mark = _mark;
11913 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
11914 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "eq_bitwise_or"));
11915 }
11916 { // noteq_bitwise_or
11917 if (p->error_indicator) {
11918 D(p->level--);
11919 return NULL;
11920 }
11921 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "noteq_bitwise_or"));
11922 CmpopExprPair* noteq_bitwise_or_var;
11923 if (
11924 (noteq_bitwise_or_var = noteq_bitwise_or_rule(p)) // noteq_bitwise_or
11925 )
11926 {
11927 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "noteq_bitwise_or"));
11928 _res = noteq_bitwise_or_var;
11929 goto done;
11930 }
11931 p->mark = _mark;
11932 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
11933 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "noteq_bitwise_or"));
11934 }
11935 { // lte_bitwise_or
11936 if (p->error_indicator) {
11937 D(p->level--);
11938 return NULL;
11939 }
11940 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lte_bitwise_or"));
11941 CmpopExprPair* lte_bitwise_or_var;
11942 if (
11943 (lte_bitwise_or_var = lte_bitwise_or_rule(p)) // lte_bitwise_or
11944 )
11945 {
11946 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lte_bitwise_or"));
11947 _res = lte_bitwise_or_var;
11948 goto done;
11949 }
11950 p->mark = _mark;
11951 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
11952 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lte_bitwise_or"));
11953 }
11954 { // lt_bitwise_or
11955 if (p->error_indicator) {
11956 D(p->level--);
11957 return NULL;
11958 }
11959 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lt_bitwise_or"));
11960 CmpopExprPair* lt_bitwise_or_var;
11961 if (
11962 (lt_bitwise_or_var = lt_bitwise_or_rule(p)) // lt_bitwise_or
11963 )
11964 {
11965 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lt_bitwise_or"));
11966 _res = lt_bitwise_or_var;
11967 goto done;
11968 }
11969 p->mark = _mark;
11970 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
11971 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lt_bitwise_or"));
11972 }
11973 { // gte_bitwise_or
11974 if (p->error_indicator) {
11975 D(p->level--);
11976 return NULL;
11977 }
11978 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "gte_bitwise_or"));
11979 CmpopExprPair* gte_bitwise_or_var;
11980 if (
11981 (gte_bitwise_or_var = gte_bitwise_or_rule(p)) // gte_bitwise_or
11982 )
11983 {
11984 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "gte_bitwise_or"));
11985 _res = gte_bitwise_or_var;
11986 goto done;
11987 }
11988 p->mark = _mark;
11989 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
11990 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "gte_bitwise_or"));
11991 }
11992 { // gt_bitwise_or
11993 if (p->error_indicator) {
11994 D(p->level--);
11995 return NULL;
11996 }
11997 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "gt_bitwise_or"));
11998 CmpopExprPair* gt_bitwise_or_var;
11999 if (
12000 (gt_bitwise_or_var = gt_bitwise_or_rule(p)) // gt_bitwise_or
12001 )
12002 {
12003 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "gt_bitwise_or"));
12004 _res = gt_bitwise_or_var;
12005 goto done;
12006 }
12007 p->mark = _mark;
12008 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
12009 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "gt_bitwise_or"));
12010 }
12011 { // notin_bitwise_or
12012 if (p->error_indicator) {
12013 D(p->level--);
12014 return NULL;
12015 }
12016 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "notin_bitwise_or"));
12017 CmpopExprPair* notin_bitwise_or_var;
12018 if (
12019 (notin_bitwise_or_var = notin_bitwise_or_rule(p)) // notin_bitwise_or
12020 )
12021 {
12022 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "notin_bitwise_or"));
12023 _res = notin_bitwise_or_var;
12024 goto done;
12025 }
12026 p->mark = _mark;
12027 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
12028 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "notin_bitwise_or"));
12029 }
12030 { // in_bitwise_or
12031 if (p->error_indicator) {
12032 D(p->level--);
12033 return NULL;
12034 }
12035 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "in_bitwise_or"));
12036 CmpopExprPair* in_bitwise_or_var;
12037 if (
12038 (in_bitwise_or_var = in_bitwise_or_rule(p)) // in_bitwise_or
12039 )
12040 {
12041 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "in_bitwise_or"));
12042 _res = in_bitwise_or_var;
12043 goto done;
12044 }
12045 p->mark = _mark;
12046 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
12047 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "in_bitwise_or"));
12048 }
12049 { // isnot_bitwise_or
12050 if (p->error_indicator) {
12051 D(p->level--);
12052 return NULL;
12053 }
12054 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "isnot_bitwise_or"));
12055 CmpopExprPair* isnot_bitwise_or_var;
12056 if (
12057 (isnot_bitwise_or_var = isnot_bitwise_or_rule(p)) // isnot_bitwise_or
12058 )
12059 {
12060 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "isnot_bitwise_or"));
12061 _res = isnot_bitwise_or_var;
12062 goto done;
12063 }
12064 p->mark = _mark;
12065 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
12066 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "isnot_bitwise_or"));
12067 }
12068 { // is_bitwise_or
12069 if (p->error_indicator) {
12070 D(p->level--);
12071 return NULL;
12072 }
12073 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "is_bitwise_or"));
12074 CmpopExprPair* is_bitwise_or_var;
12075 if (
12076 (is_bitwise_or_var = is_bitwise_or_rule(p)) // is_bitwise_or
12077 )
12078 {
12079 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "is_bitwise_or"));
12080 _res = is_bitwise_or_var;
12081 goto done;
12082 }
12083 p->mark = _mark;
12084 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
12085 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "is_bitwise_or"));
12086 }
12087 _res = NULL;
12088 done:
12089 D(p->level--);
12090 return _res;
12091}
12092
12093// eq_bitwise_or: '==' bitwise_or
12094static CmpopExprPair*
12095eq_bitwise_or_rule(Parser *p)
12096{
12097 D(p->level++);
12098 if (p->error_indicator) {
12099 D(p->level--);
12100 return NULL;
12101 }
12102 CmpopExprPair* _res = NULL;
12103 int _mark = p->mark;
12104 { // '==' bitwise_or
12105 if (p->error_indicator) {
12106 D(p->level--);
12107 return NULL;
12108 }
12109 D(fprintf(stderr, "%*c> eq_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'==' bitwise_or"));
12110 Token * _literal;
12111 expr_ty a;
12112 if (
12113 (_literal = _PyPegen_expect_token(p, 27)) // token='=='
12114 &&
12115 (a = bitwise_or_rule(p)) // bitwise_or
12116 )
12117 {
12118 D(fprintf(stderr, "%*c+ eq_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'==' bitwise_or"));
12119 _res = _PyPegen_cmpop_expr_pair ( p , Eq , a );
12120 if (_res == NULL && PyErr_Occurred()) {
12121 p->error_indicator = 1;
12122 D(p->level--);
12123 return NULL;
12124 }
12125 goto done;
12126 }
12127 p->mark = _mark;
12128 D(fprintf(stderr, "%*c%s eq_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12129 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'==' bitwise_or"));
12130 }
12131 _res = NULL;
12132 done:
12133 D(p->level--);
12134 return _res;
12135}
12136
12137// noteq_bitwise_or: ('!=') bitwise_or
12138static CmpopExprPair*
12139noteq_bitwise_or_rule(Parser *p)
12140{
12141 D(p->level++);
12142 if (p->error_indicator) {
12143 D(p->level--);
12144 return NULL;
12145 }
12146 CmpopExprPair* _res = NULL;
12147 int _mark = p->mark;
12148 { // ('!=') bitwise_or
12149 if (p->error_indicator) {
12150 D(p->level--);
12151 return NULL;
12152 }
12153 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 -080012154 void *_tmp_107_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012155 expr_ty a;
12156 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080012157 (_tmp_107_var = _tmp_107_rule(p)) // '!='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012158 &&
12159 (a = bitwise_or_rule(p)) // bitwise_or
12160 )
12161 {
12162 D(fprintf(stderr, "%*c+ noteq_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "('!=') bitwise_or"));
12163 _res = _PyPegen_cmpop_expr_pair ( p , NotEq , a );
12164 if (_res == NULL && PyErr_Occurred()) {
12165 p->error_indicator = 1;
12166 D(p->level--);
12167 return NULL;
12168 }
12169 goto done;
12170 }
12171 p->mark = _mark;
12172 D(fprintf(stderr, "%*c%s noteq_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12173 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('!=') bitwise_or"));
12174 }
12175 _res = NULL;
12176 done:
12177 D(p->level--);
12178 return _res;
12179}
12180
12181// lte_bitwise_or: '<=' bitwise_or
12182static CmpopExprPair*
12183lte_bitwise_or_rule(Parser *p)
12184{
12185 D(p->level++);
12186 if (p->error_indicator) {
12187 D(p->level--);
12188 return NULL;
12189 }
12190 CmpopExprPair* _res = NULL;
12191 int _mark = p->mark;
12192 { // '<=' bitwise_or
12193 if (p->error_indicator) {
12194 D(p->level--);
12195 return NULL;
12196 }
12197 D(fprintf(stderr, "%*c> lte_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'<=' bitwise_or"));
12198 Token * _literal;
12199 expr_ty a;
12200 if (
12201 (_literal = _PyPegen_expect_token(p, 29)) // token='<='
12202 &&
12203 (a = bitwise_or_rule(p)) // bitwise_or
12204 )
12205 {
12206 D(fprintf(stderr, "%*c+ lte_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'<=' bitwise_or"));
12207 _res = _PyPegen_cmpop_expr_pair ( p , LtE , a );
12208 if (_res == NULL && PyErr_Occurred()) {
12209 p->error_indicator = 1;
12210 D(p->level--);
12211 return NULL;
12212 }
12213 goto done;
12214 }
12215 p->mark = _mark;
12216 D(fprintf(stderr, "%*c%s lte_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12217 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'<=' bitwise_or"));
12218 }
12219 _res = NULL;
12220 done:
12221 D(p->level--);
12222 return _res;
12223}
12224
12225// lt_bitwise_or: '<' bitwise_or
12226static CmpopExprPair*
12227lt_bitwise_or_rule(Parser *p)
12228{
12229 D(p->level++);
12230 if (p->error_indicator) {
12231 D(p->level--);
12232 return NULL;
12233 }
12234 CmpopExprPair* _res = NULL;
12235 int _mark = p->mark;
12236 { // '<' bitwise_or
12237 if (p->error_indicator) {
12238 D(p->level--);
12239 return NULL;
12240 }
12241 D(fprintf(stderr, "%*c> lt_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'<' bitwise_or"));
12242 Token * _literal;
12243 expr_ty a;
12244 if (
12245 (_literal = _PyPegen_expect_token(p, 20)) // token='<'
12246 &&
12247 (a = bitwise_or_rule(p)) // bitwise_or
12248 )
12249 {
12250 D(fprintf(stderr, "%*c+ lt_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'<' bitwise_or"));
12251 _res = _PyPegen_cmpop_expr_pair ( p , Lt , a );
12252 if (_res == NULL && PyErr_Occurred()) {
12253 p->error_indicator = 1;
12254 D(p->level--);
12255 return NULL;
12256 }
12257 goto done;
12258 }
12259 p->mark = _mark;
12260 D(fprintf(stderr, "%*c%s lt_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12261 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'<' bitwise_or"));
12262 }
12263 _res = NULL;
12264 done:
12265 D(p->level--);
12266 return _res;
12267}
12268
12269// gte_bitwise_or: '>=' bitwise_or
12270static CmpopExprPair*
12271gte_bitwise_or_rule(Parser *p)
12272{
12273 D(p->level++);
12274 if (p->error_indicator) {
12275 D(p->level--);
12276 return NULL;
12277 }
12278 CmpopExprPair* _res = NULL;
12279 int _mark = p->mark;
12280 { // '>=' bitwise_or
12281 if (p->error_indicator) {
12282 D(p->level--);
12283 return NULL;
12284 }
12285 D(fprintf(stderr, "%*c> gte_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'>=' bitwise_or"));
12286 Token * _literal;
12287 expr_ty a;
12288 if (
12289 (_literal = _PyPegen_expect_token(p, 30)) // token='>='
12290 &&
12291 (a = bitwise_or_rule(p)) // bitwise_or
12292 )
12293 {
12294 D(fprintf(stderr, "%*c+ gte_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'>=' bitwise_or"));
12295 _res = _PyPegen_cmpop_expr_pair ( p , GtE , a );
12296 if (_res == NULL && PyErr_Occurred()) {
12297 p->error_indicator = 1;
12298 D(p->level--);
12299 return NULL;
12300 }
12301 goto done;
12302 }
12303 p->mark = _mark;
12304 D(fprintf(stderr, "%*c%s gte_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12305 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'>=' bitwise_or"));
12306 }
12307 _res = NULL;
12308 done:
12309 D(p->level--);
12310 return _res;
12311}
12312
12313// gt_bitwise_or: '>' bitwise_or
12314static CmpopExprPair*
12315gt_bitwise_or_rule(Parser *p)
12316{
12317 D(p->level++);
12318 if (p->error_indicator) {
12319 D(p->level--);
12320 return NULL;
12321 }
12322 CmpopExprPair* _res = NULL;
12323 int _mark = p->mark;
12324 { // '>' bitwise_or
12325 if (p->error_indicator) {
12326 D(p->level--);
12327 return NULL;
12328 }
12329 D(fprintf(stderr, "%*c> gt_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'>' bitwise_or"));
12330 Token * _literal;
12331 expr_ty a;
12332 if (
12333 (_literal = _PyPegen_expect_token(p, 21)) // token='>'
12334 &&
12335 (a = bitwise_or_rule(p)) // bitwise_or
12336 )
12337 {
12338 D(fprintf(stderr, "%*c+ gt_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'>' bitwise_or"));
12339 _res = _PyPegen_cmpop_expr_pair ( p , Gt , a );
12340 if (_res == NULL && PyErr_Occurred()) {
12341 p->error_indicator = 1;
12342 D(p->level--);
12343 return NULL;
12344 }
12345 goto done;
12346 }
12347 p->mark = _mark;
12348 D(fprintf(stderr, "%*c%s gt_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12349 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'>' bitwise_or"));
12350 }
12351 _res = NULL;
12352 done:
12353 D(p->level--);
12354 return _res;
12355}
12356
12357// notin_bitwise_or: 'not' 'in' bitwise_or
12358static CmpopExprPair*
12359notin_bitwise_or_rule(Parser *p)
12360{
12361 D(p->level++);
12362 if (p->error_indicator) {
12363 D(p->level--);
12364 return NULL;
12365 }
12366 CmpopExprPair* _res = NULL;
12367 int _mark = p->mark;
12368 { // 'not' 'in' bitwise_or
12369 if (p->error_indicator) {
12370 D(p->level--);
12371 return NULL;
12372 }
12373 D(fprintf(stderr, "%*c> notin_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'not' 'in' bitwise_or"));
12374 Token * _keyword;
12375 Token * _keyword_1;
12376 expr_ty a;
12377 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080012378 (_keyword = _PyPegen_expect_token(p, 529)) // token='not'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012379 &&
12380 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
12381 &&
12382 (a = bitwise_or_rule(p)) // bitwise_or
12383 )
12384 {
12385 D(fprintf(stderr, "%*c+ notin_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'not' 'in' bitwise_or"));
12386 _res = _PyPegen_cmpop_expr_pair ( p , NotIn , a );
12387 if (_res == NULL && PyErr_Occurred()) {
12388 p->error_indicator = 1;
12389 D(p->level--);
12390 return NULL;
12391 }
12392 goto done;
12393 }
12394 p->mark = _mark;
12395 D(fprintf(stderr, "%*c%s notin_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12396 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'not' 'in' bitwise_or"));
12397 }
12398 _res = NULL;
12399 done:
12400 D(p->level--);
12401 return _res;
12402}
12403
12404// in_bitwise_or: 'in' bitwise_or
12405static CmpopExprPair*
12406in_bitwise_or_rule(Parser *p)
12407{
12408 D(p->level++);
12409 if (p->error_indicator) {
12410 D(p->level--);
12411 return NULL;
12412 }
12413 CmpopExprPair* _res = NULL;
12414 int _mark = p->mark;
12415 { // 'in' bitwise_or
12416 if (p->error_indicator) {
12417 D(p->level--);
12418 return NULL;
12419 }
12420 D(fprintf(stderr, "%*c> in_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'in' bitwise_or"));
12421 Token * _keyword;
12422 expr_ty a;
12423 if (
12424 (_keyword = _PyPegen_expect_token(p, 518)) // token='in'
12425 &&
12426 (a = bitwise_or_rule(p)) // bitwise_or
12427 )
12428 {
12429 D(fprintf(stderr, "%*c+ in_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'in' bitwise_or"));
12430 _res = _PyPegen_cmpop_expr_pair ( p , In , a );
12431 if (_res == NULL && PyErr_Occurred()) {
12432 p->error_indicator = 1;
12433 D(p->level--);
12434 return NULL;
12435 }
12436 goto done;
12437 }
12438 p->mark = _mark;
12439 D(fprintf(stderr, "%*c%s in_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12440 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'in' bitwise_or"));
12441 }
12442 _res = NULL;
12443 done:
12444 D(p->level--);
12445 return _res;
12446}
12447
12448// isnot_bitwise_or: 'is' 'not' bitwise_or
12449static CmpopExprPair*
12450isnot_bitwise_or_rule(Parser *p)
12451{
12452 D(p->level++);
12453 if (p->error_indicator) {
12454 D(p->level--);
12455 return NULL;
12456 }
12457 CmpopExprPair* _res = NULL;
12458 int _mark = p->mark;
12459 { // 'is' 'not' bitwise_or
12460 if (p->error_indicator) {
12461 D(p->level--);
12462 return NULL;
12463 }
12464 D(fprintf(stderr, "%*c> isnot_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'is' 'not' bitwise_or"));
12465 Token * _keyword;
12466 Token * _keyword_1;
12467 expr_ty a;
12468 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080012469 (_keyword = _PyPegen_expect_token(p, 530)) // token='is'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012470 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080012471 (_keyword_1 = _PyPegen_expect_token(p, 529)) // token='not'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012472 &&
12473 (a = bitwise_or_rule(p)) // bitwise_or
12474 )
12475 {
12476 D(fprintf(stderr, "%*c+ isnot_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'is' 'not' bitwise_or"));
12477 _res = _PyPegen_cmpop_expr_pair ( p , IsNot , a );
12478 if (_res == NULL && PyErr_Occurred()) {
12479 p->error_indicator = 1;
12480 D(p->level--);
12481 return NULL;
12482 }
12483 goto done;
12484 }
12485 p->mark = _mark;
12486 D(fprintf(stderr, "%*c%s isnot_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12487 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'is' 'not' bitwise_or"));
12488 }
12489 _res = NULL;
12490 done:
12491 D(p->level--);
12492 return _res;
12493}
12494
12495// is_bitwise_or: 'is' bitwise_or
12496static CmpopExprPair*
12497is_bitwise_or_rule(Parser *p)
12498{
12499 D(p->level++);
12500 if (p->error_indicator) {
12501 D(p->level--);
12502 return NULL;
12503 }
12504 CmpopExprPair* _res = NULL;
12505 int _mark = p->mark;
12506 { // 'is' bitwise_or
12507 if (p->error_indicator) {
12508 D(p->level--);
12509 return NULL;
12510 }
12511 D(fprintf(stderr, "%*c> is_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'is' bitwise_or"));
12512 Token * _keyword;
12513 expr_ty a;
12514 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080012515 (_keyword = _PyPegen_expect_token(p, 530)) // token='is'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012516 &&
12517 (a = bitwise_or_rule(p)) // bitwise_or
12518 )
12519 {
12520 D(fprintf(stderr, "%*c+ is_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'is' bitwise_or"));
12521 _res = _PyPegen_cmpop_expr_pair ( p , Is , a );
12522 if (_res == NULL && PyErr_Occurred()) {
12523 p->error_indicator = 1;
12524 D(p->level--);
12525 return NULL;
12526 }
12527 goto done;
12528 }
12529 p->mark = _mark;
12530 D(fprintf(stderr, "%*c%s is_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12531 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'is' bitwise_or"));
12532 }
12533 _res = NULL;
12534 done:
12535 D(p->level--);
12536 return _res;
12537}
12538
12539// Left-recursive
12540// bitwise_or: bitwise_or '|' bitwise_xor | bitwise_xor
12541static expr_ty bitwise_or_raw(Parser *);
12542static expr_ty
12543bitwise_or_rule(Parser *p)
12544{
12545 D(p->level++);
12546 expr_ty _res = NULL;
12547 if (_PyPegen_is_memoized(p, bitwise_or_type, &_res)) {
12548 D(p->level--);
12549 return _res;
12550 }
12551 int _mark = p->mark;
12552 int _resmark = p->mark;
12553 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080012554 int tmpvar_2 = _PyPegen_update_memo(p, _mark, bitwise_or_type, _res);
12555 if (tmpvar_2) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012556 D(p->level--);
12557 return _res;
12558 }
12559 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070012560 p->in_raw_rule++;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012561 void *_raw = bitwise_or_raw(p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070012562 p->in_raw_rule--;
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020012563 if (p->error_indicator)
12564 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012565 if (_raw == NULL || p->mark <= _resmark)
12566 break;
12567 _resmark = p->mark;
12568 _res = _raw;
12569 }
12570 p->mark = _resmark;
12571 D(p->level--);
12572 return _res;
12573}
12574static expr_ty
12575bitwise_or_raw(Parser *p)
12576{
12577 D(p->level++);
12578 if (p->error_indicator) {
12579 D(p->level--);
12580 return NULL;
12581 }
12582 expr_ty _res = NULL;
12583 int _mark = p->mark;
12584 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12585 p->error_indicator = 1;
12586 D(p->level--);
12587 return NULL;
12588 }
12589 int _start_lineno = p->tokens[_mark]->lineno;
12590 UNUSED(_start_lineno); // Only used by EXTRA macro
12591 int _start_col_offset = p->tokens[_mark]->col_offset;
12592 UNUSED(_start_col_offset); // Only used by EXTRA macro
12593 { // bitwise_or '|' bitwise_xor
12594 if (p->error_indicator) {
12595 D(p->level--);
12596 return NULL;
12597 }
12598 D(fprintf(stderr, "%*c> bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_or '|' bitwise_xor"));
12599 Token * _literal;
12600 expr_ty a;
12601 expr_ty b;
12602 if (
12603 (a = bitwise_or_rule(p)) // bitwise_or
12604 &&
12605 (_literal = _PyPegen_expect_token(p, 18)) // token='|'
12606 &&
12607 (b = bitwise_xor_rule(p)) // bitwise_xor
12608 )
12609 {
12610 D(fprintf(stderr, "%*c+ bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_or '|' bitwise_xor"));
12611 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12612 if (_token == NULL) {
12613 D(p->level--);
12614 return NULL;
12615 }
12616 int _end_lineno = _token->end_lineno;
12617 UNUSED(_end_lineno); // Only used by EXTRA macro
12618 int _end_col_offset = _token->end_col_offset;
12619 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020012620 _res = _PyAST_BinOp ( a , BitOr , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012621 if (_res == NULL && PyErr_Occurred()) {
12622 p->error_indicator = 1;
12623 D(p->level--);
12624 return NULL;
12625 }
12626 goto done;
12627 }
12628 p->mark = _mark;
12629 D(fprintf(stderr, "%*c%s bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12630 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_or '|' bitwise_xor"));
12631 }
12632 { // bitwise_xor
12633 if (p->error_indicator) {
12634 D(p->level--);
12635 return NULL;
12636 }
12637 D(fprintf(stderr, "%*c> bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_xor"));
12638 expr_ty bitwise_xor_var;
12639 if (
12640 (bitwise_xor_var = bitwise_xor_rule(p)) // bitwise_xor
12641 )
12642 {
12643 D(fprintf(stderr, "%*c+ bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_xor"));
12644 _res = bitwise_xor_var;
12645 goto done;
12646 }
12647 p->mark = _mark;
12648 D(fprintf(stderr, "%*c%s bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12649 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_xor"));
12650 }
12651 _res = NULL;
12652 done:
12653 D(p->level--);
12654 return _res;
12655}
12656
12657// Left-recursive
12658// bitwise_xor: bitwise_xor '^' bitwise_and | bitwise_and
12659static expr_ty bitwise_xor_raw(Parser *);
12660static expr_ty
12661bitwise_xor_rule(Parser *p)
12662{
12663 D(p->level++);
12664 expr_ty _res = NULL;
12665 if (_PyPegen_is_memoized(p, bitwise_xor_type, &_res)) {
12666 D(p->level--);
12667 return _res;
12668 }
12669 int _mark = p->mark;
12670 int _resmark = p->mark;
12671 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080012672 int tmpvar_3 = _PyPegen_update_memo(p, _mark, bitwise_xor_type, _res);
12673 if (tmpvar_3) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012674 D(p->level--);
12675 return _res;
12676 }
12677 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070012678 p->in_raw_rule++;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012679 void *_raw = bitwise_xor_raw(p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070012680 p->in_raw_rule--;
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020012681 if (p->error_indicator)
12682 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012683 if (_raw == NULL || p->mark <= _resmark)
12684 break;
12685 _resmark = p->mark;
12686 _res = _raw;
12687 }
12688 p->mark = _resmark;
12689 D(p->level--);
12690 return _res;
12691}
12692static expr_ty
12693bitwise_xor_raw(Parser *p)
12694{
12695 D(p->level++);
12696 if (p->error_indicator) {
12697 D(p->level--);
12698 return NULL;
12699 }
12700 expr_ty _res = NULL;
12701 int _mark = p->mark;
12702 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12703 p->error_indicator = 1;
12704 D(p->level--);
12705 return NULL;
12706 }
12707 int _start_lineno = p->tokens[_mark]->lineno;
12708 UNUSED(_start_lineno); // Only used by EXTRA macro
12709 int _start_col_offset = p->tokens[_mark]->col_offset;
12710 UNUSED(_start_col_offset); // Only used by EXTRA macro
12711 { // bitwise_xor '^' bitwise_and
12712 if (p->error_indicator) {
12713 D(p->level--);
12714 return NULL;
12715 }
12716 D(fprintf(stderr, "%*c> bitwise_xor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_xor '^' bitwise_and"));
12717 Token * _literal;
12718 expr_ty a;
12719 expr_ty b;
12720 if (
12721 (a = bitwise_xor_rule(p)) // bitwise_xor
12722 &&
12723 (_literal = _PyPegen_expect_token(p, 32)) // token='^'
12724 &&
12725 (b = bitwise_and_rule(p)) // bitwise_and
12726 )
12727 {
12728 D(fprintf(stderr, "%*c+ bitwise_xor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_xor '^' bitwise_and"));
12729 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12730 if (_token == NULL) {
12731 D(p->level--);
12732 return NULL;
12733 }
12734 int _end_lineno = _token->end_lineno;
12735 UNUSED(_end_lineno); // Only used by EXTRA macro
12736 int _end_col_offset = _token->end_col_offset;
12737 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020012738 _res = _PyAST_BinOp ( a , BitXor , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012739 if (_res == NULL && PyErr_Occurred()) {
12740 p->error_indicator = 1;
12741 D(p->level--);
12742 return NULL;
12743 }
12744 goto done;
12745 }
12746 p->mark = _mark;
12747 D(fprintf(stderr, "%*c%s bitwise_xor[%d-%d]: %s failed!\n", p->level, ' ',
12748 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_xor '^' bitwise_and"));
12749 }
12750 { // bitwise_and
12751 if (p->error_indicator) {
12752 D(p->level--);
12753 return NULL;
12754 }
12755 D(fprintf(stderr, "%*c> bitwise_xor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_and"));
12756 expr_ty bitwise_and_var;
12757 if (
12758 (bitwise_and_var = bitwise_and_rule(p)) // bitwise_and
12759 )
12760 {
12761 D(fprintf(stderr, "%*c+ bitwise_xor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_and"));
12762 _res = bitwise_and_var;
12763 goto done;
12764 }
12765 p->mark = _mark;
12766 D(fprintf(stderr, "%*c%s bitwise_xor[%d-%d]: %s failed!\n", p->level, ' ',
12767 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_and"));
12768 }
12769 _res = NULL;
12770 done:
12771 D(p->level--);
12772 return _res;
12773}
12774
12775// Left-recursive
12776// bitwise_and: bitwise_and '&' shift_expr | shift_expr
12777static expr_ty bitwise_and_raw(Parser *);
12778static expr_ty
12779bitwise_and_rule(Parser *p)
12780{
12781 D(p->level++);
12782 expr_ty _res = NULL;
12783 if (_PyPegen_is_memoized(p, bitwise_and_type, &_res)) {
12784 D(p->level--);
12785 return _res;
12786 }
12787 int _mark = p->mark;
12788 int _resmark = p->mark;
12789 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080012790 int tmpvar_4 = _PyPegen_update_memo(p, _mark, bitwise_and_type, _res);
12791 if (tmpvar_4) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012792 D(p->level--);
12793 return _res;
12794 }
12795 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070012796 p->in_raw_rule++;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012797 void *_raw = bitwise_and_raw(p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070012798 p->in_raw_rule--;
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020012799 if (p->error_indicator)
12800 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012801 if (_raw == NULL || p->mark <= _resmark)
12802 break;
12803 _resmark = p->mark;
12804 _res = _raw;
12805 }
12806 p->mark = _resmark;
12807 D(p->level--);
12808 return _res;
12809}
12810static expr_ty
12811bitwise_and_raw(Parser *p)
12812{
12813 D(p->level++);
12814 if (p->error_indicator) {
12815 D(p->level--);
12816 return NULL;
12817 }
12818 expr_ty _res = NULL;
12819 int _mark = p->mark;
12820 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12821 p->error_indicator = 1;
12822 D(p->level--);
12823 return NULL;
12824 }
12825 int _start_lineno = p->tokens[_mark]->lineno;
12826 UNUSED(_start_lineno); // Only used by EXTRA macro
12827 int _start_col_offset = p->tokens[_mark]->col_offset;
12828 UNUSED(_start_col_offset); // Only used by EXTRA macro
12829 { // bitwise_and '&' shift_expr
12830 if (p->error_indicator) {
12831 D(p->level--);
12832 return NULL;
12833 }
12834 D(fprintf(stderr, "%*c> bitwise_and[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_and '&' shift_expr"));
12835 Token * _literal;
12836 expr_ty a;
12837 expr_ty b;
12838 if (
12839 (a = bitwise_and_rule(p)) // bitwise_and
12840 &&
12841 (_literal = _PyPegen_expect_token(p, 19)) // token='&'
12842 &&
12843 (b = shift_expr_rule(p)) // shift_expr
12844 )
12845 {
12846 D(fprintf(stderr, "%*c+ bitwise_and[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_and '&' shift_expr"));
12847 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12848 if (_token == NULL) {
12849 D(p->level--);
12850 return NULL;
12851 }
12852 int _end_lineno = _token->end_lineno;
12853 UNUSED(_end_lineno); // Only used by EXTRA macro
12854 int _end_col_offset = _token->end_col_offset;
12855 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020012856 _res = _PyAST_BinOp ( a , BitAnd , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012857 if (_res == NULL && PyErr_Occurred()) {
12858 p->error_indicator = 1;
12859 D(p->level--);
12860 return NULL;
12861 }
12862 goto done;
12863 }
12864 p->mark = _mark;
12865 D(fprintf(stderr, "%*c%s bitwise_and[%d-%d]: %s failed!\n", p->level, ' ',
12866 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_and '&' shift_expr"));
12867 }
12868 { // shift_expr
12869 if (p->error_indicator) {
12870 D(p->level--);
12871 return NULL;
12872 }
12873 D(fprintf(stderr, "%*c> bitwise_and[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "shift_expr"));
12874 expr_ty shift_expr_var;
12875 if (
12876 (shift_expr_var = shift_expr_rule(p)) // shift_expr
12877 )
12878 {
12879 D(fprintf(stderr, "%*c+ bitwise_and[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "shift_expr"));
12880 _res = shift_expr_var;
12881 goto done;
12882 }
12883 p->mark = _mark;
12884 D(fprintf(stderr, "%*c%s bitwise_and[%d-%d]: %s failed!\n", p->level, ' ',
12885 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "shift_expr"));
12886 }
12887 _res = NULL;
12888 done:
12889 D(p->level--);
12890 return _res;
12891}
12892
12893// Left-recursive
12894// shift_expr: shift_expr '<<' sum | shift_expr '>>' sum | sum
12895static expr_ty shift_expr_raw(Parser *);
12896static expr_ty
12897shift_expr_rule(Parser *p)
12898{
12899 D(p->level++);
12900 expr_ty _res = NULL;
12901 if (_PyPegen_is_memoized(p, shift_expr_type, &_res)) {
12902 D(p->level--);
12903 return _res;
12904 }
12905 int _mark = p->mark;
12906 int _resmark = p->mark;
12907 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080012908 int tmpvar_5 = _PyPegen_update_memo(p, _mark, shift_expr_type, _res);
12909 if (tmpvar_5) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012910 D(p->level--);
12911 return _res;
12912 }
12913 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070012914 p->in_raw_rule++;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012915 void *_raw = shift_expr_raw(p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070012916 p->in_raw_rule--;
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020012917 if (p->error_indicator)
12918 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012919 if (_raw == NULL || p->mark <= _resmark)
12920 break;
12921 _resmark = p->mark;
12922 _res = _raw;
12923 }
12924 p->mark = _resmark;
12925 D(p->level--);
12926 return _res;
12927}
12928static expr_ty
12929shift_expr_raw(Parser *p)
12930{
12931 D(p->level++);
12932 if (p->error_indicator) {
12933 D(p->level--);
12934 return NULL;
12935 }
12936 expr_ty _res = NULL;
12937 int _mark = p->mark;
12938 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12939 p->error_indicator = 1;
12940 D(p->level--);
12941 return NULL;
12942 }
12943 int _start_lineno = p->tokens[_mark]->lineno;
12944 UNUSED(_start_lineno); // Only used by EXTRA macro
12945 int _start_col_offset = p->tokens[_mark]->col_offset;
12946 UNUSED(_start_col_offset); // Only used by EXTRA macro
12947 { // shift_expr '<<' sum
12948 if (p->error_indicator) {
12949 D(p->level--);
12950 return NULL;
12951 }
12952 D(fprintf(stderr, "%*c> shift_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "shift_expr '<<' sum"));
12953 Token * _literal;
12954 expr_ty a;
12955 expr_ty b;
12956 if (
12957 (a = shift_expr_rule(p)) // shift_expr
12958 &&
12959 (_literal = _PyPegen_expect_token(p, 33)) // token='<<'
12960 &&
12961 (b = sum_rule(p)) // sum
12962 )
12963 {
12964 D(fprintf(stderr, "%*c+ shift_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "shift_expr '<<' sum"));
12965 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12966 if (_token == NULL) {
12967 D(p->level--);
12968 return NULL;
12969 }
12970 int _end_lineno = _token->end_lineno;
12971 UNUSED(_end_lineno); // Only used by EXTRA macro
12972 int _end_col_offset = _token->end_col_offset;
12973 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020012974 _res = _PyAST_BinOp ( a , LShift , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012975 if (_res == NULL && PyErr_Occurred()) {
12976 p->error_indicator = 1;
12977 D(p->level--);
12978 return NULL;
12979 }
12980 goto done;
12981 }
12982 p->mark = _mark;
12983 D(fprintf(stderr, "%*c%s shift_expr[%d-%d]: %s failed!\n", p->level, ' ',
12984 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "shift_expr '<<' sum"));
12985 }
12986 { // shift_expr '>>' sum
12987 if (p->error_indicator) {
12988 D(p->level--);
12989 return NULL;
12990 }
12991 D(fprintf(stderr, "%*c> shift_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "shift_expr '>>' sum"));
12992 Token * _literal;
12993 expr_ty a;
12994 expr_ty b;
12995 if (
12996 (a = shift_expr_rule(p)) // shift_expr
12997 &&
12998 (_literal = _PyPegen_expect_token(p, 34)) // token='>>'
12999 &&
13000 (b = sum_rule(p)) // sum
13001 )
13002 {
13003 D(fprintf(stderr, "%*c+ shift_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "shift_expr '>>' sum"));
13004 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13005 if (_token == NULL) {
13006 D(p->level--);
13007 return NULL;
13008 }
13009 int _end_lineno = _token->end_lineno;
13010 UNUSED(_end_lineno); // Only used by EXTRA macro
13011 int _end_col_offset = _token->end_col_offset;
13012 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013013 _res = _PyAST_BinOp ( a , RShift , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013014 if (_res == NULL && PyErr_Occurred()) {
13015 p->error_indicator = 1;
13016 D(p->level--);
13017 return NULL;
13018 }
13019 goto done;
13020 }
13021 p->mark = _mark;
13022 D(fprintf(stderr, "%*c%s shift_expr[%d-%d]: %s failed!\n", p->level, ' ',
13023 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "shift_expr '>>' sum"));
13024 }
13025 { // sum
13026 if (p->error_indicator) {
13027 D(p->level--);
13028 return NULL;
13029 }
13030 D(fprintf(stderr, "%*c> shift_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "sum"));
13031 expr_ty sum_var;
13032 if (
13033 (sum_var = sum_rule(p)) // sum
13034 )
13035 {
13036 D(fprintf(stderr, "%*c+ shift_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "sum"));
13037 _res = sum_var;
13038 goto done;
13039 }
13040 p->mark = _mark;
13041 D(fprintf(stderr, "%*c%s shift_expr[%d-%d]: %s failed!\n", p->level, ' ',
13042 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "sum"));
13043 }
13044 _res = NULL;
13045 done:
13046 D(p->level--);
13047 return _res;
13048}
13049
13050// Left-recursive
13051// sum: sum '+' term | sum '-' term | term
13052static expr_ty sum_raw(Parser *);
13053static expr_ty
13054sum_rule(Parser *p)
13055{
13056 D(p->level++);
13057 expr_ty _res = NULL;
13058 if (_PyPegen_is_memoized(p, sum_type, &_res)) {
13059 D(p->level--);
13060 return _res;
13061 }
13062 int _mark = p->mark;
13063 int _resmark = p->mark;
13064 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080013065 int tmpvar_6 = _PyPegen_update_memo(p, _mark, sum_type, _res);
13066 if (tmpvar_6) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013067 D(p->level--);
13068 return _res;
13069 }
13070 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070013071 p->in_raw_rule++;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013072 void *_raw = sum_raw(p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070013073 p->in_raw_rule--;
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020013074 if (p->error_indicator)
13075 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013076 if (_raw == NULL || p->mark <= _resmark)
13077 break;
13078 _resmark = p->mark;
13079 _res = _raw;
13080 }
13081 p->mark = _resmark;
13082 D(p->level--);
13083 return _res;
13084}
13085static expr_ty
13086sum_raw(Parser *p)
13087{
13088 D(p->level++);
13089 if (p->error_indicator) {
13090 D(p->level--);
13091 return NULL;
13092 }
13093 expr_ty _res = NULL;
13094 int _mark = p->mark;
13095 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13096 p->error_indicator = 1;
13097 D(p->level--);
13098 return NULL;
13099 }
13100 int _start_lineno = p->tokens[_mark]->lineno;
13101 UNUSED(_start_lineno); // Only used by EXTRA macro
13102 int _start_col_offset = p->tokens[_mark]->col_offset;
13103 UNUSED(_start_col_offset); // Only used by EXTRA macro
13104 { // sum '+' term
13105 if (p->error_indicator) {
13106 D(p->level--);
13107 return NULL;
13108 }
13109 D(fprintf(stderr, "%*c> sum[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "sum '+' term"));
13110 Token * _literal;
13111 expr_ty a;
13112 expr_ty b;
13113 if (
13114 (a = sum_rule(p)) // sum
13115 &&
13116 (_literal = _PyPegen_expect_token(p, 14)) // token='+'
13117 &&
13118 (b = term_rule(p)) // term
13119 )
13120 {
13121 D(fprintf(stderr, "%*c+ sum[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "sum '+' term"));
13122 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13123 if (_token == NULL) {
13124 D(p->level--);
13125 return NULL;
13126 }
13127 int _end_lineno = _token->end_lineno;
13128 UNUSED(_end_lineno); // Only used by EXTRA macro
13129 int _end_col_offset = _token->end_col_offset;
13130 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013131 _res = _PyAST_BinOp ( a , Add , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013132 if (_res == NULL && PyErr_Occurred()) {
13133 p->error_indicator = 1;
13134 D(p->level--);
13135 return NULL;
13136 }
13137 goto done;
13138 }
13139 p->mark = _mark;
13140 D(fprintf(stderr, "%*c%s sum[%d-%d]: %s failed!\n", p->level, ' ',
13141 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "sum '+' term"));
13142 }
13143 { // sum '-' term
13144 if (p->error_indicator) {
13145 D(p->level--);
13146 return NULL;
13147 }
13148 D(fprintf(stderr, "%*c> sum[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "sum '-' term"));
13149 Token * _literal;
13150 expr_ty a;
13151 expr_ty b;
13152 if (
13153 (a = sum_rule(p)) // sum
13154 &&
13155 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
13156 &&
13157 (b = term_rule(p)) // term
13158 )
13159 {
13160 D(fprintf(stderr, "%*c+ sum[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "sum '-' term"));
13161 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13162 if (_token == NULL) {
13163 D(p->level--);
13164 return NULL;
13165 }
13166 int _end_lineno = _token->end_lineno;
13167 UNUSED(_end_lineno); // Only used by EXTRA macro
13168 int _end_col_offset = _token->end_col_offset;
13169 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013170 _res = _PyAST_BinOp ( a , Sub , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013171 if (_res == NULL && PyErr_Occurred()) {
13172 p->error_indicator = 1;
13173 D(p->level--);
13174 return NULL;
13175 }
13176 goto done;
13177 }
13178 p->mark = _mark;
13179 D(fprintf(stderr, "%*c%s sum[%d-%d]: %s failed!\n", p->level, ' ',
13180 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "sum '-' term"));
13181 }
13182 { // term
13183 if (p->error_indicator) {
13184 D(p->level--);
13185 return NULL;
13186 }
13187 D(fprintf(stderr, "%*c> sum[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term"));
13188 expr_ty term_var;
13189 if (
13190 (term_var = term_rule(p)) // term
13191 )
13192 {
13193 D(fprintf(stderr, "%*c+ sum[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term"));
13194 _res = term_var;
13195 goto done;
13196 }
13197 p->mark = _mark;
13198 D(fprintf(stderr, "%*c%s sum[%d-%d]: %s failed!\n", p->level, ' ',
13199 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term"));
13200 }
13201 _res = NULL;
13202 done:
13203 D(p->level--);
13204 return _res;
13205}
13206
13207// Left-recursive
13208// term:
13209// | term '*' factor
13210// | term '/' factor
13211// | term '//' factor
13212// | term '%' factor
13213// | term '@' factor
13214// | factor
13215static expr_ty term_raw(Parser *);
13216static expr_ty
13217term_rule(Parser *p)
13218{
13219 D(p->level++);
13220 expr_ty _res = NULL;
13221 if (_PyPegen_is_memoized(p, term_type, &_res)) {
13222 D(p->level--);
13223 return _res;
13224 }
13225 int _mark = p->mark;
13226 int _resmark = p->mark;
13227 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080013228 int tmpvar_7 = _PyPegen_update_memo(p, _mark, term_type, _res);
13229 if (tmpvar_7) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013230 D(p->level--);
13231 return _res;
13232 }
13233 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070013234 p->in_raw_rule++;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013235 void *_raw = term_raw(p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070013236 p->in_raw_rule--;
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020013237 if (p->error_indicator)
13238 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013239 if (_raw == NULL || p->mark <= _resmark)
13240 break;
13241 _resmark = p->mark;
13242 _res = _raw;
13243 }
13244 p->mark = _resmark;
13245 D(p->level--);
13246 return _res;
13247}
13248static expr_ty
13249term_raw(Parser *p)
13250{
13251 D(p->level++);
13252 if (p->error_indicator) {
13253 D(p->level--);
13254 return NULL;
13255 }
13256 expr_ty _res = NULL;
13257 int _mark = p->mark;
13258 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13259 p->error_indicator = 1;
13260 D(p->level--);
13261 return NULL;
13262 }
13263 int _start_lineno = p->tokens[_mark]->lineno;
13264 UNUSED(_start_lineno); // Only used by EXTRA macro
13265 int _start_col_offset = p->tokens[_mark]->col_offset;
13266 UNUSED(_start_col_offset); // Only used by EXTRA macro
13267 { // term '*' factor
13268 if (p->error_indicator) {
13269 D(p->level--);
13270 return NULL;
13271 }
13272 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '*' factor"));
13273 Token * _literal;
13274 expr_ty a;
13275 expr_ty b;
13276 if (
13277 (a = term_rule(p)) // term
13278 &&
13279 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
13280 &&
13281 (b = factor_rule(p)) // factor
13282 )
13283 {
13284 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '*' factor"));
13285 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13286 if (_token == NULL) {
13287 D(p->level--);
13288 return NULL;
13289 }
13290 int _end_lineno = _token->end_lineno;
13291 UNUSED(_end_lineno); // Only used by EXTRA macro
13292 int _end_col_offset = _token->end_col_offset;
13293 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013294 _res = _PyAST_BinOp ( a , Mult , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013295 if (_res == NULL && PyErr_Occurred()) {
13296 p->error_indicator = 1;
13297 D(p->level--);
13298 return NULL;
13299 }
13300 goto done;
13301 }
13302 p->mark = _mark;
13303 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
13304 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '*' factor"));
13305 }
13306 { // term '/' factor
13307 if (p->error_indicator) {
13308 D(p->level--);
13309 return NULL;
13310 }
13311 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '/' factor"));
13312 Token * _literal;
13313 expr_ty a;
13314 expr_ty b;
13315 if (
13316 (a = term_rule(p)) // term
13317 &&
13318 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
13319 &&
13320 (b = factor_rule(p)) // factor
13321 )
13322 {
13323 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '/' factor"));
13324 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13325 if (_token == NULL) {
13326 D(p->level--);
13327 return NULL;
13328 }
13329 int _end_lineno = _token->end_lineno;
13330 UNUSED(_end_lineno); // Only used by EXTRA macro
13331 int _end_col_offset = _token->end_col_offset;
13332 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013333 _res = _PyAST_BinOp ( a , Div , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013334 if (_res == NULL && PyErr_Occurred()) {
13335 p->error_indicator = 1;
13336 D(p->level--);
13337 return NULL;
13338 }
13339 goto done;
13340 }
13341 p->mark = _mark;
13342 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
13343 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '/' factor"));
13344 }
13345 { // term '//' factor
13346 if (p->error_indicator) {
13347 D(p->level--);
13348 return NULL;
13349 }
13350 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '//' factor"));
13351 Token * _literal;
13352 expr_ty a;
13353 expr_ty b;
13354 if (
13355 (a = term_rule(p)) // term
13356 &&
13357 (_literal = _PyPegen_expect_token(p, 47)) // token='//'
13358 &&
13359 (b = factor_rule(p)) // factor
13360 )
13361 {
13362 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '//' factor"));
13363 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13364 if (_token == NULL) {
13365 D(p->level--);
13366 return NULL;
13367 }
13368 int _end_lineno = _token->end_lineno;
13369 UNUSED(_end_lineno); // Only used by EXTRA macro
13370 int _end_col_offset = _token->end_col_offset;
13371 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013372 _res = _PyAST_BinOp ( a , FloorDiv , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013373 if (_res == NULL && PyErr_Occurred()) {
13374 p->error_indicator = 1;
13375 D(p->level--);
13376 return NULL;
13377 }
13378 goto done;
13379 }
13380 p->mark = _mark;
13381 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
13382 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '//' factor"));
13383 }
13384 { // term '%' factor
13385 if (p->error_indicator) {
13386 D(p->level--);
13387 return NULL;
13388 }
13389 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '%' factor"));
13390 Token * _literal;
13391 expr_ty a;
13392 expr_ty b;
13393 if (
13394 (a = term_rule(p)) // term
13395 &&
13396 (_literal = _PyPegen_expect_token(p, 24)) // token='%'
13397 &&
13398 (b = factor_rule(p)) // factor
13399 )
13400 {
13401 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '%' factor"));
13402 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13403 if (_token == NULL) {
13404 D(p->level--);
13405 return NULL;
13406 }
13407 int _end_lineno = _token->end_lineno;
13408 UNUSED(_end_lineno); // Only used by EXTRA macro
13409 int _end_col_offset = _token->end_col_offset;
13410 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013411 _res = _PyAST_BinOp ( a , Mod , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013412 if (_res == NULL && PyErr_Occurred()) {
13413 p->error_indicator = 1;
13414 D(p->level--);
13415 return NULL;
13416 }
13417 goto done;
13418 }
13419 p->mark = _mark;
13420 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
13421 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '%' factor"));
13422 }
13423 { // term '@' factor
13424 if (p->error_indicator) {
13425 D(p->level--);
13426 return NULL;
13427 }
13428 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '@' factor"));
13429 Token * _literal;
13430 expr_ty a;
13431 expr_ty b;
13432 if (
13433 (a = term_rule(p)) // term
13434 &&
13435 (_literal = _PyPegen_expect_token(p, 49)) // token='@'
13436 &&
13437 (b = factor_rule(p)) // factor
13438 )
13439 {
13440 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '@' factor"));
13441 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13442 if (_token == NULL) {
13443 D(p->level--);
13444 return NULL;
13445 }
13446 int _end_lineno = _token->end_lineno;
13447 UNUSED(_end_lineno); // Only used by EXTRA macro
13448 int _end_col_offset = _token->end_col_offset;
13449 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013450 _res = CHECK_VERSION ( expr_ty , 5 , "The '@' operator is" , _PyAST_BinOp ( a , MatMult , b , EXTRA ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013451 if (_res == NULL && PyErr_Occurred()) {
13452 p->error_indicator = 1;
13453 D(p->level--);
13454 return NULL;
13455 }
13456 goto done;
13457 }
13458 p->mark = _mark;
13459 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
13460 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '@' factor"));
13461 }
13462 { // factor
13463 if (p->error_indicator) {
13464 D(p->level--);
13465 return NULL;
13466 }
13467 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "factor"));
13468 expr_ty factor_var;
13469 if (
13470 (factor_var = factor_rule(p)) // factor
13471 )
13472 {
13473 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "factor"));
13474 _res = factor_var;
13475 goto done;
13476 }
13477 p->mark = _mark;
13478 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
13479 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "factor"));
13480 }
13481 _res = NULL;
13482 done:
13483 D(p->level--);
13484 return _res;
13485}
13486
13487// factor: '+' factor | '-' factor | '~' factor | power
13488static expr_ty
13489factor_rule(Parser *p)
13490{
13491 D(p->level++);
13492 if (p->error_indicator) {
13493 D(p->level--);
13494 return NULL;
13495 }
13496 expr_ty _res = NULL;
13497 if (_PyPegen_is_memoized(p, factor_type, &_res)) {
13498 D(p->level--);
13499 return _res;
13500 }
13501 int _mark = p->mark;
13502 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13503 p->error_indicator = 1;
13504 D(p->level--);
13505 return NULL;
13506 }
13507 int _start_lineno = p->tokens[_mark]->lineno;
13508 UNUSED(_start_lineno); // Only used by EXTRA macro
13509 int _start_col_offset = p->tokens[_mark]->col_offset;
13510 UNUSED(_start_col_offset); // Only used by EXTRA macro
13511 { // '+' factor
13512 if (p->error_indicator) {
13513 D(p->level--);
13514 return NULL;
13515 }
13516 D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'+' factor"));
13517 Token * _literal;
13518 expr_ty a;
13519 if (
13520 (_literal = _PyPegen_expect_token(p, 14)) // token='+'
13521 &&
13522 (a = factor_rule(p)) // factor
13523 )
13524 {
13525 D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'+' factor"));
13526 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13527 if (_token == NULL) {
13528 D(p->level--);
13529 return NULL;
13530 }
13531 int _end_lineno = _token->end_lineno;
13532 UNUSED(_end_lineno); // Only used by EXTRA macro
13533 int _end_col_offset = _token->end_col_offset;
13534 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013535 _res = _PyAST_UnaryOp ( UAdd , a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013536 if (_res == NULL && PyErr_Occurred()) {
13537 p->error_indicator = 1;
13538 D(p->level--);
13539 return NULL;
13540 }
13541 goto done;
13542 }
13543 p->mark = _mark;
13544 D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
13545 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'+' factor"));
13546 }
13547 { // '-' factor
13548 if (p->error_indicator) {
13549 D(p->level--);
13550 return NULL;
13551 }
13552 D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-' factor"));
13553 Token * _literal;
13554 expr_ty a;
13555 if (
13556 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
13557 &&
13558 (a = factor_rule(p)) // factor
13559 )
13560 {
13561 D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-' factor"));
13562 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13563 if (_token == NULL) {
13564 D(p->level--);
13565 return NULL;
13566 }
13567 int _end_lineno = _token->end_lineno;
13568 UNUSED(_end_lineno); // Only used by EXTRA macro
13569 int _end_col_offset = _token->end_col_offset;
13570 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013571 _res = _PyAST_UnaryOp ( USub , a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013572 if (_res == NULL && PyErr_Occurred()) {
13573 p->error_indicator = 1;
13574 D(p->level--);
13575 return NULL;
13576 }
13577 goto done;
13578 }
13579 p->mark = _mark;
13580 D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
13581 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-' factor"));
13582 }
13583 { // '~' factor
13584 if (p->error_indicator) {
13585 D(p->level--);
13586 return NULL;
13587 }
13588 D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'~' factor"));
13589 Token * _literal;
13590 expr_ty a;
13591 if (
13592 (_literal = _PyPegen_expect_token(p, 31)) // token='~'
13593 &&
13594 (a = factor_rule(p)) // factor
13595 )
13596 {
13597 D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'~' factor"));
13598 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13599 if (_token == NULL) {
13600 D(p->level--);
13601 return NULL;
13602 }
13603 int _end_lineno = _token->end_lineno;
13604 UNUSED(_end_lineno); // Only used by EXTRA macro
13605 int _end_col_offset = _token->end_col_offset;
13606 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013607 _res = _PyAST_UnaryOp ( Invert , a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013608 if (_res == NULL && PyErr_Occurred()) {
13609 p->error_indicator = 1;
13610 D(p->level--);
13611 return NULL;
13612 }
13613 goto done;
13614 }
13615 p->mark = _mark;
13616 D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
13617 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'~' factor"));
13618 }
13619 { // power
13620 if (p->error_indicator) {
13621 D(p->level--);
13622 return NULL;
13623 }
13624 D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "power"));
13625 expr_ty power_var;
13626 if (
13627 (power_var = power_rule(p)) // power
13628 )
13629 {
13630 D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "power"));
13631 _res = power_var;
13632 goto done;
13633 }
13634 p->mark = _mark;
13635 D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
13636 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "power"));
13637 }
13638 _res = NULL;
13639 done:
13640 _PyPegen_insert_memo(p, _mark, factor_type, _res);
13641 D(p->level--);
13642 return _res;
13643}
13644
13645// power: await_primary '**' factor | await_primary
13646static expr_ty
13647power_rule(Parser *p)
13648{
13649 D(p->level++);
13650 if (p->error_indicator) {
13651 D(p->level--);
13652 return NULL;
13653 }
13654 expr_ty _res = NULL;
13655 int _mark = p->mark;
13656 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13657 p->error_indicator = 1;
13658 D(p->level--);
13659 return NULL;
13660 }
13661 int _start_lineno = p->tokens[_mark]->lineno;
13662 UNUSED(_start_lineno); // Only used by EXTRA macro
13663 int _start_col_offset = p->tokens[_mark]->col_offset;
13664 UNUSED(_start_col_offset); // Only used by EXTRA macro
13665 { // await_primary '**' factor
13666 if (p->error_indicator) {
13667 D(p->level--);
13668 return NULL;
13669 }
13670 D(fprintf(stderr, "%*c> power[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "await_primary '**' factor"));
13671 Token * _literal;
13672 expr_ty a;
13673 expr_ty b;
13674 if (
13675 (a = await_primary_rule(p)) // await_primary
13676 &&
13677 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
13678 &&
13679 (b = factor_rule(p)) // factor
13680 )
13681 {
13682 D(fprintf(stderr, "%*c+ power[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "await_primary '**' factor"));
13683 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13684 if (_token == NULL) {
13685 D(p->level--);
13686 return NULL;
13687 }
13688 int _end_lineno = _token->end_lineno;
13689 UNUSED(_end_lineno); // Only used by EXTRA macro
13690 int _end_col_offset = _token->end_col_offset;
13691 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013692 _res = _PyAST_BinOp ( a , Pow , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013693 if (_res == NULL && PyErr_Occurred()) {
13694 p->error_indicator = 1;
13695 D(p->level--);
13696 return NULL;
13697 }
13698 goto done;
13699 }
13700 p->mark = _mark;
13701 D(fprintf(stderr, "%*c%s power[%d-%d]: %s failed!\n", p->level, ' ',
13702 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "await_primary '**' factor"));
13703 }
13704 { // await_primary
13705 if (p->error_indicator) {
13706 D(p->level--);
13707 return NULL;
13708 }
13709 D(fprintf(stderr, "%*c> power[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "await_primary"));
13710 expr_ty await_primary_var;
13711 if (
13712 (await_primary_var = await_primary_rule(p)) // await_primary
13713 )
13714 {
13715 D(fprintf(stderr, "%*c+ power[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "await_primary"));
13716 _res = await_primary_var;
13717 goto done;
13718 }
13719 p->mark = _mark;
13720 D(fprintf(stderr, "%*c%s power[%d-%d]: %s failed!\n", p->level, ' ',
13721 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "await_primary"));
13722 }
13723 _res = NULL;
13724 done:
13725 D(p->level--);
13726 return _res;
13727}
13728
13729// await_primary: AWAIT primary | primary
13730static expr_ty
13731await_primary_rule(Parser *p)
13732{
13733 D(p->level++);
13734 if (p->error_indicator) {
13735 D(p->level--);
13736 return NULL;
13737 }
13738 expr_ty _res = NULL;
13739 if (_PyPegen_is_memoized(p, await_primary_type, &_res)) {
13740 D(p->level--);
13741 return _res;
13742 }
13743 int _mark = p->mark;
13744 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13745 p->error_indicator = 1;
13746 D(p->level--);
13747 return NULL;
13748 }
13749 int _start_lineno = p->tokens[_mark]->lineno;
13750 UNUSED(_start_lineno); // Only used by EXTRA macro
13751 int _start_col_offset = p->tokens[_mark]->col_offset;
13752 UNUSED(_start_col_offset); // Only used by EXTRA macro
13753 { // AWAIT primary
13754 if (p->error_indicator) {
13755 D(p->level--);
13756 return NULL;
13757 }
13758 D(fprintf(stderr, "%*c> await_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "AWAIT primary"));
13759 expr_ty a;
13760 Token * await_var;
13761 if (
13762 (await_var = _PyPegen_expect_token(p, AWAIT)) // token='AWAIT'
13763 &&
13764 (a = primary_rule(p)) // primary
13765 )
13766 {
13767 D(fprintf(stderr, "%*c+ await_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "AWAIT primary"));
13768 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13769 if (_token == NULL) {
13770 D(p->level--);
13771 return NULL;
13772 }
13773 int _end_lineno = _token->end_lineno;
13774 UNUSED(_end_lineno); // Only used by EXTRA macro
13775 int _end_col_offset = _token->end_col_offset;
13776 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013777 _res = CHECK_VERSION ( expr_ty , 5 , "Await expressions are" , _PyAST_Await ( a , EXTRA ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013778 if (_res == NULL && PyErr_Occurred()) {
13779 p->error_indicator = 1;
13780 D(p->level--);
13781 return NULL;
13782 }
13783 goto done;
13784 }
13785 p->mark = _mark;
13786 D(fprintf(stderr, "%*c%s await_primary[%d-%d]: %s failed!\n", p->level, ' ',
13787 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "AWAIT primary"));
13788 }
13789 { // primary
13790 if (p->error_indicator) {
13791 D(p->level--);
13792 return NULL;
13793 }
13794 D(fprintf(stderr, "%*c> await_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary"));
13795 expr_ty primary_var;
13796 if (
13797 (primary_var = primary_rule(p)) // primary
13798 )
13799 {
13800 D(fprintf(stderr, "%*c+ await_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary"));
13801 _res = primary_var;
13802 goto done;
13803 }
13804 p->mark = _mark;
13805 D(fprintf(stderr, "%*c%s await_primary[%d-%d]: %s failed!\n", p->level, ' ',
13806 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary"));
13807 }
13808 _res = NULL;
13809 done:
13810 _PyPegen_insert_memo(p, _mark, await_primary_type, _res);
13811 D(p->level--);
13812 return _res;
13813}
13814
13815// Left-recursive
13816// primary:
Lysandros Nikolaou15acc4e2020-10-27 20:54:20 +020013817// | invalid_primary
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013818// | primary '.' NAME
13819// | primary genexp
13820// | primary '(' arguments? ')'
13821// | primary '[' slices ']'
13822// | atom
13823static expr_ty primary_raw(Parser *);
13824static expr_ty
13825primary_rule(Parser *p)
13826{
13827 D(p->level++);
13828 expr_ty _res = NULL;
13829 if (_PyPegen_is_memoized(p, primary_type, &_res)) {
13830 D(p->level--);
13831 return _res;
13832 }
13833 int _mark = p->mark;
13834 int _resmark = p->mark;
13835 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080013836 int tmpvar_8 = _PyPegen_update_memo(p, _mark, primary_type, _res);
13837 if (tmpvar_8) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013838 D(p->level--);
13839 return _res;
13840 }
13841 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070013842 p->in_raw_rule++;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013843 void *_raw = primary_raw(p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070013844 p->in_raw_rule--;
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020013845 if (p->error_indicator)
13846 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013847 if (_raw == NULL || p->mark <= _resmark)
13848 break;
13849 _resmark = p->mark;
13850 _res = _raw;
13851 }
13852 p->mark = _resmark;
13853 D(p->level--);
13854 return _res;
13855}
13856static expr_ty
13857primary_raw(Parser *p)
13858{
13859 D(p->level++);
13860 if (p->error_indicator) {
13861 D(p->level--);
13862 return NULL;
13863 }
13864 expr_ty _res = NULL;
13865 int _mark = p->mark;
13866 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13867 p->error_indicator = 1;
13868 D(p->level--);
13869 return NULL;
13870 }
13871 int _start_lineno = p->tokens[_mark]->lineno;
13872 UNUSED(_start_lineno); // Only used by EXTRA macro
13873 int _start_col_offset = p->tokens[_mark]->col_offset;
13874 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou15acc4e2020-10-27 20:54:20 +020013875 if (p->call_invalid_rules) { // invalid_primary
13876 if (p->error_indicator) {
13877 D(p->level--);
13878 return NULL;
13879 }
13880 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_primary"));
13881 void *invalid_primary_var;
13882 if (
13883 (invalid_primary_var = invalid_primary_rule(p)) // invalid_primary
13884 )
13885 {
13886 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_primary"));
13887 _res = invalid_primary_var;
13888 goto done;
13889 }
13890 p->mark = _mark;
13891 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
13892 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_primary"));
13893 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013894 { // primary '.' NAME
13895 if (p->error_indicator) {
13896 D(p->level--);
13897 return NULL;
13898 }
13899 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '.' NAME"));
13900 Token * _literal;
13901 expr_ty a;
13902 expr_ty b;
13903 if (
13904 (a = primary_rule(p)) // primary
13905 &&
13906 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
13907 &&
13908 (b = _PyPegen_name_token(p)) // NAME
13909 )
13910 {
13911 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '.' NAME"));
13912 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13913 if (_token == NULL) {
13914 D(p->level--);
13915 return NULL;
13916 }
13917 int _end_lineno = _token->end_lineno;
13918 UNUSED(_end_lineno); // Only used by EXTRA macro
13919 int _end_col_offset = _token->end_col_offset;
13920 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013921 _res = _PyAST_Attribute ( a , b -> v . Name . id , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013922 if (_res == NULL && PyErr_Occurred()) {
13923 p->error_indicator = 1;
13924 D(p->level--);
13925 return NULL;
13926 }
13927 goto done;
13928 }
13929 p->mark = _mark;
13930 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
13931 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '.' NAME"));
13932 }
13933 { // primary genexp
13934 if (p->error_indicator) {
13935 D(p->level--);
13936 return NULL;
13937 }
13938 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary genexp"));
13939 expr_ty a;
13940 expr_ty b;
13941 if (
13942 (a = primary_rule(p)) // primary
13943 &&
13944 (b = genexp_rule(p)) // genexp
13945 )
13946 {
13947 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary genexp"));
13948 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13949 if (_token == NULL) {
13950 D(p->level--);
13951 return NULL;
13952 }
13953 int _end_lineno = _token->end_lineno;
13954 UNUSED(_end_lineno); // Only used by EXTRA macro
13955 int _end_col_offset = _token->end_col_offset;
13956 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013957 _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 +010013958 if (_res == NULL && PyErr_Occurred()) {
13959 p->error_indicator = 1;
13960 D(p->level--);
13961 return NULL;
13962 }
13963 goto done;
13964 }
13965 p->mark = _mark;
13966 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
13967 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary genexp"));
13968 }
13969 { // primary '(' arguments? ')'
13970 if (p->error_indicator) {
13971 D(p->level--);
13972 return NULL;
13973 }
13974 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '(' arguments? ')'"));
13975 Token * _literal;
13976 Token * _literal_1;
13977 expr_ty a;
13978 void *b;
13979 if (
13980 (a = primary_rule(p)) // primary
13981 &&
13982 (_literal = _PyPegen_expect_token(p, 7)) // token='('
13983 &&
13984 (b = arguments_rule(p), 1) // arguments?
13985 &&
13986 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
13987 )
13988 {
13989 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '(' arguments? ')'"));
13990 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13991 if (_token == NULL) {
13992 D(p->level--);
13993 return NULL;
13994 }
13995 int _end_lineno = _token->end_lineno;
13996 UNUSED(_end_lineno); // Only used by EXTRA macro
13997 int _end_col_offset = _token->end_col_offset;
13998 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013999 _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 +010014000 if (_res == NULL && PyErr_Occurred()) {
14001 p->error_indicator = 1;
14002 D(p->level--);
14003 return NULL;
14004 }
14005 goto done;
14006 }
14007 p->mark = _mark;
14008 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
14009 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '(' arguments? ')'"));
14010 }
14011 { // primary '[' slices ']'
14012 if (p->error_indicator) {
14013 D(p->level--);
14014 return NULL;
14015 }
14016 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '[' slices ']'"));
14017 Token * _literal;
14018 Token * _literal_1;
14019 expr_ty a;
14020 expr_ty b;
14021 if (
14022 (a = primary_rule(p)) // primary
14023 &&
14024 (_literal = _PyPegen_expect_token(p, 9)) // token='['
14025 &&
14026 (b = slices_rule(p)) // slices
14027 &&
14028 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
14029 )
14030 {
14031 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '[' slices ']'"));
14032 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14033 if (_token == NULL) {
14034 D(p->level--);
14035 return NULL;
14036 }
14037 int _end_lineno = _token->end_lineno;
14038 UNUSED(_end_lineno); // Only used by EXTRA macro
14039 int _end_col_offset = _token->end_col_offset;
14040 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014041 _res = _PyAST_Subscript ( a , b , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014042 if (_res == NULL && PyErr_Occurred()) {
14043 p->error_indicator = 1;
14044 D(p->level--);
14045 return NULL;
14046 }
14047 goto done;
14048 }
14049 p->mark = _mark;
14050 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
14051 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '[' slices ']'"));
14052 }
14053 { // atom
14054 if (p->error_indicator) {
14055 D(p->level--);
14056 return NULL;
14057 }
14058 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "atom"));
14059 expr_ty atom_var;
14060 if (
14061 (atom_var = atom_rule(p)) // atom
14062 )
14063 {
14064 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "atom"));
14065 _res = atom_var;
14066 goto done;
14067 }
14068 p->mark = _mark;
14069 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
14070 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "atom"));
14071 }
14072 _res = NULL;
14073 done:
14074 D(p->level--);
14075 return _res;
14076}
14077
14078// slices: slice !',' | ','.slice+ ','?
14079static expr_ty
14080slices_rule(Parser *p)
14081{
14082 D(p->level++);
14083 if (p->error_indicator) {
14084 D(p->level--);
14085 return NULL;
14086 }
14087 expr_ty _res = NULL;
14088 int _mark = p->mark;
14089 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14090 p->error_indicator = 1;
14091 D(p->level--);
14092 return NULL;
14093 }
14094 int _start_lineno = p->tokens[_mark]->lineno;
14095 UNUSED(_start_lineno); // Only used by EXTRA macro
14096 int _start_col_offset = p->tokens[_mark]->col_offset;
14097 UNUSED(_start_col_offset); // Only used by EXTRA macro
14098 { // slice !','
14099 if (p->error_indicator) {
14100 D(p->level--);
14101 return NULL;
14102 }
14103 D(fprintf(stderr, "%*c> slices[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slice !','"));
14104 expr_ty a;
14105 if (
14106 (a = slice_rule(p)) // slice
14107 &&
14108 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 12) // token=','
14109 )
14110 {
14111 D(fprintf(stderr, "%*c+ slices[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slice !','"));
14112 _res = a;
14113 if (_res == NULL && PyErr_Occurred()) {
14114 p->error_indicator = 1;
14115 D(p->level--);
14116 return NULL;
14117 }
14118 goto done;
14119 }
14120 p->mark = _mark;
14121 D(fprintf(stderr, "%*c%s slices[%d-%d]: %s failed!\n", p->level, ' ',
14122 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slice !','"));
14123 }
14124 { // ','.slice+ ','?
14125 if (p->error_indicator) {
14126 D(p->level--);
14127 return NULL;
14128 }
14129 D(fprintf(stderr, "%*c> slices[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.slice+ ','?"));
14130 void *_opt_var;
14131 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +010014132 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014133 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080014134 (a = (asdl_expr_seq*)_gather_108_rule(p)) // ','.slice+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014135 &&
14136 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
14137 )
14138 {
14139 D(fprintf(stderr, "%*c+ slices[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.slice+ ','?"));
14140 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14141 if (_token == NULL) {
14142 D(p->level--);
14143 return NULL;
14144 }
14145 int _end_lineno = _token->end_lineno;
14146 UNUSED(_end_lineno); // Only used by EXTRA macro
14147 int _end_col_offset = _token->end_col_offset;
14148 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014149 _res = _PyAST_Tuple ( a , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014150 if (_res == NULL && PyErr_Occurred()) {
14151 p->error_indicator = 1;
14152 D(p->level--);
14153 return NULL;
14154 }
14155 goto done;
14156 }
14157 p->mark = _mark;
14158 D(fprintf(stderr, "%*c%s slices[%d-%d]: %s failed!\n", p->level, ' ',
14159 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.slice+ ','?"));
14160 }
14161 _res = NULL;
14162 done:
14163 D(p->level--);
14164 return _res;
14165}
14166
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020014167// slice: expression? ':' expression? [':' expression?] | named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014168static expr_ty
14169slice_rule(Parser *p)
14170{
14171 D(p->level++);
14172 if (p->error_indicator) {
14173 D(p->level--);
14174 return NULL;
14175 }
14176 expr_ty _res = NULL;
14177 int _mark = p->mark;
14178 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14179 p->error_indicator = 1;
14180 D(p->level--);
14181 return NULL;
14182 }
14183 int _start_lineno = p->tokens[_mark]->lineno;
14184 UNUSED(_start_lineno); // Only used by EXTRA macro
14185 int _start_col_offset = p->tokens[_mark]->col_offset;
14186 UNUSED(_start_col_offset); // Only used by EXTRA macro
14187 { // expression? ':' expression? [':' expression?]
14188 if (p->error_indicator) {
14189 D(p->level--);
14190 return NULL;
14191 }
14192 D(fprintf(stderr, "%*c> slice[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression? ':' expression? [':' expression?]"));
14193 Token * _literal;
14194 void *a;
14195 void *b;
14196 void *c;
14197 if (
14198 (a = expression_rule(p), 1) // expression?
14199 &&
14200 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
14201 &&
14202 (b = expression_rule(p), 1) // expression?
14203 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080014204 (c = _tmp_110_rule(p), 1) // [':' expression?]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014205 )
14206 {
14207 D(fprintf(stderr, "%*c+ slice[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression? ':' expression? [':' expression?]"));
14208 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14209 if (_token == NULL) {
14210 D(p->level--);
14211 return NULL;
14212 }
14213 int _end_lineno = _token->end_lineno;
14214 UNUSED(_end_lineno); // Only used by EXTRA macro
14215 int _end_col_offset = _token->end_col_offset;
14216 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014217 _res = _PyAST_Slice ( a , b , c , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014218 if (_res == NULL && PyErr_Occurred()) {
14219 p->error_indicator = 1;
14220 D(p->level--);
14221 return NULL;
14222 }
14223 goto done;
14224 }
14225 p->mark = _mark;
14226 D(fprintf(stderr, "%*c%s slice[%d-%d]: %s failed!\n", p->level, ' ',
14227 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression? ':' expression? [':' expression?]"));
14228 }
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020014229 { // named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014230 if (p->error_indicator) {
14231 D(p->level--);
14232 return NULL;
14233 }
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020014234 D(fprintf(stderr, "%*c> slice[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014235 expr_ty a;
14236 if (
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020014237 (a = named_expression_rule(p)) // named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014238 )
14239 {
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020014240 D(fprintf(stderr, "%*c+ slice[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "named_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014241 _res = a;
14242 if (_res == NULL && PyErr_Occurred()) {
14243 p->error_indicator = 1;
14244 D(p->level--);
14245 return NULL;
14246 }
14247 goto done;
14248 }
14249 p->mark = _mark;
14250 D(fprintf(stderr, "%*c%s slice[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020014251 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014252 }
14253 _res = NULL;
14254 done:
14255 D(p->level--);
14256 return _res;
14257}
14258
14259// atom:
14260// | NAME
14261// | 'True'
14262// | 'False'
14263// | 'None'
14264// | &STRING strings
14265// | NUMBER
14266// | &'(' (tuple | group | genexp)
14267// | &'[' (list | listcomp)
14268// | &'{' (dict | set | dictcomp | setcomp)
14269// | '...'
14270static expr_ty
14271atom_rule(Parser *p)
14272{
14273 D(p->level++);
14274 if (p->error_indicator) {
14275 D(p->level--);
14276 return NULL;
14277 }
14278 expr_ty _res = NULL;
14279 int _mark = p->mark;
14280 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14281 p->error_indicator = 1;
14282 D(p->level--);
14283 return NULL;
14284 }
14285 int _start_lineno = p->tokens[_mark]->lineno;
14286 UNUSED(_start_lineno); // Only used by EXTRA macro
14287 int _start_col_offset = p->tokens[_mark]->col_offset;
14288 UNUSED(_start_col_offset); // Only used by EXTRA macro
14289 { // NAME
14290 if (p->error_indicator) {
14291 D(p->level--);
14292 return NULL;
14293 }
14294 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
14295 expr_ty name_var;
14296 if (
14297 (name_var = _PyPegen_name_token(p)) // NAME
14298 )
14299 {
14300 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
14301 _res = name_var;
14302 goto done;
14303 }
14304 p->mark = _mark;
14305 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
14306 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
14307 }
14308 { // 'True'
14309 if (p->error_indicator) {
14310 D(p->level--);
14311 return NULL;
14312 }
14313 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'True'"));
14314 Token * _keyword;
14315 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080014316 (_keyword = _PyPegen_expect_token(p, 524)) // token='True'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014317 )
14318 {
14319 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'"));
14320 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14321 if (_token == NULL) {
14322 D(p->level--);
14323 return NULL;
14324 }
14325 int _end_lineno = _token->end_lineno;
14326 UNUSED(_end_lineno); // Only used by EXTRA macro
14327 int _end_col_offset = _token->end_col_offset;
14328 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014329 _res = _PyAST_Constant ( Py_True , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014330 if (_res == NULL && PyErr_Occurred()) {
14331 p->error_indicator = 1;
14332 D(p->level--);
14333 return NULL;
14334 }
14335 goto done;
14336 }
14337 p->mark = _mark;
14338 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
14339 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'True'"));
14340 }
14341 { // 'False'
14342 if (p->error_indicator) {
14343 D(p->level--);
14344 return NULL;
14345 }
14346 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False'"));
14347 Token * _keyword;
14348 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080014349 (_keyword = _PyPegen_expect_token(p, 525)) // token='False'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014350 )
14351 {
14352 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'"));
14353 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14354 if (_token == NULL) {
14355 D(p->level--);
14356 return NULL;
14357 }
14358 int _end_lineno = _token->end_lineno;
14359 UNUSED(_end_lineno); // Only used by EXTRA macro
14360 int _end_col_offset = _token->end_col_offset;
14361 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014362 _res = _PyAST_Constant ( Py_False , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014363 if (_res == NULL && PyErr_Occurred()) {
14364 p->error_indicator = 1;
14365 D(p->level--);
14366 return NULL;
14367 }
14368 goto done;
14369 }
14370 p->mark = _mark;
14371 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
14372 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'False'"));
14373 }
14374 { // 'None'
14375 if (p->error_indicator) {
14376 D(p->level--);
14377 return NULL;
14378 }
14379 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'None'"));
14380 Token * _keyword;
14381 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080014382 (_keyword = _PyPegen_expect_token(p, 523)) // token='None'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014383 )
14384 {
14385 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'"));
14386 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14387 if (_token == NULL) {
14388 D(p->level--);
14389 return NULL;
14390 }
14391 int _end_lineno = _token->end_lineno;
14392 UNUSED(_end_lineno); // Only used by EXTRA macro
14393 int _end_col_offset = _token->end_col_offset;
14394 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014395 _res = _PyAST_Constant ( Py_None , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014396 if (_res == NULL && PyErr_Occurred()) {
14397 p->error_indicator = 1;
14398 D(p->level--);
14399 return NULL;
14400 }
14401 goto done;
14402 }
14403 p->mark = _mark;
14404 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
14405 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'None'"));
14406 }
14407 { // &STRING strings
14408 if (p->error_indicator) {
14409 D(p->level--);
14410 return NULL;
14411 }
14412 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&STRING strings"));
14413 expr_ty strings_var;
14414 if (
14415 _PyPegen_lookahead(1, _PyPegen_string_token, p)
14416 &&
14417 (strings_var = strings_rule(p)) // strings
14418 )
14419 {
14420 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&STRING strings"));
14421 _res = strings_var;
14422 goto done;
14423 }
14424 p->mark = _mark;
14425 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
14426 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&STRING strings"));
14427 }
14428 { // NUMBER
14429 if (p->error_indicator) {
14430 D(p->level--);
14431 return NULL;
14432 }
14433 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NUMBER"));
14434 expr_ty number_var;
14435 if (
14436 (number_var = _PyPegen_number_token(p)) // NUMBER
14437 )
14438 {
14439 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NUMBER"));
14440 _res = number_var;
14441 goto done;
14442 }
14443 p->mark = _mark;
14444 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
14445 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NUMBER"));
14446 }
14447 { // &'(' (tuple | group | genexp)
14448 if (p->error_indicator) {
14449 D(p->level--);
14450 return NULL;
14451 }
14452 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'(' (tuple | group | genexp)"));
Brandt Bucher145bf262021-02-26 14:51:55 -080014453 void *_tmp_111_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014454 if (
14455 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 7) // token='('
14456 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080014457 (_tmp_111_var = _tmp_111_rule(p)) // tuple | group | genexp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014458 )
14459 {
14460 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 -080014461 _res = _tmp_111_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014462 goto done;
14463 }
14464 p->mark = _mark;
14465 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
14466 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'(' (tuple | group | genexp)"));
14467 }
14468 { // &'[' (list | listcomp)
14469 if (p->error_indicator) {
14470 D(p->level--);
14471 return NULL;
14472 }
14473 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'[' (list | listcomp)"));
Brandt Bucher145bf262021-02-26 14:51:55 -080014474 void *_tmp_112_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014475 if (
14476 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 9) // token='['
14477 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080014478 (_tmp_112_var = _tmp_112_rule(p)) // list | listcomp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014479 )
14480 {
14481 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'[' (list | listcomp)"));
Brandt Bucher145bf262021-02-26 14:51:55 -080014482 _res = _tmp_112_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014483 goto done;
14484 }
14485 p->mark = _mark;
14486 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
14487 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'[' (list | listcomp)"));
14488 }
14489 { // &'{' (dict | set | dictcomp | setcomp)
14490 if (p->error_indicator) {
14491 D(p->level--);
14492 return NULL;
14493 }
14494 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 -080014495 void *_tmp_113_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014496 if (
14497 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 25) // token='{'
14498 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080014499 (_tmp_113_var = _tmp_113_rule(p)) // dict | set | dictcomp | setcomp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014500 )
14501 {
14502 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 -080014503 _res = _tmp_113_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014504 goto done;
14505 }
14506 p->mark = _mark;
14507 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
14508 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'{' (dict | set | dictcomp | setcomp)"));
14509 }
14510 { // '...'
14511 if (p->error_indicator) {
14512 D(p->level--);
14513 return NULL;
14514 }
14515 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'"));
14516 Token * _literal;
14517 if (
14518 (_literal = _PyPegen_expect_token(p, 52)) // token='...'
14519 )
14520 {
14521 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'"));
14522 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14523 if (_token == NULL) {
14524 D(p->level--);
14525 return NULL;
14526 }
14527 int _end_lineno = _token->end_lineno;
14528 UNUSED(_end_lineno); // Only used by EXTRA macro
14529 int _end_col_offset = _token->end_col_offset;
14530 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014531 _res = _PyAST_Constant ( Py_Ellipsis , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014532 if (_res == NULL && PyErr_Occurred()) {
14533 p->error_indicator = 1;
14534 D(p->level--);
14535 return NULL;
14536 }
14537 goto done;
14538 }
14539 p->mark = _mark;
14540 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
14541 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'...'"));
14542 }
14543 _res = NULL;
14544 done:
14545 D(p->level--);
14546 return _res;
14547}
14548
14549// strings: STRING+
14550static expr_ty
14551strings_rule(Parser *p)
14552{
14553 D(p->level++);
14554 if (p->error_indicator) {
14555 D(p->level--);
14556 return NULL;
14557 }
14558 expr_ty _res = NULL;
14559 if (_PyPegen_is_memoized(p, strings_type, &_res)) {
14560 D(p->level--);
14561 return _res;
14562 }
14563 int _mark = p->mark;
14564 { // STRING+
14565 if (p->error_indicator) {
14566 D(p->level--);
14567 return NULL;
14568 }
14569 D(fprintf(stderr, "%*c> strings[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "STRING+"));
14570 asdl_seq * a;
14571 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080014572 (a = _loop1_114_rule(p)) // STRING+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014573 )
14574 {
14575 D(fprintf(stderr, "%*c+ strings[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "STRING+"));
14576 _res = _PyPegen_concatenate_strings ( p , a );
14577 if (_res == NULL && PyErr_Occurred()) {
14578 p->error_indicator = 1;
14579 D(p->level--);
14580 return NULL;
14581 }
14582 goto done;
14583 }
14584 p->mark = _mark;
14585 D(fprintf(stderr, "%*c%s strings[%d-%d]: %s failed!\n", p->level, ' ',
14586 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "STRING+"));
14587 }
14588 _res = NULL;
14589 done:
14590 _PyPegen_insert_memo(p, _mark, strings_type, _res);
14591 D(p->level--);
14592 return _res;
14593}
14594
14595// list: '[' star_named_expressions? ']'
14596static expr_ty
14597list_rule(Parser *p)
14598{
14599 D(p->level++);
14600 if (p->error_indicator) {
14601 D(p->level--);
14602 return NULL;
14603 }
14604 expr_ty _res = NULL;
14605 int _mark = p->mark;
14606 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14607 p->error_indicator = 1;
14608 D(p->level--);
14609 return NULL;
14610 }
14611 int _start_lineno = p->tokens[_mark]->lineno;
14612 UNUSED(_start_lineno); // Only used by EXTRA macro
14613 int _start_col_offset = p->tokens[_mark]->col_offset;
14614 UNUSED(_start_col_offset); // Only used by EXTRA macro
14615 { // '[' star_named_expressions? ']'
14616 if (p->error_indicator) {
14617 D(p->level--);
14618 return NULL;
14619 }
14620 D(fprintf(stderr, "%*c> list[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' star_named_expressions? ']'"));
14621 Token * _literal;
14622 Token * _literal_1;
14623 void *a;
14624 if (
14625 (_literal = _PyPegen_expect_token(p, 9)) // token='['
14626 &&
14627 (a = star_named_expressions_rule(p), 1) // star_named_expressions?
14628 &&
14629 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
14630 )
14631 {
14632 D(fprintf(stderr, "%*c+ list[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'[' star_named_expressions? ']'"));
14633 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14634 if (_token == NULL) {
14635 D(p->level--);
14636 return NULL;
14637 }
14638 int _end_lineno = _token->end_lineno;
14639 UNUSED(_end_lineno); // Only used by EXTRA macro
14640 int _end_col_offset = _token->end_col_offset;
14641 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014642 _res = _PyAST_List ( a , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014643 if (_res == NULL && PyErr_Occurred()) {
14644 p->error_indicator = 1;
14645 D(p->level--);
14646 return NULL;
14647 }
14648 goto done;
14649 }
14650 p->mark = _mark;
14651 D(fprintf(stderr, "%*c%s list[%d-%d]: %s failed!\n", p->level, ' ',
14652 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' star_named_expressions? ']'"));
14653 }
14654 _res = NULL;
14655 done:
14656 D(p->level--);
14657 return _res;
14658}
14659
Pablo Galindo835f14f2021-01-31 22:52:56 +000014660// listcomp: '[' named_expression for_if_clauses ']' | invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014661static expr_ty
14662listcomp_rule(Parser *p)
14663{
14664 D(p->level++);
14665 if (p->error_indicator) {
14666 D(p->level--);
14667 return NULL;
14668 }
14669 expr_ty _res = NULL;
14670 int _mark = p->mark;
14671 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14672 p->error_indicator = 1;
14673 D(p->level--);
14674 return NULL;
14675 }
14676 int _start_lineno = p->tokens[_mark]->lineno;
14677 UNUSED(_start_lineno); // Only used by EXTRA macro
14678 int _start_col_offset = p->tokens[_mark]->col_offset;
14679 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo835f14f2021-01-31 22:52:56 +000014680 { // '[' named_expression for_if_clauses ']'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014681 if (p->error_indicator) {
14682 D(p->level--);
14683 return NULL;
14684 }
Pablo Galindo835f14f2021-01-31 22:52:56 +000014685 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 +010014686 Token * _literal;
14687 Token * _literal_1;
14688 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010014689 asdl_comprehension_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014690 if (
14691 (_literal = _PyPegen_expect_token(p, 9)) // token='['
14692 &&
14693 (a = named_expression_rule(p)) // named_expression
14694 &&
14695 (b = for_if_clauses_rule(p)) // for_if_clauses
14696 &&
14697 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
14698 )
14699 {
Pablo Galindo835f14f2021-01-31 22:52:56 +000014700 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 +010014701 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14702 if (_token == NULL) {
14703 D(p->level--);
14704 return NULL;
14705 }
14706 int _end_lineno = _token->end_lineno;
14707 UNUSED(_end_lineno); // Only used by EXTRA macro
14708 int _end_col_offset = _token->end_col_offset;
14709 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014710 _res = _PyAST_ListComp ( a , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014711 if (_res == NULL && PyErr_Occurred()) {
14712 p->error_indicator = 1;
14713 D(p->level--);
14714 return NULL;
14715 }
14716 goto done;
14717 }
14718 p->mark = _mark;
14719 D(fprintf(stderr, "%*c%s listcomp[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo835f14f2021-01-31 22:52:56 +000014720 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' named_expression for_if_clauses ']'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014721 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014722 if (p->call_invalid_rules) { // invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014723 if (p->error_indicator) {
14724 D(p->level--);
14725 return NULL;
14726 }
14727 D(fprintf(stderr, "%*c> listcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
14728 void *invalid_comprehension_var;
14729 if (
14730 (invalid_comprehension_var = invalid_comprehension_rule(p)) // invalid_comprehension
14731 )
14732 {
14733 D(fprintf(stderr, "%*c+ listcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
14734 _res = invalid_comprehension_var;
14735 goto done;
14736 }
14737 p->mark = _mark;
14738 D(fprintf(stderr, "%*c%s listcomp[%d-%d]: %s failed!\n", p->level, ' ',
14739 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_comprehension"));
14740 }
14741 _res = NULL;
14742 done:
14743 D(p->level--);
14744 return _res;
14745}
14746
14747// tuple: '(' [star_named_expression ',' star_named_expressions?] ')'
14748static expr_ty
14749tuple_rule(Parser *p)
14750{
14751 D(p->level++);
14752 if (p->error_indicator) {
14753 D(p->level--);
14754 return NULL;
14755 }
14756 expr_ty _res = NULL;
14757 int _mark = p->mark;
14758 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14759 p->error_indicator = 1;
14760 D(p->level--);
14761 return NULL;
14762 }
14763 int _start_lineno = p->tokens[_mark]->lineno;
14764 UNUSED(_start_lineno); // Only used by EXTRA macro
14765 int _start_col_offset = p->tokens[_mark]->col_offset;
14766 UNUSED(_start_col_offset); // Only used by EXTRA macro
14767 { // '(' [star_named_expression ',' star_named_expressions?] ')'
14768 if (p->error_indicator) {
14769 D(p->level--);
14770 return NULL;
14771 }
14772 D(fprintf(stderr, "%*c> tuple[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' [star_named_expression ',' star_named_expressions?] ')'"));
14773 Token * _literal;
14774 Token * _literal_1;
14775 void *a;
14776 if (
14777 (_literal = _PyPegen_expect_token(p, 7)) // token='('
14778 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080014779 (a = _tmp_115_rule(p), 1) // [star_named_expression ',' star_named_expressions?]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014780 &&
14781 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
14782 )
14783 {
14784 D(fprintf(stderr, "%*c+ tuple[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' [star_named_expression ',' star_named_expressions?] ')'"));
14785 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14786 if (_token == NULL) {
14787 D(p->level--);
14788 return NULL;
14789 }
14790 int _end_lineno = _token->end_lineno;
14791 UNUSED(_end_lineno); // Only used by EXTRA macro
14792 int _end_col_offset = _token->end_col_offset;
14793 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014794 _res = _PyAST_Tuple ( a , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014795 if (_res == NULL && PyErr_Occurred()) {
14796 p->error_indicator = 1;
14797 D(p->level--);
14798 return NULL;
14799 }
14800 goto done;
14801 }
14802 p->mark = _mark;
14803 D(fprintf(stderr, "%*c%s tuple[%d-%d]: %s failed!\n", p->level, ' ',
14804 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' [star_named_expression ',' star_named_expressions?] ')'"));
14805 }
14806 _res = NULL;
14807 done:
14808 D(p->level--);
14809 return _res;
14810}
14811
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030014812// group: '(' (yield_expr | named_expression) ')' | invalid_group
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014813static expr_ty
14814group_rule(Parser *p)
14815{
14816 D(p->level++);
14817 if (p->error_indicator) {
14818 D(p->level--);
14819 return NULL;
14820 }
14821 expr_ty _res = NULL;
14822 int _mark = p->mark;
14823 { // '(' (yield_expr | named_expression) ')'
14824 if (p->error_indicator) {
14825 D(p->level--);
14826 return NULL;
14827 }
14828 D(fprintf(stderr, "%*c> group[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' (yield_expr | named_expression) ')'"));
14829 Token * _literal;
14830 Token * _literal_1;
14831 void *a;
14832 if (
14833 (_literal = _PyPegen_expect_token(p, 7)) // token='('
14834 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080014835 (a = _tmp_116_rule(p)) // yield_expr | named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014836 &&
14837 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
14838 )
14839 {
14840 D(fprintf(stderr, "%*c+ group[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' (yield_expr | named_expression) ')'"));
14841 _res = a;
14842 if (_res == NULL && PyErr_Occurred()) {
14843 p->error_indicator = 1;
14844 D(p->level--);
14845 return NULL;
14846 }
14847 goto done;
14848 }
14849 p->mark = _mark;
14850 D(fprintf(stderr, "%*c%s group[%d-%d]: %s failed!\n", p->level, ' ',
14851 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' (yield_expr | named_expression) ')'"));
14852 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014853 if (p->call_invalid_rules) { // invalid_group
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030014854 if (p->error_indicator) {
14855 D(p->level--);
14856 return NULL;
14857 }
14858 D(fprintf(stderr, "%*c> group[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_group"));
14859 void *invalid_group_var;
14860 if (
14861 (invalid_group_var = invalid_group_rule(p)) // invalid_group
14862 )
14863 {
14864 D(fprintf(stderr, "%*c+ group[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_group"));
14865 _res = invalid_group_var;
14866 goto done;
14867 }
14868 p->mark = _mark;
14869 D(fprintf(stderr, "%*c%s group[%d-%d]: %s failed!\n", p->level, ' ',
14870 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_group"));
14871 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014872 _res = NULL;
14873 done:
14874 D(p->level--);
14875 return _res;
14876}
14877
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070014878// genexp:
14879// | '(' (assigment_expression | expression !':=') for_if_clauses ')'
14880// | invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014881static expr_ty
14882genexp_rule(Parser *p)
14883{
14884 D(p->level++);
14885 if (p->error_indicator) {
14886 D(p->level--);
14887 return NULL;
14888 }
14889 expr_ty _res = NULL;
14890 int _mark = p->mark;
14891 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14892 p->error_indicator = 1;
14893 D(p->level--);
14894 return NULL;
14895 }
14896 int _start_lineno = p->tokens[_mark]->lineno;
14897 UNUSED(_start_lineno); // Only used by EXTRA macro
14898 int _start_col_offset = p->tokens[_mark]->col_offset;
14899 UNUSED(_start_col_offset); // Only used by EXTRA macro
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070014900 { // '(' (assigment_expression | expression !':=') for_if_clauses ')'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014901 if (p->error_indicator) {
14902 D(p->level--);
14903 return NULL;
14904 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070014905 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 +010014906 Token * _literal;
14907 Token * _literal_1;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070014908 void *a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010014909 asdl_comprehension_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014910 if (
14911 (_literal = _PyPegen_expect_token(p, 7)) // token='('
14912 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070014913 (a = _tmp_117_rule(p)) // assigment_expression | expression !':='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014914 &&
14915 (b = for_if_clauses_rule(p)) // for_if_clauses
14916 &&
14917 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
14918 )
14919 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070014920 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 +010014921 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14922 if (_token == NULL) {
14923 D(p->level--);
14924 return NULL;
14925 }
14926 int _end_lineno = _token->end_lineno;
14927 UNUSED(_end_lineno); // Only used by EXTRA macro
14928 int _end_col_offset = _token->end_col_offset;
14929 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014930 _res = _PyAST_GeneratorExp ( a , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014931 if (_res == NULL && PyErr_Occurred()) {
14932 p->error_indicator = 1;
14933 D(p->level--);
14934 return NULL;
14935 }
14936 goto done;
14937 }
14938 p->mark = _mark;
14939 D(fprintf(stderr, "%*c%s genexp[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070014940 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' (assigment_expression | expression !':=') for_if_clauses ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014941 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014942 if (p->call_invalid_rules) { // invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014943 if (p->error_indicator) {
14944 D(p->level--);
14945 return NULL;
14946 }
14947 D(fprintf(stderr, "%*c> genexp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
14948 void *invalid_comprehension_var;
14949 if (
14950 (invalid_comprehension_var = invalid_comprehension_rule(p)) // invalid_comprehension
14951 )
14952 {
14953 D(fprintf(stderr, "%*c+ genexp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
14954 _res = invalid_comprehension_var;
14955 goto done;
14956 }
14957 p->mark = _mark;
14958 D(fprintf(stderr, "%*c%s genexp[%d-%d]: %s failed!\n", p->level, ' ',
14959 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_comprehension"));
14960 }
14961 _res = NULL;
14962 done:
14963 D(p->level--);
14964 return _res;
14965}
14966
Pablo Galindob0aba1f2020-11-17 01:17:12 +000014967// set: '{' star_named_expressions '}'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014968static expr_ty
14969set_rule(Parser *p)
14970{
14971 D(p->level++);
14972 if (p->error_indicator) {
14973 D(p->level--);
14974 return NULL;
14975 }
14976 expr_ty _res = NULL;
14977 int _mark = p->mark;
14978 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14979 p->error_indicator = 1;
14980 D(p->level--);
14981 return NULL;
14982 }
14983 int _start_lineno = p->tokens[_mark]->lineno;
14984 UNUSED(_start_lineno); // Only used by EXTRA macro
14985 int _start_col_offset = p->tokens[_mark]->col_offset;
14986 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindob0aba1f2020-11-17 01:17:12 +000014987 { // '{' star_named_expressions '}'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014988 if (p->error_indicator) {
14989 D(p->level--);
14990 return NULL;
14991 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000014992 D(fprintf(stderr, "%*c> set[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' star_named_expressions '}'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014993 Token * _literal;
14994 Token * _literal_1;
Pablo Galindoa5634c42020-09-16 19:42:00 +010014995 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014996 if (
14997 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
14998 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000014999 (a = star_named_expressions_rule(p)) // star_named_expressions
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015000 &&
15001 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
15002 )
15003 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000015004 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 +010015005 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15006 if (_token == NULL) {
15007 D(p->level--);
15008 return NULL;
15009 }
15010 int _end_lineno = _token->end_lineno;
15011 UNUSED(_end_lineno); // Only used by EXTRA macro
15012 int _end_col_offset = _token->end_col_offset;
15013 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015014 _res = _PyAST_Set ( a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015015 if (_res == NULL && PyErr_Occurred()) {
15016 p->error_indicator = 1;
15017 D(p->level--);
15018 return NULL;
15019 }
15020 goto done;
15021 }
15022 p->mark = _mark;
15023 D(fprintf(stderr, "%*c%s set[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000015024 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' star_named_expressions '}'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015025 }
15026 _res = NULL;
15027 done:
15028 D(p->level--);
15029 return _res;
15030}
15031
Pablo Galindo835f14f2021-01-31 22:52:56 +000015032// setcomp: '{' named_expression for_if_clauses '}' | invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015033static expr_ty
15034setcomp_rule(Parser *p)
15035{
15036 D(p->level++);
15037 if (p->error_indicator) {
15038 D(p->level--);
15039 return NULL;
15040 }
15041 expr_ty _res = NULL;
15042 int _mark = p->mark;
15043 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
15044 p->error_indicator = 1;
15045 D(p->level--);
15046 return NULL;
15047 }
15048 int _start_lineno = p->tokens[_mark]->lineno;
15049 UNUSED(_start_lineno); // Only used by EXTRA macro
15050 int _start_col_offset = p->tokens[_mark]->col_offset;
15051 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo835f14f2021-01-31 22:52:56 +000015052 { // '{' named_expression for_if_clauses '}'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015053 if (p->error_indicator) {
15054 D(p->level--);
15055 return NULL;
15056 }
Pablo Galindo835f14f2021-01-31 22:52:56 +000015057 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 +010015058 Token * _literal;
15059 Token * _literal_1;
15060 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010015061 asdl_comprehension_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015062 if (
15063 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
15064 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000015065 (a = named_expression_rule(p)) // named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015066 &&
15067 (b = for_if_clauses_rule(p)) // for_if_clauses
15068 &&
15069 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
15070 )
15071 {
Pablo Galindo835f14f2021-01-31 22:52:56 +000015072 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 +010015073 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15074 if (_token == NULL) {
15075 D(p->level--);
15076 return NULL;
15077 }
15078 int _end_lineno = _token->end_lineno;
15079 UNUSED(_end_lineno); // Only used by EXTRA macro
15080 int _end_col_offset = _token->end_col_offset;
15081 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015082 _res = _PyAST_SetComp ( a , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015083 if (_res == NULL && PyErr_Occurred()) {
15084 p->error_indicator = 1;
15085 D(p->level--);
15086 return NULL;
15087 }
15088 goto done;
15089 }
15090 p->mark = _mark;
15091 D(fprintf(stderr, "%*c%s setcomp[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo835f14f2021-01-31 22:52:56 +000015092 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' named_expression for_if_clauses '}'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015093 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020015094 if (p->call_invalid_rules) { // invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015095 if (p->error_indicator) {
15096 D(p->level--);
15097 return NULL;
15098 }
15099 D(fprintf(stderr, "%*c> setcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
15100 void *invalid_comprehension_var;
15101 if (
15102 (invalid_comprehension_var = invalid_comprehension_rule(p)) // invalid_comprehension
15103 )
15104 {
15105 D(fprintf(stderr, "%*c+ setcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
15106 _res = invalid_comprehension_var;
15107 goto done;
15108 }
15109 p->mark = _mark;
15110 D(fprintf(stderr, "%*c%s setcomp[%d-%d]: %s failed!\n", p->level, ' ',
15111 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_comprehension"));
15112 }
15113 _res = NULL;
15114 done:
15115 D(p->level--);
15116 return _res;
15117}
15118
Pablo Galindoda743502021-04-15 14:06:39 +010015119// dict: '{' double_starred_kvpairs? '}' | '{' invalid_double_starred_kvpairs '}'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015120static expr_ty
15121dict_rule(Parser *p)
15122{
15123 D(p->level++);
15124 if (p->error_indicator) {
15125 D(p->level--);
15126 return NULL;
15127 }
15128 expr_ty _res = NULL;
15129 int _mark = p->mark;
15130 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
15131 p->error_indicator = 1;
15132 D(p->level--);
15133 return NULL;
15134 }
15135 int _start_lineno = p->tokens[_mark]->lineno;
15136 UNUSED(_start_lineno); // Only used by EXTRA macro
15137 int _start_col_offset = p->tokens[_mark]->col_offset;
15138 UNUSED(_start_col_offset); // Only used by EXTRA macro
15139 { // '{' double_starred_kvpairs? '}'
15140 if (p->error_indicator) {
15141 D(p->level--);
15142 return NULL;
15143 }
15144 D(fprintf(stderr, "%*c> dict[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' double_starred_kvpairs? '}'"));
15145 Token * _literal;
15146 Token * _literal_1;
15147 void *a;
15148 if (
15149 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
15150 &&
15151 (a = double_starred_kvpairs_rule(p), 1) // double_starred_kvpairs?
15152 &&
15153 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
15154 )
15155 {
15156 D(fprintf(stderr, "%*c+ dict[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' double_starred_kvpairs? '}'"));
15157 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15158 if (_token == NULL) {
15159 D(p->level--);
15160 return NULL;
15161 }
15162 int _end_lineno = _token->end_lineno;
15163 UNUSED(_end_lineno); // Only used by EXTRA macro
15164 int _end_col_offset = _token->end_col_offset;
15165 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015166 _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 +010015167 if (_res == NULL && PyErr_Occurred()) {
15168 p->error_indicator = 1;
15169 D(p->level--);
15170 return NULL;
15171 }
15172 goto done;
15173 }
15174 p->mark = _mark;
15175 D(fprintf(stderr, "%*c%s dict[%d-%d]: %s failed!\n", p->level, ' ',
15176 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' double_starred_kvpairs? '}'"));
15177 }
Pablo Galindoda743502021-04-15 14:06:39 +010015178 { // '{' invalid_double_starred_kvpairs '}'
15179 if (p->error_indicator) {
15180 D(p->level--);
15181 return NULL;
15182 }
15183 D(fprintf(stderr, "%*c> dict[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' invalid_double_starred_kvpairs '}'"));
15184 Token * _literal;
15185 Token * _literal_1;
15186 void *invalid_double_starred_kvpairs_var;
15187 if (
15188 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
15189 &&
15190 (invalid_double_starred_kvpairs_var = invalid_double_starred_kvpairs_rule(p)) // invalid_double_starred_kvpairs
15191 &&
15192 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
15193 )
15194 {
15195 D(fprintf(stderr, "%*c+ dict[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' invalid_double_starred_kvpairs '}'"));
15196 _res = _PyPegen_dummy_name(p, _literal, invalid_double_starred_kvpairs_var, _literal_1);
15197 goto done;
15198 }
15199 p->mark = _mark;
15200 D(fprintf(stderr, "%*c%s dict[%d-%d]: %s failed!\n", p->level, ' ',
15201 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' invalid_double_starred_kvpairs '}'"));
15202 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015203 _res = NULL;
15204 done:
15205 D(p->level--);
15206 return _res;
15207}
15208
15209// dictcomp: '{' kvpair for_if_clauses '}' | invalid_dict_comprehension
15210static expr_ty
15211dictcomp_rule(Parser *p)
15212{
15213 D(p->level++);
15214 if (p->error_indicator) {
15215 D(p->level--);
15216 return NULL;
15217 }
15218 expr_ty _res = NULL;
15219 int _mark = p->mark;
15220 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
15221 p->error_indicator = 1;
15222 D(p->level--);
15223 return NULL;
15224 }
15225 int _start_lineno = p->tokens[_mark]->lineno;
15226 UNUSED(_start_lineno); // Only used by EXTRA macro
15227 int _start_col_offset = p->tokens[_mark]->col_offset;
15228 UNUSED(_start_col_offset); // Only used by EXTRA macro
15229 { // '{' kvpair for_if_clauses '}'
15230 if (p->error_indicator) {
15231 D(p->level--);
15232 return NULL;
15233 }
15234 D(fprintf(stderr, "%*c> dictcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' kvpair for_if_clauses '}'"));
15235 Token * _literal;
15236 Token * _literal_1;
15237 KeyValuePair* a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010015238 asdl_comprehension_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015239 if (
15240 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
15241 &&
15242 (a = kvpair_rule(p)) // kvpair
15243 &&
15244 (b = for_if_clauses_rule(p)) // for_if_clauses
15245 &&
15246 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
15247 )
15248 {
15249 D(fprintf(stderr, "%*c+ dictcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' kvpair for_if_clauses '}'"));
15250 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15251 if (_token == NULL) {
15252 D(p->level--);
15253 return NULL;
15254 }
15255 int _end_lineno = _token->end_lineno;
15256 UNUSED(_end_lineno); // Only used by EXTRA macro
15257 int _end_col_offset = _token->end_col_offset;
15258 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015259 _res = _PyAST_DictComp ( a -> key , a -> value , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015260 if (_res == NULL && PyErr_Occurred()) {
15261 p->error_indicator = 1;
15262 D(p->level--);
15263 return NULL;
15264 }
15265 goto done;
15266 }
15267 p->mark = _mark;
15268 D(fprintf(stderr, "%*c%s dictcomp[%d-%d]: %s failed!\n", p->level, ' ',
15269 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' kvpair for_if_clauses '}'"));
15270 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020015271 if (p->call_invalid_rules) { // invalid_dict_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015272 if (p->error_indicator) {
15273 D(p->level--);
15274 return NULL;
15275 }
15276 D(fprintf(stderr, "%*c> dictcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_dict_comprehension"));
15277 void *invalid_dict_comprehension_var;
15278 if (
15279 (invalid_dict_comprehension_var = invalid_dict_comprehension_rule(p)) // invalid_dict_comprehension
15280 )
15281 {
15282 D(fprintf(stderr, "%*c+ dictcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_dict_comprehension"));
15283 _res = invalid_dict_comprehension_var;
15284 goto done;
15285 }
15286 p->mark = _mark;
15287 D(fprintf(stderr, "%*c%s dictcomp[%d-%d]: %s failed!\n", p->level, ' ',
15288 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_dict_comprehension"));
15289 }
15290 _res = NULL;
15291 done:
15292 D(p->level--);
15293 return _res;
15294}
15295
15296// double_starred_kvpairs: ','.double_starred_kvpair+ ','?
15297static asdl_seq*
15298double_starred_kvpairs_rule(Parser *p)
15299{
15300 D(p->level++);
15301 if (p->error_indicator) {
15302 D(p->level--);
15303 return NULL;
15304 }
15305 asdl_seq* _res = NULL;
15306 int _mark = p->mark;
15307 { // ','.double_starred_kvpair+ ','?
15308 if (p->error_indicator) {
15309 D(p->level--);
15310 return NULL;
15311 }
15312 D(fprintf(stderr, "%*c> double_starred_kvpairs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.double_starred_kvpair+ ','?"));
15313 void *_opt_var;
15314 UNUSED(_opt_var); // Silence compiler warnings
15315 asdl_seq * a;
15316 if (
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070015317 (a = _gather_118_rule(p)) // ','.double_starred_kvpair+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015318 &&
15319 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
15320 )
15321 {
15322 D(fprintf(stderr, "%*c+ double_starred_kvpairs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.double_starred_kvpair+ ','?"));
15323 _res = a;
15324 if (_res == NULL && PyErr_Occurred()) {
15325 p->error_indicator = 1;
15326 D(p->level--);
15327 return NULL;
15328 }
15329 goto done;
15330 }
15331 p->mark = _mark;
15332 D(fprintf(stderr, "%*c%s double_starred_kvpairs[%d-%d]: %s failed!\n", p->level, ' ',
15333 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.double_starred_kvpair+ ','?"));
15334 }
15335 _res = NULL;
15336 done:
15337 D(p->level--);
15338 return _res;
15339}
15340
15341// double_starred_kvpair: '**' bitwise_or | kvpair
15342static KeyValuePair*
15343double_starred_kvpair_rule(Parser *p)
15344{
15345 D(p->level++);
15346 if (p->error_indicator) {
15347 D(p->level--);
15348 return NULL;
15349 }
15350 KeyValuePair* _res = NULL;
15351 int _mark = p->mark;
15352 { // '**' bitwise_or
15353 if (p->error_indicator) {
15354 D(p->level--);
15355 return NULL;
15356 }
15357 D(fprintf(stderr, "%*c> double_starred_kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' bitwise_or"));
15358 Token * _literal;
15359 expr_ty a;
15360 if (
15361 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
15362 &&
15363 (a = bitwise_or_rule(p)) // bitwise_or
15364 )
15365 {
15366 D(fprintf(stderr, "%*c+ double_starred_kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' bitwise_or"));
15367 _res = _PyPegen_key_value_pair ( p , NULL , a );
15368 if (_res == NULL && PyErr_Occurred()) {
15369 p->error_indicator = 1;
15370 D(p->level--);
15371 return NULL;
15372 }
15373 goto done;
15374 }
15375 p->mark = _mark;
15376 D(fprintf(stderr, "%*c%s double_starred_kvpair[%d-%d]: %s failed!\n", p->level, ' ',
15377 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' bitwise_or"));
15378 }
15379 { // kvpair
15380 if (p->error_indicator) {
15381 D(p->level--);
15382 return NULL;
15383 }
15384 D(fprintf(stderr, "%*c> double_starred_kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kvpair"));
15385 KeyValuePair* kvpair_var;
15386 if (
15387 (kvpair_var = kvpair_rule(p)) // kvpair
15388 )
15389 {
15390 D(fprintf(stderr, "%*c+ double_starred_kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kvpair"));
15391 _res = kvpair_var;
15392 goto done;
15393 }
15394 p->mark = _mark;
15395 D(fprintf(stderr, "%*c%s double_starred_kvpair[%d-%d]: %s failed!\n", p->level, ' ',
15396 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kvpair"));
15397 }
15398 _res = NULL;
15399 done:
15400 D(p->level--);
15401 return _res;
15402}
15403
15404// kvpair: expression ':' expression
15405static KeyValuePair*
15406kvpair_rule(Parser *p)
15407{
15408 D(p->level++);
15409 if (p->error_indicator) {
15410 D(p->level--);
15411 return NULL;
15412 }
15413 KeyValuePair* _res = NULL;
15414 int _mark = p->mark;
15415 { // expression ':' expression
15416 if (p->error_indicator) {
15417 D(p->level--);
15418 return NULL;
15419 }
15420 D(fprintf(stderr, "%*c> kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':' expression"));
15421 Token * _literal;
15422 expr_ty a;
15423 expr_ty b;
15424 if (
15425 (a = expression_rule(p)) // expression
15426 &&
15427 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
15428 &&
15429 (b = expression_rule(p)) // expression
15430 )
15431 {
15432 D(fprintf(stderr, "%*c+ kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':' expression"));
15433 _res = _PyPegen_key_value_pair ( p , a , b );
15434 if (_res == NULL && PyErr_Occurred()) {
15435 p->error_indicator = 1;
15436 D(p->level--);
15437 return NULL;
15438 }
15439 goto done;
15440 }
15441 p->mark = _mark;
15442 D(fprintf(stderr, "%*c%s kvpair[%d-%d]: %s failed!\n", p->level, ' ',
15443 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' expression"));
15444 }
15445 _res = NULL;
15446 done:
15447 D(p->level--);
15448 return _res;
15449}
15450
15451// for_if_clauses: for_if_clause+
Pablo Galindoa5634c42020-09-16 19:42:00 +010015452static asdl_comprehension_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015453for_if_clauses_rule(Parser *p)
15454{
15455 D(p->level++);
15456 if (p->error_indicator) {
15457 D(p->level--);
15458 return NULL;
15459 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010015460 asdl_comprehension_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015461 int _mark = p->mark;
15462 { // for_if_clause+
15463 if (p->error_indicator) {
15464 D(p->level--);
15465 return NULL;
15466 }
15467 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 +010015468 asdl_comprehension_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015469 if (
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070015470 (a = (asdl_comprehension_seq*)_loop1_120_rule(p)) // for_if_clause+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015471 )
15472 {
15473 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 +010015474 _res = a;
15475 if (_res == NULL && PyErr_Occurred()) {
15476 p->error_indicator = 1;
15477 D(p->level--);
15478 return NULL;
15479 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015480 goto done;
15481 }
15482 p->mark = _mark;
15483 D(fprintf(stderr, "%*c%s for_if_clauses[%d-%d]: %s failed!\n", p->level, ' ',
15484 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "for_if_clause+"));
15485 }
15486 _res = NULL;
15487 done:
15488 D(p->level--);
15489 return _res;
15490}
15491
15492// for_if_clause:
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015493// | ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*
15494// | 'for' star_targets 'in' ~ disjunction (('if' disjunction))*
15495// | invalid_for_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015496static comprehension_ty
15497for_if_clause_rule(Parser *p)
15498{
15499 D(p->level++);
15500 if (p->error_indicator) {
15501 D(p->level--);
15502 return NULL;
15503 }
15504 comprehension_ty _res = NULL;
15505 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015506 { // ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015507 if (p->error_indicator) {
15508 D(p->level--);
15509 return NULL;
15510 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015511 D(fprintf(stderr, "%*c> for_if_clause[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
15512 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015513 Token * _keyword;
15514 Token * _keyword_1;
15515 expr_ty a;
15516 Token * async_var;
15517 expr_ty b;
Pablo Galindoa5634c42020-09-16 19:42:00 +010015518 asdl_expr_seq* c;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015519 if (
15520 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
15521 &&
15522 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
15523 &&
15524 (a = star_targets_rule(p)) // star_targets
15525 &&
15526 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
15527 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015528 (_cut_var = 1)
15529 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015530 (b = disjunction_rule(p)) // disjunction
15531 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070015532 (c = (asdl_expr_seq*)_loop0_121_rule(p)) // (('if' disjunction))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015533 )
15534 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015535 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 +020015536 _res = CHECK_VERSION ( comprehension_ty , 6 , "Async comprehensions are" , _PyAST_comprehension ( a , b , c , 1 , p -> arena ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015537 if (_res == NULL && PyErr_Occurred()) {
15538 p->error_indicator = 1;
15539 D(p->level--);
15540 return NULL;
15541 }
15542 goto done;
15543 }
15544 p->mark = _mark;
15545 D(fprintf(stderr, "%*c%s for_if_clause[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015546 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
15547 if (_cut_var) {
15548 D(p->level--);
15549 return NULL;
15550 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015551 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015552 { // 'for' star_targets 'in' ~ disjunction (('if' disjunction))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015553 if (p->error_indicator) {
15554 D(p->level--);
15555 return NULL;
15556 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015557 D(fprintf(stderr, "%*c> for_if_clause[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
15558 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015559 Token * _keyword;
15560 Token * _keyword_1;
15561 expr_ty a;
15562 expr_ty b;
Pablo Galindoa5634c42020-09-16 19:42:00 +010015563 asdl_expr_seq* c;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015564 if (
15565 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
15566 &&
15567 (a = star_targets_rule(p)) // star_targets
15568 &&
15569 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
15570 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015571 (_cut_var = 1)
15572 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015573 (b = disjunction_rule(p)) // disjunction
15574 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070015575 (c = (asdl_expr_seq*)_loop0_122_rule(p)) // (('if' disjunction))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015576 )
15577 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015578 D(fprintf(stderr, "%*c+ for_if_clause[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015579 _res = _PyAST_comprehension ( a , b , c , 0 , p -> arena );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015580 if (_res == NULL && PyErr_Occurred()) {
15581 p->error_indicator = 1;
15582 D(p->level--);
15583 return NULL;
15584 }
15585 goto done;
15586 }
15587 p->mark = _mark;
15588 D(fprintf(stderr, "%*c%s for_if_clause[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015589 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
15590 if (_cut_var) {
15591 D(p->level--);
15592 return NULL;
15593 }
15594 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020015595 if (p->call_invalid_rules) { // invalid_for_target
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015596 if (p->error_indicator) {
15597 D(p->level--);
15598 return NULL;
15599 }
15600 D(fprintf(stderr, "%*c> for_if_clause[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_for_target"));
15601 void *invalid_for_target_var;
15602 if (
15603 (invalid_for_target_var = invalid_for_target_rule(p)) // invalid_for_target
15604 )
15605 {
15606 D(fprintf(stderr, "%*c+ for_if_clause[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_for_target"));
15607 _res = invalid_for_target_var;
15608 goto done;
15609 }
15610 p->mark = _mark;
15611 D(fprintf(stderr, "%*c%s for_if_clause[%d-%d]: %s failed!\n", p->level, ' ',
15612 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_for_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015613 }
15614 _res = NULL;
15615 done:
15616 D(p->level--);
15617 return _res;
15618}
15619
15620// yield_expr: 'yield' 'from' expression | 'yield' star_expressions?
15621static expr_ty
15622yield_expr_rule(Parser *p)
15623{
15624 D(p->level++);
15625 if (p->error_indicator) {
15626 D(p->level--);
15627 return NULL;
15628 }
15629 expr_ty _res = NULL;
15630 int _mark = p->mark;
15631 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
15632 p->error_indicator = 1;
15633 D(p->level--);
15634 return NULL;
15635 }
15636 int _start_lineno = p->tokens[_mark]->lineno;
15637 UNUSED(_start_lineno); // Only used by EXTRA macro
15638 int _start_col_offset = p->tokens[_mark]->col_offset;
15639 UNUSED(_start_col_offset); // Only used by EXTRA macro
15640 { // 'yield' 'from' expression
15641 if (p->error_indicator) {
15642 D(p->level--);
15643 return NULL;
15644 }
15645 D(fprintf(stderr, "%*c> yield_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'yield' 'from' expression"));
15646 Token * _keyword;
15647 Token * _keyword_1;
15648 expr_ty a;
15649 if (
15650 (_keyword = _PyPegen_expect_token(p, 504)) // token='yield'
15651 &&
15652 (_keyword_1 = _PyPegen_expect_token(p, 514)) // token='from'
15653 &&
15654 (a = expression_rule(p)) // expression
15655 )
15656 {
15657 D(fprintf(stderr, "%*c+ yield_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'yield' 'from' expression"));
15658 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15659 if (_token == NULL) {
15660 D(p->level--);
15661 return NULL;
15662 }
15663 int _end_lineno = _token->end_lineno;
15664 UNUSED(_end_lineno); // Only used by EXTRA macro
15665 int _end_col_offset = _token->end_col_offset;
15666 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015667 _res = _PyAST_YieldFrom ( a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015668 if (_res == NULL && PyErr_Occurred()) {
15669 p->error_indicator = 1;
15670 D(p->level--);
15671 return NULL;
15672 }
15673 goto done;
15674 }
15675 p->mark = _mark;
15676 D(fprintf(stderr, "%*c%s yield_expr[%d-%d]: %s failed!\n", p->level, ' ',
15677 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'yield' 'from' expression"));
15678 }
15679 { // 'yield' star_expressions?
15680 if (p->error_indicator) {
15681 D(p->level--);
15682 return NULL;
15683 }
15684 D(fprintf(stderr, "%*c> yield_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'yield' star_expressions?"));
15685 Token * _keyword;
15686 void *a;
15687 if (
15688 (_keyword = _PyPegen_expect_token(p, 504)) // token='yield'
15689 &&
15690 (a = star_expressions_rule(p), 1) // star_expressions?
15691 )
15692 {
15693 D(fprintf(stderr, "%*c+ yield_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'yield' star_expressions?"));
15694 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15695 if (_token == NULL) {
15696 D(p->level--);
15697 return NULL;
15698 }
15699 int _end_lineno = _token->end_lineno;
15700 UNUSED(_end_lineno); // Only used by EXTRA macro
15701 int _end_col_offset = _token->end_col_offset;
15702 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015703 _res = _PyAST_Yield ( a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015704 if (_res == NULL && PyErr_Occurred()) {
15705 p->error_indicator = 1;
15706 D(p->level--);
15707 return NULL;
15708 }
15709 goto done;
15710 }
15711 p->mark = _mark;
15712 D(fprintf(stderr, "%*c%s yield_expr[%d-%d]: %s failed!\n", p->level, ' ',
15713 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'yield' star_expressions?"));
15714 }
15715 _res = NULL;
15716 done:
15717 D(p->level--);
15718 return _res;
15719}
15720
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020015721// arguments: args ','? &')' | invalid_arguments
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015722static expr_ty
15723arguments_rule(Parser *p)
15724{
15725 D(p->level++);
15726 if (p->error_indicator) {
15727 D(p->level--);
15728 return NULL;
15729 }
15730 expr_ty _res = NULL;
15731 if (_PyPegen_is_memoized(p, arguments_type, &_res)) {
15732 D(p->level--);
15733 return _res;
15734 }
15735 int _mark = p->mark;
15736 { // args ','? &')'
15737 if (p->error_indicator) {
15738 D(p->level--);
15739 return NULL;
15740 }
15741 D(fprintf(stderr, "%*c> arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args ','? &')'"));
15742 void *_opt_var;
15743 UNUSED(_opt_var); // Silence compiler warnings
15744 expr_ty a;
15745 if (
15746 (a = args_rule(p)) // args
15747 &&
15748 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
15749 &&
15750 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
15751 )
15752 {
15753 D(fprintf(stderr, "%*c+ arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args ','? &')'"));
15754 _res = a;
15755 if (_res == NULL && PyErr_Occurred()) {
15756 p->error_indicator = 1;
15757 D(p->level--);
15758 return NULL;
15759 }
15760 goto done;
15761 }
15762 p->mark = _mark;
15763 D(fprintf(stderr, "%*c%s arguments[%d-%d]: %s failed!\n", p->level, ' ',
15764 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ','? &')'"));
15765 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020015766 if (p->call_invalid_rules) { // invalid_arguments
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015767 if (p->error_indicator) {
15768 D(p->level--);
15769 return NULL;
15770 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020015771 D(fprintf(stderr, "%*c> arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_arguments"));
15772 void *invalid_arguments_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015773 if (
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020015774 (invalid_arguments_var = invalid_arguments_rule(p)) // invalid_arguments
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015775 )
15776 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020015777 D(fprintf(stderr, "%*c+ arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_arguments"));
15778 _res = invalid_arguments_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015779 goto done;
15780 }
15781 p->mark = _mark;
15782 D(fprintf(stderr, "%*c%s arguments[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020015783 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_arguments"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015784 }
15785 _res = NULL;
15786 done:
15787 _PyPegen_insert_memo(p, _mark, arguments_type, _res);
15788 D(p->level--);
15789 return _res;
15790}
15791
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070015792// args:
15793// | ','.(starred_expression | (assigment_expression | expression !':=') !'=')+ [',' kwargs]
15794// | kwargs
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015795static expr_ty
15796args_rule(Parser *p)
15797{
15798 D(p->level++);
15799 if (p->error_indicator) {
15800 D(p->level--);
15801 return NULL;
15802 }
15803 expr_ty _res = NULL;
15804 int _mark = p->mark;
15805 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
15806 p->error_indicator = 1;
15807 D(p->level--);
15808 return NULL;
15809 }
15810 int _start_lineno = p->tokens[_mark]->lineno;
15811 UNUSED(_start_lineno); // Only used by EXTRA macro
15812 int _start_col_offset = p->tokens[_mark]->col_offset;
15813 UNUSED(_start_col_offset); // Only used by EXTRA macro
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070015814 { // ','.(starred_expression | (assigment_expression | expression !':=') !'=')+ [',' kwargs]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015815 if (p->error_indicator) {
15816 D(p->level--);
15817 return NULL;
15818 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070015819 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 +010015820 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015821 void *b;
15822 if (
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070015823 (a = (asdl_expr_seq*)_gather_123_rule(p)) // ','.(starred_expression | (assigment_expression | expression !':=') !'=')+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015824 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070015825 (b = _tmp_125_rule(p), 1) // [',' kwargs]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015826 )
15827 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070015828 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 +010015829 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15830 if (_token == NULL) {
15831 D(p->level--);
15832 return NULL;
15833 }
15834 int _end_lineno = _token->end_lineno;
15835 UNUSED(_end_lineno); // Only used by EXTRA macro
15836 int _end_col_offset = _token->end_col_offset;
15837 UNUSED(_end_col_offset); // Only used by EXTRA macro
15838 _res = _PyPegen_collect_call_seqs ( p , a , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015839 if (_res == NULL && PyErr_Occurred()) {
15840 p->error_indicator = 1;
15841 D(p->level--);
15842 return NULL;
15843 }
15844 goto done;
15845 }
15846 p->mark = _mark;
15847 D(fprintf(stderr, "%*c%s args[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070015848 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.(starred_expression | (assigment_expression | expression !':=') !'=')+ [',' kwargs]"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015849 }
15850 { // kwargs
15851 if (p->error_indicator) {
15852 D(p->level--);
15853 return NULL;
15854 }
15855 D(fprintf(stderr, "%*c> args[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwargs"));
15856 asdl_seq* a;
15857 if (
15858 (a = kwargs_rule(p)) // kwargs
15859 )
15860 {
15861 D(fprintf(stderr, "%*c+ args[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwargs"));
15862 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15863 if (_token == NULL) {
15864 D(p->level--);
15865 return NULL;
15866 }
15867 int _end_lineno = _token->end_lineno;
15868 UNUSED(_end_lineno); // Only used by EXTRA macro
15869 int _end_col_offset = _token->end_col_offset;
15870 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015871 _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 +010015872 if (_res == NULL && PyErr_Occurred()) {
15873 p->error_indicator = 1;
15874 D(p->level--);
15875 return NULL;
15876 }
15877 goto done;
15878 }
15879 p->mark = _mark;
15880 D(fprintf(stderr, "%*c%s args[%d-%d]: %s failed!\n", p->level, ' ',
15881 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwargs"));
15882 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015883 _res = NULL;
15884 done:
15885 D(p->level--);
15886 return _res;
15887}
15888
15889// kwargs:
15890// | ','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+
15891// | ','.kwarg_or_starred+
15892// | ','.kwarg_or_double_starred+
15893static asdl_seq*
15894kwargs_rule(Parser *p)
15895{
15896 D(p->level++);
15897 if (p->error_indicator) {
15898 D(p->level--);
15899 return NULL;
15900 }
15901 asdl_seq* _res = NULL;
15902 int _mark = p->mark;
15903 { // ','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+
15904 if (p->error_indicator) {
15905 D(p->level--);
15906 return NULL;
15907 }
15908 D(fprintf(stderr, "%*c> kwargs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+"));
15909 Token * _literal;
15910 asdl_seq * a;
15911 asdl_seq * b;
15912 if (
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070015913 (a = _gather_126_rule(p)) // ','.kwarg_or_starred+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015914 &&
15915 (_literal = _PyPegen_expect_token(p, 12)) // token=','
15916 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070015917 (b = _gather_128_rule(p)) // ','.kwarg_or_double_starred+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015918 )
15919 {
15920 D(fprintf(stderr, "%*c+ kwargs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+"));
15921 _res = _PyPegen_join_sequences ( p , a , b );
15922 if (_res == NULL && PyErr_Occurred()) {
15923 p->error_indicator = 1;
15924 D(p->level--);
15925 return NULL;
15926 }
15927 goto done;
15928 }
15929 p->mark = _mark;
15930 D(fprintf(stderr, "%*c%s kwargs[%d-%d]: %s failed!\n", p->level, ' ',
15931 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+"));
15932 }
15933 { // ','.kwarg_or_starred+
15934 if (p->error_indicator) {
15935 D(p->level--);
15936 return NULL;
15937 }
15938 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 -070015939 asdl_seq * _gather_130_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015940 if (
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070015941 (_gather_130_var = _gather_130_rule(p)) // ','.kwarg_or_starred+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015942 )
15943 {
15944 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 -070015945 _res = _gather_130_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015946 goto done;
15947 }
15948 p->mark = _mark;
15949 D(fprintf(stderr, "%*c%s kwargs[%d-%d]: %s failed!\n", p->level, ' ',
15950 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.kwarg_or_starred+"));
15951 }
15952 { // ','.kwarg_or_double_starred+
15953 if (p->error_indicator) {
15954 D(p->level--);
15955 return NULL;
15956 }
15957 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 -070015958 asdl_seq * _gather_132_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015959 if (
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070015960 (_gather_132_var = _gather_132_rule(p)) // ','.kwarg_or_double_starred+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015961 )
15962 {
15963 D(fprintf(stderr, "%*c+ kwargs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_double_starred+"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070015964 _res = _gather_132_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015965 goto done;
15966 }
15967 p->mark = _mark;
15968 D(fprintf(stderr, "%*c%s kwargs[%d-%d]: %s failed!\n", p->level, ' ',
15969 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.kwarg_or_double_starred+"));
15970 }
15971 _res = NULL;
15972 done:
15973 D(p->level--);
15974 return _res;
15975}
15976
15977// starred_expression: '*' expression
15978static expr_ty
15979starred_expression_rule(Parser *p)
15980{
15981 D(p->level++);
15982 if (p->error_indicator) {
15983 D(p->level--);
15984 return NULL;
15985 }
15986 expr_ty _res = NULL;
15987 int _mark = p->mark;
15988 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
15989 p->error_indicator = 1;
15990 D(p->level--);
15991 return NULL;
15992 }
15993 int _start_lineno = p->tokens[_mark]->lineno;
15994 UNUSED(_start_lineno); // Only used by EXTRA macro
15995 int _start_col_offset = p->tokens[_mark]->col_offset;
15996 UNUSED(_start_col_offset); // Only used by EXTRA macro
15997 { // '*' expression
15998 if (p->error_indicator) {
15999 D(p->level--);
16000 return NULL;
16001 }
16002 D(fprintf(stderr, "%*c> starred_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' expression"));
16003 Token * _literal;
16004 expr_ty a;
16005 if (
16006 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
16007 &&
16008 (a = expression_rule(p)) // expression
16009 )
16010 {
16011 D(fprintf(stderr, "%*c+ starred_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' expression"));
16012 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16013 if (_token == NULL) {
16014 D(p->level--);
16015 return NULL;
16016 }
16017 int _end_lineno = _token->end_lineno;
16018 UNUSED(_end_lineno); // Only used by EXTRA macro
16019 int _end_col_offset = _token->end_col_offset;
16020 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016021 _res = _PyAST_Starred ( a , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016022 if (_res == NULL && PyErr_Occurred()) {
16023 p->error_indicator = 1;
16024 D(p->level--);
16025 return NULL;
16026 }
16027 goto done;
16028 }
16029 p->mark = _mark;
16030 D(fprintf(stderr, "%*c%s starred_expression[%d-%d]: %s failed!\n", p->level, ' ',
16031 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' expression"));
16032 }
16033 _res = NULL;
16034 done:
16035 D(p->level--);
16036 return _res;
16037}
16038
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070016039// kwarg_or_starred: invalid_kwarg | NAME '=' expression | starred_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016040static KeywordOrStarred*
16041kwarg_or_starred_rule(Parser *p)
16042{
16043 D(p->level++);
16044 if (p->error_indicator) {
16045 D(p->level--);
16046 return NULL;
16047 }
16048 KeywordOrStarred* _res = NULL;
16049 int _mark = p->mark;
16050 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
16051 p->error_indicator = 1;
16052 D(p->level--);
16053 return NULL;
16054 }
16055 int _start_lineno = p->tokens[_mark]->lineno;
16056 UNUSED(_start_lineno); // Only used by EXTRA macro
16057 int _start_col_offset = p->tokens[_mark]->col_offset;
16058 UNUSED(_start_col_offset); // Only used by EXTRA macro
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070016059 if (p->call_invalid_rules) { // invalid_kwarg
16060 if (p->error_indicator) {
16061 D(p->level--);
16062 return NULL;
16063 }
16064 D(fprintf(stderr, "%*c> kwarg_or_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_kwarg"));
16065 void *invalid_kwarg_var;
16066 if (
16067 (invalid_kwarg_var = invalid_kwarg_rule(p)) // invalid_kwarg
16068 )
16069 {
16070 D(fprintf(stderr, "%*c+ kwarg_or_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_kwarg"));
16071 _res = invalid_kwarg_var;
16072 goto done;
16073 }
16074 p->mark = _mark;
16075 D(fprintf(stderr, "%*c%s kwarg_or_starred[%d-%d]: %s failed!\n", p->level, ' ',
16076 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_kwarg"));
16077 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016078 { // NAME '=' expression
16079 if (p->error_indicator) {
16080 D(p->level--);
16081 return NULL;
16082 }
16083 D(fprintf(stderr, "%*c> kwarg_or_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME '=' expression"));
16084 Token * _literal;
16085 expr_ty a;
16086 expr_ty b;
16087 if (
16088 (a = _PyPegen_name_token(p)) // NAME
16089 &&
16090 (_literal = _PyPegen_expect_token(p, 22)) // token='='
16091 &&
16092 (b = expression_rule(p)) // expression
16093 )
16094 {
16095 D(fprintf(stderr, "%*c+ kwarg_or_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '=' expression"));
16096 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16097 if (_token == NULL) {
16098 D(p->level--);
16099 return NULL;
16100 }
16101 int _end_lineno = _token->end_lineno;
16102 UNUSED(_end_lineno); // Only used by EXTRA macro
16103 int _end_col_offset = _token->end_col_offset;
16104 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016105 _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 +010016106 if (_res == NULL && PyErr_Occurred()) {
16107 p->error_indicator = 1;
16108 D(p->level--);
16109 return NULL;
16110 }
16111 goto done;
16112 }
16113 p->mark = _mark;
16114 D(fprintf(stderr, "%*c%s kwarg_or_starred[%d-%d]: %s failed!\n", p->level, ' ',
16115 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' expression"));
16116 }
16117 { // starred_expression
16118 if (p->error_indicator) {
16119 D(p->level--);
16120 return NULL;
16121 }
16122 D(fprintf(stderr, "%*c> kwarg_or_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "starred_expression"));
16123 expr_ty a;
16124 if (
16125 (a = starred_expression_rule(p)) // starred_expression
16126 )
16127 {
16128 D(fprintf(stderr, "%*c+ kwarg_or_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "starred_expression"));
16129 _res = _PyPegen_keyword_or_starred ( p , a , 0 );
16130 if (_res == NULL && PyErr_Occurred()) {
16131 p->error_indicator = 1;
16132 D(p->level--);
16133 return NULL;
16134 }
16135 goto done;
16136 }
16137 p->mark = _mark;
16138 D(fprintf(stderr, "%*c%s kwarg_or_starred[%d-%d]: %s failed!\n", p->level, ' ',
16139 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "starred_expression"));
16140 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016141 _res = NULL;
16142 done:
16143 D(p->level--);
16144 return _res;
16145}
16146
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070016147// kwarg_or_double_starred: invalid_kwarg | NAME '=' expression | '**' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016148static KeywordOrStarred*
16149kwarg_or_double_starred_rule(Parser *p)
16150{
16151 D(p->level++);
16152 if (p->error_indicator) {
16153 D(p->level--);
16154 return NULL;
16155 }
16156 KeywordOrStarred* _res = NULL;
16157 int _mark = p->mark;
16158 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
16159 p->error_indicator = 1;
16160 D(p->level--);
16161 return NULL;
16162 }
16163 int _start_lineno = p->tokens[_mark]->lineno;
16164 UNUSED(_start_lineno); // Only used by EXTRA macro
16165 int _start_col_offset = p->tokens[_mark]->col_offset;
16166 UNUSED(_start_col_offset); // Only used by EXTRA macro
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070016167 if (p->call_invalid_rules) { // invalid_kwarg
16168 if (p->error_indicator) {
16169 D(p->level--);
16170 return NULL;
16171 }
16172 D(fprintf(stderr, "%*c> kwarg_or_double_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_kwarg"));
16173 void *invalid_kwarg_var;
16174 if (
16175 (invalid_kwarg_var = invalid_kwarg_rule(p)) // invalid_kwarg
16176 )
16177 {
16178 D(fprintf(stderr, "%*c+ kwarg_or_double_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_kwarg"));
16179 _res = invalid_kwarg_var;
16180 goto done;
16181 }
16182 p->mark = _mark;
16183 D(fprintf(stderr, "%*c%s kwarg_or_double_starred[%d-%d]: %s failed!\n", p->level, ' ',
16184 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_kwarg"));
16185 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016186 { // NAME '=' expression
16187 if (p->error_indicator) {
16188 D(p->level--);
16189 return NULL;
16190 }
16191 D(fprintf(stderr, "%*c> kwarg_or_double_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME '=' expression"));
16192 Token * _literal;
16193 expr_ty a;
16194 expr_ty b;
16195 if (
16196 (a = _PyPegen_name_token(p)) // NAME
16197 &&
16198 (_literal = _PyPegen_expect_token(p, 22)) // token='='
16199 &&
16200 (b = expression_rule(p)) // expression
16201 )
16202 {
16203 D(fprintf(stderr, "%*c+ kwarg_or_double_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '=' expression"));
16204 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16205 if (_token == NULL) {
16206 D(p->level--);
16207 return NULL;
16208 }
16209 int _end_lineno = _token->end_lineno;
16210 UNUSED(_end_lineno); // Only used by EXTRA macro
16211 int _end_col_offset = _token->end_col_offset;
16212 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016213 _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 +010016214 if (_res == NULL && PyErr_Occurred()) {
16215 p->error_indicator = 1;
16216 D(p->level--);
16217 return NULL;
16218 }
16219 goto done;
16220 }
16221 p->mark = _mark;
16222 D(fprintf(stderr, "%*c%s kwarg_or_double_starred[%d-%d]: %s failed!\n", p->level, ' ',
16223 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' expression"));
16224 }
16225 { // '**' expression
16226 if (p->error_indicator) {
16227 D(p->level--);
16228 return NULL;
16229 }
16230 D(fprintf(stderr, "%*c> kwarg_or_double_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' expression"));
16231 Token * _literal;
16232 expr_ty a;
16233 if (
16234 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
16235 &&
16236 (a = expression_rule(p)) // expression
16237 )
16238 {
16239 D(fprintf(stderr, "%*c+ kwarg_or_double_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' expression"));
16240 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16241 if (_token == NULL) {
16242 D(p->level--);
16243 return NULL;
16244 }
16245 int _end_lineno = _token->end_lineno;
16246 UNUSED(_end_lineno); // Only used by EXTRA macro
16247 int _end_col_offset = _token->end_col_offset;
16248 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016249 _res = _PyPegen_keyword_or_starred ( p , CHECK ( keyword_ty , _PyAST_keyword ( NULL , a , EXTRA ) ) , 1 );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016250 if (_res == NULL && PyErr_Occurred()) {
16251 p->error_indicator = 1;
16252 D(p->level--);
16253 return NULL;
16254 }
16255 goto done;
16256 }
16257 p->mark = _mark;
16258 D(fprintf(stderr, "%*c%s kwarg_or_double_starred[%d-%d]: %s failed!\n", p->level, ' ',
16259 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' expression"));
16260 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016261 _res = NULL;
16262 done:
16263 D(p->level--);
16264 return _res;
16265}
16266
16267// star_targets: star_target !',' | star_target ((',' star_target))* ','?
16268static expr_ty
16269star_targets_rule(Parser *p)
16270{
16271 D(p->level++);
16272 if (p->error_indicator) {
16273 D(p->level--);
16274 return NULL;
16275 }
16276 expr_ty _res = NULL;
16277 int _mark = p->mark;
16278 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
16279 p->error_indicator = 1;
16280 D(p->level--);
16281 return NULL;
16282 }
16283 int _start_lineno = p->tokens[_mark]->lineno;
16284 UNUSED(_start_lineno); // Only used by EXTRA macro
16285 int _start_col_offset = p->tokens[_mark]->col_offset;
16286 UNUSED(_start_col_offset); // Only used by EXTRA macro
16287 { // star_target !','
16288 if (p->error_indicator) {
16289 D(p->level--);
16290 return NULL;
16291 }
16292 D(fprintf(stderr, "%*c> star_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target !','"));
16293 expr_ty a;
16294 if (
16295 (a = star_target_rule(p)) // star_target
16296 &&
16297 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 12) // token=','
16298 )
16299 {
16300 D(fprintf(stderr, "%*c+ star_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target !','"));
16301 _res = a;
16302 if (_res == NULL && PyErr_Occurred()) {
16303 p->error_indicator = 1;
16304 D(p->level--);
16305 return NULL;
16306 }
16307 goto done;
16308 }
16309 p->mark = _mark;
16310 D(fprintf(stderr, "%*c%s star_targets[%d-%d]: %s failed!\n", p->level, ' ',
16311 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target !','"));
16312 }
16313 { // star_target ((',' star_target))* ','?
16314 if (p->error_indicator) {
16315 D(p->level--);
16316 return NULL;
16317 }
16318 D(fprintf(stderr, "%*c> star_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target ((',' star_target))* ','?"));
16319 void *_opt_var;
16320 UNUSED(_opt_var); // Silence compiler warnings
16321 expr_ty a;
16322 asdl_seq * b;
16323 if (
16324 (a = star_target_rule(p)) // star_target
16325 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070016326 (b = _loop0_134_rule(p)) // ((',' star_target))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016327 &&
16328 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
16329 )
16330 {
16331 D(fprintf(stderr, "%*c+ star_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target ((',' star_target))* ','?"));
16332 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16333 if (_token == NULL) {
16334 D(p->level--);
16335 return NULL;
16336 }
16337 int _end_lineno = _token->end_lineno;
16338 UNUSED(_end_lineno); // Only used by EXTRA macro
16339 int _end_col_offset = _token->end_col_offset;
16340 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016341 _res = _PyAST_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , a , b ) ) , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016342 if (_res == NULL && PyErr_Occurred()) {
16343 p->error_indicator = 1;
16344 D(p->level--);
16345 return NULL;
16346 }
16347 goto done;
16348 }
16349 p->mark = _mark;
16350 D(fprintf(stderr, "%*c%s star_targets[%d-%d]: %s failed!\n", p->level, ' ',
16351 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target ((',' star_target))* ','?"));
16352 }
16353 _res = NULL;
16354 done:
16355 D(p->level--);
16356 return _res;
16357}
16358
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016359// star_targets_list_seq: ','.star_target+ ','?
Pablo Galindoa5634c42020-09-16 19:42:00 +010016360static asdl_expr_seq*
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016361star_targets_list_seq_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016362{
16363 D(p->level++);
16364 if (p->error_indicator) {
16365 D(p->level--);
16366 return NULL;
16367 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010016368 asdl_expr_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016369 int _mark = p->mark;
16370 { // ','.star_target+ ','?
16371 if (p->error_indicator) {
16372 D(p->level--);
16373 return NULL;
16374 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016375 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 +010016376 void *_opt_var;
16377 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +010016378 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016379 if (
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070016380 (a = (asdl_expr_seq*)_gather_135_rule(p)) // ','.star_target+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016381 &&
16382 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
16383 )
16384 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016385 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 +010016386 _res = a;
16387 if (_res == NULL && PyErr_Occurred()) {
16388 p->error_indicator = 1;
16389 D(p->level--);
16390 return NULL;
16391 }
16392 goto done;
16393 }
16394 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016395 D(fprintf(stderr, "%*c%s star_targets_list_seq[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016396 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.star_target+ ','?"));
16397 }
16398 _res = NULL;
16399 done:
16400 D(p->level--);
16401 return _res;
16402}
16403
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016404// star_targets_tuple_seq: star_target ((',' star_target))+ ','? | star_target ','
16405static asdl_expr_seq*
16406star_targets_tuple_seq_rule(Parser *p)
16407{
16408 D(p->level++);
16409 if (p->error_indicator) {
16410 D(p->level--);
16411 return NULL;
16412 }
16413 asdl_expr_seq* _res = NULL;
16414 int _mark = p->mark;
16415 { // star_target ((',' star_target))+ ','?
16416 if (p->error_indicator) {
16417 D(p->level--);
16418 return NULL;
16419 }
16420 D(fprintf(stderr, "%*c> star_targets_tuple_seq[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target ((',' star_target))+ ','?"));
16421 void *_opt_var;
16422 UNUSED(_opt_var); // Silence compiler warnings
16423 expr_ty a;
16424 asdl_seq * b;
16425 if (
16426 (a = star_target_rule(p)) // star_target
16427 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070016428 (b = _loop1_137_rule(p)) // ((',' star_target))+
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016429 &&
16430 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
16431 )
16432 {
16433 D(fprintf(stderr, "%*c+ star_targets_tuple_seq[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target ((',' star_target))+ ','?"));
16434 _res = ( asdl_expr_seq * ) _PyPegen_seq_insert_in_front ( p , a , b );
16435 if (_res == NULL && PyErr_Occurred()) {
16436 p->error_indicator = 1;
16437 D(p->level--);
16438 return NULL;
16439 }
16440 goto done;
16441 }
16442 p->mark = _mark;
16443 D(fprintf(stderr, "%*c%s star_targets_tuple_seq[%d-%d]: %s failed!\n", p->level, ' ',
16444 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target ((',' star_target))+ ','?"));
16445 }
16446 { // star_target ','
16447 if (p->error_indicator) {
16448 D(p->level--);
16449 return NULL;
16450 }
16451 D(fprintf(stderr, "%*c> star_targets_tuple_seq[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target ','"));
16452 Token * _literal;
16453 expr_ty a;
16454 if (
16455 (a = star_target_rule(p)) // star_target
16456 &&
16457 (_literal = _PyPegen_expect_token(p, 12)) // token=','
16458 )
16459 {
16460 D(fprintf(stderr, "%*c+ star_targets_tuple_seq[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target ','"));
16461 _res = ( asdl_expr_seq * ) _PyPegen_singleton_seq ( p , a );
16462 if (_res == NULL && PyErr_Occurred()) {
16463 p->error_indicator = 1;
16464 D(p->level--);
16465 return NULL;
16466 }
16467 goto done;
16468 }
16469 p->mark = _mark;
16470 D(fprintf(stderr, "%*c%s star_targets_tuple_seq[%d-%d]: %s failed!\n", p->level, ' ',
16471 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target ','"));
16472 }
16473 _res = NULL;
16474 done:
16475 D(p->level--);
16476 return _res;
16477}
16478
16479// star_target: '*' (!'*' star_target) | target_with_star_atom
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016480static expr_ty
16481star_target_rule(Parser *p)
16482{
16483 D(p->level++);
16484 if (p->error_indicator) {
16485 D(p->level--);
16486 return NULL;
16487 }
16488 expr_ty _res = NULL;
16489 if (_PyPegen_is_memoized(p, star_target_type, &_res)) {
16490 D(p->level--);
16491 return _res;
16492 }
16493 int _mark = p->mark;
16494 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
16495 p->error_indicator = 1;
16496 D(p->level--);
16497 return NULL;
16498 }
16499 int _start_lineno = p->tokens[_mark]->lineno;
16500 UNUSED(_start_lineno); // Only used by EXTRA macro
16501 int _start_col_offset = p->tokens[_mark]->col_offset;
16502 UNUSED(_start_col_offset); // Only used by EXTRA macro
16503 { // '*' (!'*' star_target)
16504 if (p->error_indicator) {
16505 D(p->level--);
16506 return NULL;
16507 }
16508 D(fprintf(stderr, "%*c> star_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (!'*' star_target)"));
16509 Token * _literal;
16510 void *a;
16511 if (
16512 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
16513 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070016514 (a = _tmp_138_rule(p)) // !'*' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016515 )
16516 {
16517 D(fprintf(stderr, "%*c+ star_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' (!'*' star_target)"));
16518 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16519 if (_token == NULL) {
16520 D(p->level--);
16521 return NULL;
16522 }
16523 int _end_lineno = _token->end_lineno;
16524 UNUSED(_end_lineno); // Only used by EXTRA macro
16525 int _end_col_offset = _token->end_col_offset;
16526 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016527 _res = _PyAST_Starred ( CHECK ( expr_ty , _PyPegen_set_expr_context ( p , a , Store ) ) , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016528 if (_res == NULL && PyErr_Occurred()) {
16529 p->error_indicator = 1;
16530 D(p->level--);
16531 return NULL;
16532 }
16533 goto done;
16534 }
16535 p->mark = _mark;
16536 D(fprintf(stderr, "%*c%s star_target[%d-%d]: %s failed!\n", p->level, ' ',
16537 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' (!'*' star_target)"));
16538 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016539 { // target_with_star_atom
16540 if (p->error_indicator) {
16541 D(p->level--);
16542 return NULL;
16543 }
16544 D(fprintf(stderr, "%*c> star_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "target_with_star_atom"));
16545 expr_ty target_with_star_atom_var;
16546 if (
16547 (target_with_star_atom_var = target_with_star_atom_rule(p)) // target_with_star_atom
16548 )
16549 {
16550 D(fprintf(stderr, "%*c+ star_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "target_with_star_atom"));
16551 _res = target_with_star_atom_var;
16552 goto done;
16553 }
16554 p->mark = _mark;
16555 D(fprintf(stderr, "%*c%s star_target[%d-%d]: %s failed!\n", p->level, ' ',
16556 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "target_with_star_atom"));
16557 }
16558 _res = NULL;
16559 done:
16560 _PyPegen_insert_memo(p, _mark, star_target_type, _res);
16561 D(p->level--);
16562 return _res;
16563}
16564
16565// target_with_star_atom:
16566// | t_primary '.' NAME !t_lookahead
16567// | t_primary '[' slices ']' !t_lookahead
16568// | star_atom
16569static expr_ty
16570target_with_star_atom_rule(Parser *p)
16571{
16572 D(p->level++);
16573 if (p->error_indicator) {
16574 D(p->level--);
16575 return NULL;
16576 }
16577 expr_ty _res = NULL;
16578 if (_PyPegen_is_memoized(p, target_with_star_atom_type, &_res)) {
16579 D(p->level--);
16580 return _res;
16581 }
16582 int _mark = p->mark;
16583 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
16584 p->error_indicator = 1;
16585 D(p->level--);
16586 return NULL;
16587 }
16588 int _start_lineno = p->tokens[_mark]->lineno;
16589 UNUSED(_start_lineno); // Only used by EXTRA macro
16590 int _start_col_offset = p->tokens[_mark]->col_offset;
16591 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016592 { // t_primary '.' NAME !t_lookahead
16593 if (p->error_indicator) {
16594 D(p->level--);
16595 return NULL;
16596 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016597 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 +010016598 Token * _literal;
16599 expr_ty a;
16600 expr_ty b;
16601 if (
16602 (a = t_primary_rule(p)) // t_primary
16603 &&
16604 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
16605 &&
16606 (b = _PyPegen_name_token(p)) // NAME
16607 &&
16608 _PyPegen_lookahead(0, t_lookahead_rule, p)
16609 )
16610 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016611 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 +010016612 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16613 if (_token == NULL) {
16614 D(p->level--);
16615 return NULL;
16616 }
16617 int _end_lineno = _token->end_lineno;
16618 UNUSED(_end_lineno); // Only used by EXTRA macro
16619 int _end_col_offset = _token->end_col_offset;
16620 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016621 _res = _PyAST_Attribute ( a , b -> v . Name . id , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016622 if (_res == NULL && PyErr_Occurred()) {
16623 p->error_indicator = 1;
16624 D(p->level--);
16625 return NULL;
16626 }
16627 goto done;
16628 }
16629 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016630 D(fprintf(stderr, "%*c%s target_with_star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016631 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
16632 }
16633 { // t_primary '[' slices ']' !t_lookahead
16634 if (p->error_indicator) {
16635 D(p->level--);
16636 return NULL;
16637 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016638 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 +010016639 Token * _literal;
16640 Token * _literal_1;
16641 expr_ty a;
16642 expr_ty b;
16643 if (
16644 (a = t_primary_rule(p)) // t_primary
16645 &&
16646 (_literal = _PyPegen_expect_token(p, 9)) // token='['
16647 &&
16648 (b = slices_rule(p)) // slices
16649 &&
16650 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
16651 &&
16652 _PyPegen_lookahead(0, t_lookahead_rule, p)
16653 )
16654 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016655 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 +010016656 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16657 if (_token == NULL) {
16658 D(p->level--);
16659 return NULL;
16660 }
16661 int _end_lineno = _token->end_lineno;
16662 UNUSED(_end_lineno); // Only used by EXTRA macro
16663 int _end_col_offset = _token->end_col_offset;
16664 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016665 _res = _PyAST_Subscript ( a , b , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016666 if (_res == NULL && PyErr_Occurred()) {
16667 p->error_indicator = 1;
16668 D(p->level--);
16669 return NULL;
16670 }
16671 goto done;
16672 }
16673 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016674 D(fprintf(stderr, "%*c%s target_with_star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016675 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
16676 }
16677 { // star_atom
16678 if (p->error_indicator) {
16679 D(p->level--);
16680 return NULL;
16681 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016682 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 +010016683 expr_ty star_atom_var;
16684 if (
16685 (star_atom_var = star_atom_rule(p)) // star_atom
16686 )
16687 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016688 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 +010016689 _res = star_atom_var;
16690 goto done;
16691 }
16692 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016693 D(fprintf(stderr, "%*c%s target_with_star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016694 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_atom"));
16695 }
16696 _res = NULL;
16697 done:
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016698 _PyPegen_insert_memo(p, _mark, target_with_star_atom_type, _res);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016699 D(p->level--);
16700 return _res;
16701}
16702
16703// star_atom:
16704// | NAME
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016705// | '(' target_with_star_atom ')'
16706// | '(' star_targets_tuple_seq? ')'
16707// | '[' star_targets_list_seq? ']'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016708static expr_ty
16709star_atom_rule(Parser *p)
16710{
16711 D(p->level++);
16712 if (p->error_indicator) {
16713 D(p->level--);
16714 return NULL;
16715 }
16716 expr_ty _res = NULL;
16717 int _mark = p->mark;
16718 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
16719 p->error_indicator = 1;
16720 D(p->level--);
16721 return NULL;
16722 }
16723 int _start_lineno = p->tokens[_mark]->lineno;
16724 UNUSED(_start_lineno); // Only used by EXTRA macro
16725 int _start_col_offset = p->tokens[_mark]->col_offset;
16726 UNUSED(_start_col_offset); // Only used by EXTRA macro
16727 { // NAME
16728 if (p->error_indicator) {
16729 D(p->level--);
16730 return NULL;
16731 }
16732 D(fprintf(stderr, "%*c> star_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
16733 expr_ty a;
16734 if (
16735 (a = _PyPegen_name_token(p)) // NAME
16736 )
16737 {
16738 D(fprintf(stderr, "%*c+ star_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
16739 _res = _PyPegen_set_expr_context ( p , a , Store );
16740 if (_res == NULL && PyErr_Occurred()) {
16741 p->error_indicator = 1;
16742 D(p->level--);
16743 return NULL;
16744 }
16745 goto done;
16746 }
16747 p->mark = _mark;
16748 D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
16749 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
16750 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016751 { // '(' target_with_star_atom ')'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016752 if (p->error_indicator) {
16753 D(p->level--);
16754 return NULL;
16755 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016756 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 +010016757 Token * _literal;
16758 Token * _literal_1;
16759 expr_ty a;
16760 if (
16761 (_literal = _PyPegen_expect_token(p, 7)) // token='('
16762 &&
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016763 (a = target_with_star_atom_rule(p)) // target_with_star_atom
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016764 &&
16765 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
16766 )
16767 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016768 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 +010016769 _res = _PyPegen_set_expr_context ( p , a , Store );
16770 if (_res == NULL && PyErr_Occurred()) {
16771 p->error_indicator = 1;
16772 D(p->level--);
16773 return NULL;
16774 }
16775 goto done;
16776 }
16777 p->mark = _mark;
16778 D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016779 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' target_with_star_atom ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016780 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016781 { // '(' star_targets_tuple_seq? ')'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016782 if (p->error_indicator) {
16783 D(p->level--);
16784 return NULL;
16785 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016786 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 +010016787 Token * _literal;
16788 Token * _literal_1;
16789 void *a;
16790 if (
16791 (_literal = _PyPegen_expect_token(p, 7)) // token='('
16792 &&
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016793 (a = star_targets_tuple_seq_rule(p), 1) // star_targets_tuple_seq?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016794 &&
16795 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
16796 )
16797 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016798 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 +010016799 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16800 if (_token == NULL) {
16801 D(p->level--);
16802 return NULL;
16803 }
16804 int _end_lineno = _token->end_lineno;
16805 UNUSED(_end_lineno); // Only used by EXTRA macro
16806 int _end_col_offset = _token->end_col_offset;
16807 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016808 _res = _PyAST_Tuple ( a , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016809 if (_res == NULL && PyErr_Occurred()) {
16810 p->error_indicator = 1;
16811 D(p->level--);
16812 return NULL;
16813 }
16814 goto done;
16815 }
16816 p->mark = _mark;
16817 D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016818 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' star_targets_tuple_seq? ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016819 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016820 { // '[' star_targets_list_seq? ']'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016821 if (p->error_indicator) {
16822 D(p->level--);
16823 return NULL;
16824 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016825 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 +010016826 Token * _literal;
16827 Token * _literal_1;
16828 void *a;
16829 if (
16830 (_literal = _PyPegen_expect_token(p, 9)) // token='['
16831 &&
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016832 (a = star_targets_list_seq_rule(p), 1) // star_targets_list_seq?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016833 &&
16834 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
16835 )
16836 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016837 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 +010016838 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16839 if (_token == NULL) {
16840 D(p->level--);
16841 return NULL;
16842 }
16843 int _end_lineno = _token->end_lineno;
16844 UNUSED(_end_lineno); // Only used by EXTRA macro
16845 int _end_col_offset = _token->end_col_offset;
16846 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016847 _res = _PyAST_List ( a , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016848 if (_res == NULL && PyErr_Occurred()) {
16849 p->error_indicator = 1;
16850 D(p->level--);
16851 return NULL;
16852 }
16853 goto done;
16854 }
16855 p->mark = _mark;
16856 D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016857 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' star_targets_list_seq? ']'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016858 }
16859 _res = NULL;
16860 done:
16861 D(p->level--);
16862 return _res;
16863}
16864
16865// single_target: single_subscript_attribute_target | NAME | '(' single_target ')'
16866static expr_ty
16867single_target_rule(Parser *p)
16868{
16869 D(p->level++);
16870 if (p->error_indicator) {
16871 D(p->level--);
16872 return NULL;
16873 }
16874 expr_ty _res = NULL;
16875 int _mark = p->mark;
16876 { // single_subscript_attribute_target
16877 if (p->error_indicator) {
16878 D(p->level--);
16879 return NULL;
16880 }
16881 D(fprintf(stderr, "%*c> single_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "single_subscript_attribute_target"));
16882 expr_ty single_subscript_attribute_target_var;
16883 if (
16884 (single_subscript_attribute_target_var = single_subscript_attribute_target_rule(p)) // single_subscript_attribute_target
16885 )
16886 {
16887 D(fprintf(stderr, "%*c+ single_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "single_subscript_attribute_target"));
16888 _res = single_subscript_attribute_target_var;
16889 goto done;
16890 }
16891 p->mark = _mark;
16892 D(fprintf(stderr, "%*c%s single_target[%d-%d]: %s failed!\n", p->level, ' ',
16893 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "single_subscript_attribute_target"));
16894 }
16895 { // NAME
16896 if (p->error_indicator) {
16897 D(p->level--);
16898 return NULL;
16899 }
16900 D(fprintf(stderr, "%*c> single_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
16901 expr_ty a;
16902 if (
16903 (a = _PyPegen_name_token(p)) // NAME
16904 )
16905 {
16906 D(fprintf(stderr, "%*c+ single_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
16907 _res = _PyPegen_set_expr_context ( p , a , Store );
16908 if (_res == NULL && PyErr_Occurred()) {
16909 p->error_indicator = 1;
16910 D(p->level--);
16911 return NULL;
16912 }
16913 goto done;
16914 }
16915 p->mark = _mark;
16916 D(fprintf(stderr, "%*c%s single_target[%d-%d]: %s failed!\n", p->level, ' ',
16917 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
16918 }
16919 { // '(' single_target ')'
16920 if (p->error_indicator) {
16921 D(p->level--);
16922 return NULL;
16923 }
16924 D(fprintf(stderr, "%*c> single_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'"));
16925 Token * _literal;
16926 Token * _literal_1;
16927 expr_ty a;
16928 if (
16929 (_literal = _PyPegen_expect_token(p, 7)) // token='('
16930 &&
16931 (a = single_target_rule(p)) // single_target
16932 &&
16933 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
16934 )
16935 {
16936 D(fprintf(stderr, "%*c+ single_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'"));
16937 _res = a;
16938 if (_res == NULL && PyErr_Occurred()) {
16939 p->error_indicator = 1;
16940 D(p->level--);
16941 return NULL;
16942 }
16943 goto done;
16944 }
16945 p->mark = _mark;
16946 D(fprintf(stderr, "%*c%s single_target[%d-%d]: %s failed!\n", p->level, ' ',
16947 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' single_target ')'"));
16948 }
16949 _res = NULL;
16950 done:
16951 D(p->level--);
16952 return _res;
16953}
16954
16955// single_subscript_attribute_target:
16956// | t_primary '.' NAME !t_lookahead
16957// | t_primary '[' slices ']' !t_lookahead
16958static expr_ty
16959single_subscript_attribute_target_rule(Parser *p)
16960{
16961 D(p->level++);
16962 if (p->error_indicator) {
16963 D(p->level--);
16964 return NULL;
16965 }
16966 expr_ty _res = NULL;
16967 int _mark = p->mark;
16968 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
16969 p->error_indicator = 1;
16970 D(p->level--);
16971 return NULL;
16972 }
16973 int _start_lineno = p->tokens[_mark]->lineno;
16974 UNUSED(_start_lineno); // Only used by EXTRA macro
16975 int _start_col_offset = p->tokens[_mark]->col_offset;
16976 UNUSED(_start_col_offset); // Only used by EXTRA macro
16977 { // t_primary '.' NAME !t_lookahead
16978 if (p->error_indicator) {
16979 D(p->level--);
16980 return NULL;
16981 }
16982 D(fprintf(stderr, "%*c> single_subscript_attribute_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
16983 Token * _literal;
16984 expr_ty a;
16985 expr_ty b;
16986 if (
16987 (a = t_primary_rule(p)) // t_primary
16988 &&
16989 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
16990 &&
16991 (b = _PyPegen_name_token(p)) // NAME
16992 &&
16993 _PyPegen_lookahead(0, t_lookahead_rule, p)
16994 )
16995 {
16996 D(fprintf(stderr, "%*c+ single_subscript_attribute_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
16997 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16998 if (_token == NULL) {
16999 D(p->level--);
17000 return NULL;
17001 }
17002 int _end_lineno = _token->end_lineno;
17003 UNUSED(_end_lineno); // Only used by EXTRA macro
17004 int _end_col_offset = _token->end_col_offset;
17005 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017006 _res = _PyAST_Attribute ( a , b -> v . Name . id , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017007 if (_res == NULL && PyErr_Occurred()) {
17008 p->error_indicator = 1;
17009 D(p->level--);
17010 return NULL;
17011 }
17012 goto done;
17013 }
17014 p->mark = _mark;
17015 D(fprintf(stderr, "%*c%s single_subscript_attribute_target[%d-%d]: %s failed!\n", p->level, ' ',
17016 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
17017 }
17018 { // t_primary '[' slices ']' !t_lookahead
17019 if (p->error_indicator) {
17020 D(p->level--);
17021 return NULL;
17022 }
17023 D(fprintf(stderr, "%*c> single_subscript_attribute_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
17024 Token * _literal;
17025 Token * _literal_1;
17026 expr_ty a;
17027 expr_ty b;
17028 if (
17029 (a = t_primary_rule(p)) // t_primary
17030 &&
17031 (_literal = _PyPegen_expect_token(p, 9)) // token='['
17032 &&
17033 (b = slices_rule(p)) // slices
17034 &&
17035 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
17036 &&
17037 _PyPegen_lookahead(0, t_lookahead_rule, p)
17038 )
17039 {
17040 D(fprintf(stderr, "%*c+ single_subscript_attribute_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
17041 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17042 if (_token == NULL) {
17043 D(p->level--);
17044 return NULL;
17045 }
17046 int _end_lineno = _token->end_lineno;
17047 UNUSED(_end_lineno); // Only used by EXTRA macro
17048 int _end_col_offset = _token->end_col_offset;
17049 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017050 _res = _PyAST_Subscript ( a , b , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017051 if (_res == NULL && PyErr_Occurred()) {
17052 p->error_indicator = 1;
17053 D(p->level--);
17054 return NULL;
17055 }
17056 goto done;
17057 }
17058 p->mark = _mark;
17059 D(fprintf(stderr, "%*c%s single_subscript_attribute_target[%d-%d]: %s failed!\n", p->level, ' ',
17060 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
17061 }
17062 _res = NULL;
17063 done:
17064 D(p->level--);
17065 return _res;
17066}
17067
17068// del_targets: ','.del_target+ ','?
Pablo Galindoa5634c42020-09-16 19:42:00 +010017069static asdl_expr_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017070del_targets_rule(Parser *p)
17071{
17072 D(p->level++);
17073 if (p->error_indicator) {
17074 D(p->level--);
17075 return NULL;
17076 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010017077 asdl_expr_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017078 int _mark = p->mark;
17079 { // ','.del_target+ ','?
17080 if (p->error_indicator) {
17081 D(p->level--);
17082 return NULL;
17083 }
17084 D(fprintf(stderr, "%*c> del_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.del_target+ ','?"));
17085 void *_opt_var;
17086 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +010017087 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017088 if (
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070017089 (a = (asdl_expr_seq*)_gather_139_rule(p)) // ','.del_target+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017090 &&
17091 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
17092 )
17093 {
17094 D(fprintf(stderr, "%*c+ del_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.del_target+ ','?"));
17095 _res = a;
17096 if (_res == NULL && PyErr_Occurred()) {
17097 p->error_indicator = 1;
17098 D(p->level--);
17099 return NULL;
17100 }
17101 goto done;
17102 }
17103 p->mark = _mark;
17104 D(fprintf(stderr, "%*c%s del_targets[%d-%d]: %s failed!\n", p->level, ' ',
17105 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.del_target+ ','?"));
17106 }
17107 _res = NULL;
17108 done:
17109 D(p->level--);
17110 return _res;
17111}
17112
17113// del_target:
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017114// | t_primary '.' NAME !t_lookahead
17115// | t_primary '[' slices ']' !t_lookahead
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017116// | del_t_atom
17117static expr_ty
17118del_target_rule(Parser *p)
17119{
17120 D(p->level++);
17121 if (p->error_indicator) {
17122 D(p->level--);
17123 return NULL;
17124 }
17125 expr_ty _res = NULL;
17126 if (_PyPegen_is_memoized(p, del_target_type, &_res)) {
17127 D(p->level--);
17128 return _res;
17129 }
17130 int _mark = p->mark;
17131 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
17132 p->error_indicator = 1;
17133 D(p->level--);
17134 return NULL;
17135 }
17136 int _start_lineno = p->tokens[_mark]->lineno;
17137 UNUSED(_start_lineno); // Only used by EXTRA macro
17138 int _start_col_offset = p->tokens[_mark]->col_offset;
17139 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017140 { // t_primary '.' NAME !t_lookahead
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017141 if (p->error_indicator) {
17142 D(p->level--);
17143 return NULL;
17144 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017145 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 +010017146 Token * _literal;
17147 expr_ty a;
17148 expr_ty b;
17149 if (
17150 (a = t_primary_rule(p)) // t_primary
17151 &&
17152 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
17153 &&
17154 (b = _PyPegen_name_token(p)) // NAME
17155 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017156 _PyPegen_lookahead(0, t_lookahead_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017157 )
17158 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017159 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 +010017160 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17161 if (_token == NULL) {
17162 D(p->level--);
17163 return NULL;
17164 }
17165 int _end_lineno = _token->end_lineno;
17166 UNUSED(_end_lineno); // Only used by EXTRA macro
17167 int _end_col_offset = _token->end_col_offset;
17168 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017169 _res = _PyAST_Attribute ( a , b -> v . Name . id , Del , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017170 if (_res == NULL && PyErr_Occurred()) {
17171 p->error_indicator = 1;
17172 D(p->level--);
17173 return NULL;
17174 }
17175 goto done;
17176 }
17177 p->mark = _mark;
17178 D(fprintf(stderr, "%*c%s del_target[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017179 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017180 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017181 { // t_primary '[' slices ']' !t_lookahead
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017182 if (p->error_indicator) {
17183 D(p->level--);
17184 return NULL;
17185 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017186 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 +010017187 Token * _literal;
17188 Token * _literal_1;
17189 expr_ty a;
17190 expr_ty b;
17191 if (
17192 (a = t_primary_rule(p)) // t_primary
17193 &&
17194 (_literal = _PyPegen_expect_token(p, 9)) // token='['
17195 &&
17196 (b = slices_rule(p)) // slices
17197 &&
17198 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
17199 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017200 _PyPegen_lookahead(0, t_lookahead_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017201 )
17202 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017203 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 +010017204 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17205 if (_token == NULL) {
17206 D(p->level--);
17207 return NULL;
17208 }
17209 int _end_lineno = _token->end_lineno;
17210 UNUSED(_end_lineno); // Only used by EXTRA macro
17211 int _end_col_offset = _token->end_col_offset;
17212 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017213 _res = _PyAST_Subscript ( a , b , Del , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017214 if (_res == NULL && PyErr_Occurred()) {
17215 p->error_indicator = 1;
17216 D(p->level--);
17217 return NULL;
17218 }
17219 goto done;
17220 }
17221 p->mark = _mark;
17222 D(fprintf(stderr, "%*c%s del_target[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017223 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017224 }
17225 { // del_t_atom
17226 if (p->error_indicator) {
17227 D(p->level--);
17228 return NULL;
17229 }
17230 D(fprintf(stderr, "%*c> del_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "del_t_atom"));
17231 expr_ty del_t_atom_var;
17232 if (
17233 (del_t_atom_var = del_t_atom_rule(p)) // del_t_atom
17234 )
17235 {
17236 D(fprintf(stderr, "%*c+ del_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "del_t_atom"));
17237 _res = del_t_atom_var;
17238 goto done;
17239 }
17240 p->mark = _mark;
17241 D(fprintf(stderr, "%*c%s del_target[%d-%d]: %s failed!\n", p->level, ' ',
17242 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "del_t_atom"));
17243 }
17244 _res = NULL;
17245 done:
17246 _PyPegen_insert_memo(p, _mark, del_target_type, _res);
17247 D(p->level--);
17248 return _res;
17249}
17250
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017251// del_t_atom: NAME | '(' del_target ')' | '(' del_targets? ')' | '[' del_targets? ']'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017252static expr_ty
17253del_t_atom_rule(Parser *p)
17254{
17255 D(p->level++);
17256 if (p->error_indicator) {
17257 D(p->level--);
17258 return NULL;
17259 }
17260 expr_ty _res = NULL;
17261 int _mark = p->mark;
17262 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
17263 p->error_indicator = 1;
17264 D(p->level--);
17265 return NULL;
17266 }
17267 int _start_lineno = p->tokens[_mark]->lineno;
17268 UNUSED(_start_lineno); // Only used by EXTRA macro
17269 int _start_col_offset = p->tokens[_mark]->col_offset;
17270 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017271 { // NAME
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017272 if (p->error_indicator) {
17273 D(p->level--);
17274 return NULL;
17275 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017276 D(fprintf(stderr, "%*c> del_t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017277 expr_ty a;
17278 if (
17279 (a = _PyPegen_name_token(p)) // NAME
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017280 )
17281 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017282 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 +010017283 _res = _PyPegen_set_expr_context ( p , a , Del );
17284 if (_res == NULL && PyErr_Occurred()) {
17285 p->error_indicator = 1;
17286 D(p->level--);
17287 return NULL;
17288 }
17289 goto done;
17290 }
17291 p->mark = _mark;
17292 D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017293 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017294 }
17295 { // '(' del_target ')'
17296 if (p->error_indicator) {
17297 D(p->level--);
17298 return NULL;
17299 }
17300 D(fprintf(stderr, "%*c> del_t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' del_target ')'"));
17301 Token * _literal;
17302 Token * _literal_1;
17303 expr_ty a;
17304 if (
17305 (_literal = _PyPegen_expect_token(p, 7)) // token='('
17306 &&
17307 (a = del_target_rule(p)) // del_target
17308 &&
17309 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
17310 )
17311 {
17312 D(fprintf(stderr, "%*c+ del_t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' del_target ')'"));
17313 _res = _PyPegen_set_expr_context ( p , a , Del );
17314 if (_res == NULL && PyErr_Occurred()) {
17315 p->error_indicator = 1;
17316 D(p->level--);
17317 return NULL;
17318 }
17319 goto done;
17320 }
17321 p->mark = _mark;
17322 D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
17323 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' del_target ')'"));
17324 }
17325 { // '(' del_targets? ')'
17326 if (p->error_indicator) {
17327 D(p->level--);
17328 return NULL;
17329 }
17330 D(fprintf(stderr, "%*c> del_t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' del_targets? ')'"));
17331 Token * _literal;
17332 Token * _literal_1;
17333 void *a;
17334 if (
17335 (_literal = _PyPegen_expect_token(p, 7)) // token='('
17336 &&
17337 (a = del_targets_rule(p), 1) // del_targets?
17338 &&
17339 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
17340 )
17341 {
17342 D(fprintf(stderr, "%*c+ del_t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' del_targets? ')'"));
17343 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17344 if (_token == NULL) {
17345 D(p->level--);
17346 return NULL;
17347 }
17348 int _end_lineno = _token->end_lineno;
17349 UNUSED(_end_lineno); // Only used by EXTRA macro
17350 int _end_col_offset = _token->end_col_offset;
17351 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017352 _res = _PyAST_Tuple ( a , Del , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017353 if (_res == NULL && PyErr_Occurred()) {
17354 p->error_indicator = 1;
17355 D(p->level--);
17356 return NULL;
17357 }
17358 goto done;
17359 }
17360 p->mark = _mark;
17361 D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
17362 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' del_targets? ')'"));
17363 }
17364 { // '[' del_targets? ']'
17365 if (p->error_indicator) {
17366 D(p->level--);
17367 return NULL;
17368 }
17369 D(fprintf(stderr, "%*c> del_t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' del_targets? ']'"));
17370 Token * _literal;
17371 Token * _literal_1;
17372 void *a;
17373 if (
17374 (_literal = _PyPegen_expect_token(p, 9)) // token='['
17375 &&
17376 (a = del_targets_rule(p), 1) // del_targets?
17377 &&
17378 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
17379 )
17380 {
17381 D(fprintf(stderr, "%*c+ del_t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'[' del_targets? ']'"));
17382 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17383 if (_token == NULL) {
17384 D(p->level--);
17385 return NULL;
17386 }
17387 int _end_lineno = _token->end_lineno;
17388 UNUSED(_end_lineno); // Only used by EXTRA macro
17389 int _end_col_offset = _token->end_col_offset;
17390 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017391 _res = _PyAST_List ( a , Del , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017392 if (_res == NULL && PyErr_Occurred()) {
17393 p->error_indicator = 1;
17394 D(p->level--);
17395 return NULL;
17396 }
17397 goto done;
17398 }
17399 p->mark = _mark;
17400 D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
17401 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' del_targets? ']'"));
17402 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017403 _res = NULL;
17404 done:
17405 D(p->level--);
17406 return _res;
17407}
17408
17409// targets: ','.target+ ','?
Pablo Galindoa5634c42020-09-16 19:42:00 +010017410static asdl_expr_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017411targets_rule(Parser *p)
17412{
17413 D(p->level++);
17414 if (p->error_indicator) {
17415 D(p->level--);
17416 return NULL;
17417 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010017418 asdl_expr_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017419 int _mark = p->mark;
17420 { // ','.target+ ','?
17421 if (p->error_indicator) {
17422 D(p->level--);
17423 return NULL;
17424 }
17425 D(fprintf(stderr, "%*c> targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.target+ ','?"));
17426 void *_opt_var;
17427 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +010017428 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017429 if (
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070017430 (a = (asdl_expr_seq*)_gather_141_rule(p)) // ','.target+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017431 &&
17432 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
17433 )
17434 {
17435 D(fprintf(stderr, "%*c+ targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.target+ ','?"));
17436 _res = a;
17437 if (_res == NULL && PyErr_Occurred()) {
17438 p->error_indicator = 1;
17439 D(p->level--);
17440 return NULL;
17441 }
17442 goto done;
17443 }
17444 p->mark = _mark;
17445 D(fprintf(stderr, "%*c%s targets[%d-%d]: %s failed!\n", p->level, ' ',
17446 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.target+ ','?"));
17447 }
17448 _res = NULL;
17449 done:
17450 D(p->level--);
17451 return _res;
17452}
17453
17454// target:
17455// | t_primary '.' NAME !t_lookahead
17456// | t_primary '[' slices ']' !t_lookahead
17457// | t_atom
17458static expr_ty
17459target_rule(Parser *p)
17460{
17461 D(p->level++);
17462 if (p->error_indicator) {
17463 D(p->level--);
17464 return NULL;
17465 }
17466 expr_ty _res = NULL;
17467 if (_PyPegen_is_memoized(p, target_type, &_res)) {
17468 D(p->level--);
17469 return _res;
17470 }
17471 int _mark = p->mark;
17472 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
17473 p->error_indicator = 1;
17474 D(p->level--);
17475 return NULL;
17476 }
17477 int _start_lineno = p->tokens[_mark]->lineno;
17478 UNUSED(_start_lineno); // Only used by EXTRA macro
17479 int _start_col_offset = p->tokens[_mark]->col_offset;
17480 UNUSED(_start_col_offset); // Only used by EXTRA macro
17481 { // t_primary '.' NAME !t_lookahead
17482 if (p->error_indicator) {
17483 D(p->level--);
17484 return NULL;
17485 }
17486 D(fprintf(stderr, "%*c> target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
17487 Token * _literal;
17488 expr_ty a;
17489 expr_ty b;
17490 if (
17491 (a = t_primary_rule(p)) // t_primary
17492 &&
17493 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
17494 &&
17495 (b = _PyPegen_name_token(p)) // NAME
17496 &&
17497 _PyPegen_lookahead(0, t_lookahead_rule, p)
17498 )
17499 {
17500 D(fprintf(stderr, "%*c+ target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
17501 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17502 if (_token == NULL) {
17503 D(p->level--);
17504 return NULL;
17505 }
17506 int _end_lineno = _token->end_lineno;
17507 UNUSED(_end_lineno); // Only used by EXTRA macro
17508 int _end_col_offset = _token->end_col_offset;
17509 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017510 _res = _PyAST_Attribute ( a , b -> v . Name . id , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017511 if (_res == NULL && PyErr_Occurred()) {
17512 p->error_indicator = 1;
17513 D(p->level--);
17514 return NULL;
17515 }
17516 goto done;
17517 }
17518 p->mark = _mark;
17519 D(fprintf(stderr, "%*c%s target[%d-%d]: %s failed!\n", p->level, ' ',
17520 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
17521 }
17522 { // t_primary '[' slices ']' !t_lookahead
17523 if (p->error_indicator) {
17524 D(p->level--);
17525 return NULL;
17526 }
17527 D(fprintf(stderr, "%*c> target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
17528 Token * _literal;
17529 Token * _literal_1;
17530 expr_ty a;
17531 expr_ty b;
17532 if (
17533 (a = t_primary_rule(p)) // t_primary
17534 &&
17535 (_literal = _PyPegen_expect_token(p, 9)) // token='['
17536 &&
17537 (b = slices_rule(p)) // slices
17538 &&
17539 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
17540 &&
17541 _PyPegen_lookahead(0, t_lookahead_rule, p)
17542 )
17543 {
17544 D(fprintf(stderr, "%*c+ target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
17545 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17546 if (_token == NULL) {
17547 D(p->level--);
17548 return NULL;
17549 }
17550 int _end_lineno = _token->end_lineno;
17551 UNUSED(_end_lineno); // Only used by EXTRA macro
17552 int _end_col_offset = _token->end_col_offset;
17553 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017554 _res = _PyAST_Subscript ( a , b , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017555 if (_res == NULL && PyErr_Occurred()) {
17556 p->error_indicator = 1;
17557 D(p->level--);
17558 return NULL;
17559 }
17560 goto done;
17561 }
17562 p->mark = _mark;
17563 D(fprintf(stderr, "%*c%s target[%d-%d]: %s failed!\n", p->level, ' ',
17564 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
17565 }
17566 { // t_atom
17567 if (p->error_indicator) {
17568 D(p->level--);
17569 return NULL;
17570 }
17571 D(fprintf(stderr, "%*c> target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_atom"));
17572 expr_ty t_atom_var;
17573 if (
17574 (t_atom_var = t_atom_rule(p)) // t_atom
17575 )
17576 {
17577 D(fprintf(stderr, "%*c+ target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_atom"));
17578 _res = t_atom_var;
17579 goto done;
17580 }
17581 p->mark = _mark;
17582 D(fprintf(stderr, "%*c%s target[%d-%d]: %s failed!\n", p->level, ' ',
17583 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_atom"));
17584 }
17585 _res = NULL;
17586 done:
17587 _PyPegen_insert_memo(p, _mark, target_type, _res);
17588 D(p->level--);
17589 return _res;
17590}
17591
17592// Left-recursive
17593// t_primary:
17594// | t_primary '.' NAME &t_lookahead
17595// | t_primary '[' slices ']' &t_lookahead
17596// | t_primary genexp &t_lookahead
17597// | t_primary '(' arguments? ')' &t_lookahead
17598// | atom &t_lookahead
17599static expr_ty t_primary_raw(Parser *);
17600static expr_ty
17601t_primary_rule(Parser *p)
17602{
17603 D(p->level++);
17604 expr_ty _res = NULL;
17605 if (_PyPegen_is_memoized(p, t_primary_type, &_res)) {
17606 D(p->level--);
17607 return _res;
17608 }
17609 int _mark = p->mark;
17610 int _resmark = p->mark;
17611 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080017612 int tmpvar_9 = _PyPegen_update_memo(p, _mark, t_primary_type, _res);
17613 if (tmpvar_9) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017614 D(p->level--);
17615 return _res;
17616 }
17617 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070017618 p->in_raw_rule++;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017619 void *_raw = t_primary_raw(p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070017620 p->in_raw_rule--;
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020017621 if (p->error_indicator)
17622 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017623 if (_raw == NULL || p->mark <= _resmark)
17624 break;
17625 _resmark = p->mark;
17626 _res = _raw;
17627 }
17628 p->mark = _resmark;
17629 D(p->level--);
17630 return _res;
17631}
17632static expr_ty
17633t_primary_raw(Parser *p)
17634{
17635 D(p->level++);
17636 if (p->error_indicator) {
17637 D(p->level--);
17638 return NULL;
17639 }
17640 expr_ty _res = NULL;
17641 int _mark = p->mark;
17642 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
17643 p->error_indicator = 1;
17644 D(p->level--);
17645 return NULL;
17646 }
17647 int _start_lineno = p->tokens[_mark]->lineno;
17648 UNUSED(_start_lineno); // Only used by EXTRA macro
17649 int _start_col_offset = p->tokens[_mark]->col_offset;
17650 UNUSED(_start_col_offset); // Only used by EXTRA macro
17651 { // t_primary '.' NAME &t_lookahead
17652 if (p->error_indicator) {
17653 D(p->level--);
17654 return NULL;
17655 }
17656 D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME &t_lookahead"));
17657 Token * _literal;
17658 expr_ty a;
17659 expr_ty b;
17660 if (
17661 (a = t_primary_rule(p)) // t_primary
17662 &&
17663 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
17664 &&
17665 (b = _PyPegen_name_token(p)) // NAME
17666 &&
17667 _PyPegen_lookahead(1, t_lookahead_rule, p)
17668 )
17669 {
17670 D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME &t_lookahead"));
17671 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17672 if (_token == NULL) {
17673 D(p->level--);
17674 return NULL;
17675 }
17676 int _end_lineno = _token->end_lineno;
17677 UNUSED(_end_lineno); // Only used by EXTRA macro
17678 int _end_col_offset = _token->end_col_offset;
17679 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017680 _res = _PyAST_Attribute ( a , b -> v . Name . id , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017681 if (_res == NULL && PyErr_Occurred()) {
17682 p->error_indicator = 1;
17683 D(p->level--);
17684 return NULL;
17685 }
17686 goto done;
17687 }
17688 p->mark = _mark;
17689 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
17690 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME &t_lookahead"));
17691 }
17692 { // t_primary '[' slices ']' &t_lookahead
17693 if (p->error_indicator) {
17694 D(p->level--);
17695 return NULL;
17696 }
17697 D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' &t_lookahead"));
17698 Token * _literal;
17699 Token * _literal_1;
17700 expr_ty a;
17701 expr_ty b;
17702 if (
17703 (a = t_primary_rule(p)) // t_primary
17704 &&
17705 (_literal = _PyPegen_expect_token(p, 9)) // token='['
17706 &&
17707 (b = slices_rule(p)) // slices
17708 &&
17709 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
17710 &&
17711 _PyPegen_lookahead(1, t_lookahead_rule, p)
17712 )
17713 {
17714 D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' &t_lookahead"));
17715 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17716 if (_token == NULL) {
17717 D(p->level--);
17718 return NULL;
17719 }
17720 int _end_lineno = _token->end_lineno;
17721 UNUSED(_end_lineno); // Only used by EXTRA macro
17722 int _end_col_offset = _token->end_col_offset;
17723 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017724 _res = _PyAST_Subscript ( a , b , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017725 if (_res == NULL && PyErr_Occurred()) {
17726 p->error_indicator = 1;
17727 D(p->level--);
17728 return NULL;
17729 }
17730 goto done;
17731 }
17732 p->mark = _mark;
17733 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
17734 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' &t_lookahead"));
17735 }
17736 { // t_primary genexp &t_lookahead
17737 if (p->error_indicator) {
17738 D(p->level--);
17739 return NULL;
17740 }
17741 D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary genexp &t_lookahead"));
17742 expr_ty a;
17743 expr_ty b;
17744 if (
17745 (a = t_primary_rule(p)) // t_primary
17746 &&
17747 (b = genexp_rule(p)) // genexp
17748 &&
17749 _PyPegen_lookahead(1, t_lookahead_rule, p)
17750 )
17751 {
17752 D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary genexp &t_lookahead"));
17753 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17754 if (_token == NULL) {
17755 D(p->level--);
17756 return NULL;
17757 }
17758 int _end_lineno = _token->end_lineno;
17759 UNUSED(_end_lineno); // Only used by EXTRA macro
17760 int _end_col_offset = _token->end_col_offset;
17761 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017762 _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 +010017763 if (_res == NULL && PyErr_Occurred()) {
17764 p->error_indicator = 1;
17765 D(p->level--);
17766 return NULL;
17767 }
17768 goto done;
17769 }
17770 p->mark = _mark;
17771 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
17772 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary genexp &t_lookahead"));
17773 }
17774 { // t_primary '(' arguments? ')' &t_lookahead
17775 if (p->error_indicator) {
17776 D(p->level--);
17777 return NULL;
17778 }
17779 D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '(' arguments? ')' &t_lookahead"));
17780 Token * _literal;
17781 Token * _literal_1;
17782 expr_ty a;
17783 void *b;
17784 if (
17785 (a = t_primary_rule(p)) // t_primary
17786 &&
17787 (_literal = _PyPegen_expect_token(p, 7)) // token='('
17788 &&
17789 (b = arguments_rule(p), 1) // arguments?
17790 &&
17791 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
17792 &&
17793 _PyPegen_lookahead(1, t_lookahead_rule, p)
17794 )
17795 {
17796 D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '(' arguments? ')' &t_lookahead"));
17797 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17798 if (_token == NULL) {
17799 D(p->level--);
17800 return NULL;
17801 }
17802 int _end_lineno = _token->end_lineno;
17803 UNUSED(_end_lineno); // Only used by EXTRA macro
17804 int _end_col_offset = _token->end_col_offset;
17805 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017806 _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 +010017807 if (_res == NULL && PyErr_Occurred()) {
17808 p->error_indicator = 1;
17809 D(p->level--);
17810 return NULL;
17811 }
17812 goto done;
17813 }
17814 p->mark = _mark;
17815 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
17816 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '(' arguments? ')' &t_lookahead"));
17817 }
17818 { // atom &t_lookahead
17819 if (p->error_indicator) {
17820 D(p->level--);
17821 return NULL;
17822 }
17823 D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "atom &t_lookahead"));
17824 expr_ty a;
17825 if (
17826 (a = atom_rule(p)) // atom
17827 &&
17828 _PyPegen_lookahead(1, t_lookahead_rule, p)
17829 )
17830 {
17831 D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "atom &t_lookahead"));
17832 _res = a;
17833 if (_res == NULL && PyErr_Occurred()) {
17834 p->error_indicator = 1;
17835 D(p->level--);
17836 return NULL;
17837 }
17838 goto done;
17839 }
17840 p->mark = _mark;
17841 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
17842 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "atom &t_lookahead"));
17843 }
17844 _res = NULL;
17845 done:
17846 D(p->level--);
17847 return _res;
17848}
17849
17850// t_lookahead: '(' | '[' | '.'
17851static void *
17852t_lookahead_rule(Parser *p)
17853{
17854 D(p->level++);
17855 if (p->error_indicator) {
17856 D(p->level--);
17857 return NULL;
17858 }
17859 void * _res = NULL;
17860 int _mark = p->mark;
17861 { // '('
17862 if (p->error_indicator) {
17863 D(p->level--);
17864 return NULL;
17865 }
17866 D(fprintf(stderr, "%*c> t_lookahead[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'('"));
17867 Token * _literal;
17868 if (
17869 (_literal = _PyPegen_expect_token(p, 7)) // token='('
17870 )
17871 {
17872 D(fprintf(stderr, "%*c+ t_lookahead[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'('"));
17873 _res = _literal;
17874 goto done;
17875 }
17876 p->mark = _mark;
17877 D(fprintf(stderr, "%*c%s t_lookahead[%d-%d]: %s failed!\n", p->level, ' ',
17878 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'('"));
17879 }
17880 { // '['
17881 if (p->error_indicator) {
17882 D(p->level--);
17883 return NULL;
17884 }
17885 D(fprintf(stderr, "%*c> t_lookahead[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['"));
17886 Token * _literal;
17887 if (
17888 (_literal = _PyPegen_expect_token(p, 9)) // token='['
17889 )
17890 {
17891 D(fprintf(stderr, "%*c+ t_lookahead[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['"));
17892 _res = _literal;
17893 goto done;
17894 }
17895 p->mark = _mark;
17896 D(fprintf(stderr, "%*c%s t_lookahead[%d-%d]: %s failed!\n", p->level, ' ',
17897 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'['"));
17898 }
17899 { // '.'
17900 if (p->error_indicator) {
17901 D(p->level--);
17902 return NULL;
17903 }
17904 D(fprintf(stderr, "%*c> t_lookahead[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
17905 Token * _literal;
17906 if (
17907 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
17908 )
17909 {
17910 D(fprintf(stderr, "%*c+ t_lookahead[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
17911 _res = _literal;
17912 goto done;
17913 }
17914 p->mark = _mark;
17915 D(fprintf(stderr, "%*c%s t_lookahead[%d-%d]: %s failed!\n", p->level, ' ',
17916 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
17917 }
17918 _res = NULL;
17919 done:
17920 D(p->level--);
17921 return _res;
17922}
17923
17924// t_atom: NAME | '(' target ')' | '(' targets? ')' | '[' targets? ']'
17925static expr_ty
17926t_atom_rule(Parser *p)
17927{
17928 D(p->level++);
17929 if (p->error_indicator) {
17930 D(p->level--);
17931 return NULL;
17932 }
17933 expr_ty _res = NULL;
17934 int _mark = p->mark;
17935 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
17936 p->error_indicator = 1;
17937 D(p->level--);
17938 return NULL;
17939 }
17940 int _start_lineno = p->tokens[_mark]->lineno;
17941 UNUSED(_start_lineno); // Only used by EXTRA macro
17942 int _start_col_offset = p->tokens[_mark]->col_offset;
17943 UNUSED(_start_col_offset); // Only used by EXTRA macro
17944 { // NAME
17945 if (p->error_indicator) {
17946 D(p->level--);
17947 return NULL;
17948 }
17949 D(fprintf(stderr, "%*c> t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
17950 expr_ty a;
17951 if (
17952 (a = _PyPegen_name_token(p)) // NAME
17953 )
17954 {
17955 D(fprintf(stderr, "%*c+ t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
17956 _res = _PyPegen_set_expr_context ( p , a , Store );
17957 if (_res == NULL && PyErr_Occurred()) {
17958 p->error_indicator = 1;
17959 D(p->level--);
17960 return NULL;
17961 }
17962 goto done;
17963 }
17964 p->mark = _mark;
17965 D(fprintf(stderr, "%*c%s t_atom[%d-%d]: %s failed!\n", p->level, ' ',
17966 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
17967 }
17968 { // '(' target ')'
17969 if (p->error_indicator) {
17970 D(p->level--);
17971 return NULL;
17972 }
17973 D(fprintf(stderr, "%*c> t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' target ')'"));
17974 Token * _literal;
17975 Token * _literal_1;
17976 expr_ty a;
17977 if (
17978 (_literal = _PyPegen_expect_token(p, 7)) // token='('
17979 &&
17980 (a = target_rule(p)) // target
17981 &&
17982 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
17983 )
17984 {
17985 D(fprintf(stderr, "%*c+ t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' target ')'"));
17986 _res = _PyPegen_set_expr_context ( p , a , Store );
17987 if (_res == NULL && PyErr_Occurred()) {
17988 p->error_indicator = 1;
17989 D(p->level--);
17990 return NULL;
17991 }
17992 goto done;
17993 }
17994 p->mark = _mark;
17995 D(fprintf(stderr, "%*c%s t_atom[%d-%d]: %s failed!\n", p->level, ' ',
17996 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' target ')'"));
17997 }
17998 { // '(' targets? ')'
17999 if (p->error_indicator) {
18000 D(p->level--);
18001 return NULL;
18002 }
18003 D(fprintf(stderr, "%*c> t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' targets? ')'"));
18004 Token * _literal;
18005 Token * _literal_1;
18006 void *b;
18007 if (
18008 (_literal = _PyPegen_expect_token(p, 7)) // token='('
18009 &&
18010 (b = targets_rule(p), 1) // targets?
18011 &&
18012 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
18013 )
18014 {
18015 D(fprintf(stderr, "%*c+ t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' targets? ')'"));
18016 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
18017 if (_token == NULL) {
18018 D(p->level--);
18019 return NULL;
18020 }
18021 int _end_lineno = _token->end_lineno;
18022 UNUSED(_end_lineno); // Only used by EXTRA macro
18023 int _end_col_offset = _token->end_col_offset;
18024 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020018025 _res = _PyAST_Tuple ( b , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018026 if (_res == NULL && PyErr_Occurred()) {
18027 p->error_indicator = 1;
18028 D(p->level--);
18029 return NULL;
18030 }
18031 goto done;
18032 }
18033 p->mark = _mark;
18034 D(fprintf(stderr, "%*c%s t_atom[%d-%d]: %s failed!\n", p->level, ' ',
18035 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' targets? ')'"));
18036 }
18037 { // '[' targets? ']'
18038 if (p->error_indicator) {
18039 D(p->level--);
18040 return NULL;
18041 }
18042 D(fprintf(stderr, "%*c> t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' targets? ']'"));
18043 Token * _literal;
18044 Token * _literal_1;
18045 void *b;
18046 if (
18047 (_literal = _PyPegen_expect_token(p, 9)) // token='['
18048 &&
18049 (b = targets_rule(p), 1) // targets?
18050 &&
18051 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
18052 )
18053 {
18054 D(fprintf(stderr, "%*c+ t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'[' targets? ']'"));
18055 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
18056 if (_token == NULL) {
18057 D(p->level--);
18058 return NULL;
18059 }
18060 int _end_lineno = _token->end_lineno;
18061 UNUSED(_end_lineno); // Only used by EXTRA macro
18062 int _end_col_offset = _token->end_col_offset;
18063 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020018064 _res = _PyAST_List ( b , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018065 if (_res == NULL && PyErr_Occurred()) {
18066 p->error_indicator = 1;
18067 D(p->level--);
18068 return NULL;
18069 }
18070 goto done;
18071 }
18072 p->mark = _mark;
18073 D(fprintf(stderr, "%*c%s t_atom[%d-%d]: %s failed!\n", p->level, ' ',
18074 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' targets? ']'"));
18075 }
18076 _res = NULL;
18077 done:
18078 D(p->level--);
18079 return _res;
18080}
18081
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020018082// invalid_arguments:
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018083// | args ',' '*'
18084// | expression for_if_clauses ',' [args | expression for_if_clauses]
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018085// | NAME '=' expression for_if_clauses
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018086// | args for_if_clauses
18087// | args ',' expression for_if_clauses
18088// | args ',' args
18089static void *
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020018090invalid_arguments_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018091{
18092 D(p->level++);
18093 if (p->error_indicator) {
18094 D(p->level--);
18095 return NULL;
18096 }
18097 void * _res = NULL;
18098 int _mark = p->mark;
18099 { // args ',' '*'
18100 if (p->error_indicator) {
18101 D(p->level--);
18102 return NULL;
18103 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020018104 D(fprintf(stderr, "%*c> invalid_arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args ',' '*'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018105 Token * _literal;
18106 Token * _literal_1;
Pablo Galindoa77aac42021-04-23 14:27:05 +010018107 expr_ty a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018108 if (
Pablo Galindoa77aac42021-04-23 14:27:05 +010018109 (a = args_rule(p)) // args
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018110 &&
18111 (_literal = _PyPegen_expect_token(p, 12)) // token=','
18112 &&
18113 (_literal_1 = _PyPegen_expect_token(p, 16)) // token='*'
18114 )
18115 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020018116 D(fprintf(stderr, "%*c+ invalid_arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args ',' '*'"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010018117 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "iterable argument unpacking follows keyword argument unpacking" );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018118 if (_res == NULL && PyErr_Occurred()) {
18119 p->error_indicator = 1;
18120 D(p->level--);
18121 return NULL;
18122 }
18123 goto done;
18124 }
18125 p->mark = _mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020018126 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018127 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ',' '*'"));
18128 }
18129 { // expression for_if_clauses ',' [args | expression for_if_clauses]
18130 if (p->error_indicator) {
18131 D(p->level--);
18132 return NULL;
18133 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020018134 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 +010018135 Token * _literal;
18136 void *_opt_var;
18137 UNUSED(_opt_var); // Silence compiler warnings
18138 expr_ty a;
Pablo Galindoa77aac42021-04-23 14:27:05 +010018139 asdl_comprehension_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018140 if (
18141 (a = expression_rule(p)) // expression
18142 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010018143 (b = for_if_clauses_rule(p)) // for_if_clauses
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018144 &&
18145 (_literal = _PyPegen_expect_token(p, 12)) // token=','
18146 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018147 (_opt_var = _tmp_143_rule(p), 1) // [args | expression for_if_clauses]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018148 )
18149 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020018150 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 +010018151 _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 +010018152 if (_res == NULL && PyErr_Occurred()) {
18153 p->error_indicator = 1;
18154 D(p->level--);
18155 return NULL;
18156 }
18157 goto done;
18158 }
18159 p->mark = _mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020018160 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018161 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression for_if_clauses ',' [args | expression for_if_clauses]"));
18162 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018163 { // NAME '=' expression for_if_clauses
18164 if (p->error_indicator) {
18165 D(p->level--);
18166 return NULL;
18167 }
18168 D(fprintf(stderr, "%*c> invalid_arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME '=' expression for_if_clauses"));
18169 expr_ty a;
18170 Token * b;
18171 expr_ty expression_var;
18172 asdl_comprehension_seq* for_if_clauses_var;
18173 if (
18174 (a = _PyPegen_name_token(p)) // NAME
18175 &&
18176 (b = _PyPegen_expect_token(p, 22)) // token='='
18177 &&
18178 (expression_var = expression_rule(p)) // expression
18179 &&
18180 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
18181 )
18182 {
18183 D(fprintf(stderr, "%*c+ invalid_arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '=' expression for_if_clauses"));
18184 _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , b , "invalid syntax. Maybe you meant '==' or ':=' instead of '='?" );
18185 if (_res == NULL && PyErr_Occurred()) {
18186 p->error_indicator = 1;
18187 D(p->level--);
18188 return NULL;
18189 }
18190 goto done;
18191 }
18192 p->mark = _mark;
18193 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
18194 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' expression for_if_clauses"));
18195 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018196 { // args for_if_clauses
18197 if (p->error_indicator) {
18198 D(p->level--);
18199 return NULL;
18200 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020018201 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 +010018202 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010018203 asdl_comprehension_seq* for_if_clauses_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018204 if (
18205 (a = args_rule(p)) // args
18206 &&
18207 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
18208 )
18209 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020018210 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 +010018211 _res = _PyPegen_nonparen_genexp_in_call ( p , a );
18212 if (_res == NULL && PyErr_Occurred()) {
18213 p->error_indicator = 1;
18214 D(p->level--);
18215 return NULL;
18216 }
18217 goto done;
18218 }
18219 p->mark = _mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020018220 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018221 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args for_if_clauses"));
18222 }
18223 { // args ',' expression for_if_clauses
18224 if (p->error_indicator) {
18225 D(p->level--);
18226 return NULL;
18227 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020018228 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 +010018229 Token * _literal;
18230 expr_ty a;
18231 expr_ty args_var;
Pablo Galindoa77aac42021-04-23 14:27:05 +010018232 asdl_comprehension_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018233 if (
18234 (args_var = args_rule(p)) // args
18235 &&
18236 (_literal = _PyPegen_expect_token(p, 12)) // token=','
18237 &&
18238 (a = expression_rule(p)) // expression
18239 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010018240 (b = for_if_clauses_rule(p)) // for_if_clauses
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018241 )
18242 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020018243 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 +010018244 _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 +010018245 if (_res == NULL && PyErr_Occurred()) {
18246 p->error_indicator = 1;
18247 D(p->level--);
18248 return NULL;
18249 }
18250 goto done;
18251 }
18252 p->mark = _mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020018253 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018254 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ',' expression for_if_clauses"));
18255 }
18256 { // args ',' args
18257 if (p->error_indicator) {
18258 D(p->level--);
18259 return NULL;
18260 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020018261 D(fprintf(stderr, "%*c> invalid_arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args ',' args"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018262 Token * _literal;
18263 expr_ty a;
18264 expr_ty args_var;
18265 if (
18266 (a = args_rule(p)) // args
18267 &&
18268 (_literal = _PyPegen_expect_token(p, 12)) // token=','
18269 &&
18270 (args_var = args_rule(p)) // args
18271 )
18272 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020018273 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 +010018274 _res = _PyPegen_arguments_parsing_error ( p , a );
18275 if (_res == NULL && PyErr_Occurred()) {
18276 p->error_indicator = 1;
18277 D(p->level--);
18278 return NULL;
18279 }
18280 goto done;
18281 }
18282 p->mark = _mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020018283 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018284 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ',' args"));
18285 }
18286 _res = NULL;
18287 done:
18288 D(p->level--);
18289 return _res;
18290}
18291
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018292// invalid_kwarg: NAME '=' expression for_if_clauses | !(NAME '=') expression '='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018293static void *
18294invalid_kwarg_rule(Parser *p)
18295{
18296 D(p->level++);
18297 if (p->error_indicator) {
18298 D(p->level--);
18299 return NULL;
18300 }
18301 void * _res = NULL;
18302 int _mark = p->mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018303 { // NAME '=' expression for_if_clauses
18304 if (p->error_indicator) {
18305 D(p->level--);
18306 return NULL;
18307 }
18308 D(fprintf(stderr, "%*c> invalid_kwarg[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME '=' expression for_if_clauses"));
18309 expr_ty a;
18310 Token * b;
18311 expr_ty expression_var;
18312 asdl_comprehension_seq* for_if_clauses_var;
18313 if (
18314 (a = _PyPegen_name_token(p)) // NAME
18315 &&
18316 (b = _PyPegen_expect_token(p, 22)) // token='='
18317 &&
18318 (expression_var = expression_rule(p)) // expression
18319 &&
18320 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
18321 )
18322 {
18323 D(fprintf(stderr, "%*c+ invalid_kwarg[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '=' expression for_if_clauses"));
18324 _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , b , "invalid syntax. Maybe you meant '==' or ':=' instead of '='?" );
18325 if (_res == NULL && PyErr_Occurred()) {
18326 p->error_indicator = 1;
18327 D(p->level--);
18328 return NULL;
18329 }
18330 goto done;
18331 }
18332 p->mark = _mark;
18333 D(fprintf(stderr, "%*c%s invalid_kwarg[%d-%d]: %s failed!\n", p->level, ' ',
18334 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' expression for_if_clauses"));
18335 }
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070018336 { // !(NAME '=') expression '='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018337 if (p->error_indicator) {
18338 D(p->level--);
18339 return NULL;
18340 }
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070018341 D(fprintf(stderr, "%*c> invalid_kwarg[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "!(NAME '=') expression '='"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010018342 expr_ty a;
18343 Token * b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018344 if (
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018345 _PyPegen_lookahead(0, _tmp_144_rule, p)
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070018346 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010018347 (a = expression_rule(p)) // expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018348 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010018349 (b = _PyPegen_expect_token(p, 22)) // token='='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018350 )
18351 {
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070018352 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 +010018353 _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , b , "expression cannot contain assignment, perhaps you meant \"==\"?" );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018354 if (_res == NULL && PyErr_Occurred()) {
18355 p->error_indicator = 1;
18356 D(p->level--);
18357 return NULL;
18358 }
18359 goto done;
18360 }
18361 p->mark = _mark;
18362 D(fprintf(stderr, "%*c%s invalid_kwarg[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070018363 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "!(NAME '=') expression '='"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018364 }
18365 _res = NULL;
18366 done:
18367 D(p->level--);
18368 return _res;
18369}
18370
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018371// expression_without_invalid:
18372// | disjunction 'if' disjunction 'else' expression
18373// | disjunction
18374// | lambdef
18375static expr_ty
18376expression_without_invalid_rule(Parser *p)
18377{
18378 D(p->level++);
18379 if (p->error_indicator) {
18380 D(p->level--);
18381 return NULL;
18382 }
18383 expr_ty _res = NULL;
18384 int _mark = p->mark;
18385 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
18386 p->error_indicator = 1;
18387 D(p->level--);
18388 return NULL;
18389 }
18390 int _start_lineno = p->tokens[_mark]->lineno;
18391 UNUSED(_start_lineno); // Only used by EXTRA macro
18392 int _start_col_offset = p->tokens[_mark]->col_offset;
18393 UNUSED(_start_col_offset); // Only used by EXTRA macro
18394 { // disjunction 'if' disjunction 'else' expression
18395 if (p->error_indicator) {
18396 D(p->level--);
18397 return NULL;
18398 }
18399 D(fprintf(stderr, "%*c> expression_without_invalid[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "disjunction 'if' disjunction 'else' expression"));
18400 Token * _keyword;
18401 Token * _keyword_1;
18402 expr_ty a;
18403 expr_ty b;
18404 expr_ty c;
18405 if (
18406 (a = disjunction_rule(p)) // disjunction
18407 &&
18408 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
18409 &&
18410 (b = disjunction_rule(p)) // disjunction
18411 &&
18412 (_keyword_1 = _PyPegen_expect_token(p, 516)) // token='else'
18413 &&
18414 (c = expression_rule(p)) // expression
18415 )
18416 {
18417 D(fprintf(stderr, "%*c+ expression_without_invalid[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "disjunction 'if' disjunction 'else' expression"));
18418 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
18419 if (_token == NULL) {
18420 D(p->level--);
18421 return NULL;
18422 }
18423 int _end_lineno = _token->end_lineno;
18424 UNUSED(_end_lineno); // Only used by EXTRA macro
18425 int _end_col_offset = _token->end_col_offset;
18426 UNUSED(_end_col_offset); // Only used by EXTRA macro
18427 _res = _PyAST_IfExp ( b , a , c , EXTRA );
18428 if (_res == NULL && PyErr_Occurred()) {
18429 p->error_indicator = 1;
18430 D(p->level--);
18431 return NULL;
18432 }
18433 goto done;
18434 }
18435 p->mark = _mark;
18436 D(fprintf(stderr, "%*c%s expression_without_invalid[%d-%d]: %s failed!\n", p->level, ' ',
18437 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "disjunction 'if' disjunction 'else' expression"));
18438 }
18439 { // disjunction
18440 if (p->error_indicator) {
18441 D(p->level--);
18442 return NULL;
18443 }
18444 D(fprintf(stderr, "%*c> expression_without_invalid[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "disjunction"));
18445 expr_ty disjunction_var;
18446 if (
18447 (disjunction_var = disjunction_rule(p)) // disjunction
18448 )
18449 {
18450 D(fprintf(stderr, "%*c+ expression_without_invalid[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "disjunction"));
18451 _res = disjunction_var;
18452 goto done;
18453 }
18454 p->mark = _mark;
18455 D(fprintf(stderr, "%*c%s expression_without_invalid[%d-%d]: %s failed!\n", p->level, ' ',
18456 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "disjunction"));
18457 }
18458 { // lambdef
18459 if (p->error_indicator) {
18460 D(p->level--);
18461 return NULL;
18462 }
18463 D(fprintf(stderr, "%*c> expression_without_invalid[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambdef"));
18464 expr_ty lambdef_var;
18465 if (
18466 (lambdef_var = lambdef_rule(p)) // lambdef
18467 )
18468 {
18469 D(fprintf(stderr, "%*c+ expression_without_invalid[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambdef"));
18470 _res = lambdef_var;
18471 goto done;
18472 }
18473 p->mark = _mark;
18474 D(fprintf(stderr, "%*c%s expression_without_invalid[%d-%d]: %s failed!\n", p->level, ' ',
18475 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambdef"));
18476 }
18477 _res = NULL;
18478 done:
18479 D(p->level--);
18480 return _res;
18481}
18482
18483// invalid_expression:
18484// | !(NAME STRING | SOFT_KEYWORD) disjunction expression_without_invalid
Pablo Galindob2802482021-04-15 21:38:45 +010018485static void *
18486invalid_expression_rule(Parser *p)
18487{
18488 D(p->level++);
18489 if (p->error_indicator) {
18490 D(p->level--);
18491 return NULL;
18492 }
18493 void * _res = NULL;
18494 int _mark = p->mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018495 { // !(NAME STRING | SOFT_KEYWORD) disjunction expression_without_invalid
Pablo Galindob2802482021-04-15 21:38:45 +010018496 if (p->error_indicator) {
18497 D(p->level--);
18498 return NULL;
18499 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018500 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 +010018501 expr_ty a;
Pablo Galindoa77aac42021-04-23 14:27:05 +010018502 expr_ty b;
Pablo Galindob2802482021-04-15 21:38:45 +010018503 if (
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018504 _PyPegen_lookahead(0, _tmp_145_rule, p)
Pablo Galindob2802482021-04-15 21:38:45 +010018505 &&
18506 (a = disjunction_rule(p)) // disjunction
18507 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018508 (b = expression_without_invalid_rule(p)) // expression_without_invalid
Pablo Galindob2802482021-04-15 21:38:45 +010018509 )
18510 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018511 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 +010018512 _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , b , "invalid syntax. Perhaps you forgot a comma?" );
Pablo Galindob2802482021-04-15 21:38:45 +010018513 if (_res == NULL && PyErr_Occurred()) {
18514 p->error_indicator = 1;
18515 D(p->level--);
18516 return NULL;
18517 }
18518 goto done;
18519 }
18520 p->mark = _mark;
18521 D(fprintf(stderr, "%*c%s invalid_expression[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018522 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "!(NAME STRING | SOFT_KEYWORD) disjunction expression_without_invalid"));
Pablo Galindob2802482021-04-15 21:38:45 +010018523 }
18524 _res = NULL;
18525 done:
18526 D(p->level--);
18527 return _res;
18528}
18529
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018530// invalid_named_expression:
18531// | expression ':=' expression
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018532// | NAME '=' bitwise_or !('=' | ':=')
18533// | !(list | tuple | genexp | 'True' | 'None' | 'False') bitwise_or '=' bitwise_or !('=' | ':=')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018534static void *
18535invalid_named_expression_rule(Parser *p)
18536{
18537 D(p->level++);
18538 if (p->error_indicator) {
18539 D(p->level--);
18540 return NULL;
18541 }
18542 void * _res = NULL;
18543 int _mark = p->mark;
18544 { // expression ':=' expression
18545 if (p->error_indicator) {
18546 D(p->level--);
18547 return NULL;
18548 }
18549 D(fprintf(stderr, "%*c> invalid_named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':=' expression"));
18550 Token * _literal;
18551 expr_ty a;
18552 expr_ty expression_var;
18553 if (
18554 (a = expression_rule(p)) // expression
18555 &&
18556 (_literal = _PyPegen_expect_token(p, 53)) // token=':='
18557 &&
18558 (expression_var = expression_rule(p)) // expression
18559 )
18560 {
18561 D(fprintf(stderr, "%*c+ invalid_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':=' expression"));
18562 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "cannot use assignment expressions with %s" , _PyPegen_get_expr_name ( a ) );
18563 if (_res == NULL && PyErr_Occurred()) {
18564 p->error_indicator = 1;
18565 D(p->level--);
18566 return NULL;
18567 }
18568 goto done;
18569 }
18570 p->mark = _mark;
18571 D(fprintf(stderr, "%*c%s invalid_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
18572 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':=' expression"));
18573 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018574 { // NAME '=' bitwise_or !('=' | ':=')
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018575 if (p->error_indicator) {
18576 D(p->level--);
18577 return NULL;
18578 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018579 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 +010018580 Token * _literal;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018581 expr_ty a;
Pablo Galindoa77aac42021-04-23 14:27:05 +010018582 expr_ty b;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018583 if (
18584 (a = _PyPegen_name_token(p)) // NAME
18585 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010018586 (_literal = _PyPegen_expect_token(p, 22)) // token='='
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018587 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010018588 (b = bitwise_or_rule(p)) // bitwise_or
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018589 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018590 _PyPegen_lookahead(0, _tmp_146_rule, p)
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018591 )
18592 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018593 D(fprintf(stderr, "%*c+ invalid_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '=' bitwise_or !('=' | ':=')"));
18594 _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 +010018595 if (_res == NULL && PyErr_Occurred()) {
18596 p->error_indicator = 1;
18597 D(p->level--);
18598 return NULL;
18599 }
18600 goto done;
18601 }
18602 p->mark = _mark;
18603 D(fprintf(stderr, "%*c%s invalid_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018604 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' bitwise_or !('=' | ':=')"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018605 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018606 { // !(list | tuple | genexp | 'True' | 'None' | 'False') bitwise_or '=' bitwise_or !('=' | ':=')
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018607 if (p->error_indicator) {
18608 D(p->level--);
18609 return NULL;
18610 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018611 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 +010018612 expr_ty a;
18613 Token * b;
18614 expr_ty bitwise_or_var;
18615 if (
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018616 _PyPegen_lookahead(0, _tmp_147_rule, p)
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018617 &&
18618 (a = bitwise_or_rule(p)) // bitwise_or
18619 &&
18620 (b = _PyPegen_expect_token(p, 22)) // token='='
18621 &&
18622 (bitwise_or_var = bitwise_or_rule(p)) // bitwise_or
18623 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018624 _PyPegen_lookahead(0, _tmp_148_rule, p)
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018625 )
18626 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018627 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 !('=' | ':=')"));
18628 _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 +010018629 if (_res == NULL && PyErr_Occurred()) {
18630 p->error_indicator = 1;
18631 D(p->level--);
18632 return NULL;
18633 }
18634 goto done;
18635 }
18636 p->mark = _mark;
18637 D(fprintf(stderr, "%*c%s invalid_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018638 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "!(list | tuple | genexp | 'True' | 'None' | 'False') bitwise_or '=' bitwise_or !('=' | ':=')"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018639 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018640 _res = NULL;
18641 done:
18642 D(p->level--);
18643 return _res;
18644}
18645
18646// invalid_assignment:
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030018647// | invalid_ann_assign_target ':' expression
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018648// | star_named_expression ',' star_named_expressions* ':' expression
18649// | expression ':' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018650// | ((star_targets '='))* star_expressions '='
18651// | ((star_targets '='))* yield_expr '='
18652// | star_expressions augassign (yield_expr | star_expressions)
18653static void *
18654invalid_assignment_rule(Parser *p)
18655{
18656 D(p->level++);
18657 if (p->error_indicator) {
18658 D(p->level--);
18659 return NULL;
18660 }
18661 void * _res = NULL;
18662 int _mark = p->mark;
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030018663 { // invalid_ann_assign_target ':' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018664 if (p->error_indicator) {
18665 D(p->level--);
18666 return NULL;
18667 }
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030018668 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 +010018669 Token * _literal;
18670 expr_ty a;
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018671 expr_ty expression_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018672 if (
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030018673 (a = invalid_ann_assign_target_rule(p)) // invalid_ann_assign_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018674 &&
18675 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018676 &&
18677 (expression_var = expression_rule(p)) // expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018678 )
18679 {
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030018680 D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_ann_assign_target ':' expression"));
18681 _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 +010018682 if (_res == NULL && PyErr_Occurred()) {
18683 p->error_indicator = 1;
18684 D(p->level--);
18685 return NULL;
18686 }
18687 goto done;
18688 }
18689 p->mark = _mark;
18690 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030018691 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_ann_assign_target ':' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018692 }
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018693 { // star_named_expression ',' star_named_expressions* ':' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018694 if (p->error_indicator) {
18695 D(p->level--);
18696 return NULL;
18697 }
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018698 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 +010018699 Token * _literal;
18700 Token * _literal_1;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018701 asdl_seq * _loop0_149_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018702 expr_ty a;
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018703 expr_ty expression_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018704 if (
18705 (a = star_named_expression_rule(p)) // star_named_expression
18706 &&
18707 (_literal = _PyPegen_expect_token(p, 12)) // token=','
18708 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018709 (_loop0_149_var = _loop0_149_rule(p)) // star_named_expressions*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018710 &&
18711 (_literal_1 = _PyPegen_expect_token(p, 11)) // token=':'
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018712 &&
18713 (expression_var = expression_rule(p)) // expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018714 )
18715 {
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018716 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 +010018717 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "only single target (not tuple) can be annotated" );
18718 if (_res == NULL && PyErr_Occurred()) {
18719 p->error_indicator = 1;
18720 D(p->level--);
18721 return NULL;
18722 }
18723 goto done;
18724 }
18725 p->mark = _mark;
18726 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018727 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression ',' star_named_expressions* ':' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018728 }
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018729 { // expression ':' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018730 if (p->error_indicator) {
18731 D(p->level--);
18732 return NULL;
18733 }
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018734 D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018735 Token * _literal;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018736 expr_ty a;
18737 expr_ty expression_var;
18738 if (
18739 (a = expression_rule(p)) // expression
18740 &&
18741 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
18742 &&
18743 (expression_var = expression_rule(p)) // expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018744 )
18745 {
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018746 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 +010018747 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "illegal target for annotation" );
18748 if (_res == NULL && PyErr_Occurred()) {
18749 p->error_indicator = 1;
18750 D(p->level--);
18751 return NULL;
18752 }
18753 goto done;
18754 }
18755 p->mark = _mark;
18756 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018757 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018758 }
18759 { // ((star_targets '='))* star_expressions '='
18760 if (p->error_indicator) {
18761 D(p->level--);
18762 return NULL;
18763 }
18764 D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "((star_targets '='))* star_expressions '='"));
18765 Token * _literal;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018766 asdl_seq * _loop0_150_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018767 expr_ty a;
18768 if (
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018769 (_loop0_150_var = _loop0_150_rule(p)) // ((star_targets '='))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018770 &&
18771 (a = star_expressions_rule(p)) // star_expressions
18772 &&
18773 (_literal = _PyPegen_expect_token(p, 22)) // token='='
18774 )
18775 {
18776 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 +030018777 _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( STAR_TARGETS , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018778 if (_res == NULL && PyErr_Occurred()) {
18779 p->error_indicator = 1;
18780 D(p->level--);
18781 return NULL;
18782 }
18783 goto done;
18784 }
18785 p->mark = _mark;
18786 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
18787 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "((star_targets '='))* star_expressions '='"));
18788 }
18789 { // ((star_targets '='))* yield_expr '='
18790 if (p->error_indicator) {
18791 D(p->level--);
18792 return NULL;
18793 }
18794 D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "((star_targets '='))* yield_expr '='"));
18795 Token * _literal;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018796 asdl_seq * _loop0_151_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018797 expr_ty a;
18798 if (
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018799 (_loop0_151_var = _loop0_151_rule(p)) // ((star_targets '='))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018800 &&
18801 (a = yield_expr_rule(p)) // yield_expr
18802 &&
18803 (_literal = _PyPegen_expect_token(p, 22)) // token='='
18804 )
18805 {
18806 D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "((star_targets '='))* yield_expr '='"));
18807 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "assignment to yield expression not possible" );
18808 if (_res == NULL && PyErr_Occurred()) {
18809 p->error_indicator = 1;
18810 D(p->level--);
18811 return NULL;
18812 }
18813 goto done;
18814 }
18815 p->mark = _mark;
18816 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
18817 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "((star_targets '='))* yield_expr '='"));
18818 }
18819 { // star_expressions augassign (yield_expr | star_expressions)
18820 if (p->error_indicator) {
18821 D(p->level--);
18822 return NULL;
18823 }
18824 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 -070018825 void *_tmp_152_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018826 expr_ty a;
18827 AugOperator* augassign_var;
18828 if (
18829 (a = star_expressions_rule(p)) // star_expressions
18830 &&
18831 (augassign_var = augassign_rule(p)) // augassign
18832 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018833 (_tmp_152_var = _tmp_152_rule(p)) // yield_expr | star_expressions
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018834 )
18835 {
18836 D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions augassign (yield_expr | star_expressions)"));
18837 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "'%s' is an illegal expression for augmented assignment" , _PyPegen_get_expr_name ( a ) );
18838 if (_res == NULL && PyErr_Occurred()) {
18839 p->error_indicator = 1;
18840 D(p->level--);
18841 return NULL;
18842 }
18843 goto done;
18844 }
18845 p->mark = _mark;
18846 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
18847 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions augassign (yield_expr | star_expressions)"));
18848 }
18849 _res = NULL;
18850 done:
18851 D(p->level--);
18852 return _res;
18853}
18854
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030018855// invalid_ann_assign_target: list | tuple | '(' invalid_ann_assign_target ')'
18856static expr_ty
18857invalid_ann_assign_target_rule(Parser *p)
18858{
18859 D(p->level++);
18860 if (p->error_indicator) {
18861 D(p->level--);
18862 return NULL;
18863 }
18864 expr_ty _res = NULL;
18865 int _mark = p->mark;
18866 { // list
18867 if (p->error_indicator) {
18868 D(p->level--);
18869 return NULL;
18870 }
18871 D(fprintf(stderr, "%*c> invalid_ann_assign_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "list"));
18872 expr_ty list_var;
18873 if (
18874 (list_var = list_rule(p)) // list
18875 )
18876 {
18877 D(fprintf(stderr, "%*c+ invalid_ann_assign_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "list"));
18878 _res = list_var;
18879 goto done;
18880 }
18881 p->mark = _mark;
18882 D(fprintf(stderr, "%*c%s invalid_ann_assign_target[%d-%d]: %s failed!\n", p->level, ' ',
18883 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "list"));
18884 }
18885 { // tuple
18886 if (p->error_indicator) {
18887 D(p->level--);
18888 return NULL;
18889 }
18890 D(fprintf(stderr, "%*c> invalid_ann_assign_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "tuple"));
18891 expr_ty tuple_var;
18892 if (
18893 (tuple_var = tuple_rule(p)) // tuple
18894 )
18895 {
18896 D(fprintf(stderr, "%*c+ invalid_ann_assign_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "tuple"));
18897 _res = tuple_var;
18898 goto done;
18899 }
18900 p->mark = _mark;
18901 D(fprintf(stderr, "%*c%s invalid_ann_assign_target[%d-%d]: %s failed!\n", p->level, ' ',
18902 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "tuple"));
18903 }
18904 { // '(' invalid_ann_assign_target ')'
18905 if (p->error_indicator) {
18906 D(p->level--);
18907 return NULL;
18908 }
18909 D(fprintf(stderr, "%*c> invalid_ann_assign_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' invalid_ann_assign_target ')'"));
18910 Token * _literal;
18911 Token * _literal_1;
18912 expr_ty a;
18913 if (
18914 (_literal = _PyPegen_expect_token(p, 7)) // token='('
18915 &&
18916 (a = invalid_ann_assign_target_rule(p)) // invalid_ann_assign_target
18917 &&
18918 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
18919 )
18920 {
18921 D(fprintf(stderr, "%*c+ invalid_ann_assign_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' invalid_ann_assign_target ')'"));
18922 _res = a;
18923 if (_res == NULL && PyErr_Occurred()) {
18924 p->error_indicator = 1;
18925 D(p->level--);
18926 return NULL;
18927 }
18928 goto done;
18929 }
18930 p->mark = _mark;
18931 D(fprintf(stderr, "%*c%s invalid_ann_assign_target[%d-%d]: %s failed!\n", p->level, ' ',
18932 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' invalid_ann_assign_target ')'"));
18933 }
18934 _res = NULL;
18935 done:
18936 D(p->level--);
18937 return _res;
18938}
18939
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018940// invalid_del_stmt: 'del' star_expressions
18941static void *
18942invalid_del_stmt_rule(Parser *p)
18943{
18944 D(p->level++);
18945 if (p->error_indicator) {
18946 D(p->level--);
18947 return NULL;
18948 }
18949 void * _res = NULL;
18950 int _mark = p->mark;
18951 { // 'del' star_expressions
18952 if (p->error_indicator) {
18953 D(p->level--);
18954 return NULL;
18955 }
18956 D(fprintf(stderr, "%*c> invalid_del_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'del' star_expressions"));
18957 Token * _keyword;
18958 expr_ty a;
18959 if (
18960 (_keyword = _PyPegen_expect_token(p, 503)) // token='del'
18961 &&
18962 (a = star_expressions_rule(p)) // star_expressions
18963 )
18964 {
18965 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 +030018966 _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( DEL_TARGETS , a );
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018967 if (_res == NULL && PyErr_Occurred()) {
18968 p->error_indicator = 1;
18969 D(p->level--);
18970 return NULL;
18971 }
18972 goto done;
18973 }
18974 p->mark = _mark;
18975 D(fprintf(stderr, "%*c%s invalid_del_stmt[%d-%d]: %s failed!\n", p->level, ' ',
18976 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'del' star_expressions"));
18977 }
18978 _res = NULL;
18979 done:
18980 D(p->level--);
18981 return _res;
18982}
18983
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018984// invalid_block: NEWLINE !INDENT
18985static void *
18986invalid_block_rule(Parser *p)
18987{
18988 D(p->level++);
18989 if (p->error_indicator) {
18990 D(p->level--);
18991 return NULL;
18992 }
18993 void * _res = NULL;
18994 int _mark = p->mark;
18995 { // NEWLINE !INDENT
18996 if (p->error_indicator) {
18997 D(p->level--);
18998 return NULL;
18999 }
19000 D(fprintf(stderr, "%*c> invalid_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE !INDENT"));
19001 Token * newline_var;
19002 if (
19003 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
19004 &&
19005 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
19006 )
19007 {
19008 D(fprintf(stderr, "%*c+ invalid_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE !INDENT"));
19009 _res = RAISE_INDENTATION_ERROR ( "expected an indented block" );
19010 if (_res == NULL && PyErr_Occurred()) {
19011 p->error_indicator = 1;
19012 D(p->level--);
19013 return NULL;
19014 }
19015 goto done;
19016 }
19017 p->mark = _mark;
19018 D(fprintf(stderr, "%*c%s invalid_block[%d-%d]: %s failed!\n", p->level, ' ',
19019 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE !INDENT"));
19020 }
19021 _res = NULL;
19022 done:
19023 D(p->level--);
19024 return _res;
19025}
19026
Lysandros Nikolaou15acc4e2020-10-27 20:54:20 +020019027// Left-recursive
19028// invalid_primary: primary '{'
19029static void *
19030invalid_primary_rule(Parser *p)
19031{
19032 D(p->level++);
19033 if (p->error_indicator) {
19034 D(p->level--);
19035 return NULL;
19036 }
19037 void * _res = NULL;
19038 int _mark = p->mark;
19039 { // primary '{'
19040 if (p->error_indicator) {
19041 D(p->level--);
19042 return NULL;
19043 }
19044 D(fprintf(stderr, "%*c> invalid_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '{'"));
19045 Token * a;
19046 expr_ty primary_var;
19047 if (
19048 (primary_var = primary_rule(p)) // primary
19049 &&
19050 (a = _PyPegen_expect_token(p, 25)) // token='{'
19051 )
19052 {
19053 D(fprintf(stderr, "%*c+ invalid_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '{'"));
19054 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "invalid syntax" );
19055 if (_res == NULL && PyErr_Occurred()) {
19056 p->error_indicator = 1;
19057 D(p->level--);
19058 return NULL;
19059 }
19060 goto done;
19061 }
19062 p->mark = _mark;
19063 D(fprintf(stderr, "%*c%s invalid_primary[%d-%d]: %s failed!\n", p->level, ' ',
19064 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '{'"));
19065 }
19066 _res = NULL;
19067 done:
19068 D(p->level--);
19069 return _res;
19070}
19071
Pablo Galindo835f14f2021-01-31 22:52:56 +000019072// invalid_comprehension:
19073// | ('[' | '(' | '{') starred_expression for_if_clauses
Pablo Galindoa77aac42021-04-23 14:27:05 +010019074// | ('[' | '{') star_named_expression ',' star_named_expressions for_if_clauses
19075// | ('[' | '{') star_named_expression ',' for_if_clauses
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019076static void *
19077invalid_comprehension_rule(Parser *p)
19078{
19079 D(p->level++);
19080 if (p->error_indicator) {
19081 D(p->level--);
19082 return NULL;
19083 }
19084 void * _res = NULL;
19085 int _mark = p->mark;
19086 { // ('[' | '(' | '{') starred_expression for_if_clauses
19087 if (p->error_indicator) {
19088 D(p->level--);
19089 return NULL;
19090 }
19091 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 -070019092 void *_tmp_153_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019093 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010019094 asdl_comprehension_seq* for_if_clauses_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019095 if (
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070019096 (_tmp_153_var = _tmp_153_rule(p)) // '[' | '(' | '{'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019097 &&
19098 (a = starred_expression_rule(p)) // starred_expression
19099 &&
19100 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
19101 )
19102 {
19103 D(fprintf(stderr, "%*c+ invalid_comprehension[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "('[' | '(' | '{') starred_expression for_if_clauses"));
19104 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "iterable unpacking cannot be used in comprehension" );
19105 if (_res == NULL && PyErr_Occurred()) {
19106 p->error_indicator = 1;
19107 D(p->level--);
19108 return NULL;
19109 }
19110 goto done;
19111 }
19112 p->mark = _mark;
19113 D(fprintf(stderr, "%*c%s invalid_comprehension[%d-%d]: %s failed!\n", p->level, ' ',
19114 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('[' | '(' | '{') starred_expression for_if_clauses"));
19115 }
Pablo Galindoa77aac42021-04-23 14:27:05 +010019116 { // ('[' | '{') star_named_expression ',' star_named_expressions for_if_clauses
Pablo Galindo835f14f2021-01-31 22:52:56 +000019117 if (p->error_indicator) {
19118 D(p->level--);
19119 return NULL;
19120 }
Pablo Galindoa77aac42021-04-23 14:27:05 +010019121 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 +000019122 Token * _literal;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070019123 void *_tmp_154_var;
Pablo Galindo835f14f2021-01-31 22:52:56 +000019124 expr_ty a;
Pablo Galindoa77aac42021-04-23 14:27:05 +010019125 asdl_expr_seq* b;
Pablo Galindod4e6ed72021-02-03 23:29:26 +000019126 asdl_comprehension_seq* for_if_clauses_var;
Pablo Galindo835f14f2021-01-31 22:52:56 +000019127 if (
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070019128 (_tmp_154_var = _tmp_154_rule(p)) // '[' | '{'
Pablo Galindo835f14f2021-01-31 22:52:56 +000019129 &&
19130 (a = star_named_expression_rule(p)) // star_named_expression
19131 &&
19132 (_literal = _PyPegen_expect_token(p, 12)) // token=','
19133 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010019134 (b = star_named_expressions_rule(p)) // star_named_expressions
Pablo Galindod4e6ed72021-02-03 23:29:26 +000019135 &&
19136 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
Pablo Galindo835f14f2021-01-31 22:52:56 +000019137 )
19138 {
Pablo Galindoa77aac42021-04-23 14:27:05 +010019139 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"));
19140 _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 +000019141 if (_res == NULL && PyErr_Occurred()) {
19142 p->error_indicator = 1;
19143 D(p->level--);
19144 return NULL;
19145 }
19146 goto done;
19147 }
19148 p->mark = _mark;
19149 D(fprintf(stderr, "%*c%s invalid_comprehension[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindoa77aac42021-04-23 14:27:05 +010019150 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('[' | '{') star_named_expression ',' star_named_expressions for_if_clauses"));
19151 }
19152 { // ('[' | '{') star_named_expression ',' for_if_clauses
19153 if (p->error_indicator) {
19154 D(p->level--);
19155 return NULL;
19156 }
19157 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 -070019158 void *_tmp_155_var;
Pablo Galindoa77aac42021-04-23 14:27:05 +010019159 expr_ty a;
19160 Token * b;
19161 asdl_comprehension_seq* for_if_clauses_var;
19162 if (
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070019163 (_tmp_155_var = _tmp_155_rule(p)) // '[' | '{'
Pablo Galindoa77aac42021-04-23 14:27:05 +010019164 &&
19165 (a = star_named_expression_rule(p)) // star_named_expression
19166 &&
19167 (b = _PyPegen_expect_token(p, 12)) // token=','
19168 &&
19169 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
19170 )
19171 {
19172 D(fprintf(stderr, "%*c+ invalid_comprehension[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "('[' | '{') star_named_expression ',' for_if_clauses"));
19173 _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , b , "did you forget parentheses around the comprehension target?" );
19174 if (_res == NULL && PyErr_Occurred()) {
19175 p->error_indicator = 1;
19176 D(p->level--);
19177 return NULL;
19178 }
19179 goto done;
19180 }
19181 p->mark = _mark;
19182 D(fprintf(stderr, "%*c%s invalid_comprehension[%d-%d]: %s failed!\n", p->level, ' ',
19183 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('[' | '{') star_named_expression ',' for_if_clauses"));
Pablo Galindo835f14f2021-01-31 22:52:56 +000019184 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019185 _res = NULL;
19186 done:
19187 D(p->level--);
19188 return _res;
19189}
19190
19191// invalid_dict_comprehension: '{' '**' bitwise_or for_if_clauses '}'
19192static void *
19193invalid_dict_comprehension_rule(Parser *p)
19194{
19195 D(p->level++);
19196 if (p->error_indicator) {
19197 D(p->level--);
19198 return NULL;
19199 }
19200 void * _res = NULL;
19201 int _mark = p->mark;
19202 { // '{' '**' bitwise_or for_if_clauses '}'
19203 if (p->error_indicator) {
19204 D(p->level--);
19205 return NULL;
19206 }
19207 D(fprintf(stderr, "%*c> invalid_dict_comprehension[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' '**' bitwise_or for_if_clauses '}'"));
19208 Token * _literal;
19209 Token * _literal_1;
19210 Token * a;
19211 expr_ty bitwise_or_var;
Pablo Galindoa5634c42020-09-16 19:42:00 +010019212 asdl_comprehension_seq* for_if_clauses_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019213 if (
19214 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
19215 &&
19216 (a = _PyPegen_expect_token(p, 35)) // token='**'
19217 &&
19218 (bitwise_or_var = bitwise_or_rule(p)) // bitwise_or
19219 &&
19220 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
19221 &&
19222 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
19223 )
19224 {
19225 D(fprintf(stderr, "%*c+ invalid_dict_comprehension[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' '**' bitwise_or for_if_clauses '}'"));
19226 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "dict unpacking cannot be used in dict comprehension" );
19227 if (_res == NULL && PyErr_Occurred()) {
19228 p->error_indicator = 1;
19229 D(p->level--);
19230 return NULL;
19231 }
19232 goto done;
19233 }
19234 p->mark = _mark;
19235 D(fprintf(stderr, "%*c%s invalid_dict_comprehension[%d-%d]: %s failed!\n", p->level, ' ',
19236 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' '**' bitwise_or for_if_clauses '}'"));
19237 }
19238 _res = NULL;
19239 done:
19240 D(p->level--);
19241 return _res;
19242}
19243
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019244// invalid_parameters: param_no_default* invalid_parameters_helper param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019245static void *
19246invalid_parameters_rule(Parser *p)
19247{
19248 D(p->level++);
19249 if (p->error_indicator) {
19250 D(p->level--);
19251 return NULL;
19252 }
19253 void * _res = NULL;
19254 int _mark = p->mark;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019255 { // param_no_default* invalid_parameters_helper param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019256 if (p->error_indicator) {
19257 D(p->level--);
19258 return NULL;
19259 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019260 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 -070019261 asdl_seq * _loop0_156_var;
Pablo Galindoa77aac42021-04-23 14:27:05 +010019262 arg_ty a;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019263 void *invalid_parameters_helper_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019264 if (
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070019265 (_loop0_156_var = _loop0_156_rule(p)) // param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019266 &&
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019267 (invalid_parameters_helper_var = invalid_parameters_helper_rule(p)) // invalid_parameters_helper
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019268 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010019269 (a = param_no_default_rule(p)) // param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019270 )
19271 {
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019272 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 +010019273 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "non-default argument follows default argument" );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019274 if (_res == NULL && PyErr_Occurred()) {
19275 p->error_indicator = 1;
19276 D(p->level--);
19277 return NULL;
19278 }
19279 goto done;
19280 }
19281 p->mark = _mark;
19282 D(fprintf(stderr, "%*c%s invalid_parameters[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019283 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default* invalid_parameters_helper param_no_default"));
19284 }
19285 _res = NULL;
19286 done:
19287 D(p->level--);
19288 return _res;
19289}
19290
19291// invalid_parameters_helper: slash_with_default | param_with_default+
19292static void *
19293invalid_parameters_helper_rule(Parser *p)
19294{
19295 D(p->level++);
19296 if (p->error_indicator) {
19297 D(p->level--);
19298 return NULL;
19299 }
19300 void * _res = NULL;
19301 int _mark = p->mark;
19302 { // slash_with_default
19303 if (p->error_indicator) {
19304 D(p->level--);
19305 return NULL;
19306 }
19307 D(fprintf(stderr, "%*c> invalid_parameters_helper[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slash_with_default"));
19308 SlashWithDefault* a;
19309 if (
19310 (a = slash_with_default_rule(p)) // slash_with_default
19311 )
19312 {
19313 D(fprintf(stderr, "%*c+ invalid_parameters_helper[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slash_with_default"));
19314 _res = _PyPegen_singleton_seq ( p , a );
19315 if (_res == NULL && PyErr_Occurred()) {
19316 p->error_indicator = 1;
19317 D(p->level--);
19318 return NULL;
19319 }
19320 goto done;
19321 }
19322 p->mark = _mark;
19323 D(fprintf(stderr, "%*c%s invalid_parameters_helper[%d-%d]: %s failed!\n", p->level, ' ',
19324 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slash_with_default"));
19325 }
19326 { // param_with_default+
19327 if (p->error_indicator) {
19328 D(p->level--);
19329 return NULL;
19330 }
19331 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 -070019332 asdl_seq * _loop1_157_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019333 if (
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070019334 (_loop1_157_var = _loop1_157_rule(p)) // param_with_default+
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019335 )
19336 {
19337 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 -070019338 _res = _loop1_157_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019339 goto done;
19340 }
19341 p->mark = _mark;
19342 D(fprintf(stderr, "%*c%s invalid_parameters_helper[%d-%d]: %s failed!\n", p->level, ' ',
19343 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default+"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019344 }
19345 _res = NULL;
19346 done:
19347 D(p->level--);
19348 return _res;
19349}
19350
19351// invalid_lambda_parameters:
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019352// | lambda_param_no_default* invalid_lambda_parameters_helper lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019353static void *
19354invalid_lambda_parameters_rule(Parser *p)
19355{
19356 D(p->level++);
19357 if (p->error_indicator) {
19358 D(p->level--);
19359 return NULL;
19360 }
19361 void * _res = NULL;
19362 int _mark = p->mark;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019363 { // lambda_param_no_default* invalid_lambda_parameters_helper lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019364 if (p->error_indicator) {
19365 D(p->level--);
19366 return NULL;
19367 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019368 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 -070019369 asdl_seq * _loop0_158_var;
Pablo Galindoa77aac42021-04-23 14:27:05 +010019370 arg_ty a;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019371 void *invalid_lambda_parameters_helper_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019372 if (
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070019373 (_loop0_158_var = _loop0_158_rule(p)) // lambda_param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019374 &&
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019375 (invalid_lambda_parameters_helper_var = invalid_lambda_parameters_helper_rule(p)) // invalid_lambda_parameters_helper
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019376 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010019377 (a = lambda_param_no_default_rule(p)) // lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019378 )
19379 {
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019380 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 +010019381 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "non-default argument follows default argument" );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019382 if (_res == NULL && PyErr_Occurred()) {
19383 p->error_indicator = 1;
19384 D(p->level--);
19385 return NULL;
19386 }
19387 goto done;
19388 }
19389 p->mark = _mark;
19390 D(fprintf(stderr, "%*c%s invalid_lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019391 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default* invalid_lambda_parameters_helper lambda_param_no_default"));
19392 }
19393 _res = NULL;
19394 done:
19395 D(p->level--);
19396 return _res;
19397}
19398
19399// invalid_lambda_parameters_helper:
19400// | lambda_slash_with_default
19401// | lambda_param_with_default+
19402static void *
19403invalid_lambda_parameters_helper_rule(Parser *p)
19404{
19405 D(p->level++);
19406 if (p->error_indicator) {
19407 D(p->level--);
19408 return NULL;
19409 }
19410 void * _res = NULL;
19411 int _mark = p->mark;
19412 { // lambda_slash_with_default
19413 if (p->error_indicator) {
19414 D(p->level--);
19415 return NULL;
19416 }
19417 D(fprintf(stderr, "%*c> invalid_lambda_parameters_helper[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_slash_with_default"));
19418 SlashWithDefault* a;
19419 if (
19420 (a = lambda_slash_with_default_rule(p)) // lambda_slash_with_default
19421 )
19422 {
19423 D(fprintf(stderr, "%*c+ invalid_lambda_parameters_helper[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_slash_with_default"));
19424 _res = _PyPegen_singleton_seq ( p , a );
19425 if (_res == NULL && PyErr_Occurred()) {
19426 p->error_indicator = 1;
19427 D(p->level--);
19428 return NULL;
19429 }
19430 goto done;
19431 }
19432 p->mark = _mark;
19433 D(fprintf(stderr, "%*c%s invalid_lambda_parameters_helper[%d-%d]: %s failed!\n", p->level, ' ',
19434 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_slash_with_default"));
19435 }
19436 { // lambda_param_with_default+
19437 if (p->error_indicator) {
19438 D(p->level--);
19439 return NULL;
19440 }
19441 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 -070019442 asdl_seq * _loop1_159_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019443 if (
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070019444 (_loop1_159_var = _loop1_159_rule(p)) // lambda_param_with_default+
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019445 )
19446 {
19447 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 -070019448 _res = _loop1_159_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019449 goto done;
19450 }
19451 p->mark = _mark;
19452 D(fprintf(stderr, "%*c%s invalid_lambda_parameters_helper[%d-%d]: %s failed!\n", p->level, ' ',
19453 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default+"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019454 }
19455 _res = NULL;
19456 done:
19457 D(p->level--);
19458 return _res;
19459}
19460
19461// invalid_star_etc: '*' (')' | ',' (')' | '**')) | '*' ',' TYPE_COMMENT
19462static void *
19463invalid_star_etc_rule(Parser *p)
19464{
19465 D(p->level++);
19466 if (p->error_indicator) {
19467 D(p->level--);
19468 return NULL;
19469 }
19470 void * _res = NULL;
19471 int _mark = p->mark;
19472 { // '*' (')' | ',' (')' | '**'))
19473 if (p->error_indicator) {
19474 D(p->level--);
19475 return NULL;
19476 }
19477 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 -070019478 void *_tmp_160_var;
Pablo Galindoa77aac42021-04-23 14:27:05 +010019479 Token * a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019480 if (
Pablo Galindoa77aac42021-04-23 14:27:05 +010019481 (a = _PyPegen_expect_token(p, 16)) // token='*'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019482 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070019483 (_tmp_160_var = _tmp_160_rule(p)) // ')' | ',' (')' | '**')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019484 )
19485 {
19486 D(fprintf(stderr, "%*c+ invalid_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' (')' | ',' (')' | '**'))"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010019487 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "named arguments must follow bare *" );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019488 if (_res == NULL && PyErr_Occurred()) {
19489 p->error_indicator = 1;
19490 D(p->level--);
19491 return NULL;
19492 }
19493 goto done;
19494 }
19495 p->mark = _mark;
19496 D(fprintf(stderr, "%*c%s invalid_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
19497 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' (')' | ',' (')' | '**'))"));
19498 }
19499 { // '*' ',' TYPE_COMMENT
19500 if (p->error_indicator) {
19501 D(p->level--);
19502 return NULL;
19503 }
19504 D(fprintf(stderr, "%*c> invalid_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' ',' TYPE_COMMENT"));
19505 Token * _literal;
19506 Token * _literal_1;
19507 Token * type_comment_var;
19508 if (
19509 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
19510 &&
19511 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
19512 &&
19513 (type_comment_var = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
19514 )
19515 {
19516 D(fprintf(stderr, "%*c+ invalid_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' ',' TYPE_COMMENT"));
19517 _res = RAISE_SYNTAX_ERROR ( "bare * has associated type comment" );
19518 if (_res == NULL && PyErr_Occurred()) {
19519 p->error_indicator = 1;
19520 D(p->level--);
19521 return NULL;
19522 }
19523 goto done;
19524 }
19525 p->mark = _mark;
19526 D(fprintf(stderr, "%*c%s invalid_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
19527 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' ',' TYPE_COMMENT"));
19528 }
19529 _res = NULL;
19530 done:
19531 D(p->level--);
19532 return _res;
19533}
19534
19535// invalid_lambda_star_etc: '*' (':' | ',' (':' | '**'))
19536static void *
19537invalid_lambda_star_etc_rule(Parser *p)
19538{
19539 D(p->level++);
19540 if (p->error_indicator) {
19541 D(p->level--);
19542 return NULL;
19543 }
19544 void * _res = NULL;
19545 int _mark = p->mark;
19546 { // '*' (':' | ',' (':' | '**'))
19547 if (p->error_indicator) {
19548 D(p->level--);
19549 return NULL;
19550 }
19551 D(fprintf(stderr, "%*c> invalid_lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (':' | ',' (':' | '**'))"));
19552 Token * _literal;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070019553 void *_tmp_161_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019554 if (
19555 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
19556 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070019557 (_tmp_161_var = _tmp_161_rule(p)) // ':' | ',' (':' | '**')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019558 )
19559 {
19560 D(fprintf(stderr, "%*c+ invalid_lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' (':' | ',' (':' | '**'))"));
19561 _res = RAISE_SYNTAX_ERROR ( "named arguments must follow bare *" );
19562 if (_res == NULL && PyErr_Occurred()) {
19563 p->error_indicator = 1;
19564 D(p->level--);
19565 return NULL;
19566 }
19567 goto done;
19568 }
19569 p->mark = _mark;
19570 D(fprintf(stderr, "%*c%s invalid_lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
19571 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' (':' | ',' (':' | '**'))"));
19572 }
19573 _res = NULL;
19574 done:
19575 D(p->level--);
19576 return _res;
19577}
19578
19579// invalid_double_type_comments: TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT
19580static void *
19581invalid_double_type_comments_rule(Parser *p)
19582{
19583 D(p->level++);
19584 if (p->error_indicator) {
19585 D(p->level--);
19586 return NULL;
19587 }
19588 void * _res = NULL;
19589 int _mark = p->mark;
19590 { // TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT
19591 if (p->error_indicator) {
19592 D(p->level--);
19593 return NULL;
19594 }
19595 D(fprintf(stderr, "%*c> invalid_double_type_comments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT"));
19596 Token * indent_var;
19597 Token * newline_var;
19598 Token * newline_var_1;
19599 Token * type_comment_var;
19600 Token * type_comment_var_1;
19601 if (
19602 (type_comment_var = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
19603 &&
19604 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
19605 &&
19606 (type_comment_var_1 = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
19607 &&
19608 (newline_var_1 = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
19609 &&
19610 (indent_var = _PyPegen_expect_token(p, INDENT)) // token='INDENT'
19611 )
19612 {
19613 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"));
19614 _res = RAISE_SYNTAX_ERROR ( "Cannot have two type comments on def" );
19615 if (_res == NULL && PyErr_Occurred()) {
19616 p->error_indicator = 1;
19617 D(p->level--);
19618 return NULL;
19619 }
19620 goto done;
19621 }
19622 p->mark = _mark;
19623 D(fprintf(stderr, "%*c%s invalid_double_type_comments[%d-%d]: %s failed!\n", p->level, ' ',
19624 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT"));
19625 }
19626 _res = NULL;
19627 done:
19628 D(p->level--);
19629 return _res;
19630}
19631
Pablo Galindo58fb1562021-02-02 19:54:22 +000019632// invalid_with_item: expression 'as' expression &(',' | ')' | ':')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019633static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019634invalid_with_item_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019635{
19636 D(p->level++);
19637 if (p->error_indicator) {
19638 D(p->level--);
19639 return NULL;
19640 }
19641 void * _res = NULL;
19642 int _mark = p->mark;
Pablo Galindo58fb1562021-02-02 19:54:22 +000019643 { // expression 'as' expression &(',' | ')' | ':')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019644 if (p->error_indicator) {
19645 D(p->level--);
19646 return NULL;
19647 }
Pablo Galindo58fb1562021-02-02 19:54:22 +000019648 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 +030019649 Token * _keyword;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019650 expr_ty a;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019651 expr_ty expression_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019652 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019653 (expression_var = expression_rule(p)) // expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019654 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019655 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
19656 &&
19657 (a = expression_rule(p)) // expression
Pablo Galindo58fb1562021-02-02 19:54:22 +000019658 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070019659 _PyPegen_lookahead(1, _tmp_162_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019660 )
19661 {
Pablo Galindo58fb1562021-02-02 19:54:22 +000019662 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 +030019663 _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( STAR_TARGETS , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019664 if (_res == NULL && PyErr_Occurred()) {
19665 p->error_indicator = 1;
19666 D(p->level--);
19667 return NULL;
19668 }
19669 goto done;
19670 }
19671 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019672 D(fprintf(stderr, "%*c%s invalid_with_item[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +000019673 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression 'as' expression &(',' | ')' | ':')"));
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019674 }
19675 _res = NULL;
19676 done:
19677 D(p->level--);
19678 return _res;
19679}
19680
19681// invalid_for_target: ASYNC? 'for' star_expressions
19682static void *
19683invalid_for_target_rule(Parser *p)
19684{
19685 D(p->level++);
19686 if (p->error_indicator) {
19687 D(p->level--);
19688 return NULL;
19689 }
19690 void * _res = NULL;
19691 int _mark = p->mark;
19692 { // ASYNC? 'for' star_expressions
19693 if (p->error_indicator) {
19694 D(p->level--);
19695 return NULL;
19696 }
19697 D(fprintf(stderr, "%*c> invalid_for_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC? 'for' star_expressions"));
19698 Token * _keyword;
19699 void *_opt_var;
19700 UNUSED(_opt_var); // Silence compiler warnings
19701 expr_ty a;
19702 if (
19703 (_opt_var = _PyPegen_expect_token(p, ASYNC), 1) // ASYNC?
19704 &&
19705 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
19706 &&
19707 (a = star_expressions_rule(p)) // star_expressions
19708 )
19709 {
19710 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 +030019711 _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( FOR_TARGETS , a );
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019712 if (_res == NULL && PyErr_Occurred()) {
19713 p->error_indicator = 1;
19714 D(p->level--);
19715 return NULL;
19716 }
19717 goto done;
19718 }
19719 p->mark = _mark;
19720 D(fprintf(stderr, "%*c%s invalid_for_target[%d-%d]: %s failed!\n", p->level, ' ',
19721 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'for' star_expressions"));
19722 }
19723 _res = NULL;
19724 done:
19725 D(p->level--);
19726 return _res;
19727}
19728
Pablo Galindo8efad612021-03-24 19:34:17 +000019729// invalid_group: '(' starred_expression ')' | '(' '**' expression ')'
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019730static void *
19731invalid_group_rule(Parser *p)
19732{
19733 D(p->level++);
19734 if (p->error_indicator) {
19735 D(p->level--);
19736 return NULL;
19737 }
19738 void * _res = NULL;
19739 int _mark = p->mark;
19740 { // '(' starred_expression ')'
19741 if (p->error_indicator) {
19742 D(p->level--);
19743 return NULL;
19744 }
19745 D(fprintf(stderr, "%*c> invalid_group[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' starred_expression ')'"));
19746 Token * _literal;
19747 Token * _literal_1;
19748 expr_ty a;
19749 if (
19750 (_literal = _PyPegen_expect_token(p, 7)) // token='('
19751 &&
19752 (a = starred_expression_rule(p)) // starred_expression
19753 &&
19754 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
19755 )
19756 {
19757 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 +010019758 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "cannot use starred expression here" );
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019759 if (_res == NULL && PyErr_Occurred()) {
19760 p->error_indicator = 1;
19761 D(p->level--);
19762 return NULL;
19763 }
19764 goto done;
19765 }
19766 p->mark = _mark;
19767 D(fprintf(stderr, "%*c%s invalid_group[%d-%d]: %s failed!\n", p->level, ' ',
19768 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' starred_expression ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019769 }
Pablo Galindo8efad612021-03-24 19:34:17 +000019770 { // '(' '**' expression ')'
19771 if (p->error_indicator) {
19772 D(p->level--);
19773 return NULL;
19774 }
19775 D(fprintf(stderr, "%*c> invalid_group[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' '**' expression ')'"));
19776 Token * _literal;
19777 Token * _literal_1;
19778 Token * a;
19779 expr_ty expression_var;
19780 if (
19781 (_literal = _PyPegen_expect_token(p, 7)) // token='('
19782 &&
19783 (a = _PyPegen_expect_token(p, 35)) // token='**'
19784 &&
19785 (expression_var = expression_rule(p)) // expression
19786 &&
19787 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
19788 )
19789 {
19790 D(fprintf(stderr, "%*c+ invalid_group[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' '**' expression ')'"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010019791 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "cannot use double starred expression here" );
Pablo Galindo8efad612021-03-24 19:34:17 +000019792 if (_res == NULL && PyErr_Occurred()) {
19793 p->error_indicator = 1;
19794 D(p->level--);
19795 return NULL;
19796 }
19797 goto done;
19798 }
19799 p->mark = _mark;
19800 D(fprintf(stderr, "%*c%s invalid_group[%d-%d]: %s failed!\n", p->level, ' ',
19801 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' '**' expression ')'"));
19802 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019803 _res = NULL;
19804 done:
19805 D(p->level--);
19806 return _res;
19807}
19808
19809// invalid_import_from_targets: import_from_as_names ','
19810static void *
19811invalid_import_from_targets_rule(Parser *p)
19812{
19813 D(p->level++);
19814 if (p->error_indicator) {
19815 D(p->level--);
19816 return NULL;
19817 }
19818 void * _res = NULL;
19819 int _mark = p->mark;
19820 { // import_from_as_names ','
19821 if (p->error_indicator) {
19822 D(p->level--);
19823 return NULL;
19824 }
19825 D(fprintf(stderr, "%*c> invalid_import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "import_from_as_names ','"));
19826 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +010019827 asdl_alias_seq* import_from_as_names_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019828 if (
19829 (import_from_as_names_var = import_from_as_names_rule(p)) // import_from_as_names
19830 &&
19831 (_literal = _PyPegen_expect_token(p, 12)) // token=','
19832 )
19833 {
19834 D(fprintf(stderr, "%*c+ invalid_import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "import_from_as_names ','"));
19835 _res = RAISE_SYNTAX_ERROR ( "trailing comma not allowed without surrounding parentheses" );
19836 if (_res == NULL && PyErr_Occurred()) {
19837 p->error_indicator = 1;
19838 D(p->level--);
19839 return NULL;
19840 }
19841 goto done;
19842 }
19843 p->mark = _mark;
19844 D(fprintf(stderr, "%*c%s invalid_import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
19845 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from_as_names ','"));
19846 }
19847 _res = NULL;
19848 done:
19849 D(p->level--);
19850 return _res;
19851}
19852
Pablo Galindo58fb1562021-02-02 19:54:22 +000019853// invalid_with_stmt:
19854// | ASYNC? 'with' ','.(expression ['as' star_target])+ &&':'
19855// | ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' &&':'
19856static void *
19857invalid_with_stmt_rule(Parser *p)
19858{
19859 D(p->level++);
19860 if (p->error_indicator) {
19861 D(p->level--);
19862 return NULL;
19863 }
19864 void * _res = NULL;
19865 int _mark = p->mark;
19866 { // ASYNC? 'with' ','.(expression ['as' star_target])+ &&':'
19867 if (p->error_indicator) {
19868 D(p->level--);
19869 return NULL;
19870 }
19871 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 -070019872 asdl_seq * _gather_163_var;
Pablo Galindo58fb1562021-02-02 19:54:22 +000019873 Token * _keyword;
19874 Token * _literal;
19875 void *_opt_var;
19876 UNUSED(_opt_var); // Silence compiler warnings
19877 if (
19878 (_opt_var = _PyPegen_expect_token(p, ASYNC), 1) // ASYNC?
19879 &&
19880 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
19881 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070019882 (_gather_163_var = _gather_163_rule(p)) // ','.(expression ['as' star_target])+
Pablo Galindo58fb1562021-02-02 19:54:22 +000019883 &&
19884 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
19885 )
19886 {
19887 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 -070019888 _res = _PyPegen_dummy_name(p, _opt_var, _keyword, _gather_163_var, _literal);
Pablo Galindo58fb1562021-02-02 19:54:22 +000019889 goto done;
19890 }
19891 p->mark = _mark;
19892 D(fprintf(stderr, "%*c%s invalid_with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
19893 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'with' ','.(expression ['as' star_target])+ &&':'"));
19894 }
19895 { // ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' &&':'
19896 if (p->error_indicator) {
19897 D(p->level--);
19898 return NULL;
19899 }
19900 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 -070019901 asdl_seq * _gather_165_var;
Pablo Galindo58fb1562021-02-02 19:54:22 +000019902 Token * _keyword;
19903 Token * _literal;
19904 Token * _literal_1;
19905 Token * _literal_2;
19906 void *_opt_var;
19907 UNUSED(_opt_var); // Silence compiler warnings
19908 void *_opt_var_1;
19909 UNUSED(_opt_var_1); // Silence compiler warnings
19910 if (
19911 (_opt_var = _PyPegen_expect_token(p, ASYNC), 1) // ASYNC?
19912 &&
19913 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
19914 &&
19915 (_literal = _PyPegen_expect_token(p, 7)) // token='('
19916 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070019917 (_gather_165_var = _gather_165_rule(p)) // ','.(expressions ['as' star_target])+
Pablo Galindo58fb1562021-02-02 19:54:22 +000019918 &&
19919 (_opt_var_1 = _PyPegen_expect_token(p, 12), 1) // ','?
19920 &&
19921 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
19922 &&
19923 (_literal_2 = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
19924 )
19925 {
19926 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 -070019927 _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 +000019928 goto done;
19929 }
19930 p->mark = _mark;
19931 D(fprintf(stderr, "%*c%s invalid_with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
19932 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' &&':'"));
19933 }
19934 _res = NULL;
19935 done:
19936 D(p->level--);
19937 return _res;
19938}
19939
Pablo Galindo56c95df2021-04-21 15:28:21 +010019940// invalid_with_stmt_indent:
19941// | ASYNC? 'with' ','.(expression ['as' star_target])+ ':' NEWLINE !INDENT
19942// | ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' ':' NEWLINE !INDENT
Pablo Galindo206cbda2021-02-07 18:42:21 +000019943static void *
Pablo Galindo56c95df2021-04-21 15:28:21 +010019944invalid_with_stmt_indent_rule(Parser *p)
19945{
19946 D(p->level++);
19947 if (p->error_indicator) {
19948 D(p->level--);
19949 return NULL;
19950 }
19951 void * _res = NULL;
19952 int _mark = p->mark;
19953 { // ASYNC? 'with' ','.(expression ['as' star_target])+ ':' NEWLINE !INDENT
19954 if (p->error_indicator) {
19955 D(p->level--);
19956 return NULL;
19957 }
19958 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 -070019959 asdl_seq * _gather_167_var;
Pablo Galindo56c95df2021-04-21 15:28:21 +010019960 Token * _literal;
19961 void *_opt_var;
19962 UNUSED(_opt_var); // Silence compiler warnings
19963 Token * a;
19964 Token * newline_var;
19965 if (
19966 (_opt_var = _PyPegen_expect_token(p, ASYNC), 1) // ASYNC?
19967 &&
19968 (a = _PyPegen_expect_token(p, 519)) // token='with'
19969 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070019970 (_gather_167_var = _gather_167_rule(p)) // ','.(expression ['as' star_target])+
Pablo Galindo56c95df2021-04-21 15:28:21 +010019971 &&
19972 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
19973 &&
19974 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
19975 &&
19976 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
19977 )
19978 {
19979 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"));
19980 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'with' statement on line %d" , a -> lineno );
19981 if (_res == NULL && PyErr_Occurred()) {
19982 p->error_indicator = 1;
19983 D(p->level--);
19984 return NULL;
19985 }
19986 goto done;
19987 }
19988 p->mark = _mark;
19989 D(fprintf(stderr, "%*c%s invalid_with_stmt_indent[%d-%d]: %s failed!\n", p->level, ' ',
19990 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'with' ','.(expression ['as' star_target])+ ':' NEWLINE !INDENT"));
19991 }
19992 { // ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' ':' NEWLINE !INDENT
19993 if (p->error_indicator) {
19994 D(p->level--);
19995 return NULL;
19996 }
19997 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 -070019998 asdl_seq * _gather_169_var;
Pablo Galindo56c95df2021-04-21 15:28:21 +010019999 Token * _literal;
20000 Token * _literal_1;
20001 Token * _literal_2;
20002 void *_opt_var;
20003 UNUSED(_opt_var); // Silence compiler warnings
20004 void *_opt_var_1;
20005 UNUSED(_opt_var_1); // Silence compiler warnings
20006 Token * a;
20007 Token * newline_var;
20008 if (
20009 (_opt_var = _PyPegen_expect_token(p, ASYNC), 1) // ASYNC?
20010 &&
20011 (a = _PyPegen_expect_token(p, 519)) // token='with'
20012 &&
20013 (_literal = _PyPegen_expect_token(p, 7)) // token='('
20014 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070020015 (_gather_169_var = _gather_169_rule(p)) // ','.(expressions ['as' star_target])+
Pablo Galindo56c95df2021-04-21 15:28:21 +010020016 &&
20017 (_opt_var_1 = _PyPegen_expect_token(p, 12), 1) // ','?
20018 &&
20019 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
20020 &&
20021 (_literal_2 = _PyPegen_expect_token(p, 11)) // token=':'
20022 &&
20023 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20024 &&
20025 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20026 )
20027 {
20028 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"));
20029 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'with' statement on line %d" , a -> lineno );
20030 if (_res == NULL && PyErr_Occurred()) {
20031 p->error_indicator = 1;
20032 D(p->level--);
20033 return NULL;
20034 }
20035 goto done;
20036 }
20037 p->mark = _mark;
20038 D(fprintf(stderr, "%*c%s invalid_with_stmt_indent[%d-%d]: %s failed!\n", p->level, ' ',
20039 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' ':' NEWLINE !INDENT"));
20040 }
20041 _res = NULL;
20042 done:
20043 D(p->level--);
20044 return _res;
20045}
20046
20047// invalid_try_stmt: 'try' ':' NEWLINE !INDENT
20048static void *
20049invalid_try_stmt_rule(Parser *p)
20050{
20051 D(p->level++);
20052 if (p->error_indicator) {
20053 D(p->level--);
20054 return NULL;
20055 }
20056 void * _res = NULL;
20057 int _mark = p->mark;
20058 { // 'try' ':' NEWLINE !INDENT
20059 if (p->error_indicator) {
20060 D(p->level--);
20061 return NULL;
20062 }
20063 D(fprintf(stderr, "%*c> invalid_try_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'try' ':' NEWLINE !INDENT"));
20064 Token * _literal;
20065 Token * a;
20066 Token * newline_var;
20067 if (
20068 (a = _PyPegen_expect_token(p, 511)) // token='try'
20069 &&
20070 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
20071 &&
20072 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20073 &&
20074 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20075 )
20076 {
20077 D(fprintf(stderr, "%*c+ invalid_try_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'try' ':' NEWLINE !INDENT"));
20078 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'try' statement on line %d" , a -> lineno );
20079 if (_res == NULL && PyErr_Occurred()) {
20080 p->error_indicator = 1;
20081 D(p->level--);
20082 return NULL;
20083 }
20084 goto done;
20085 }
20086 p->mark = _mark;
20087 D(fprintf(stderr, "%*c%s invalid_try_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20088 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'try' ':' NEWLINE !INDENT"));
20089 }
20090 _res = NULL;
20091 done:
20092 D(p->level--);
20093 return _res;
20094}
20095
20096// invalid_except_stmt:
20097// | 'except' expression ',' expressions ['as' NAME] ':'
20098// | 'except' expression ['as' NAME] NEWLINE
20099// | 'except' NEWLINE
20100static void *
20101invalid_except_stmt_rule(Parser *p)
Pablo Galindo206cbda2021-02-07 18:42:21 +000020102{
20103 D(p->level++);
20104 if (p->error_indicator) {
20105 D(p->level--);
20106 return NULL;
20107 }
20108 void * _res = NULL;
20109 int _mark = p->mark;
20110 { // 'except' expression ',' expressions ['as' NAME] ':'
20111 if (p->error_indicator) {
20112 D(p->level--);
20113 return NULL;
20114 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010020115 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 +000020116 Token * _keyword;
20117 Token * _literal;
20118 Token * _literal_1;
20119 void *_opt_var;
20120 UNUSED(_opt_var); // Silence compiler warnings
20121 expr_ty a;
20122 expr_ty expressions_var;
20123 if (
20124 (_keyword = _PyPegen_expect_token(p, 521)) // token='except'
20125 &&
20126 (a = expression_rule(p)) // expression
20127 &&
20128 (_literal = _PyPegen_expect_token(p, 12)) // token=','
20129 &&
20130 (expressions_var = expressions_rule(p)) // expressions
20131 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070020132 (_opt_var = _tmp_171_rule(p), 1) // ['as' NAME]
Pablo Galindo206cbda2021-02-07 18:42:21 +000020133 &&
20134 (_literal_1 = _PyPegen_expect_token(p, 11)) // token=':'
20135 )
20136 {
Pablo Galindo56c95df2021-04-21 15:28:21 +010020137 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 -070020138 _res = RAISE_SYNTAX_ERROR_STARTING_FROM ( a , "multiple exception types must be parenthesized" );
Pablo Galindo206cbda2021-02-07 18:42:21 +000020139 if (_res == NULL && PyErr_Occurred()) {
20140 p->error_indicator = 1;
20141 D(p->level--);
20142 return NULL;
20143 }
20144 goto done;
20145 }
20146 p->mark = _mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +010020147 D(fprintf(stderr, "%*c%s invalid_except_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo206cbda2021-02-07 18:42:21 +000020148 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' expression ',' expressions ['as' NAME] ':'"));
20149 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010020150 { // 'except' expression ['as' NAME] NEWLINE
Pablo Galindo206cbda2021-02-07 18:42:21 +000020151 if (p->error_indicator) {
20152 D(p->level--);
20153 return NULL;
20154 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010020155 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 +000020156 void *_opt_var;
20157 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindo56c95df2021-04-21 15:28:21 +010020158 Token * a;
Pablo Galindo206cbda2021-02-07 18:42:21 +000020159 expr_ty expression_var;
Pablo Galindo56c95df2021-04-21 15:28:21 +010020160 Token * newline_var;
Pablo Galindo206cbda2021-02-07 18:42:21 +000020161 if (
Pablo Galindo56c95df2021-04-21 15:28:21 +010020162 (a = _PyPegen_expect_token(p, 521)) // token='except'
Pablo Galindo206cbda2021-02-07 18:42:21 +000020163 &&
20164 (expression_var = expression_rule(p)) // expression
20165 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070020166 (_opt_var = _tmp_172_rule(p), 1) // ['as' NAME]
Pablo Galindo206cbda2021-02-07 18:42:21 +000020167 &&
Pablo Galindo56c95df2021-04-21 15:28:21 +010020168 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
Pablo Galindo206cbda2021-02-07 18:42:21 +000020169 )
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 ['as' NAME] NEWLINE"));
20172 _res = RAISE_SYNTAX_ERROR ( "expected ':'" );
20173 if (_res == NULL && PyErr_Occurred()) {
20174 p->error_indicator = 1;
20175 D(p->level--);
20176 return NULL;
20177 }
Pablo Galindo206cbda2021-02-07 18:42:21 +000020178 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, ' ',
20182 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' expression ['as' NAME] NEWLINE"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000020183 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010020184 { // 'except' 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' NEWLINE"));
20190 Token * a;
20191 Token * newline_var;
Pablo Galindo206cbda2021-02-07 18:42:21 +000020192 if (
Pablo Galindo56c95df2021-04-21 15:28:21 +010020193 (a = _PyPegen_expect_token(p, 521)) // token='except'
Pablo Galindo206cbda2021-02-07 18:42:21 +000020194 &&
Pablo Galindo56c95df2021-04-21 15:28:21 +010020195 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
Pablo Galindo206cbda2021-02-07 18:42:21 +000020196 )
20197 {
Pablo Galindo56c95df2021-04-21 15:28:21 +010020198 D(fprintf(stderr, "%*c+ invalid_except_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' NEWLINE"));
20199 _res = RAISE_SYNTAX_ERROR ( "expected ':'" );
20200 if (_res == NULL && PyErr_Occurred()) {
20201 p->error_indicator = 1;
20202 D(p->level--);
20203 return NULL;
20204 }
Pablo Galindo206cbda2021-02-07 18:42:21 +000020205 goto done;
20206 }
20207 p->mark = _mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +010020208 D(fprintf(stderr, "%*c%s invalid_except_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20209 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' NEWLINE"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000020210 }
20211 _res = NULL;
20212 done:
20213 D(p->level--);
20214 return _res;
20215}
20216
Pablo Galindo56c95df2021-04-21 15:28:21 +010020217// invalid_finally_stmt: 'finally' ':' NEWLINE !INDENT
20218static void *
20219invalid_finally_stmt_rule(Parser *p)
20220{
20221 D(p->level++);
20222 if (p->error_indicator) {
20223 D(p->level--);
20224 return NULL;
20225 }
20226 void * _res = NULL;
20227 int _mark = p->mark;
20228 { // 'finally' ':' NEWLINE !INDENT
20229 if (p->error_indicator) {
20230 D(p->level--);
20231 return NULL;
20232 }
20233 D(fprintf(stderr, "%*c> invalid_finally_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'finally' ':' NEWLINE !INDENT"));
20234 Token * _literal;
20235 Token * a;
20236 Token * newline_var;
20237 if (
20238 (a = _PyPegen_expect_token(p, 522)) // token='finally'
20239 &&
20240 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
20241 &&
20242 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20243 &&
20244 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20245 )
20246 {
20247 D(fprintf(stderr, "%*c+ invalid_finally_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'finally' ':' NEWLINE !INDENT"));
20248 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'finally' statement on line %d" , a -> lineno );
20249 if (_res == NULL && PyErr_Occurred()) {
20250 p->error_indicator = 1;
20251 D(p->level--);
20252 return NULL;
20253 }
20254 goto done;
20255 }
20256 p->mark = _mark;
20257 D(fprintf(stderr, "%*c%s invalid_finally_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20258 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'finally' ':' NEWLINE !INDENT"));
20259 }
20260 _res = NULL;
20261 done:
20262 D(p->level--);
20263 return _res;
20264}
20265
20266// invalid_except_stmt_indent:
20267// | 'except' expression ['as' NAME] ':' NEWLINE !INDENT
20268// | 'except' ':' NEWLINE !INDENT
20269static void *
20270invalid_except_stmt_indent_rule(Parser *p)
20271{
20272 D(p->level++);
20273 if (p->error_indicator) {
20274 D(p->level--);
20275 return NULL;
20276 }
20277 void * _res = NULL;
20278 int _mark = p->mark;
20279 { // 'except' expression ['as' NAME] ':' NEWLINE !INDENT
20280 if (p->error_indicator) {
20281 D(p->level--);
20282 return NULL;
20283 }
20284 D(fprintf(stderr, "%*c> invalid_except_stmt_indent[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' expression ['as' NAME] ':' NEWLINE !INDENT"));
20285 Token * _literal;
20286 void *_opt_var;
20287 UNUSED(_opt_var); // Silence compiler warnings
20288 Token * a;
20289 expr_ty expression_var;
20290 Token * newline_var;
20291 if (
20292 (a = _PyPegen_expect_token(p, 521)) // token='except'
20293 &&
20294 (expression_var = expression_rule(p)) // expression
20295 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070020296 (_opt_var = _tmp_173_rule(p), 1) // ['as' NAME]
Pablo Galindo56c95df2021-04-21 15:28:21 +010020297 &&
20298 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
20299 &&
20300 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20301 &&
20302 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20303 )
20304 {
20305 D(fprintf(stderr, "%*c+ invalid_except_stmt_indent[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' expression ['as' NAME] ':' NEWLINE !INDENT"));
20306 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'except' statement on line %d" , a -> lineno );
20307 if (_res == NULL && PyErr_Occurred()) {
20308 p->error_indicator = 1;
20309 D(p->level--);
20310 return NULL;
20311 }
20312 goto done;
20313 }
20314 p->mark = _mark;
20315 D(fprintf(stderr, "%*c%s invalid_except_stmt_indent[%d-%d]: %s failed!\n", p->level, ' ',
20316 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' expression ['as' NAME] ':' NEWLINE !INDENT"));
20317 }
20318 { // 'except' ':' NEWLINE !INDENT
20319 if (p->error_indicator) {
20320 D(p->level--);
20321 return NULL;
20322 }
20323 D(fprintf(stderr, "%*c> invalid_except_stmt_indent[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' ':' NEWLINE !INDENT"));
20324 Token * _literal;
20325 Token * a;
20326 Token * newline_var;
20327 if (
20328 (a = _PyPegen_expect_token(p, 521)) // token='except'
20329 &&
20330 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
20331 &&
20332 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20333 &&
20334 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20335 )
20336 {
20337 D(fprintf(stderr, "%*c+ invalid_except_stmt_indent[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' ':' NEWLINE !INDENT"));
20338 _res = RAISE_SYNTAX_ERROR ( "expected an indented block after except statement on line %d" , a -> lineno );
20339 if (_res == NULL && PyErr_Occurred()) {
20340 p->error_indicator = 1;
20341 D(p->level--);
20342 return NULL;
20343 }
20344 goto done;
20345 }
20346 p->mark = _mark;
20347 D(fprintf(stderr, "%*c%s invalid_except_stmt_indent[%d-%d]: %s failed!\n", p->level, ' ',
20348 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' ':' NEWLINE !INDENT"));
20349 }
20350 _res = NULL;
20351 done:
20352 D(p->level--);
20353 return _res;
20354}
20355
20356// invalid_match_stmt:
20357// | "match" subject_expr !':'
20358// | "match" subject_expr ':' NEWLINE !INDENT
Pablo Galindo08fb8ac2021-03-18 01:03:11 +000020359static void *
20360invalid_match_stmt_rule(Parser *p)
20361{
20362 D(p->level++);
20363 if (p->error_indicator) {
20364 D(p->level--);
20365 return NULL;
20366 }
20367 void * _res = NULL;
20368 int _mark = p->mark;
20369 { // "match" subject_expr !':'
20370 if (p->error_indicator) {
20371 D(p->level--);
20372 return NULL;
20373 }
20374 D(fprintf(stderr, "%*c> invalid_match_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"match\" subject_expr !':'"));
20375 expr_ty _keyword;
20376 expr_ty subject_expr_var;
20377 if (
20378 (_keyword = _PyPegen_expect_soft_keyword(p, "match")) // soft_keyword='"match"'
20379 &&
20380 (subject_expr_var = subject_expr_rule(p)) // subject_expr
20381 &&
20382 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 11) // token=':'
20383 )
20384 {
20385 D(fprintf(stderr, "%*c+ invalid_match_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"match\" subject_expr !':'"));
20386 _res = CHECK_VERSION ( void * , 10 , "Pattern matching is" , RAISE_SYNTAX_ERROR ( "expected ':'" ) );
20387 if (_res == NULL && PyErr_Occurred()) {
20388 p->error_indicator = 1;
20389 D(p->level--);
20390 return NULL;
20391 }
20392 goto done;
20393 }
20394 p->mark = _mark;
20395 D(fprintf(stderr, "%*c%s invalid_match_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20396 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"match\" subject_expr !':'"));
20397 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010020398 { // "match" subject_expr ':' NEWLINE !INDENT
20399 if (p->error_indicator) {
20400 D(p->level--);
20401 return NULL;
20402 }
20403 D(fprintf(stderr, "%*c> invalid_match_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"match\" subject_expr ':' NEWLINE !INDENT"));
20404 Token * _literal;
20405 expr_ty a;
20406 Token * newline_var;
20407 expr_ty subject;
20408 if (
20409 (a = _PyPegen_expect_soft_keyword(p, "match")) // soft_keyword='"match"'
20410 &&
20411 (subject = subject_expr_rule(p)) // subject_expr
20412 &&
20413 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
20414 &&
20415 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20416 &&
20417 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20418 )
20419 {
20420 D(fprintf(stderr, "%*c+ invalid_match_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"match\" subject_expr ':' NEWLINE !INDENT"));
20421 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'match' statement on line %d" , a -> lineno );
20422 if (_res == NULL && PyErr_Occurred()) {
20423 p->error_indicator = 1;
20424 D(p->level--);
20425 return NULL;
20426 }
20427 goto done;
20428 }
20429 p->mark = _mark;
20430 D(fprintf(stderr, "%*c%s invalid_match_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20431 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"match\" subject_expr ':' NEWLINE !INDENT"));
20432 }
Pablo Galindo08fb8ac2021-03-18 01:03:11 +000020433 _res = NULL;
20434 done:
20435 D(p->level--);
20436 return _res;
20437}
20438
Pablo Galindo56c95df2021-04-21 15:28:21 +010020439// invalid_case_block:
20440// | "case" patterns guard? !':'
20441// | "case" patterns guard? ':' NEWLINE !INDENT
Pablo Galindo08fb8ac2021-03-18 01:03:11 +000020442static void *
20443invalid_case_block_rule(Parser *p)
20444{
20445 D(p->level++);
20446 if (p->error_indicator) {
20447 D(p->level--);
20448 return NULL;
20449 }
20450 void * _res = NULL;
20451 int _mark = p->mark;
20452 { // "case" patterns guard? !':'
20453 if (p->error_indicator) {
20454 D(p->level--);
20455 return NULL;
20456 }
20457 D(fprintf(stderr, "%*c> invalid_case_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"case\" patterns guard? !':'"));
20458 expr_ty _keyword;
20459 void *_opt_var;
20460 UNUSED(_opt_var); // Silence compiler warnings
Nick Coghlan1e7b8582021-04-29 15:58:44 +100020461 pattern_ty patterns_var;
Pablo Galindo08fb8ac2021-03-18 01:03:11 +000020462 if (
20463 (_keyword = _PyPegen_expect_soft_keyword(p, "case")) // soft_keyword='"case"'
20464 &&
20465 (patterns_var = patterns_rule(p)) // patterns
20466 &&
20467 (_opt_var = guard_rule(p), 1) // guard?
20468 &&
20469 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 11) // token=':'
20470 )
20471 {
20472 D(fprintf(stderr, "%*c+ invalid_case_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"case\" patterns guard? !':'"));
20473 _res = RAISE_SYNTAX_ERROR ( "expected ':'" );
20474 if (_res == NULL && PyErr_Occurred()) {
20475 p->error_indicator = 1;
20476 D(p->level--);
20477 return NULL;
20478 }
20479 goto done;
20480 }
20481 p->mark = _mark;
20482 D(fprintf(stderr, "%*c%s invalid_case_block[%d-%d]: %s failed!\n", p->level, ' ',
20483 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"case\" patterns guard? !':'"));
20484 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010020485 { // "case" patterns guard? ':' NEWLINE !INDENT
20486 if (p->error_indicator) {
20487 D(p->level--);
20488 return NULL;
20489 }
20490 D(fprintf(stderr, "%*c> invalid_case_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"case\" patterns guard? ':' NEWLINE !INDENT"));
20491 Token * _literal;
20492 void *_opt_var;
20493 UNUSED(_opt_var); // Silence compiler warnings
20494 expr_ty a;
20495 Token * newline_var;
Nick Coghlan1e7b8582021-04-29 15:58:44 +100020496 pattern_ty patterns_var;
Pablo Galindo56c95df2021-04-21 15:28:21 +010020497 if (
20498 (a = _PyPegen_expect_soft_keyword(p, "case")) // soft_keyword='"case"'
20499 &&
20500 (patterns_var = patterns_rule(p)) // patterns
20501 &&
20502 (_opt_var = guard_rule(p), 1) // guard?
20503 &&
20504 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
20505 &&
20506 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20507 &&
20508 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20509 )
20510 {
20511 D(fprintf(stderr, "%*c+ invalid_case_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"case\" patterns guard? ':' NEWLINE !INDENT"));
20512 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'case' statement on line %d" , a -> lineno );
20513 if (_res == NULL && PyErr_Occurred()) {
20514 p->error_indicator = 1;
20515 D(p->level--);
20516 return NULL;
20517 }
20518 goto done;
20519 }
20520 p->mark = _mark;
20521 D(fprintf(stderr, "%*c%s invalid_case_block[%d-%d]: %s failed!\n", p->level, ' ',
20522 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"case\" patterns guard? ':' NEWLINE !INDENT"));
20523 }
Pablo Galindo08fb8ac2021-03-18 01:03:11 +000020524 _res = NULL;
20525 done:
20526 D(p->level--);
20527 return _res;
20528}
20529
Pablo Galindo56c95df2021-04-21 15:28:21 +010020530// invalid_if_stmt:
20531// | 'if' named_expression NEWLINE
20532// | 'if' named_expression ':' NEWLINE !INDENT
Pablo Galindob86ed8e2021-04-12 16:59:30 +010020533static void *
20534invalid_if_stmt_rule(Parser *p)
20535{
20536 D(p->level++);
20537 if (p->error_indicator) {
20538 D(p->level--);
20539 return NULL;
20540 }
20541 void * _res = NULL;
20542 int _mark = p->mark;
20543 { // 'if' named_expression NEWLINE
20544 if (p->error_indicator) {
20545 D(p->level--);
20546 return NULL;
20547 }
20548 D(fprintf(stderr, "%*c> invalid_if_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' named_expression NEWLINE"));
20549 Token * _keyword;
20550 expr_ty named_expression_var;
20551 Token * newline_var;
20552 if (
20553 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
20554 &&
20555 (named_expression_var = named_expression_rule(p)) // named_expression
20556 &&
20557 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20558 )
20559 {
20560 D(fprintf(stderr, "%*c+ invalid_if_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' named_expression NEWLINE"));
20561 _res = RAISE_SYNTAX_ERROR ( "expected ':'" );
20562 if (_res == NULL && PyErr_Occurred()) {
20563 p->error_indicator = 1;
20564 D(p->level--);
20565 return NULL;
20566 }
20567 goto done;
20568 }
20569 p->mark = _mark;
20570 D(fprintf(stderr, "%*c%s invalid_if_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20571 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' named_expression NEWLINE"));
20572 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010020573 { // 'if' named_expression ':' NEWLINE !INDENT
20574 if (p->error_indicator) {
20575 D(p->level--);
20576 return NULL;
20577 }
20578 D(fprintf(stderr, "%*c> invalid_if_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' named_expression ':' NEWLINE !INDENT"));
20579 Token * _literal;
20580 Token * a;
20581 expr_ty a_1;
20582 Token * newline_var;
20583 if (
20584 (a = _PyPegen_expect_token(p, 510)) // token='if'
20585 &&
20586 (a_1 = named_expression_rule(p)) // named_expression
20587 &&
20588 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
20589 &&
20590 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20591 &&
20592 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20593 )
20594 {
20595 D(fprintf(stderr, "%*c+ invalid_if_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' named_expression ':' NEWLINE !INDENT"));
20596 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'if' statement on line %d" , a -> lineno );
20597 if (_res == NULL && PyErr_Occurred()) {
20598 p->error_indicator = 1;
20599 D(p->level--);
20600 return NULL;
20601 }
20602 goto done;
20603 }
20604 p->mark = _mark;
20605 D(fprintf(stderr, "%*c%s invalid_if_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20606 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' named_expression ':' NEWLINE !INDENT"));
20607 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010020608 _res = NULL;
20609 done:
20610 D(p->level--);
20611 return _res;
20612}
20613
Pablo Galindo56c95df2021-04-21 15:28:21 +010020614// invalid_elif_stmt:
20615// | 'elif' named_expression NEWLINE
20616// | 'elif' named_expression ':' NEWLINE !INDENT
Pablo Galindob86ed8e2021-04-12 16:59:30 +010020617static void *
20618invalid_elif_stmt_rule(Parser *p)
20619{
20620 D(p->level++);
20621 if (p->error_indicator) {
20622 D(p->level--);
20623 return NULL;
20624 }
20625 void * _res = NULL;
20626 int _mark = p->mark;
20627 { // 'elif' named_expression NEWLINE
20628 if (p->error_indicator) {
20629 D(p->level--);
20630 return NULL;
20631 }
20632 D(fprintf(stderr, "%*c> invalid_elif_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'elif' named_expression NEWLINE"));
20633 Token * _keyword;
20634 expr_ty named_expression_var;
20635 Token * newline_var;
20636 if (
20637 (_keyword = _PyPegen_expect_token(p, 515)) // token='elif'
20638 &&
20639 (named_expression_var = named_expression_rule(p)) // named_expression
20640 &&
20641 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20642 )
20643 {
20644 D(fprintf(stderr, "%*c+ invalid_elif_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'elif' named_expression NEWLINE"));
20645 _res = RAISE_SYNTAX_ERROR ( "expected ':'" );
20646 if (_res == NULL && PyErr_Occurred()) {
20647 p->error_indicator = 1;
20648 D(p->level--);
20649 return NULL;
20650 }
20651 goto done;
20652 }
20653 p->mark = _mark;
20654 D(fprintf(stderr, "%*c%s invalid_elif_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20655 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'elif' named_expression NEWLINE"));
20656 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010020657 { // 'elif' named_expression ':' NEWLINE !INDENT
20658 if (p->error_indicator) {
20659 D(p->level--);
20660 return NULL;
20661 }
20662 D(fprintf(stderr, "%*c> invalid_elif_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'elif' named_expression ':' NEWLINE !INDENT"));
20663 Token * _literal;
20664 Token * a;
20665 expr_ty named_expression_var;
20666 Token * newline_var;
20667 if (
20668 (a = _PyPegen_expect_token(p, 515)) // token='elif'
20669 &&
20670 (named_expression_var = named_expression_rule(p)) // named_expression
20671 &&
20672 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
20673 &&
20674 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20675 &&
20676 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20677 )
20678 {
20679 D(fprintf(stderr, "%*c+ invalid_elif_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'elif' named_expression ':' NEWLINE !INDENT"));
20680 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'elif' statement on line %d" , a -> lineno );
20681 if (_res == NULL && PyErr_Occurred()) {
20682 p->error_indicator = 1;
20683 D(p->level--);
20684 return NULL;
20685 }
20686 goto done;
20687 }
20688 p->mark = _mark;
20689 D(fprintf(stderr, "%*c%s invalid_elif_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20690 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'elif' named_expression ':' NEWLINE !INDENT"));
20691 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010020692 _res = NULL;
20693 done:
20694 D(p->level--);
20695 return _res;
20696}
20697
Pablo Galindo56c95df2021-04-21 15:28:21 +010020698// invalid_else_stmt: 'else' ':' NEWLINE !INDENT
20699static void *
20700invalid_else_stmt_rule(Parser *p)
20701{
20702 D(p->level++);
20703 if (p->error_indicator) {
20704 D(p->level--);
20705 return NULL;
20706 }
20707 void * _res = NULL;
20708 int _mark = p->mark;
20709 { // 'else' ':' NEWLINE !INDENT
20710 if (p->error_indicator) {
20711 D(p->level--);
20712 return NULL;
20713 }
20714 D(fprintf(stderr, "%*c> invalid_else_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'else' ':' NEWLINE !INDENT"));
20715 Token * _literal;
20716 Token * a;
20717 Token * newline_var;
20718 if (
20719 (a = _PyPegen_expect_token(p, 516)) // token='else'
20720 &&
20721 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
20722 &&
20723 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20724 &&
20725 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20726 )
20727 {
20728 D(fprintf(stderr, "%*c+ invalid_else_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'else' ':' NEWLINE !INDENT"));
20729 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'else' statement on line %d" , a -> lineno );
20730 if (_res == NULL && PyErr_Occurred()) {
20731 p->error_indicator = 1;
20732 D(p->level--);
20733 return NULL;
20734 }
20735 goto done;
20736 }
20737 p->mark = _mark;
20738 D(fprintf(stderr, "%*c%s invalid_else_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20739 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'else' ':' NEWLINE !INDENT"));
20740 }
20741 _res = NULL;
20742 done:
20743 D(p->level--);
20744 return _res;
20745}
20746
20747// invalid_while_stmt:
20748// | 'while' named_expression NEWLINE
20749// | 'while' named_expression ':' NEWLINE !INDENT
Pablo Galindob86ed8e2021-04-12 16:59:30 +010020750static void *
20751invalid_while_stmt_rule(Parser *p)
20752{
20753 D(p->level++);
20754 if (p->error_indicator) {
20755 D(p->level--);
20756 return NULL;
20757 }
20758 void * _res = NULL;
20759 int _mark = p->mark;
20760 { // 'while' named_expression NEWLINE
20761 if (p->error_indicator) {
20762 D(p->level--);
20763 return NULL;
20764 }
20765 D(fprintf(stderr, "%*c> invalid_while_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'while' named_expression NEWLINE"));
20766 Token * _keyword;
20767 expr_ty named_expression_var;
20768 Token * newline_var;
20769 if (
20770 (_keyword = _PyPegen_expect_token(p, 512)) // token='while'
20771 &&
20772 (named_expression_var = named_expression_rule(p)) // named_expression
20773 &&
20774 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20775 )
20776 {
20777 D(fprintf(stderr, "%*c+ invalid_while_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'while' named_expression NEWLINE"));
20778 _res = RAISE_SYNTAX_ERROR ( "expected ':'" );
20779 if (_res == NULL && PyErr_Occurred()) {
20780 p->error_indicator = 1;
20781 D(p->level--);
20782 return NULL;
20783 }
20784 goto done;
20785 }
20786 p->mark = _mark;
20787 D(fprintf(stderr, "%*c%s invalid_while_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20788 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'while' named_expression NEWLINE"));
20789 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010020790 { // 'while' named_expression ':' NEWLINE !INDENT
20791 if (p->error_indicator) {
20792 D(p->level--);
20793 return NULL;
20794 }
20795 D(fprintf(stderr, "%*c> invalid_while_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'while' named_expression ':' NEWLINE !INDENT"));
20796 Token * _literal;
20797 Token * a;
20798 expr_ty named_expression_var;
20799 Token * newline_var;
20800 if (
20801 (a = _PyPegen_expect_token(p, 512)) // token='while'
20802 &&
20803 (named_expression_var = named_expression_rule(p)) // named_expression
20804 &&
20805 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
20806 &&
20807 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20808 &&
20809 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20810 )
20811 {
20812 D(fprintf(stderr, "%*c+ invalid_while_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'while' named_expression ':' NEWLINE !INDENT"));
20813 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'while' statement on line %d" , a -> lineno );
20814 if (_res == NULL && PyErr_Occurred()) {
20815 p->error_indicator = 1;
20816 D(p->level--);
20817 return NULL;
20818 }
20819 goto done;
20820 }
20821 p->mark = _mark;
20822 D(fprintf(stderr, "%*c%s invalid_while_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20823 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'while' named_expression ':' NEWLINE !INDENT"));
20824 }
20825 _res = NULL;
20826 done:
20827 D(p->level--);
20828 return _res;
20829}
20830
20831// invalid_for_stmt: ASYNC? 'for' star_targets 'in' star_expressions ':' NEWLINE !INDENT
20832static void *
20833invalid_for_stmt_rule(Parser *p)
20834{
20835 D(p->level++);
20836 if (p->error_indicator) {
20837 D(p->level--);
20838 return NULL;
20839 }
20840 void * _res = NULL;
20841 int _mark = p->mark;
20842 { // ASYNC? 'for' star_targets 'in' star_expressions ':' NEWLINE !INDENT
20843 if (p->error_indicator) {
20844 D(p->level--);
20845 return NULL;
20846 }
20847 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"));
20848 Token * _keyword;
20849 Token * _literal;
20850 void *_opt_var;
20851 UNUSED(_opt_var); // Silence compiler warnings
20852 Token * a;
20853 Token * newline_var;
20854 expr_ty star_expressions_var;
20855 expr_ty star_targets_var;
20856 if (
20857 (_opt_var = _PyPegen_expect_token(p, ASYNC), 1) // ASYNC?
20858 &&
20859 (a = _PyPegen_expect_token(p, 517)) // token='for'
20860 &&
20861 (star_targets_var = star_targets_rule(p)) // star_targets
20862 &&
20863 (_keyword = _PyPegen_expect_token(p, 518)) // token='in'
20864 &&
20865 (star_expressions_var = star_expressions_rule(p)) // star_expressions
20866 &&
20867 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
20868 &&
20869 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20870 &&
20871 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20872 )
20873 {
20874 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"));
20875 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'for' statement on line %d" , a -> lineno );
20876 if (_res == NULL && PyErr_Occurred()) {
20877 p->error_indicator = 1;
20878 D(p->level--);
20879 return NULL;
20880 }
20881 goto done;
20882 }
20883 p->mark = _mark;
20884 D(fprintf(stderr, "%*c%s invalid_for_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20885 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'for' star_targets 'in' star_expressions ':' NEWLINE !INDENT"));
20886 }
20887 _res = NULL;
20888 done:
20889 D(p->level--);
20890 return _res;
20891}
20892
20893// invalid_def_raw:
20894// | ASYNC? 'def' NAME '(' params? ')' ['->' expression] ':' NEWLINE !INDENT
20895static void *
20896invalid_def_raw_rule(Parser *p)
20897{
20898 D(p->level++);
20899 if (p->error_indicator) {
20900 D(p->level--);
20901 return NULL;
20902 }
20903 void * _res = NULL;
20904 int _mark = p->mark;
20905 { // ASYNC? 'def' NAME '(' params? ')' ['->' expression] ':' NEWLINE !INDENT
20906 if (p->error_indicator) {
20907 D(p->level--);
20908 return NULL;
20909 }
20910 D(fprintf(stderr, "%*c> invalid_def_raw[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC? 'def' NAME '(' params? ')' ['->' expression] ':' NEWLINE !INDENT"));
20911 Token * _literal;
20912 Token * _literal_1;
20913 Token * _literal_2;
20914 void *_opt_var;
20915 UNUSED(_opt_var); // Silence compiler warnings
20916 void *_opt_var_1;
20917 UNUSED(_opt_var_1); // Silence compiler warnings
20918 void *_opt_var_2;
20919 UNUSED(_opt_var_2); // Silence compiler warnings
20920 Token * a;
20921 expr_ty name_var;
20922 Token * newline_var;
20923 if (
20924 (_opt_var = _PyPegen_expect_token(p, ASYNC), 1) // ASYNC?
20925 &&
20926 (a = _PyPegen_expect_token(p, 526)) // token='def'
20927 &&
20928 (name_var = _PyPegen_name_token(p)) // NAME
20929 &&
20930 (_literal = _PyPegen_expect_token(p, 7)) // token='('
20931 &&
20932 (_opt_var_1 = params_rule(p), 1) // params?
20933 &&
20934 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
20935 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070020936 (_opt_var_2 = _tmp_174_rule(p), 1) // ['->' expression]
Pablo Galindo56c95df2021-04-21 15:28:21 +010020937 &&
20938 (_literal_2 = _PyPegen_expect_token(p, 11)) // token=':'
20939 &&
20940 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20941 &&
20942 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20943 )
20944 {
20945 D(fprintf(stderr, "%*c+ invalid_def_raw[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC? 'def' NAME '(' params? ')' ['->' expression] ':' NEWLINE !INDENT"));
20946 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after function definition on line %d" , a -> lineno );
20947 if (_res == NULL && PyErr_Occurred()) {
20948 p->error_indicator = 1;
20949 D(p->level--);
20950 return NULL;
20951 }
20952 goto done;
20953 }
20954 p->mark = _mark;
20955 D(fprintf(stderr, "%*c%s invalid_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
20956 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'def' NAME '(' params? ')' ['->' expression] ':' NEWLINE !INDENT"));
20957 }
20958 _res = NULL;
20959 done:
20960 D(p->level--);
20961 return _res;
20962}
20963
20964// invalid_class_def_raw: 'class' NAME ['(' arguments? ')'] ':' NEWLINE !INDENT
20965static void *
20966invalid_class_def_raw_rule(Parser *p)
20967{
20968 D(p->level++);
20969 if (p->error_indicator) {
20970 D(p->level--);
20971 return NULL;
20972 }
20973 void * _res = NULL;
20974 int _mark = p->mark;
20975 { // 'class' NAME ['(' arguments? ')'] ':' NEWLINE !INDENT
20976 if (p->error_indicator) {
20977 D(p->level--);
20978 return NULL;
20979 }
20980 D(fprintf(stderr, "%*c> invalid_class_def_raw[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'class' NAME ['(' arguments? ')'] ':' NEWLINE !INDENT"));
20981 Token * _literal;
20982 void *_opt_var;
20983 UNUSED(_opt_var); // Silence compiler warnings
20984 Token * a;
20985 expr_ty name_var;
20986 Token * newline_var;
20987 if (
20988 (a = _PyPegen_expect_token(p, 527)) // token='class'
20989 &&
20990 (name_var = _PyPegen_name_token(p)) // NAME
20991 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070020992 (_opt_var = _tmp_175_rule(p), 1) // ['(' arguments? ')']
Pablo Galindo56c95df2021-04-21 15:28:21 +010020993 &&
20994 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
20995 &&
20996 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20997 &&
20998 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20999 )
21000 {
21001 D(fprintf(stderr, "%*c+ invalid_class_def_raw[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'class' NAME ['(' arguments? ')'] ':' NEWLINE !INDENT"));
21002 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after class definition on line %d" , a -> lineno );
21003 if (_res == NULL && PyErr_Occurred()) {
21004 p->error_indicator = 1;
21005 D(p->level--);
21006 return NULL;
21007 }
21008 goto done;
21009 }
21010 p->mark = _mark;
21011 D(fprintf(stderr, "%*c%s invalid_class_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
21012 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'class' NAME ['(' arguments? ')'] ':' NEWLINE !INDENT"));
21013 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010021014 _res = NULL;
21015 done:
21016 D(p->level--);
21017 return _res;
21018}
21019
Pablo Galindoda743502021-04-15 14:06:39 +010021020// invalid_double_starred_kvpairs:
21021// | ','.double_starred_kvpair+ ',' invalid_kvpair
21022// | expression ':' '*' bitwise_or
21023// | expression ':' &('}' | ',')
21024static void *
21025invalid_double_starred_kvpairs_rule(Parser *p)
21026{
21027 D(p->level++);
21028 if (p->error_indicator) {
21029 D(p->level--);
21030 return NULL;
21031 }
21032 void * _res = NULL;
21033 int _mark = p->mark;
21034 { // ','.double_starred_kvpair+ ',' invalid_kvpair
21035 if (p->error_indicator) {
21036 D(p->level--);
21037 return NULL;
21038 }
21039 D(fprintf(stderr, "%*c> invalid_double_starred_kvpairs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.double_starred_kvpair+ ',' invalid_kvpair"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070021040 asdl_seq * _gather_176_var;
Pablo Galindoda743502021-04-15 14:06:39 +010021041 Token * _literal;
21042 void *invalid_kvpair_var;
21043 if (
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070021044 (_gather_176_var = _gather_176_rule(p)) // ','.double_starred_kvpair+
Pablo Galindoda743502021-04-15 14:06:39 +010021045 &&
21046 (_literal = _PyPegen_expect_token(p, 12)) // token=','
21047 &&
21048 (invalid_kvpair_var = invalid_kvpair_rule(p)) // invalid_kvpair
21049 )
21050 {
21051 D(fprintf(stderr, "%*c+ invalid_double_starred_kvpairs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.double_starred_kvpair+ ',' invalid_kvpair"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070021052 _res = _PyPegen_dummy_name(p, _gather_176_var, _literal, invalid_kvpair_var);
Pablo Galindoda743502021-04-15 14:06:39 +010021053 goto done;
21054 }
21055 p->mark = _mark;
21056 D(fprintf(stderr, "%*c%s invalid_double_starred_kvpairs[%d-%d]: %s failed!\n", p->level, ' ',
21057 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.double_starred_kvpair+ ',' invalid_kvpair"));
21058 }
21059 { // expression ':' '*' bitwise_or
21060 if (p->error_indicator) {
21061 D(p->level--);
21062 return NULL;
21063 }
21064 D(fprintf(stderr, "%*c> invalid_double_starred_kvpairs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':' '*' bitwise_or"));
21065 Token * _literal;
21066 Token * a;
21067 expr_ty bitwise_or_var;
21068 expr_ty expression_var;
21069 if (
21070 (expression_var = expression_rule(p)) // expression
21071 &&
21072 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
21073 &&
21074 (a = _PyPegen_expect_token(p, 16)) // token='*'
21075 &&
21076 (bitwise_or_var = bitwise_or_rule(p)) // bitwise_or
21077 )
21078 {
21079 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 +010021080 _res = RAISE_SYNTAX_ERROR_STARTING_FROM ( a , "cannot use a starred expression in a dictionary value" );
Pablo Galindoda743502021-04-15 14:06:39 +010021081 if (_res == NULL && PyErr_Occurred()) {
21082 p->error_indicator = 1;
21083 D(p->level--);
21084 return NULL;
21085 }
21086 goto done;
21087 }
21088 p->mark = _mark;
21089 D(fprintf(stderr, "%*c%s invalid_double_starred_kvpairs[%d-%d]: %s failed!\n", p->level, ' ',
21090 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' '*' bitwise_or"));
21091 }
21092 { // expression ':' &('}' | ',')
21093 if (p->error_indicator) {
21094 D(p->level--);
21095 return NULL;
21096 }
21097 D(fprintf(stderr, "%*c> invalid_double_starred_kvpairs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':' &('}' | ',')"));
21098 Token * a;
21099 expr_ty expression_var;
21100 if (
21101 (expression_var = expression_rule(p)) // expression
21102 &&
21103 (a = _PyPegen_expect_token(p, 11)) // token=':'
21104 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070021105 _PyPegen_lookahead(1, _tmp_178_rule, p)
Pablo Galindoda743502021-04-15 14:06:39 +010021106 )
21107 {
21108 D(fprintf(stderr, "%*c+ invalid_double_starred_kvpairs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':' &('}' | ',')"));
21109 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "expression expected after dictionary key and ':'" );
21110 if (_res == NULL && PyErr_Occurred()) {
21111 p->error_indicator = 1;
21112 D(p->level--);
21113 return NULL;
21114 }
21115 goto done;
21116 }
21117 p->mark = _mark;
21118 D(fprintf(stderr, "%*c%s invalid_double_starred_kvpairs[%d-%d]: %s failed!\n", p->level, ' ',
21119 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' &('}' | ',')"));
21120 }
21121 _res = NULL;
21122 done:
21123 D(p->level--);
21124 return _res;
21125}
21126
21127// invalid_kvpair: expression !(':') | expression ':' '*' bitwise_or | expression ':'
21128static void *
21129invalid_kvpair_rule(Parser *p)
21130{
21131 D(p->level++);
21132 if (p->error_indicator) {
21133 D(p->level--);
21134 return NULL;
21135 }
21136 void * _res = NULL;
21137 int _mark = p->mark;
21138 { // expression !(':')
21139 if (p->error_indicator) {
21140 D(p->level--);
21141 return NULL;
21142 }
21143 D(fprintf(stderr, "%*c> invalid_kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression !(':')"));
21144 expr_ty a;
21145 if (
21146 (a = expression_rule(p)) // expression
21147 &&
21148 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 11) // token=(':')
21149 )
21150 {
21151 D(fprintf(stderr, "%*c+ invalid_kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression !(':')"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010021152 _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 +010021153 if (_res == NULL && PyErr_Occurred()) {
21154 p->error_indicator = 1;
21155 D(p->level--);
21156 return NULL;
21157 }
21158 goto done;
21159 }
21160 p->mark = _mark;
21161 D(fprintf(stderr, "%*c%s invalid_kvpair[%d-%d]: %s failed!\n", p->level, ' ',
21162 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression !(':')"));
21163 }
21164 { // expression ':' '*' bitwise_or
21165 if (p->error_indicator) {
21166 D(p->level--);
21167 return NULL;
21168 }
21169 D(fprintf(stderr, "%*c> invalid_kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':' '*' bitwise_or"));
21170 Token * _literal;
21171 Token * a;
21172 expr_ty bitwise_or_var;
21173 expr_ty expression_var;
21174 if (
21175 (expression_var = expression_rule(p)) // expression
21176 &&
21177 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
21178 &&
21179 (a = _PyPegen_expect_token(p, 16)) // token='*'
21180 &&
21181 (bitwise_or_var = bitwise_or_rule(p)) // bitwise_or
21182 )
21183 {
21184 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 +010021185 _res = RAISE_SYNTAX_ERROR_STARTING_FROM ( a , "cannot use a starred expression in a dictionary value" );
Pablo Galindoda743502021-04-15 14:06:39 +010021186 if (_res == NULL && PyErr_Occurred()) {
21187 p->error_indicator = 1;
21188 D(p->level--);
21189 return NULL;
21190 }
21191 goto done;
21192 }
21193 p->mark = _mark;
21194 D(fprintf(stderr, "%*c%s invalid_kvpair[%d-%d]: %s failed!\n", p->level, ' ',
21195 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' '*' bitwise_or"));
21196 }
21197 { // expression ':'
21198 if (p->error_indicator) {
21199 D(p->level--);
21200 return NULL;
21201 }
21202 D(fprintf(stderr, "%*c> invalid_kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':'"));
21203 Token * a;
21204 expr_ty expression_var;
21205 if (
21206 (expression_var = expression_rule(p)) // expression
21207 &&
21208 (a = _PyPegen_expect_token(p, 11)) // token=':'
21209 )
21210 {
21211 D(fprintf(stderr, "%*c+ invalid_kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':'"));
21212 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "expression expected after dictionary key and ':'" );
21213 if (_res == NULL && PyErr_Occurred()) {
21214 p->error_indicator = 1;
21215 D(p->level--);
21216 return NULL;
21217 }
21218 goto done;
21219 }
21220 p->mark = _mark;
21221 D(fprintf(stderr, "%*c%s invalid_kvpair[%d-%d]: %s failed!\n", p->level, ' ',
21222 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':'"));
21223 }
21224 _res = NULL;
21225 done:
21226 D(p->level--);
21227 return _res;
21228}
21229
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021230// _loop0_1: NEWLINE
21231static asdl_seq *
21232_loop0_1_rule(Parser *p)
21233{
21234 D(p->level++);
21235 if (p->error_indicator) {
21236 D(p->level--);
21237 return NULL;
21238 }
21239 void *_res = NULL;
21240 int _mark = p->mark;
21241 int _start_mark = p->mark;
21242 void **_children = PyMem_Malloc(sizeof(void *));
21243 if (!_children) {
21244 p->error_indicator = 1;
21245 PyErr_NoMemory();
21246 D(p->level--);
21247 return NULL;
21248 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010021249 Py_ssize_t _children_capacity = 1;
21250 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021251 { // NEWLINE
21252 if (p->error_indicator) {
21253 D(p->level--);
21254 return NULL;
21255 }
21256 D(fprintf(stderr, "%*c> _loop0_1[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
21257 Token * newline_var;
21258 while (
21259 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
21260 )
21261 {
21262 _res = newline_var;
21263 if (_n == _children_capacity) {
21264 _children_capacity *= 2;
21265 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21266 if (!_new_children) {
21267 p->error_indicator = 1;
21268 PyErr_NoMemory();
21269 D(p->level--);
21270 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000021271 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021272 _children = _new_children;
21273 }
21274 _children[_n++] = _res;
21275 _mark = p->mark;
21276 }
21277 p->mark = _mark;
21278 D(fprintf(stderr, "%*c%s _loop0_1[%d-%d]: %s failed!\n", p->level, ' ',
21279 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
21280 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021281 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021282 if (!_seq) {
21283 PyMem_Free(_children);
21284 p->error_indicator = 1;
21285 PyErr_NoMemory();
21286 D(p->level--);
21287 return NULL;
21288 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021289 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021290 PyMem_Free(_children);
21291 _PyPegen_insert_memo(p, _start_mark, _loop0_1_type, _seq);
21292 D(p->level--);
21293 return _seq;
21294}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000021295
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021296// _loop0_2: NEWLINE
21297static asdl_seq *
21298_loop0_2_rule(Parser *p)
21299{
21300 D(p->level++);
21301 if (p->error_indicator) {
21302 D(p->level--);
21303 return NULL;
21304 }
21305 void *_res = NULL;
21306 int _mark = p->mark;
21307 int _start_mark = p->mark;
21308 void **_children = PyMem_Malloc(sizeof(void *));
21309 if (!_children) {
21310 p->error_indicator = 1;
21311 PyErr_NoMemory();
21312 D(p->level--);
21313 return NULL;
21314 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010021315 Py_ssize_t _children_capacity = 1;
21316 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021317 { // NEWLINE
21318 if (p->error_indicator) {
21319 D(p->level--);
21320 return NULL;
21321 }
21322 D(fprintf(stderr, "%*c> _loop0_2[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
21323 Token * newline_var;
21324 while (
21325 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
21326 )
21327 {
21328 _res = newline_var;
21329 if (_n == _children_capacity) {
21330 _children_capacity *= 2;
21331 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21332 if (!_new_children) {
21333 p->error_indicator = 1;
21334 PyErr_NoMemory();
21335 D(p->level--);
21336 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000021337 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021338 _children = _new_children;
21339 }
21340 _children[_n++] = _res;
21341 _mark = p->mark;
21342 }
21343 p->mark = _mark;
21344 D(fprintf(stderr, "%*c%s _loop0_2[%d-%d]: %s failed!\n", p->level, ' ',
21345 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
21346 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021347 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021348 if (!_seq) {
21349 PyMem_Free(_children);
21350 p->error_indicator = 1;
21351 PyErr_NoMemory();
21352 D(p->level--);
21353 return NULL;
21354 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021355 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021356 PyMem_Free(_children);
21357 _PyPegen_insert_memo(p, _start_mark, _loop0_2_type, _seq);
21358 D(p->level--);
21359 return _seq;
21360}
21361
21362// _loop0_4: ',' expression
21363static asdl_seq *
21364_loop0_4_rule(Parser *p)
21365{
21366 D(p->level++);
21367 if (p->error_indicator) {
21368 D(p->level--);
21369 return NULL;
21370 }
21371 void *_res = NULL;
21372 int _mark = p->mark;
21373 int _start_mark = p->mark;
21374 void **_children = PyMem_Malloc(sizeof(void *));
21375 if (!_children) {
21376 p->error_indicator = 1;
21377 PyErr_NoMemory();
21378 D(p->level--);
21379 return NULL;
21380 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010021381 Py_ssize_t _children_capacity = 1;
21382 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021383 { // ',' expression
21384 if (p->error_indicator) {
21385 D(p->level--);
21386 return NULL;
21387 }
21388 D(fprintf(stderr, "%*c> _loop0_4[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
21389 Token * _literal;
21390 expr_ty elem;
21391 while (
21392 (_literal = _PyPegen_expect_token(p, 12)) // token=','
21393 &&
21394 (elem = expression_rule(p)) // expression
21395 )
21396 {
21397 _res = elem;
21398 if (_res == NULL && PyErr_Occurred()) {
21399 p->error_indicator = 1;
21400 PyMem_Free(_children);
21401 D(p->level--);
21402 return NULL;
21403 }
21404 if (_n == _children_capacity) {
21405 _children_capacity *= 2;
21406 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21407 if (!_new_children) {
21408 p->error_indicator = 1;
21409 PyErr_NoMemory();
21410 D(p->level--);
21411 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000021412 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021413 _children = _new_children;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000021414 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021415 _children[_n++] = _res;
21416 _mark = p->mark;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000021417 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021418 p->mark = _mark;
21419 D(fprintf(stderr, "%*c%s _loop0_4[%d-%d]: %s failed!\n", p->level, ' ',
21420 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000021421 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021422 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021423 if (!_seq) {
21424 PyMem_Free(_children);
21425 p->error_indicator = 1;
21426 PyErr_NoMemory();
21427 D(p->level--);
21428 return NULL;
21429 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021430 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021431 PyMem_Free(_children);
21432 _PyPegen_insert_memo(p, _start_mark, _loop0_4_type, _seq);
21433 D(p->level--);
21434 return _seq;
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021435}
21436
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021437// _gather_3: expression _loop0_4
21438static asdl_seq *
21439_gather_3_rule(Parser *p)
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021440{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021441 D(p->level++);
21442 if (p->error_indicator) {
21443 D(p->level--);
21444 return NULL;
21445 }
21446 asdl_seq * _res = NULL;
21447 int _mark = p->mark;
21448 { // expression _loop0_4
21449 if (p->error_indicator) {
21450 D(p->level--);
21451 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000021452 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021453 D(fprintf(stderr, "%*c> _gather_3[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression _loop0_4"));
21454 expr_ty elem;
21455 asdl_seq * seq;
21456 if (
21457 (elem = expression_rule(p)) // expression
21458 &&
21459 (seq = _loop0_4_rule(p)) // _loop0_4
21460 )
21461 {
21462 D(fprintf(stderr, "%*c+ _gather_3[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression _loop0_4"));
21463 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
21464 goto done;
21465 }
21466 p->mark = _mark;
21467 D(fprintf(stderr, "%*c%s _gather_3[%d-%d]: %s failed!\n", p->level, ' ',
21468 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_4"));
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000021469 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021470 _res = NULL;
21471 done:
21472 D(p->level--);
21473 return _res;
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021474}
21475
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021476// _loop0_6: ',' expression
21477static asdl_seq *
21478_loop0_6_rule(Parser *p)
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021479{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021480 D(p->level++);
21481 if (p->error_indicator) {
21482 D(p->level--);
21483 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000021484 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021485 void *_res = NULL;
21486 int _mark = p->mark;
21487 int _start_mark = p->mark;
21488 void **_children = PyMem_Malloc(sizeof(void *));
21489 if (!_children) {
21490 p->error_indicator = 1;
21491 PyErr_NoMemory();
21492 D(p->level--);
21493 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000021494 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010021495 Py_ssize_t _children_capacity = 1;
21496 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021497 { // ',' expression
21498 if (p->error_indicator) {
21499 D(p->level--);
21500 return NULL;
21501 }
21502 D(fprintf(stderr, "%*c> _loop0_6[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
21503 Token * _literal;
21504 expr_ty elem;
21505 while (
21506 (_literal = _PyPegen_expect_token(p, 12)) // token=','
21507 &&
21508 (elem = expression_rule(p)) // expression
21509 )
21510 {
21511 _res = elem;
21512 if (_res == NULL && PyErr_Occurred()) {
21513 p->error_indicator = 1;
21514 PyMem_Free(_children);
21515 D(p->level--);
21516 return NULL;
21517 }
21518 if (_n == _children_capacity) {
21519 _children_capacity *= 2;
21520 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21521 if (!_new_children) {
21522 p->error_indicator = 1;
21523 PyErr_NoMemory();
21524 D(p->level--);
21525 return NULL;
21526 }
21527 _children = _new_children;
21528 }
21529 _children[_n++] = _res;
21530 _mark = p->mark;
21531 }
21532 p->mark = _mark;
21533 D(fprintf(stderr, "%*c%s _loop0_6[%d-%d]: %s failed!\n", p->level, ' ',
21534 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
21535 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021536 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021537 if (!_seq) {
21538 PyMem_Free(_children);
21539 p->error_indicator = 1;
21540 PyErr_NoMemory();
21541 D(p->level--);
21542 return NULL;
21543 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021544 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021545 PyMem_Free(_children);
21546 _PyPegen_insert_memo(p, _start_mark, _loop0_6_type, _seq);
21547 D(p->level--);
21548 return _seq;
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021549}
21550
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021551// _gather_5: expression _loop0_6
21552static asdl_seq *
21553_gather_5_rule(Parser *p)
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021554{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021555 D(p->level++);
21556 if (p->error_indicator) {
21557 D(p->level--);
21558 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000021559 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021560 asdl_seq * _res = NULL;
21561 int _mark = p->mark;
21562 { // expression _loop0_6
21563 if (p->error_indicator) {
21564 D(p->level--);
21565 return NULL;
21566 }
21567 D(fprintf(stderr, "%*c> _gather_5[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression _loop0_6"));
21568 expr_ty elem;
21569 asdl_seq * seq;
21570 if (
21571 (elem = expression_rule(p)) // expression
21572 &&
21573 (seq = _loop0_6_rule(p)) // _loop0_6
21574 )
21575 {
21576 D(fprintf(stderr, "%*c+ _gather_5[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression _loop0_6"));
21577 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
21578 goto done;
21579 }
21580 p->mark = _mark;
21581 D(fprintf(stderr, "%*c%s _gather_5[%d-%d]: %s failed!\n", p->level, ' ',
21582 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_6"));
21583 }
21584 _res = NULL;
21585 done:
21586 D(p->level--);
21587 return _res;
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021588}
21589
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021590// _loop0_8: ',' expression
21591static asdl_seq *
21592_loop0_8_rule(Parser *p)
21593{
21594 D(p->level++);
21595 if (p->error_indicator) {
21596 D(p->level--);
21597 return NULL;
21598 }
21599 void *_res = NULL;
21600 int _mark = p->mark;
21601 int _start_mark = p->mark;
21602 void **_children = PyMem_Malloc(sizeof(void *));
21603 if (!_children) {
21604 p->error_indicator = 1;
21605 PyErr_NoMemory();
21606 D(p->level--);
21607 return NULL;
21608 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010021609 Py_ssize_t _children_capacity = 1;
21610 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021611 { // ',' expression
21612 if (p->error_indicator) {
21613 D(p->level--);
21614 return NULL;
21615 }
21616 D(fprintf(stderr, "%*c> _loop0_8[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
21617 Token * _literal;
21618 expr_ty elem;
21619 while (
21620 (_literal = _PyPegen_expect_token(p, 12)) // token=','
21621 &&
21622 (elem = expression_rule(p)) // expression
21623 )
21624 {
21625 _res = elem;
21626 if (_res == NULL && PyErr_Occurred()) {
21627 p->error_indicator = 1;
21628 PyMem_Free(_children);
21629 D(p->level--);
21630 return NULL;
21631 }
21632 if (_n == _children_capacity) {
21633 _children_capacity *= 2;
21634 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21635 if (!_new_children) {
21636 p->error_indicator = 1;
21637 PyErr_NoMemory();
21638 D(p->level--);
21639 return NULL;
21640 }
21641 _children = _new_children;
21642 }
21643 _children[_n++] = _res;
21644 _mark = p->mark;
21645 }
21646 p->mark = _mark;
21647 D(fprintf(stderr, "%*c%s _loop0_8[%d-%d]: %s failed!\n", p->level, ' ',
21648 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
21649 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021650 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021651 if (!_seq) {
21652 PyMem_Free(_children);
21653 p->error_indicator = 1;
21654 PyErr_NoMemory();
21655 D(p->level--);
21656 return NULL;
21657 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021658 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021659 PyMem_Free(_children);
21660 _PyPegen_insert_memo(p, _start_mark, _loop0_8_type, _seq);
21661 D(p->level--);
21662 return _seq;
21663}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021664
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021665// _gather_7: expression _loop0_8
21666static asdl_seq *
21667_gather_7_rule(Parser *p)
21668{
21669 D(p->level++);
21670 if (p->error_indicator) {
21671 D(p->level--);
21672 return NULL;
21673 }
21674 asdl_seq * _res = NULL;
21675 int _mark = p->mark;
21676 { // expression _loop0_8
21677 if (p->error_indicator) {
21678 D(p->level--);
21679 return NULL;
21680 }
21681 D(fprintf(stderr, "%*c> _gather_7[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression _loop0_8"));
21682 expr_ty elem;
21683 asdl_seq * seq;
21684 if (
21685 (elem = expression_rule(p)) // expression
21686 &&
21687 (seq = _loop0_8_rule(p)) // _loop0_8
21688 )
21689 {
21690 D(fprintf(stderr, "%*c+ _gather_7[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression _loop0_8"));
21691 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
21692 goto done;
21693 }
21694 p->mark = _mark;
21695 D(fprintf(stderr, "%*c%s _gather_7[%d-%d]: %s failed!\n", p->level, ' ',
21696 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_8"));
21697 }
21698 _res = NULL;
21699 done:
21700 D(p->level--);
21701 return _res;
21702}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021703
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021704// _loop0_10: ',' expression
21705static asdl_seq *
21706_loop0_10_rule(Parser *p)
21707{
21708 D(p->level++);
21709 if (p->error_indicator) {
21710 D(p->level--);
21711 return NULL;
21712 }
21713 void *_res = NULL;
21714 int _mark = p->mark;
21715 int _start_mark = p->mark;
21716 void **_children = PyMem_Malloc(sizeof(void *));
21717 if (!_children) {
21718 p->error_indicator = 1;
21719 PyErr_NoMemory();
21720 D(p->level--);
21721 return NULL;
21722 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010021723 Py_ssize_t _children_capacity = 1;
21724 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021725 { // ',' expression
21726 if (p->error_indicator) {
21727 D(p->level--);
21728 return NULL;
21729 }
21730 D(fprintf(stderr, "%*c> _loop0_10[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
21731 Token * _literal;
21732 expr_ty elem;
21733 while (
21734 (_literal = _PyPegen_expect_token(p, 12)) // token=','
21735 &&
21736 (elem = expression_rule(p)) // expression
21737 )
21738 {
21739 _res = elem;
21740 if (_res == NULL && PyErr_Occurred()) {
21741 p->error_indicator = 1;
21742 PyMem_Free(_children);
21743 D(p->level--);
21744 return NULL;
21745 }
21746 if (_n == _children_capacity) {
21747 _children_capacity *= 2;
21748 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21749 if (!_new_children) {
21750 p->error_indicator = 1;
21751 PyErr_NoMemory();
21752 D(p->level--);
21753 return NULL;
21754 }
21755 _children = _new_children;
21756 }
21757 _children[_n++] = _res;
21758 _mark = p->mark;
21759 }
21760 p->mark = _mark;
21761 D(fprintf(stderr, "%*c%s _loop0_10[%d-%d]: %s failed!\n", p->level, ' ',
21762 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
21763 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021764 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021765 if (!_seq) {
21766 PyMem_Free(_children);
21767 p->error_indicator = 1;
21768 PyErr_NoMemory();
21769 D(p->level--);
21770 return NULL;
21771 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021772 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021773 PyMem_Free(_children);
21774 _PyPegen_insert_memo(p, _start_mark, _loop0_10_type, _seq);
21775 D(p->level--);
21776 return _seq;
21777}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021778
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021779// _gather_9: expression _loop0_10
21780static asdl_seq *
21781_gather_9_rule(Parser *p)
21782{
21783 D(p->level++);
21784 if (p->error_indicator) {
21785 D(p->level--);
21786 return NULL;
21787 }
21788 asdl_seq * _res = NULL;
21789 int _mark = p->mark;
21790 { // expression _loop0_10
21791 if (p->error_indicator) {
21792 D(p->level--);
21793 return NULL;
21794 }
21795 D(fprintf(stderr, "%*c> _gather_9[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression _loop0_10"));
21796 expr_ty elem;
21797 asdl_seq * seq;
21798 if (
21799 (elem = expression_rule(p)) // expression
21800 &&
21801 (seq = _loop0_10_rule(p)) // _loop0_10
21802 )
21803 {
21804 D(fprintf(stderr, "%*c+ _gather_9[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression _loop0_10"));
21805 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
21806 goto done;
21807 }
21808 p->mark = _mark;
21809 D(fprintf(stderr, "%*c%s _gather_9[%d-%d]: %s failed!\n", p->level, ' ',
21810 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_10"));
21811 }
21812 _res = NULL;
21813 done:
21814 D(p->level--);
21815 return _res;
21816}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021817
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021818// _loop1_11: statement
21819static asdl_seq *
21820_loop1_11_rule(Parser *p)
21821{
21822 D(p->level++);
21823 if (p->error_indicator) {
21824 D(p->level--);
21825 return NULL;
21826 }
21827 void *_res = NULL;
21828 int _mark = p->mark;
21829 int _start_mark = p->mark;
21830 void **_children = PyMem_Malloc(sizeof(void *));
21831 if (!_children) {
21832 p->error_indicator = 1;
21833 PyErr_NoMemory();
21834 D(p->level--);
21835 return NULL;
21836 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010021837 Py_ssize_t _children_capacity = 1;
21838 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021839 { // statement
21840 if (p->error_indicator) {
21841 D(p->level--);
21842 return NULL;
21843 }
21844 D(fprintf(stderr, "%*c> _loop1_11[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statement"));
Pablo Galindoa5634c42020-09-16 19:42:00 +010021845 asdl_stmt_seq* statement_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021846 while (
21847 (statement_var = statement_rule(p)) // statement
21848 )
21849 {
21850 _res = statement_var;
21851 if (_n == _children_capacity) {
21852 _children_capacity *= 2;
21853 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21854 if (!_new_children) {
21855 p->error_indicator = 1;
21856 PyErr_NoMemory();
21857 D(p->level--);
21858 return NULL;
21859 }
21860 _children = _new_children;
21861 }
21862 _children[_n++] = _res;
21863 _mark = p->mark;
21864 }
21865 p->mark = _mark;
21866 D(fprintf(stderr, "%*c%s _loop1_11[%d-%d]: %s failed!\n", p->level, ' ',
21867 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statement"));
21868 }
21869 if (_n == 0 || p->error_indicator) {
21870 PyMem_Free(_children);
21871 D(p->level--);
21872 return NULL;
21873 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021874 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021875 if (!_seq) {
21876 PyMem_Free(_children);
21877 p->error_indicator = 1;
21878 PyErr_NoMemory();
21879 D(p->level--);
21880 return NULL;
21881 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021882 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021883 PyMem_Free(_children);
21884 _PyPegen_insert_memo(p, _start_mark, _loop1_11_type, _seq);
21885 D(p->level--);
21886 return _seq;
21887}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021888
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000021889// _loop0_13: ';' simple_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021890static asdl_seq *
21891_loop0_13_rule(Parser *p)
21892{
21893 D(p->level++);
21894 if (p->error_indicator) {
21895 D(p->level--);
21896 return NULL;
21897 }
21898 void *_res = NULL;
21899 int _mark = p->mark;
21900 int _start_mark = p->mark;
21901 void **_children = PyMem_Malloc(sizeof(void *));
21902 if (!_children) {
21903 p->error_indicator = 1;
21904 PyErr_NoMemory();
21905 D(p->level--);
21906 return NULL;
21907 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010021908 Py_ssize_t _children_capacity = 1;
21909 Py_ssize_t _n = 0;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000021910 { // ';' simple_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021911 if (p->error_indicator) {
21912 D(p->level--);
21913 return NULL;
21914 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000021915 D(fprintf(stderr, "%*c> _loop0_13[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "';' simple_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021916 Token * _literal;
21917 stmt_ty elem;
21918 while (
21919 (_literal = _PyPegen_expect_token(p, 13)) // token=';'
21920 &&
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000021921 (elem = simple_stmt_rule(p)) // simple_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021922 )
21923 {
21924 _res = elem;
21925 if (_res == NULL && PyErr_Occurred()) {
21926 p->error_indicator = 1;
21927 PyMem_Free(_children);
21928 D(p->level--);
21929 return NULL;
21930 }
21931 if (_n == _children_capacity) {
21932 _children_capacity *= 2;
21933 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21934 if (!_new_children) {
21935 p->error_indicator = 1;
21936 PyErr_NoMemory();
21937 D(p->level--);
21938 return NULL;
21939 }
21940 _children = _new_children;
21941 }
21942 _children[_n++] = _res;
21943 _mark = p->mark;
21944 }
21945 p->mark = _mark;
21946 D(fprintf(stderr, "%*c%s _loop0_13[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000021947 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "';' simple_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021948 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021949 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021950 if (!_seq) {
21951 PyMem_Free(_children);
21952 p->error_indicator = 1;
21953 PyErr_NoMemory();
21954 D(p->level--);
21955 return NULL;
21956 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021957 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021958 PyMem_Free(_children);
21959 _PyPegen_insert_memo(p, _start_mark, _loop0_13_type, _seq);
21960 D(p->level--);
21961 return _seq;
21962}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021963
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000021964// _gather_12: simple_stmt _loop0_13
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021965static asdl_seq *
21966_gather_12_rule(Parser *p)
21967{
21968 D(p->level++);
21969 if (p->error_indicator) {
21970 D(p->level--);
21971 return NULL;
21972 }
21973 asdl_seq * _res = NULL;
21974 int _mark = p->mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000021975 { // simple_stmt _loop0_13
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021976 if (p->error_indicator) {
21977 D(p->level--);
21978 return NULL;
21979 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000021980 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 +010021981 stmt_ty elem;
21982 asdl_seq * seq;
21983 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000021984 (elem = simple_stmt_rule(p)) // simple_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021985 &&
21986 (seq = _loop0_13_rule(p)) // _loop0_13
21987 )
21988 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000021989 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 +010021990 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
21991 goto done;
21992 }
21993 p->mark = _mark;
21994 D(fprintf(stderr, "%*c%s _gather_12[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000021995 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmt _loop0_13"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021996 }
21997 _res = NULL;
21998 done:
21999 D(p->level--);
22000 return _res;
22001}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000022002
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022003// _tmp_14: 'import' | 'from'
22004static void *
22005_tmp_14_rule(Parser *p)
22006{
22007 D(p->level++);
22008 if (p->error_indicator) {
22009 D(p->level--);
22010 return NULL;
22011 }
22012 void * _res = NULL;
22013 int _mark = p->mark;
22014 { // 'import'
22015 if (p->error_indicator) {
22016 D(p->level--);
22017 return NULL;
22018 }
22019 D(fprintf(stderr, "%*c> _tmp_14[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'import'"));
22020 Token * _keyword;
22021 if (
22022 (_keyword = _PyPegen_expect_token(p, 513)) // token='import'
22023 )
22024 {
22025 D(fprintf(stderr, "%*c+ _tmp_14[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'import'"));
22026 _res = _keyword;
22027 goto done;
22028 }
22029 p->mark = _mark;
22030 D(fprintf(stderr, "%*c%s _tmp_14[%d-%d]: %s failed!\n", p->level, ' ',
22031 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'import'"));
22032 }
22033 { // 'from'
22034 if (p->error_indicator) {
22035 D(p->level--);
22036 return NULL;
22037 }
22038 D(fprintf(stderr, "%*c> _tmp_14[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from'"));
22039 Token * _keyword;
22040 if (
22041 (_keyword = _PyPegen_expect_token(p, 514)) // token='from'
22042 )
22043 {
22044 D(fprintf(stderr, "%*c+ _tmp_14[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'from'"));
22045 _res = _keyword;
22046 goto done;
22047 }
22048 p->mark = _mark;
22049 D(fprintf(stderr, "%*c%s _tmp_14[%d-%d]: %s failed!\n", p->level, ' ',
22050 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from'"));
22051 }
22052 _res = NULL;
22053 done:
22054 D(p->level--);
22055 return _res;
22056}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000022057
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022058// _tmp_15: 'def' | '@' | ASYNC
22059static void *
22060_tmp_15_rule(Parser *p)
22061{
22062 D(p->level++);
22063 if (p->error_indicator) {
22064 D(p->level--);
22065 return NULL;
22066 }
22067 void * _res = NULL;
22068 int _mark = p->mark;
22069 { // 'def'
22070 if (p->error_indicator) {
22071 D(p->level--);
22072 return NULL;
22073 }
22074 D(fprintf(stderr, "%*c> _tmp_15[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'def'"));
22075 Token * _keyword;
22076 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080022077 (_keyword = _PyPegen_expect_token(p, 526)) // token='def'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022078 )
22079 {
22080 D(fprintf(stderr, "%*c+ _tmp_15[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'def'"));
22081 _res = _keyword;
22082 goto done;
22083 }
22084 p->mark = _mark;
22085 D(fprintf(stderr, "%*c%s _tmp_15[%d-%d]: %s failed!\n", p->level, ' ',
22086 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'def'"));
22087 }
22088 { // '@'
22089 if (p->error_indicator) {
22090 D(p->level--);
22091 return NULL;
22092 }
22093 D(fprintf(stderr, "%*c> _tmp_15[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@'"));
22094 Token * _literal;
22095 if (
22096 (_literal = _PyPegen_expect_token(p, 49)) // token='@'
22097 )
22098 {
22099 D(fprintf(stderr, "%*c+ _tmp_15[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@'"));
22100 _res = _literal;
22101 goto done;
22102 }
22103 p->mark = _mark;
22104 D(fprintf(stderr, "%*c%s _tmp_15[%d-%d]: %s failed!\n", p->level, ' ',
22105 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@'"));
22106 }
22107 { // ASYNC
22108 if (p->error_indicator) {
22109 D(p->level--);
22110 return NULL;
22111 }
22112 D(fprintf(stderr, "%*c> _tmp_15[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC"));
22113 Token * async_var;
22114 if (
22115 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
22116 )
22117 {
22118 D(fprintf(stderr, "%*c+ _tmp_15[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC"));
22119 _res = async_var;
22120 goto done;
22121 }
22122 p->mark = _mark;
22123 D(fprintf(stderr, "%*c%s _tmp_15[%d-%d]: %s failed!\n", p->level, ' ',
22124 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC"));
22125 }
22126 _res = NULL;
22127 done:
22128 D(p->level--);
22129 return _res;
22130}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000022131
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022132// _tmp_16: 'class' | '@'
22133static void *
22134_tmp_16_rule(Parser *p)
22135{
22136 D(p->level++);
22137 if (p->error_indicator) {
22138 D(p->level--);
22139 return NULL;
22140 }
22141 void * _res = NULL;
22142 int _mark = p->mark;
22143 { // 'class'
22144 if (p->error_indicator) {
22145 D(p->level--);
22146 return NULL;
22147 }
22148 D(fprintf(stderr, "%*c> _tmp_16[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'class'"));
22149 Token * _keyword;
22150 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080022151 (_keyword = _PyPegen_expect_token(p, 527)) // token='class'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022152 )
22153 {
22154 D(fprintf(stderr, "%*c+ _tmp_16[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'class'"));
22155 _res = _keyword;
22156 goto done;
22157 }
22158 p->mark = _mark;
22159 D(fprintf(stderr, "%*c%s _tmp_16[%d-%d]: %s failed!\n", p->level, ' ',
22160 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'class'"));
22161 }
22162 { // '@'
22163 if (p->error_indicator) {
22164 D(p->level--);
22165 return NULL;
22166 }
22167 D(fprintf(stderr, "%*c> _tmp_16[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@'"));
22168 Token * _literal;
22169 if (
22170 (_literal = _PyPegen_expect_token(p, 49)) // token='@'
22171 )
22172 {
22173 D(fprintf(stderr, "%*c+ _tmp_16[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@'"));
22174 _res = _literal;
22175 goto done;
22176 }
22177 p->mark = _mark;
22178 D(fprintf(stderr, "%*c%s _tmp_16[%d-%d]: %s failed!\n", p->level, ' ',
22179 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@'"));
22180 }
22181 _res = NULL;
22182 done:
22183 D(p->level--);
22184 return _res;
22185}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000022186
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022187// _tmp_17: 'with' | ASYNC
22188static void *
22189_tmp_17_rule(Parser *p)
22190{
22191 D(p->level++);
22192 if (p->error_indicator) {
22193 D(p->level--);
22194 return NULL;
22195 }
22196 void * _res = NULL;
22197 int _mark = p->mark;
22198 { // 'with'
22199 if (p->error_indicator) {
22200 D(p->level--);
22201 return NULL;
22202 }
22203 D(fprintf(stderr, "%*c> _tmp_17[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'with'"));
22204 Token * _keyword;
22205 if (
22206 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
22207 )
22208 {
22209 D(fprintf(stderr, "%*c+ _tmp_17[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'with'"));
22210 _res = _keyword;
22211 goto done;
22212 }
22213 p->mark = _mark;
22214 D(fprintf(stderr, "%*c%s _tmp_17[%d-%d]: %s failed!\n", p->level, ' ',
22215 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'with'"));
22216 }
22217 { // ASYNC
22218 if (p->error_indicator) {
22219 D(p->level--);
22220 return NULL;
22221 }
22222 D(fprintf(stderr, "%*c> _tmp_17[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC"));
22223 Token * async_var;
22224 if (
22225 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
22226 )
22227 {
22228 D(fprintf(stderr, "%*c+ _tmp_17[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC"));
22229 _res = async_var;
22230 goto done;
22231 }
22232 p->mark = _mark;
22233 D(fprintf(stderr, "%*c%s _tmp_17[%d-%d]: %s failed!\n", p->level, ' ',
22234 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC"));
22235 }
22236 _res = NULL;
22237 done:
22238 D(p->level--);
22239 return _res;
22240}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000022241
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022242// _tmp_18: 'for' | ASYNC
22243static void *
22244_tmp_18_rule(Parser *p)
22245{
22246 D(p->level++);
22247 if (p->error_indicator) {
22248 D(p->level--);
22249 return NULL;
22250 }
22251 void * _res = NULL;
22252 int _mark = p->mark;
22253 { // 'for'
22254 if (p->error_indicator) {
22255 D(p->level--);
22256 return NULL;
22257 }
22258 D(fprintf(stderr, "%*c> _tmp_18[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'for'"));
22259 Token * _keyword;
22260 if (
22261 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
22262 )
22263 {
22264 D(fprintf(stderr, "%*c+ _tmp_18[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'for'"));
22265 _res = _keyword;
22266 goto done;
22267 }
22268 p->mark = _mark;
22269 D(fprintf(stderr, "%*c%s _tmp_18[%d-%d]: %s failed!\n", p->level, ' ',
22270 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'for'"));
22271 }
22272 { // ASYNC
22273 if (p->error_indicator) {
22274 D(p->level--);
22275 return NULL;
22276 }
22277 D(fprintf(stderr, "%*c> _tmp_18[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC"));
22278 Token * async_var;
22279 if (
22280 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
22281 )
22282 {
22283 D(fprintf(stderr, "%*c+ _tmp_18[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC"));
22284 _res = async_var;
22285 goto done;
22286 }
22287 p->mark = _mark;
22288 D(fprintf(stderr, "%*c%s _tmp_18[%d-%d]: %s failed!\n", p->level, ' ',
22289 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC"));
22290 }
22291 _res = NULL;
22292 done:
22293 D(p->level--);
22294 return _res;
22295}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000022296
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022297// _tmp_19: '=' annotated_rhs
22298static void *
22299_tmp_19_rule(Parser *p)
22300{
22301 D(p->level++);
22302 if (p->error_indicator) {
22303 D(p->level--);
22304 return NULL;
22305 }
22306 void * _res = NULL;
22307 int _mark = p->mark;
22308 { // '=' annotated_rhs
22309 if (p->error_indicator) {
22310 D(p->level--);
22311 return NULL;
22312 }
22313 D(fprintf(stderr, "%*c> _tmp_19[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
22314 Token * _literal;
22315 expr_ty d;
22316 if (
22317 (_literal = _PyPegen_expect_token(p, 22)) // token='='
22318 &&
22319 (d = annotated_rhs_rule(p)) // annotated_rhs
22320 )
22321 {
22322 D(fprintf(stderr, "%*c+ _tmp_19[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
22323 _res = d;
22324 if (_res == NULL && PyErr_Occurred()) {
22325 p->error_indicator = 1;
22326 D(p->level--);
22327 return NULL;
22328 }
22329 goto done;
22330 }
22331 p->mark = _mark;
22332 D(fprintf(stderr, "%*c%s _tmp_19[%d-%d]: %s failed!\n", p->level, ' ',
22333 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'=' annotated_rhs"));
22334 }
22335 _res = NULL;
22336 done:
22337 D(p->level--);
22338 return _res;
22339}
22340
22341// _tmp_20: '(' single_target ')' | single_subscript_attribute_target
22342static void *
22343_tmp_20_rule(Parser *p)
22344{
22345 D(p->level++);
22346 if (p->error_indicator) {
22347 D(p->level--);
22348 return NULL;
22349 }
22350 void * _res = NULL;
22351 int _mark = p->mark;
22352 { // '(' single_target ')'
22353 if (p->error_indicator) {
22354 D(p->level--);
22355 return NULL;
22356 }
22357 D(fprintf(stderr, "%*c> _tmp_20[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'"));
22358 Token * _literal;
22359 Token * _literal_1;
22360 expr_ty b;
22361 if (
22362 (_literal = _PyPegen_expect_token(p, 7)) // token='('
22363 &&
22364 (b = single_target_rule(p)) // single_target
22365 &&
22366 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
22367 )
22368 {
22369 D(fprintf(stderr, "%*c+ _tmp_20[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'"));
22370 _res = b;
22371 if (_res == NULL && PyErr_Occurred()) {
22372 p->error_indicator = 1;
22373 D(p->level--);
22374 return NULL;
22375 }
22376 goto done;
22377 }
22378 p->mark = _mark;
22379 D(fprintf(stderr, "%*c%s _tmp_20[%d-%d]: %s failed!\n", p->level, ' ',
22380 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' single_target ')'"));
22381 }
22382 { // single_subscript_attribute_target
22383 if (p->error_indicator) {
22384 D(p->level--);
22385 return NULL;
22386 }
22387 D(fprintf(stderr, "%*c> _tmp_20[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "single_subscript_attribute_target"));
22388 expr_ty single_subscript_attribute_target_var;
22389 if (
22390 (single_subscript_attribute_target_var = single_subscript_attribute_target_rule(p)) // single_subscript_attribute_target
22391 )
22392 {
22393 D(fprintf(stderr, "%*c+ _tmp_20[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "single_subscript_attribute_target"));
22394 _res = single_subscript_attribute_target_var;
22395 goto done;
22396 }
22397 p->mark = _mark;
22398 D(fprintf(stderr, "%*c%s _tmp_20[%d-%d]: %s failed!\n", p->level, ' ',
22399 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "single_subscript_attribute_target"));
22400 }
22401 _res = NULL;
22402 done:
22403 D(p->level--);
22404 return _res;
22405}
22406
22407// _tmp_21: '=' annotated_rhs
22408static void *
22409_tmp_21_rule(Parser *p)
22410{
22411 D(p->level++);
22412 if (p->error_indicator) {
22413 D(p->level--);
22414 return NULL;
22415 }
22416 void * _res = NULL;
22417 int _mark = p->mark;
22418 { // '=' annotated_rhs
22419 if (p->error_indicator) {
22420 D(p->level--);
22421 return NULL;
22422 }
22423 D(fprintf(stderr, "%*c> _tmp_21[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
22424 Token * _literal;
22425 expr_ty d;
22426 if (
22427 (_literal = _PyPegen_expect_token(p, 22)) // token='='
22428 &&
22429 (d = annotated_rhs_rule(p)) // annotated_rhs
22430 )
22431 {
22432 D(fprintf(stderr, "%*c+ _tmp_21[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
22433 _res = d;
22434 if (_res == NULL && PyErr_Occurred()) {
22435 p->error_indicator = 1;
22436 D(p->level--);
22437 return NULL;
22438 }
22439 goto done;
22440 }
22441 p->mark = _mark;
22442 D(fprintf(stderr, "%*c%s _tmp_21[%d-%d]: %s failed!\n", p->level, ' ',
22443 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'=' annotated_rhs"));
22444 }
22445 _res = NULL;
22446 done:
22447 D(p->level--);
22448 return _res;
22449}
22450
22451// _loop1_22: (star_targets '=')
22452static asdl_seq *
22453_loop1_22_rule(Parser *p)
22454{
22455 D(p->level++);
22456 if (p->error_indicator) {
22457 D(p->level--);
22458 return NULL;
22459 }
22460 void *_res = NULL;
22461 int _mark = p->mark;
22462 int _start_mark = p->mark;
22463 void **_children = PyMem_Malloc(sizeof(void *));
22464 if (!_children) {
22465 p->error_indicator = 1;
22466 PyErr_NoMemory();
22467 D(p->level--);
22468 return NULL;
22469 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010022470 Py_ssize_t _children_capacity = 1;
22471 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022472 { // (star_targets '=')
22473 if (p->error_indicator) {
22474 D(p->level--);
22475 return NULL;
22476 }
22477 D(fprintf(stderr, "%*c> _loop1_22[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070022478 void *_tmp_179_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022479 while (
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070022480 (_tmp_179_var = _tmp_179_rule(p)) // star_targets '='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022481 )
22482 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070022483 _res = _tmp_179_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022484 if (_n == _children_capacity) {
22485 _children_capacity *= 2;
22486 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22487 if (!_new_children) {
22488 p->error_indicator = 1;
22489 PyErr_NoMemory();
22490 D(p->level--);
22491 return NULL;
22492 }
22493 _children = _new_children;
22494 }
22495 _children[_n++] = _res;
22496 _mark = p->mark;
22497 }
22498 p->mark = _mark;
22499 D(fprintf(stderr, "%*c%s _loop1_22[%d-%d]: %s failed!\n", p->level, ' ',
22500 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(star_targets '=')"));
22501 }
22502 if (_n == 0 || p->error_indicator) {
22503 PyMem_Free(_children);
22504 D(p->level--);
22505 return NULL;
22506 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022507 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022508 if (!_seq) {
22509 PyMem_Free(_children);
22510 p->error_indicator = 1;
22511 PyErr_NoMemory();
22512 D(p->level--);
22513 return NULL;
22514 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022515 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022516 PyMem_Free(_children);
22517 _PyPegen_insert_memo(p, _start_mark, _loop1_22_type, _seq);
22518 D(p->level--);
22519 return _seq;
22520}
22521
22522// _tmp_23: yield_expr | star_expressions
22523static void *
22524_tmp_23_rule(Parser *p)
22525{
22526 D(p->level++);
22527 if (p->error_indicator) {
22528 D(p->level--);
22529 return NULL;
22530 }
22531 void * _res = NULL;
22532 int _mark = p->mark;
22533 { // yield_expr
22534 if (p->error_indicator) {
22535 D(p->level--);
22536 return NULL;
22537 }
22538 D(fprintf(stderr, "%*c> _tmp_23[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
22539 expr_ty yield_expr_var;
22540 if (
22541 (yield_expr_var = yield_expr_rule(p)) // yield_expr
22542 )
22543 {
22544 D(fprintf(stderr, "%*c+ _tmp_23[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
22545 _res = yield_expr_var;
22546 goto done;
22547 }
22548 p->mark = _mark;
22549 D(fprintf(stderr, "%*c%s _tmp_23[%d-%d]: %s failed!\n", p->level, ' ',
22550 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
22551 }
22552 { // star_expressions
22553 if (p->error_indicator) {
22554 D(p->level--);
22555 return NULL;
22556 }
22557 D(fprintf(stderr, "%*c> _tmp_23[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
22558 expr_ty star_expressions_var;
22559 if (
22560 (star_expressions_var = star_expressions_rule(p)) // star_expressions
22561 )
22562 {
22563 D(fprintf(stderr, "%*c+ _tmp_23[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
22564 _res = star_expressions_var;
22565 goto done;
22566 }
22567 p->mark = _mark;
22568 D(fprintf(stderr, "%*c%s _tmp_23[%d-%d]: %s failed!\n", p->level, ' ',
22569 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
22570 }
22571 _res = NULL;
22572 done:
22573 D(p->level--);
22574 return _res;
22575}
22576
22577// _tmp_24: yield_expr | star_expressions
22578static void *
22579_tmp_24_rule(Parser *p)
22580{
22581 D(p->level++);
22582 if (p->error_indicator) {
22583 D(p->level--);
22584 return NULL;
22585 }
22586 void * _res = NULL;
22587 int _mark = p->mark;
22588 { // yield_expr
22589 if (p->error_indicator) {
22590 D(p->level--);
22591 return NULL;
22592 }
22593 D(fprintf(stderr, "%*c> _tmp_24[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
22594 expr_ty yield_expr_var;
22595 if (
22596 (yield_expr_var = yield_expr_rule(p)) // yield_expr
22597 )
22598 {
22599 D(fprintf(stderr, "%*c+ _tmp_24[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
22600 _res = yield_expr_var;
22601 goto done;
22602 }
22603 p->mark = _mark;
22604 D(fprintf(stderr, "%*c%s _tmp_24[%d-%d]: %s failed!\n", p->level, ' ',
22605 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
22606 }
22607 { // star_expressions
22608 if (p->error_indicator) {
22609 D(p->level--);
22610 return NULL;
22611 }
22612 D(fprintf(stderr, "%*c> _tmp_24[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
22613 expr_ty star_expressions_var;
22614 if (
22615 (star_expressions_var = star_expressions_rule(p)) // star_expressions
22616 )
22617 {
22618 D(fprintf(stderr, "%*c+ _tmp_24[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
22619 _res = star_expressions_var;
22620 goto done;
22621 }
22622 p->mark = _mark;
22623 D(fprintf(stderr, "%*c%s _tmp_24[%d-%d]: %s failed!\n", p->level, ' ',
22624 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
22625 }
22626 _res = NULL;
22627 done:
22628 D(p->level--);
22629 return _res;
22630}
22631
22632// _loop0_26: ',' NAME
22633static asdl_seq *
22634_loop0_26_rule(Parser *p)
22635{
22636 D(p->level++);
22637 if (p->error_indicator) {
22638 D(p->level--);
22639 return NULL;
22640 }
22641 void *_res = NULL;
22642 int _mark = p->mark;
22643 int _start_mark = p->mark;
22644 void **_children = PyMem_Malloc(sizeof(void *));
22645 if (!_children) {
22646 p->error_indicator = 1;
22647 PyErr_NoMemory();
22648 D(p->level--);
22649 return NULL;
22650 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010022651 Py_ssize_t _children_capacity = 1;
22652 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022653 { // ',' NAME
22654 if (p->error_indicator) {
22655 D(p->level--);
22656 return NULL;
22657 }
22658 D(fprintf(stderr, "%*c> _loop0_26[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' NAME"));
22659 Token * _literal;
22660 expr_ty elem;
22661 while (
22662 (_literal = _PyPegen_expect_token(p, 12)) // token=','
22663 &&
22664 (elem = _PyPegen_name_token(p)) // NAME
22665 )
22666 {
22667 _res = elem;
22668 if (_res == NULL && PyErr_Occurred()) {
22669 p->error_indicator = 1;
22670 PyMem_Free(_children);
22671 D(p->level--);
22672 return NULL;
22673 }
22674 if (_n == _children_capacity) {
22675 _children_capacity *= 2;
22676 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22677 if (!_new_children) {
22678 p->error_indicator = 1;
22679 PyErr_NoMemory();
22680 D(p->level--);
22681 return NULL;
22682 }
22683 _children = _new_children;
22684 }
22685 _children[_n++] = _res;
22686 _mark = p->mark;
22687 }
22688 p->mark = _mark;
22689 D(fprintf(stderr, "%*c%s _loop0_26[%d-%d]: %s failed!\n", p->level, ' ',
22690 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' NAME"));
22691 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022692 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022693 if (!_seq) {
22694 PyMem_Free(_children);
22695 p->error_indicator = 1;
22696 PyErr_NoMemory();
22697 D(p->level--);
22698 return NULL;
22699 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022700 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022701 PyMem_Free(_children);
22702 _PyPegen_insert_memo(p, _start_mark, _loop0_26_type, _seq);
22703 D(p->level--);
22704 return _seq;
22705}
22706
22707// _gather_25: NAME _loop0_26
22708static asdl_seq *
22709_gather_25_rule(Parser *p)
22710{
22711 D(p->level++);
22712 if (p->error_indicator) {
22713 D(p->level--);
22714 return NULL;
22715 }
22716 asdl_seq * _res = NULL;
22717 int _mark = p->mark;
22718 { // NAME _loop0_26
22719 if (p->error_indicator) {
22720 D(p->level--);
22721 return NULL;
22722 }
22723 D(fprintf(stderr, "%*c> _gather_25[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME _loop0_26"));
22724 expr_ty elem;
22725 asdl_seq * seq;
22726 if (
22727 (elem = _PyPegen_name_token(p)) // NAME
22728 &&
22729 (seq = _loop0_26_rule(p)) // _loop0_26
22730 )
22731 {
22732 D(fprintf(stderr, "%*c+ _gather_25[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME _loop0_26"));
22733 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
22734 goto done;
22735 }
22736 p->mark = _mark;
22737 D(fprintf(stderr, "%*c%s _gather_25[%d-%d]: %s failed!\n", p->level, ' ',
22738 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME _loop0_26"));
22739 }
22740 _res = NULL;
22741 done:
22742 D(p->level--);
22743 return _res;
22744}
22745
22746// _loop0_28: ',' NAME
22747static asdl_seq *
22748_loop0_28_rule(Parser *p)
22749{
22750 D(p->level++);
22751 if (p->error_indicator) {
22752 D(p->level--);
22753 return NULL;
22754 }
22755 void *_res = NULL;
22756 int _mark = p->mark;
22757 int _start_mark = p->mark;
22758 void **_children = PyMem_Malloc(sizeof(void *));
22759 if (!_children) {
22760 p->error_indicator = 1;
22761 PyErr_NoMemory();
22762 D(p->level--);
22763 return NULL;
22764 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010022765 Py_ssize_t _children_capacity = 1;
22766 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022767 { // ',' NAME
22768 if (p->error_indicator) {
22769 D(p->level--);
22770 return NULL;
22771 }
22772 D(fprintf(stderr, "%*c> _loop0_28[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' NAME"));
22773 Token * _literal;
22774 expr_ty elem;
22775 while (
22776 (_literal = _PyPegen_expect_token(p, 12)) // token=','
22777 &&
22778 (elem = _PyPegen_name_token(p)) // NAME
22779 )
22780 {
22781 _res = elem;
22782 if (_res == NULL && PyErr_Occurred()) {
22783 p->error_indicator = 1;
22784 PyMem_Free(_children);
22785 D(p->level--);
22786 return NULL;
22787 }
22788 if (_n == _children_capacity) {
22789 _children_capacity *= 2;
22790 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22791 if (!_new_children) {
22792 p->error_indicator = 1;
22793 PyErr_NoMemory();
22794 D(p->level--);
22795 return NULL;
22796 }
22797 _children = _new_children;
22798 }
22799 _children[_n++] = _res;
22800 _mark = p->mark;
22801 }
22802 p->mark = _mark;
22803 D(fprintf(stderr, "%*c%s _loop0_28[%d-%d]: %s failed!\n", p->level, ' ',
22804 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' NAME"));
22805 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022806 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022807 if (!_seq) {
22808 PyMem_Free(_children);
22809 p->error_indicator = 1;
22810 PyErr_NoMemory();
22811 D(p->level--);
22812 return NULL;
22813 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022814 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022815 PyMem_Free(_children);
22816 _PyPegen_insert_memo(p, _start_mark, _loop0_28_type, _seq);
22817 D(p->level--);
22818 return _seq;
22819}
22820
22821// _gather_27: NAME _loop0_28
22822static asdl_seq *
22823_gather_27_rule(Parser *p)
22824{
22825 D(p->level++);
22826 if (p->error_indicator) {
22827 D(p->level--);
22828 return NULL;
22829 }
22830 asdl_seq * _res = NULL;
22831 int _mark = p->mark;
22832 { // NAME _loop0_28
22833 if (p->error_indicator) {
22834 D(p->level--);
22835 return NULL;
22836 }
22837 D(fprintf(stderr, "%*c> _gather_27[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME _loop0_28"));
22838 expr_ty elem;
22839 asdl_seq * seq;
22840 if (
22841 (elem = _PyPegen_name_token(p)) // NAME
22842 &&
22843 (seq = _loop0_28_rule(p)) // _loop0_28
22844 )
22845 {
22846 D(fprintf(stderr, "%*c+ _gather_27[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME _loop0_28"));
22847 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
22848 goto done;
22849 }
22850 p->mark = _mark;
22851 D(fprintf(stderr, "%*c%s _gather_27[%d-%d]: %s failed!\n", p->level, ' ',
22852 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME _loop0_28"));
22853 }
22854 _res = NULL;
22855 done:
22856 D(p->level--);
22857 return _res;
22858}
22859
22860// _tmp_29: ',' expression
22861static void *
22862_tmp_29_rule(Parser *p)
22863{
22864 D(p->level++);
22865 if (p->error_indicator) {
22866 D(p->level--);
22867 return NULL;
22868 }
22869 void * _res = NULL;
22870 int _mark = p->mark;
22871 { // ',' expression
22872 if (p->error_indicator) {
22873 D(p->level--);
22874 return NULL;
22875 }
22876 D(fprintf(stderr, "%*c> _tmp_29[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
22877 Token * _literal;
22878 expr_ty z;
22879 if (
22880 (_literal = _PyPegen_expect_token(p, 12)) // token=','
22881 &&
22882 (z = expression_rule(p)) // expression
22883 )
22884 {
22885 D(fprintf(stderr, "%*c+ _tmp_29[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' expression"));
22886 _res = z;
22887 if (_res == NULL && PyErr_Occurred()) {
22888 p->error_indicator = 1;
22889 D(p->level--);
22890 return NULL;
22891 }
22892 goto done;
22893 }
22894 p->mark = _mark;
22895 D(fprintf(stderr, "%*c%s _tmp_29[%d-%d]: %s failed!\n", p->level, ' ',
22896 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
22897 }
22898 _res = NULL;
22899 done:
22900 D(p->level--);
22901 return _res;
22902}
22903
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022904// _tmp_30: ';' | NEWLINE
22905static void *
22906_tmp_30_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022907{
22908 D(p->level++);
22909 if (p->error_indicator) {
22910 D(p->level--);
22911 return NULL;
22912 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022913 void * _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022914 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022915 { // ';'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022916 if (p->error_indicator) {
22917 D(p->level--);
22918 return NULL;
22919 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022920 D(fprintf(stderr, "%*c> _tmp_30[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "';'"));
22921 Token * _literal;
22922 if (
22923 (_literal = _PyPegen_expect_token(p, 13)) // token=';'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022924 )
22925 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022926 D(fprintf(stderr, "%*c+ _tmp_30[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "';'"));
22927 _res = _literal;
22928 goto done;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022929 }
22930 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022931 D(fprintf(stderr, "%*c%s _tmp_30[%d-%d]: %s failed!\n", p->level, ' ',
22932 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "';'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022933 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022934 { // NEWLINE
22935 if (p->error_indicator) {
22936 D(p->level--);
22937 return NULL;
22938 }
22939 D(fprintf(stderr, "%*c> _tmp_30[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
22940 Token * newline_var;
22941 if (
22942 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
22943 )
22944 {
22945 D(fprintf(stderr, "%*c+ _tmp_30[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
22946 _res = newline_var;
22947 goto done;
22948 }
22949 p->mark = _mark;
22950 D(fprintf(stderr, "%*c%s _tmp_30[%d-%d]: %s failed!\n", p->level, ' ',
22951 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022952 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022953 _res = NULL;
22954 done:
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022955 D(p->level--);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022956 return _res;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022957}
22958
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022959// _loop0_31: ('.' | '...')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022960static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022961_loop0_31_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022962{
22963 D(p->level++);
22964 if (p->error_indicator) {
22965 D(p->level--);
22966 return NULL;
22967 }
22968 void *_res = NULL;
22969 int _mark = p->mark;
22970 int _start_mark = p->mark;
22971 void **_children = PyMem_Malloc(sizeof(void *));
22972 if (!_children) {
22973 p->error_indicator = 1;
22974 PyErr_NoMemory();
22975 D(p->level--);
22976 return NULL;
22977 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010022978 Py_ssize_t _children_capacity = 1;
22979 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022980 { // ('.' | '...')
22981 if (p->error_indicator) {
22982 D(p->level--);
22983 return NULL;
22984 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022985 D(fprintf(stderr, "%*c> _loop0_31[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('.' | '...')"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070022986 void *_tmp_180_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022987 while (
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070022988 (_tmp_180_var = _tmp_180_rule(p)) // '.' | '...'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022989 )
22990 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070022991 _res = _tmp_180_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022992 if (_n == _children_capacity) {
22993 _children_capacity *= 2;
22994 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22995 if (!_new_children) {
22996 p->error_indicator = 1;
22997 PyErr_NoMemory();
22998 D(p->level--);
22999 return NULL;
23000 }
23001 _children = _new_children;
23002 }
23003 _children[_n++] = _res;
23004 _mark = p->mark;
23005 }
23006 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023007 D(fprintf(stderr, "%*c%s _loop0_31[%d-%d]: %s failed!\n", p->level, ' ',
23008 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('.' | '...')"));
23009 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023010 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023011 if (!_seq) {
23012 PyMem_Free(_children);
23013 p->error_indicator = 1;
23014 PyErr_NoMemory();
23015 D(p->level--);
23016 return NULL;
23017 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023018 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023019 PyMem_Free(_children);
23020 _PyPegen_insert_memo(p, _start_mark, _loop0_31_type, _seq);
23021 D(p->level--);
23022 return _seq;
23023}
23024
23025// _loop1_32: ('.' | '...')
23026static asdl_seq *
23027_loop1_32_rule(Parser *p)
23028{
23029 D(p->level++);
23030 if (p->error_indicator) {
23031 D(p->level--);
23032 return NULL;
23033 }
23034 void *_res = NULL;
23035 int _mark = p->mark;
23036 int _start_mark = p->mark;
23037 void **_children = PyMem_Malloc(sizeof(void *));
23038 if (!_children) {
23039 p->error_indicator = 1;
23040 PyErr_NoMemory();
23041 D(p->level--);
23042 return NULL;
23043 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023044 Py_ssize_t _children_capacity = 1;
23045 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023046 { // ('.' | '...')
23047 if (p->error_indicator) {
23048 D(p->level--);
23049 return NULL;
23050 }
23051 D(fprintf(stderr, "%*c> _loop1_32[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('.' | '...')"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070023052 void *_tmp_181_var;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023053 while (
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070023054 (_tmp_181_var = _tmp_181_rule(p)) // '.' | '...'
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023055 )
23056 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070023057 _res = _tmp_181_var;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023058 if (_n == _children_capacity) {
23059 _children_capacity *= 2;
23060 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23061 if (!_new_children) {
23062 p->error_indicator = 1;
23063 PyErr_NoMemory();
23064 D(p->level--);
23065 return NULL;
23066 }
23067 _children = _new_children;
23068 }
23069 _children[_n++] = _res;
23070 _mark = p->mark;
23071 }
23072 p->mark = _mark;
23073 D(fprintf(stderr, "%*c%s _loop1_32[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023074 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('.' | '...')"));
23075 }
23076 if (_n == 0 || p->error_indicator) {
23077 PyMem_Free(_children);
23078 D(p->level--);
23079 return NULL;
23080 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023081 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023082 if (!_seq) {
23083 PyMem_Free(_children);
23084 p->error_indicator = 1;
23085 PyErr_NoMemory();
23086 D(p->level--);
23087 return NULL;
23088 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023089 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023090 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023091 _PyPegen_insert_memo(p, _start_mark, _loop1_32_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023092 D(p->level--);
23093 return _seq;
23094}
23095
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023096// _loop0_34: ',' import_from_as_name
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023097static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023098_loop0_34_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023099{
23100 D(p->level++);
23101 if (p->error_indicator) {
23102 D(p->level--);
23103 return NULL;
23104 }
23105 void *_res = NULL;
23106 int _mark = p->mark;
23107 int _start_mark = p->mark;
23108 void **_children = PyMem_Malloc(sizeof(void *));
23109 if (!_children) {
23110 p->error_indicator = 1;
23111 PyErr_NoMemory();
23112 D(p->level--);
23113 return NULL;
23114 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023115 Py_ssize_t _children_capacity = 1;
23116 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023117 { // ',' import_from_as_name
23118 if (p->error_indicator) {
23119 D(p->level--);
23120 return NULL;
23121 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023122 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 +010023123 Token * _literal;
23124 alias_ty elem;
23125 while (
23126 (_literal = _PyPegen_expect_token(p, 12)) // token=','
23127 &&
23128 (elem = import_from_as_name_rule(p)) // import_from_as_name
23129 )
23130 {
23131 _res = elem;
23132 if (_res == NULL && PyErr_Occurred()) {
23133 p->error_indicator = 1;
23134 PyMem_Free(_children);
23135 D(p->level--);
23136 return NULL;
23137 }
23138 if (_n == _children_capacity) {
23139 _children_capacity *= 2;
23140 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23141 if (!_new_children) {
23142 p->error_indicator = 1;
23143 PyErr_NoMemory();
23144 D(p->level--);
23145 return NULL;
23146 }
23147 _children = _new_children;
23148 }
23149 _children[_n++] = _res;
23150 _mark = p->mark;
23151 }
23152 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023153 D(fprintf(stderr, "%*c%s _loop0_34[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023154 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' import_from_as_name"));
23155 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023156 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023157 if (!_seq) {
23158 PyMem_Free(_children);
23159 p->error_indicator = 1;
23160 PyErr_NoMemory();
23161 D(p->level--);
23162 return NULL;
23163 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023164 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023165 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023166 _PyPegen_insert_memo(p, _start_mark, _loop0_34_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023167 D(p->level--);
23168 return _seq;
23169}
23170
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023171// _gather_33: import_from_as_name _loop0_34
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023172static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023173_gather_33_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023174{
23175 D(p->level++);
23176 if (p->error_indicator) {
23177 D(p->level--);
23178 return NULL;
23179 }
23180 asdl_seq * _res = NULL;
23181 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023182 { // import_from_as_name _loop0_34
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023183 if (p->error_indicator) {
23184 D(p->level--);
23185 return NULL;
23186 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023187 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 +010023188 alias_ty elem;
23189 asdl_seq * seq;
23190 if (
23191 (elem = import_from_as_name_rule(p)) // import_from_as_name
23192 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023193 (seq = _loop0_34_rule(p)) // _loop0_34
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023194 )
23195 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023196 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 +010023197 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
23198 goto done;
23199 }
23200 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023201 D(fprintf(stderr, "%*c%s _gather_33[%d-%d]: %s failed!\n", p->level, ' ',
23202 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from_as_name _loop0_34"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023203 }
23204 _res = NULL;
23205 done:
23206 D(p->level--);
23207 return _res;
23208}
23209
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023210// _tmp_35: 'as' NAME
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023211static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023212_tmp_35_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023213{
23214 D(p->level++);
23215 if (p->error_indicator) {
23216 D(p->level--);
23217 return NULL;
23218 }
23219 void * _res = NULL;
23220 int _mark = p->mark;
23221 { // 'as' NAME
23222 if (p->error_indicator) {
23223 D(p->level--);
23224 return NULL;
23225 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023226 D(fprintf(stderr, "%*c> _tmp_35[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023227 Token * _keyword;
23228 expr_ty z;
23229 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023230 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023231 &&
23232 (z = _PyPegen_name_token(p)) // NAME
23233 )
23234 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023235 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 +010023236 _res = z;
23237 if (_res == NULL && PyErr_Occurred()) {
23238 p->error_indicator = 1;
23239 D(p->level--);
23240 return NULL;
23241 }
23242 goto done;
23243 }
23244 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023245 D(fprintf(stderr, "%*c%s _tmp_35[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023246 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
23247 }
23248 _res = NULL;
23249 done:
23250 D(p->level--);
23251 return _res;
23252}
23253
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023254// _loop0_37: ',' dotted_as_name
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023255static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023256_loop0_37_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023257{
23258 D(p->level++);
23259 if (p->error_indicator) {
23260 D(p->level--);
23261 return NULL;
23262 }
23263 void *_res = NULL;
23264 int _mark = p->mark;
23265 int _start_mark = p->mark;
23266 void **_children = PyMem_Malloc(sizeof(void *));
23267 if (!_children) {
23268 p->error_indicator = 1;
23269 PyErr_NoMemory();
23270 D(p->level--);
23271 return NULL;
23272 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023273 Py_ssize_t _children_capacity = 1;
23274 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023275 { // ',' dotted_as_name
23276 if (p->error_indicator) {
23277 D(p->level--);
23278 return NULL;
23279 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023280 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 +010023281 Token * _literal;
23282 alias_ty elem;
23283 while (
23284 (_literal = _PyPegen_expect_token(p, 12)) // token=','
23285 &&
23286 (elem = dotted_as_name_rule(p)) // dotted_as_name
23287 )
23288 {
23289 _res = elem;
23290 if (_res == NULL && PyErr_Occurred()) {
23291 p->error_indicator = 1;
23292 PyMem_Free(_children);
23293 D(p->level--);
23294 return NULL;
23295 }
23296 if (_n == _children_capacity) {
23297 _children_capacity *= 2;
23298 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23299 if (!_new_children) {
23300 p->error_indicator = 1;
23301 PyErr_NoMemory();
23302 D(p->level--);
23303 return NULL;
23304 }
23305 _children = _new_children;
23306 }
23307 _children[_n++] = _res;
23308 _mark = p->mark;
23309 }
23310 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023311 D(fprintf(stderr, "%*c%s _loop0_37[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023312 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' dotted_as_name"));
23313 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023314 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023315 if (!_seq) {
23316 PyMem_Free(_children);
23317 p->error_indicator = 1;
23318 PyErr_NoMemory();
23319 D(p->level--);
23320 return NULL;
23321 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023322 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023323 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023324 _PyPegen_insert_memo(p, _start_mark, _loop0_37_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023325 D(p->level--);
23326 return _seq;
23327}
23328
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023329// _gather_36: dotted_as_name _loop0_37
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023330static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023331_gather_36_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023332{
23333 D(p->level++);
23334 if (p->error_indicator) {
23335 D(p->level--);
23336 return NULL;
23337 }
23338 asdl_seq * _res = NULL;
23339 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023340 { // dotted_as_name _loop0_37
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023341 if (p->error_indicator) {
23342 D(p->level--);
23343 return NULL;
23344 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023345 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 +010023346 alias_ty elem;
23347 asdl_seq * seq;
23348 if (
23349 (elem = dotted_as_name_rule(p)) // dotted_as_name
23350 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023351 (seq = _loop0_37_rule(p)) // _loop0_37
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023352 )
23353 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023354 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 +010023355 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
23356 goto done;
23357 }
23358 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023359 D(fprintf(stderr, "%*c%s _gather_36[%d-%d]: %s failed!\n", p->level, ' ',
23360 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dotted_as_name _loop0_37"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023361 }
23362 _res = NULL;
23363 done:
23364 D(p->level--);
23365 return _res;
23366}
23367
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023368// _tmp_38: 'as' NAME
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023369static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023370_tmp_38_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023371{
23372 D(p->level++);
23373 if (p->error_indicator) {
23374 D(p->level--);
23375 return NULL;
23376 }
23377 void * _res = NULL;
23378 int _mark = p->mark;
23379 { // 'as' NAME
23380 if (p->error_indicator) {
23381 D(p->level--);
23382 return NULL;
23383 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023384 D(fprintf(stderr, "%*c> _tmp_38[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023385 Token * _keyword;
23386 expr_ty z;
23387 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023388 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023389 &&
23390 (z = _PyPegen_name_token(p)) // NAME
23391 )
23392 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023393 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 +010023394 _res = z;
23395 if (_res == NULL && PyErr_Occurred()) {
23396 p->error_indicator = 1;
23397 D(p->level--);
23398 return NULL;
23399 }
23400 goto done;
23401 }
23402 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023403 D(fprintf(stderr, "%*c%s _tmp_38[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023404 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
23405 }
23406 _res = NULL;
23407 done:
23408 D(p->level--);
23409 return _res;
23410}
23411
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023412// _loop0_40: ',' with_item
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023413static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023414_loop0_40_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023415{
23416 D(p->level++);
23417 if (p->error_indicator) {
23418 D(p->level--);
23419 return NULL;
23420 }
23421 void *_res = NULL;
23422 int _mark = p->mark;
23423 int _start_mark = p->mark;
23424 void **_children = PyMem_Malloc(sizeof(void *));
23425 if (!_children) {
23426 p->error_indicator = 1;
23427 PyErr_NoMemory();
23428 D(p->level--);
23429 return NULL;
23430 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023431 Py_ssize_t _children_capacity = 1;
23432 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023433 { // ',' with_item
23434 if (p->error_indicator) {
23435 D(p->level--);
23436 return NULL;
23437 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023438 D(fprintf(stderr, "%*c> _loop0_40[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023439 Token * _literal;
23440 withitem_ty elem;
23441 while (
23442 (_literal = _PyPegen_expect_token(p, 12)) // token=','
23443 &&
23444 (elem = with_item_rule(p)) // with_item
23445 )
23446 {
23447 _res = elem;
23448 if (_res == NULL && PyErr_Occurred()) {
23449 p->error_indicator = 1;
23450 PyMem_Free(_children);
23451 D(p->level--);
23452 return NULL;
23453 }
23454 if (_n == _children_capacity) {
23455 _children_capacity *= 2;
23456 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23457 if (!_new_children) {
23458 p->error_indicator = 1;
23459 PyErr_NoMemory();
23460 D(p->level--);
23461 return NULL;
23462 }
23463 _children = _new_children;
23464 }
23465 _children[_n++] = _res;
23466 _mark = p->mark;
23467 }
23468 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023469 D(fprintf(stderr, "%*c%s _loop0_40[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023470 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
23471 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023472 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023473 if (!_seq) {
23474 PyMem_Free(_children);
23475 p->error_indicator = 1;
23476 PyErr_NoMemory();
23477 D(p->level--);
23478 return NULL;
23479 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023480 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023481 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023482 _PyPegen_insert_memo(p, _start_mark, _loop0_40_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023483 D(p->level--);
23484 return _seq;
23485}
23486
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023487// _gather_39: with_item _loop0_40
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023488static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023489_gather_39_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023490{
23491 D(p->level++);
23492 if (p->error_indicator) {
23493 D(p->level--);
23494 return NULL;
23495 }
23496 asdl_seq * _res = NULL;
23497 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023498 { // with_item _loop0_40
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023499 if (p->error_indicator) {
23500 D(p->level--);
23501 return NULL;
23502 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023503 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 +010023504 withitem_ty elem;
23505 asdl_seq * seq;
23506 if (
23507 (elem = with_item_rule(p)) // with_item
23508 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023509 (seq = _loop0_40_rule(p)) // _loop0_40
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023510 )
23511 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023512 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 +010023513 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
23514 goto done;
23515 }
23516 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023517 D(fprintf(stderr, "%*c%s _gather_39[%d-%d]: %s failed!\n", p->level, ' ',
23518 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_40"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023519 }
23520 _res = NULL;
23521 done:
23522 D(p->level--);
23523 return _res;
23524}
23525
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023526// _loop0_42: ',' with_item
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023527static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023528_loop0_42_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023529{
23530 D(p->level++);
23531 if (p->error_indicator) {
23532 D(p->level--);
23533 return NULL;
23534 }
23535 void *_res = NULL;
23536 int _mark = p->mark;
23537 int _start_mark = p->mark;
23538 void **_children = PyMem_Malloc(sizeof(void *));
23539 if (!_children) {
23540 p->error_indicator = 1;
23541 PyErr_NoMemory();
23542 D(p->level--);
23543 return NULL;
23544 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023545 Py_ssize_t _children_capacity = 1;
23546 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023547 { // ',' with_item
23548 if (p->error_indicator) {
23549 D(p->level--);
23550 return NULL;
23551 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023552 D(fprintf(stderr, "%*c> _loop0_42[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023553 Token * _literal;
23554 withitem_ty elem;
23555 while (
23556 (_literal = _PyPegen_expect_token(p, 12)) // token=','
23557 &&
23558 (elem = with_item_rule(p)) // with_item
23559 )
23560 {
23561 _res = elem;
23562 if (_res == NULL && PyErr_Occurred()) {
23563 p->error_indicator = 1;
23564 PyMem_Free(_children);
23565 D(p->level--);
23566 return NULL;
23567 }
23568 if (_n == _children_capacity) {
23569 _children_capacity *= 2;
23570 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23571 if (!_new_children) {
23572 p->error_indicator = 1;
23573 PyErr_NoMemory();
23574 D(p->level--);
23575 return NULL;
23576 }
23577 _children = _new_children;
23578 }
23579 _children[_n++] = _res;
23580 _mark = p->mark;
23581 }
23582 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023583 D(fprintf(stderr, "%*c%s _loop0_42[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023584 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
23585 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023586 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023587 if (!_seq) {
23588 PyMem_Free(_children);
23589 p->error_indicator = 1;
23590 PyErr_NoMemory();
23591 D(p->level--);
23592 return NULL;
23593 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023594 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023595 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023596 _PyPegen_insert_memo(p, _start_mark, _loop0_42_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023597 D(p->level--);
23598 return _seq;
23599}
23600
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023601// _gather_41: with_item _loop0_42
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023602static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023603_gather_41_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023604{
23605 D(p->level++);
23606 if (p->error_indicator) {
23607 D(p->level--);
23608 return NULL;
23609 }
23610 asdl_seq * _res = NULL;
23611 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023612 { // with_item _loop0_42
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023613 if (p->error_indicator) {
23614 D(p->level--);
23615 return NULL;
23616 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023617 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 +010023618 withitem_ty elem;
23619 asdl_seq * seq;
23620 if (
23621 (elem = with_item_rule(p)) // with_item
23622 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023623 (seq = _loop0_42_rule(p)) // _loop0_42
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023624 )
23625 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023626 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 +010023627 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
23628 goto done;
23629 }
23630 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023631 D(fprintf(stderr, "%*c%s _gather_41[%d-%d]: %s failed!\n", p->level, ' ',
23632 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_42"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023633 }
23634 _res = NULL;
23635 done:
23636 D(p->level--);
23637 return _res;
23638}
23639
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023640// _loop0_44: ',' with_item
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023641static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023642_loop0_44_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023643{
23644 D(p->level++);
23645 if (p->error_indicator) {
23646 D(p->level--);
23647 return NULL;
23648 }
23649 void *_res = NULL;
23650 int _mark = p->mark;
23651 int _start_mark = p->mark;
23652 void **_children = PyMem_Malloc(sizeof(void *));
23653 if (!_children) {
23654 p->error_indicator = 1;
23655 PyErr_NoMemory();
23656 D(p->level--);
23657 return NULL;
23658 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023659 Py_ssize_t _children_capacity = 1;
23660 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023661 { // ',' with_item
23662 if (p->error_indicator) {
23663 D(p->level--);
23664 return NULL;
23665 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023666 D(fprintf(stderr, "%*c> _loop0_44[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023667 Token * _literal;
23668 withitem_ty elem;
23669 while (
23670 (_literal = _PyPegen_expect_token(p, 12)) // token=','
23671 &&
23672 (elem = with_item_rule(p)) // with_item
23673 )
23674 {
23675 _res = elem;
23676 if (_res == NULL && PyErr_Occurred()) {
23677 p->error_indicator = 1;
23678 PyMem_Free(_children);
23679 D(p->level--);
23680 return NULL;
23681 }
23682 if (_n == _children_capacity) {
23683 _children_capacity *= 2;
23684 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23685 if (!_new_children) {
23686 p->error_indicator = 1;
23687 PyErr_NoMemory();
23688 D(p->level--);
23689 return NULL;
23690 }
23691 _children = _new_children;
23692 }
23693 _children[_n++] = _res;
23694 _mark = p->mark;
23695 }
23696 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023697 D(fprintf(stderr, "%*c%s _loop0_44[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023698 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
23699 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023700 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023701 if (!_seq) {
23702 PyMem_Free(_children);
23703 p->error_indicator = 1;
23704 PyErr_NoMemory();
23705 D(p->level--);
23706 return NULL;
23707 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023708 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023709 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023710 _PyPegen_insert_memo(p, _start_mark, _loop0_44_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023711 D(p->level--);
23712 return _seq;
23713}
23714
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023715// _gather_43: with_item _loop0_44
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023716static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023717_gather_43_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023718{
23719 D(p->level++);
23720 if (p->error_indicator) {
23721 D(p->level--);
23722 return NULL;
23723 }
23724 asdl_seq * _res = NULL;
23725 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023726 { // with_item _loop0_44
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023727 if (p->error_indicator) {
23728 D(p->level--);
23729 return NULL;
23730 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023731 D(fprintf(stderr, "%*c> _gather_43[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "with_item _loop0_44"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023732 withitem_ty elem;
23733 asdl_seq * seq;
23734 if (
23735 (elem = with_item_rule(p)) // with_item
23736 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023737 (seq = _loop0_44_rule(p)) // _loop0_44
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023738 )
23739 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023740 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 +010023741 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
23742 goto done;
23743 }
23744 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023745 D(fprintf(stderr, "%*c%s _gather_43[%d-%d]: %s failed!\n", p->level, ' ',
23746 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_44"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023747 }
23748 _res = NULL;
23749 done:
23750 D(p->level--);
23751 return _res;
23752}
23753
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023754// _loop0_46: ',' with_item
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023755static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023756_loop0_46_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023757{
23758 D(p->level++);
23759 if (p->error_indicator) {
23760 D(p->level--);
23761 return NULL;
23762 }
23763 void *_res = NULL;
23764 int _mark = p->mark;
23765 int _start_mark = p->mark;
23766 void **_children = PyMem_Malloc(sizeof(void *));
23767 if (!_children) {
23768 p->error_indicator = 1;
23769 PyErr_NoMemory();
23770 D(p->level--);
23771 return NULL;
23772 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023773 Py_ssize_t _children_capacity = 1;
23774 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023775 { // ',' with_item
23776 if (p->error_indicator) {
23777 D(p->level--);
23778 return NULL;
23779 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023780 D(fprintf(stderr, "%*c> _loop0_46[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023781 Token * _literal;
23782 withitem_ty elem;
23783 while (
23784 (_literal = _PyPegen_expect_token(p, 12)) // token=','
23785 &&
23786 (elem = with_item_rule(p)) // with_item
23787 )
23788 {
23789 _res = elem;
23790 if (_res == NULL && PyErr_Occurred()) {
23791 p->error_indicator = 1;
23792 PyMem_Free(_children);
23793 D(p->level--);
23794 return NULL;
23795 }
23796 if (_n == _children_capacity) {
23797 _children_capacity *= 2;
23798 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23799 if (!_new_children) {
23800 p->error_indicator = 1;
23801 PyErr_NoMemory();
23802 D(p->level--);
23803 return NULL;
23804 }
23805 _children = _new_children;
23806 }
23807 _children[_n++] = _res;
23808 _mark = p->mark;
23809 }
23810 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023811 D(fprintf(stderr, "%*c%s _loop0_46[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023812 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
23813 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023814 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023815 if (!_seq) {
23816 PyMem_Free(_children);
23817 p->error_indicator = 1;
23818 PyErr_NoMemory();
23819 D(p->level--);
23820 return NULL;
23821 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023822 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023823 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023824 _PyPegen_insert_memo(p, _start_mark, _loop0_46_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023825 D(p->level--);
23826 return _seq;
23827}
23828
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023829// _gather_45: with_item _loop0_46
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023830static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023831_gather_45_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023832{
23833 D(p->level++);
23834 if (p->error_indicator) {
23835 D(p->level--);
23836 return NULL;
23837 }
23838 asdl_seq * _res = NULL;
23839 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023840 { // with_item _loop0_46
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023841 if (p->error_indicator) {
23842 D(p->level--);
23843 return NULL;
23844 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023845 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 +010023846 withitem_ty elem;
23847 asdl_seq * seq;
23848 if (
23849 (elem = with_item_rule(p)) // with_item
23850 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023851 (seq = _loop0_46_rule(p)) // _loop0_46
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023852 )
23853 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023854 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 +010023855 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
23856 goto done;
23857 }
23858 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023859 D(fprintf(stderr, "%*c%s _gather_45[%d-%d]: %s failed!\n", p->level, ' ',
23860 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_46"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023861 }
23862 _res = NULL;
23863 done:
23864 D(p->level--);
23865 return _res;
23866}
23867
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023868// _tmp_47: ',' | ')' | ':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023869static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023870_tmp_47_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023871{
23872 D(p->level++);
23873 if (p->error_indicator) {
23874 D(p->level--);
23875 return NULL;
23876 }
23877 void * _res = NULL;
23878 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023879 { // ','
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023880 if (p->error_indicator) {
23881 D(p->level--);
23882 return NULL;
23883 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023884 D(fprintf(stderr, "%*c> _tmp_47[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','"));
23885 Token * _literal;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023886 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023887 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023888 )
23889 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023890 D(fprintf(stderr, "%*c+ _tmp_47[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','"));
23891 _res = _literal;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023892 goto done;
23893 }
23894 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023895 D(fprintf(stderr, "%*c%s _tmp_47[%d-%d]: %s failed!\n", p->level, ' ',
23896 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','"));
23897 }
23898 { // ')'
23899 if (p->error_indicator) {
23900 D(p->level--);
23901 return NULL;
23902 }
23903 D(fprintf(stderr, "%*c> _tmp_47[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
23904 Token * _literal;
23905 if (
23906 (_literal = _PyPegen_expect_token(p, 8)) // token=')'
23907 )
23908 {
23909 D(fprintf(stderr, "%*c+ _tmp_47[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
23910 _res = _literal;
23911 goto done;
23912 }
23913 p->mark = _mark;
23914 D(fprintf(stderr, "%*c%s _tmp_47[%d-%d]: %s failed!\n", p->level, ' ',
23915 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
23916 }
23917 { // ':'
23918 if (p->error_indicator) {
23919 D(p->level--);
23920 return NULL;
23921 }
23922 D(fprintf(stderr, "%*c> _tmp_47[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
23923 Token * _literal;
23924 if (
23925 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
23926 )
23927 {
23928 D(fprintf(stderr, "%*c+ _tmp_47[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
23929 _res = _literal;
23930 goto done;
23931 }
23932 p->mark = _mark;
23933 D(fprintf(stderr, "%*c%s _tmp_47[%d-%d]: %s failed!\n", p->level, ' ',
23934 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023935 }
23936 _res = NULL;
23937 done:
23938 D(p->level--);
23939 return _res;
23940}
23941
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023942// _loop1_48: except_block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023943static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023944_loop1_48_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023945{
23946 D(p->level++);
23947 if (p->error_indicator) {
23948 D(p->level--);
23949 return NULL;
23950 }
23951 void *_res = NULL;
23952 int _mark = p->mark;
23953 int _start_mark = p->mark;
23954 void **_children = PyMem_Malloc(sizeof(void *));
23955 if (!_children) {
23956 p->error_indicator = 1;
23957 PyErr_NoMemory();
23958 D(p->level--);
23959 return NULL;
23960 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023961 Py_ssize_t _children_capacity = 1;
23962 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023963 { // except_block
23964 if (p->error_indicator) {
23965 D(p->level--);
23966 return NULL;
23967 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023968 D(fprintf(stderr, "%*c> _loop1_48[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "except_block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023969 excepthandler_ty except_block_var;
23970 while (
23971 (except_block_var = except_block_rule(p)) // except_block
23972 )
23973 {
23974 _res = except_block_var;
23975 if (_n == _children_capacity) {
23976 _children_capacity *= 2;
23977 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23978 if (!_new_children) {
23979 p->error_indicator = 1;
23980 PyErr_NoMemory();
23981 D(p->level--);
23982 return NULL;
23983 }
23984 _children = _new_children;
23985 }
23986 _children[_n++] = _res;
23987 _mark = p->mark;
23988 }
23989 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023990 D(fprintf(stderr, "%*c%s _loop1_48[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023991 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "except_block"));
23992 }
23993 if (_n == 0 || p->error_indicator) {
23994 PyMem_Free(_children);
23995 D(p->level--);
23996 return NULL;
23997 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023998 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023999 if (!_seq) {
24000 PyMem_Free(_children);
24001 p->error_indicator = 1;
24002 PyErr_NoMemory();
24003 D(p->level--);
24004 return NULL;
24005 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024006 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024007 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024008 _PyPegen_insert_memo(p, _start_mark, _loop1_48_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024009 D(p->level--);
24010 return _seq;
24011}
24012
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024013// _tmp_49: 'as' NAME
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024014static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024015_tmp_49_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024016{
24017 D(p->level++);
24018 if (p->error_indicator) {
24019 D(p->level--);
24020 return NULL;
24021 }
24022 void * _res = NULL;
24023 int _mark = p->mark;
24024 { // 'as' NAME
24025 if (p->error_indicator) {
24026 D(p->level--);
24027 return NULL;
24028 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024029 D(fprintf(stderr, "%*c> _tmp_49[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024030 Token * _keyword;
24031 expr_ty z;
24032 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024033 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024034 &&
24035 (z = _PyPegen_name_token(p)) // NAME
24036 )
24037 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024038 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 +010024039 _res = z;
24040 if (_res == NULL && PyErr_Occurred()) {
24041 p->error_indicator = 1;
24042 D(p->level--);
24043 return NULL;
24044 }
24045 goto done;
24046 }
24047 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024048 D(fprintf(stderr, "%*c%s _tmp_49[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024049 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
24050 }
24051 _res = NULL;
24052 done:
24053 D(p->level--);
24054 return _res;
24055}
24056
Brandt Bucher145bf262021-02-26 14:51:55 -080024057// _loop1_50: case_block
24058static asdl_seq *
24059_loop1_50_rule(Parser *p)
24060{
24061 D(p->level++);
24062 if (p->error_indicator) {
24063 D(p->level--);
24064 return NULL;
24065 }
24066 void *_res = NULL;
24067 int _mark = p->mark;
24068 int _start_mark = p->mark;
24069 void **_children = PyMem_Malloc(sizeof(void *));
24070 if (!_children) {
24071 p->error_indicator = 1;
24072 PyErr_NoMemory();
24073 D(p->level--);
24074 return NULL;
24075 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024076 Py_ssize_t _children_capacity = 1;
24077 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080024078 { // case_block
24079 if (p->error_indicator) {
24080 D(p->level--);
24081 return NULL;
24082 }
24083 D(fprintf(stderr, "%*c> _loop1_50[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "case_block"));
24084 match_case_ty case_block_var;
24085 while (
24086 (case_block_var = case_block_rule(p)) // case_block
24087 )
24088 {
24089 _res = case_block_var;
24090 if (_n == _children_capacity) {
24091 _children_capacity *= 2;
24092 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24093 if (!_new_children) {
24094 p->error_indicator = 1;
24095 PyErr_NoMemory();
24096 D(p->level--);
24097 return NULL;
24098 }
24099 _children = _new_children;
24100 }
24101 _children[_n++] = _res;
24102 _mark = p->mark;
24103 }
24104 p->mark = _mark;
24105 D(fprintf(stderr, "%*c%s _loop1_50[%d-%d]: %s failed!\n", p->level, ' ',
24106 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "case_block"));
24107 }
24108 if (_n == 0 || p->error_indicator) {
24109 PyMem_Free(_children);
24110 D(p->level--);
24111 return NULL;
24112 }
24113 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
24114 if (!_seq) {
24115 PyMem_Free(_children);
24116 p->error_indicator = 1;
24117 PyErr_NoMemory();
24118 D(p->level--);
24119 return NULL;
24120 }
24121 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
24122 PyMem_Free(_children);
24123 _PyPegen_insert_memo(p, _start_mark, _loop1_50_type, _seq);
24124 D(p->level--);
24125 return _seq;
24126}
24127
24128// _loop0_52: '|' closed_pattern
24129static asdl_seq *
24130_loop0_52_rule(Parser *p)
24131{
24132 D(p->level++);
24133 if (p->error_indicator) {
24134 D(p->level--);
24135 return NULL;
24136 }
24137 void *_res = NULL;
24138 int _mark = p->mark;
24139 int _start_mark = p->mark;
24140 void **_children = PyMem_Malloc(sizeof(void *));
24141 if (!_children) {
24142 p->error_indicator = 1;
24143 PyErr_NoMemory();
24144 D(p->level--);
24145 return NULL;
24146 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024147 Py_ssize_t _children_capacity = 1;
24148 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080024149 { // '|' closed_pattern
24150 if (p->error_indicator) {
24151 D(p->level--);
24152 return NULL;
24153 }
24154 D(fprintf(stderr, "%*c> _loop0_52[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'|' closed_pattern"));
24155 Token * _literal;
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024156 pattern_ty elem;
Brandt Bucher145bf262021-02-26 14:51:55 -080024157 while (
24158 (_literal = _PyPegen_expect_token(p, 18)) // token='|'
24159 &&
24160 (elem = closed_pattern_rule(p)) // closed_pattern
24161 )
24162 {
24163 _res = elem;
24164 if (_res == NULL && PyErr_Occurred()) {
24165 p->error_indicator = 1;
24166 PyMem_Free(_children);
24167 D(p->level--);
24168 return NULL;
24169 }
24170 if (_n == _children_capacity) {
24171 _children_capacity *= 2;
24172 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24173 if (!_new_children) {
24174 p->error_indicator = 1;
24175 PyErr_NoMemory();
24176 D(p->level--);
24177 return NULL;
24178 }
24179 _children = _new_children;
24180 }
24181 _children[_n++] = _res;
24182 _mark = p->mark;
24183 }
24184 p->mark = _mark;
24185 D(fprintf(stderr, "%*c%s _loop0_52[%d-%d]: %s failed!\n", p->level, ' ',
24186 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'|' closed_pattern"));
24187 }
24188 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
24189 if (!_seq) {
24190 PyMem_Free(_children);
24191 p->error_indicator = 1;
24192 PyErr_NoMemory();
24193 D(p->level--);
24194 return NULL;
24195 }
24196 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
24197 PyMem_Free(_children);
24198 _PyPegen_insert_memo(p, _start_mark, _loop0_52_type, _seq);
24199 D(p->level--);
24200 return _seq;
24201}
24202
24203// _gather_51: closed_pattern _loop0_52
24204static asdl_seq *
24205_gather_51_rule(Parser *p)
24206{
24207 D(p->level++);
24208 if (p->error_indicator) {
24209 D(p->level--);
24210 return NULL;
24211 }
24212 asdl_seq * _res = NULL;
24213 int _mark = p->mark;
24214 { // closed_pattern _loop0_52
24215 if (p->error_indicator) {
24216 D(p->level--);
24217 return NULL;
24218 }
24219 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 +100024220 pattern_ty elem;
Brandt Bucher145bf262021-02-26 14:51:55 -080024221 asdl_seq * seq;
24222 if (
24223 (elem = closed_pattern_rule(p)) // closed_pattern
24224 &&
24225 (seq = _loop0_52_rule(p)) // _loop0_52
24226 )
24227 {
24228 D(fprintf(stderr, "%*c+ _gather_51[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "closed_pattern _loop0_52"));
24229 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
24230 goto done;
24231 }
24232 p->mark = _mark;
24233 D(fprintf(stderr, "%*c%s _gather_51[%d-%d]: %s failed!\n", p->level, ' ',
24234 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "closed_pattern _loop0_52"));
24235 }
24236 _res = NULL;
24237 done:
24238 D(p->level--);
24239 return _res;
24240}
24241
24242// _tmp_53: '+' | '-'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024243static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080024244_tmp_53_rule(Parser *p)
24245{
24246 D(p->level++);
24247 if (p->error_indicator) {
24248 D(p->level--);
24249 return NULL;
24250 }
24251 void * _res = NULL;
24252 int _mark = p->mark;
24253 { // '+'
24254 if (p->error_indicator) {
24255 D(p->level--);
24256 return NULL;
24257 }
24258 D(fprintf(stderr, "%*c> _tmp_53[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'+'"));
24259 Token * _literal;
24260 if (
24261 (_literal = _PyPegen_expect_token(p, 14)) // token='+'
24262 )
24263 {
24264 D(fprintf(stderr, "%*c+ _tmp_53[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'+'"));
24265 _res = _literal;
24266 goto done;
24267 }
24268 p->mark = _mark;
24269 D(fprintf(stderr, "%*c%s _tmp_53[%d-%d]: %s failed!\n", p->level, ' ',
24270 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'+'"));
24271 }
24272 { // '-'
24273 if (p->error_indicator) {
24274 D(p->level--);
24275 return NULL;
24276 }
24277 D(fprintf(stderr, "%*c> _tmp_53[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-'"));
24278 Token * _literal;
24279 if (
24280 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
24281 )
24282 {
24283 D(fprintf(stderr, "%*c+ _tmp_53[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-'"));
24284 _res = _literal;
24285 goto done;
24286 }
24287 p->mark = _mark;
24288 D(fprintf(stderr, "%*c%s _tmp_53[%d-%d]: %s failed!\n", p->level, ' ',
24289 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-'"));
24290 }
24291 _res = NULL;
24292 done:
24293 D(p->level--);
24294 return _res;
24295}
24296
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024297// _tmp_54: '+' | '-'
Brandt Bucher145bf262021-02-26 14:51:55 -080024298static void *
24299_tmp_54_rule(Parser *p)
24300{
24301 D(p->level++);
24302 if (p->error_indicator) {
24303 D(p->level--);
24304 return NULL;
24305 }
24306 void * _res = NULL;
24307 int _mark = p->mark;
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024308 { // '+'
Brandt Bucher145bf262021-02-26 14:51:55 -080024309 if (p->error_indicator) {
24310 D(p->level--);
24311 return NULL;
24312 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024313 D(fprintf(stderr, "%*c> _tmp_54[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'+'"));
Brandt Bucher145bf262021-02-26 14:51:55 -080024314 Token * _literal;
24315 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024316 (_literal = _PyPegen_expect_token(p, 14)) // token='+'
Brandt Bucher145bf262021-02-26 14:51:55 -080024317 )
24318 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024319 D(fprintf(stderr, "%*c+ _tmp_54[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'+'"));
Brandt Bucher145bf262021-02-26 14:51:55 -080024320 _res = _literal;
24321 goto done;
24322 }
24323 p->mark = _mark;
24324 D(fprintf(stderr, "%*c%s _tmp_54[%d-%d]: %s failed!\n", p->level, ' ',
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024325 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'+'"));
Brandt Bucher145bf262021-02-26 14:51:55 -080024326 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024327 { // '-'
Brandt Bucher145bf262021-02-26 14:51:55 -080024328 if (p->error_indicator) {
24329 D(p->level--);
24330 return NULL;
24331 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024332 D(fprintf(stderr, "%*c> _tmp_54[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-'"));
Brandt Bucher145bf262021-02-26 14:51:55 -080024333 Token * _literal;
24334 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024335 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
Brandt Bucher145bf262021-02-26 14:51:55 -080024336 )
24337 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024338 D(fprintf(stderr, "%*c+ _tmp_54[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-'"));
Brandt Bucher145bf262021-02-26 14:51:55 -080024339 _res = _literal;
24340 goto done;
24341 }
24342 p->mark = _mark;
24343 D(fprintf(stderr, "%*c%s _tmp_54[%d-%d]: %s failed!\n", p->level, ' ',
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024344 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-'"));
Brandt Bucher145bf262021-02-26 14:51:55 -080024345 }
24346 _res = NULL;
24347 done:
24348 D(p->level--);
24349 return _res;
24350}
24351
24352// _tmp_55: '.' | '(' | '='
24353static void *
24354_tmp_55_rule(Parser *p)
24355{
24356 D(p->level++);
24357 if (p->error_indicator) {
24358 D(p->level--);
24359 return NULL;
24360 }
24361 void * _res = NULL;
24362 int _mark = p->mark;
24363 { // '.'
24364 if (p->error_indicator) {
24365 D(p->level--);
24366 return NULL;
24367 }
24368 D(fprintf(stderr, "%*c> _tmp_55[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
24369 Token * _literal;
24370 if (
24371 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
24372 )
24373 {
24374 D(fprintf(stderr, "%*c+ _tmp_55[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
24375 _res = _literal;
24376 goto done;
24377 }
24378 p->mark = _mark;
24379 D(fprintf(stderr, "%*c%s _tmp_55[%d-%d]: %s failed!\n", p->level, ' ',
24380 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
24381 }
24382 { // '('
24383 if (p->error_indicator) {
24384 D(p->level--);
24385 return NULL;
24386 }
24387 D(fprintf(stderr, "%*c> _tmp_55[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'('"));
24388 Token * _literal;
24389 if (
24390 (_literal = _PyPegen_expect_token(p, 7)) // token='('
24391 )
24392 {
24393 D(fprintf(stderr, "%*c+ _tmp_55[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'('"));
24394 _res = _literal;
24395 goto done;
24396 }
24397 p->mark = _mark;
24398 D(fprintf(stderr, "%*c%s _tmp_55[%d-%d]: %s failed!\n", p->level, ' ',
24399 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'('"));
24400 }
24401 { // '='
24402 if (p->error_indicator) {
24403 D(p->level--);
24404 return NULL;
24405 }
24406 D(fprintf(stderr, "%*c> _tmp_55[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'='"));
24407 Token * _literal;
24408 if (
24409 (_literal = _PyPegen_expect_token(p, 22)) // token='='
24410 )
24411 {
24412 D(fprintf(stderr, "%*c+ _tmp_55[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'='"));
24413 _res = _literal;
24414 goto done;
24415 }
24416 p->mark = _mark;
24417 D(fprintf(stderr, "%*c%s _tmp_55[%d-%d]: %s failed!\n", p->level, ' ',
24418 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'='"));
24419 }
24420 _res = NULL;
24421 done:
24422 D(p->level--);
24423 return _res;
24424}
24425
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024426// _tmp_56: '.' | '(' | '='
24427static void *
24428_tmp_56_rule(Parser *p)
24429{
24430 D(p->level++);
24431 if (p->error_indicator) {
24432 D(p->level--);
24433 return NULL;
24434 }
24435 void * _res = NULL;
24436 int _mark = p->mark;
24437 { // '.'
24438 if (p->error_indicator) {
24439 D(p->level--);
24440 return NULL;
24441 }
24442 D(fprintf(stderr, "%*c> _tmp_56[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
24443 Token * _literal;
24444 if (
24445 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
24446 )
24447 {
24448 D(fprintf(stderr, "%*c+ _tmp_56[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
24449 _res = _literal;
24450 goto done;
24451 }
24452 p->mark = _mark;
24453 D(fprintf(stderr, "%*c%s _tmp_56[%d-%d]: %s failed!\n", p->level, ' ',
24454 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
24455 }
24456 { // '('
24457 if (p->error_indicator) {
24458 D(p->level--);
24459 return NULL;
24460 }
24461 D(fprintf(stderr, "%*c> _tmp_56[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'('"));
24462 Token * _literal;
24463 if (
24464 (_literal = _PyPegen_expect_token(p, 7)) // token='('
24465 )
24466 {
24467 D(fprintf(stderr, "%*c+ _tmp_56[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'('"));
24468 _res = _literal;
24469 goto done;
24470 }
24471 p->mark = _mark;
24472 D(fprintf(stderr, "%*c%s _tmp_56[%d-%d]: %s failed!\n", p->level, ' ',
24473 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'('"));
24474 }
24475 { // '='
24476 if (p->error_indicator) {
24477 D(p->level--);
24478 return NULL;
24479 }
24480 D(fprintf(stderr, "%*c> _tmp_56[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'='"));
24481 Token * _literal;
24482 if (
24483 (_literal = _PyPegen_expect_token(p, 22)) // token='='
24484 )
24485 {
24486 D(fprintf(stderr, "%*c+ _tmp_56[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'='"));
24487 _res = _literal;
24488 goto done;
24489 }
24490 p->mark = _mark;
24491 D(fprintf(stderr, "%*c%s _tmp_56[%d-%d]: %s failed!\n", p->level, ' ',
24492 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'='"));
24493 }
24494 _res = NULL;
24495 done:
24496 D(p->level--);
24497 return _res;
24498}
24499
24500// _loop0_58: ',' maybe_star_pattern
Brandt Bucher145bf262021-02-26 14:51:55 -080024501static asdl_seq *
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024502_loop0_58_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080024503{
24504 D(p->level++);
24505 if (p->error_indicator) {
24506 D(p->level--);
24507 return NULL;
24508 }
24509 void *_res = NULL;
24510 int _mark = p->mark;
24511 int _start_mark = p->mark;
24512 void **_children = PyMem_Malloc(sizeof(void *));
24513 if (!_children) {
24514 p->error_indicator = 1;
24515 PyErr_NoMemory();
24516 D(p->level--);
24517 return NULL;
24518 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024519 Py_ssize_t _children_capacity = 1;
24520 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080024521 { // ',' maybe_star_pattern
24522 if (p->error_indicator) {
24523 D(p->level--);
24524 return NULL;
24525 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024526 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 -080024527 Token * _literal;
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024528 pattern_ty elem;
Brandt Bucher145bf262021-02-26 14:51:55 -080024529 while (
24530 (_literal = _PyPegen_expect_token(p, 12)) // token=','
24531 &&
24532 (elem = maybe_star_pattern_rule(p)) // maybe_star_pattern
24533 )
24534 {
24535 _res = elem;
24536 if (_res == NULL && PyErr_Occurred()) {
24537 p->error_indicator = 1;
24538 PyMem_Free(_children);
24539 D(p->level--);
24540 return NULL;
24541 }
24542 if (_n == _children_capacity) {
24543 _children_capacity *= 2;
24544 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24545 if (!_new_children) {
24546 p->error_indicator = 1;
24547 PyErr_NoMemory();
24548 D(p->level--);
24549 return NULL;
24550 }
24551 _children = _new_children;
24552 }
24553 _children[_n++] = _res;
24554 _mark = p->mark;
24555 }
24556 p->mark = _mark;
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024557 D(fprintf(stderr, "%*c%s _loop0_58[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080024558 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' maybe_star_pattern"));
24559 }
24560 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
24561 if (!_seq) {
24562 PyMem_Free(_children);
24563 p->error_indicator = 1;
24564 PyErr_NoMemory();
24565 D(p->level--);
24566 return NULL;
24567 }
24568 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
24569 PyMem_Free(_children);
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024570 _PyPegen_insert_memo(p, _start_mark, _loop0_58_type, _seq);
Brandt Bucher145bf262021-02-26 14:51:55 -080024571 D(p->level--);
24572 return _seq;
24573}
24574
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024575// _gather_57: maybe_star_pattern _loop0_58
Brandt Bucher145bf262021-02-26 14:51:55 -080024576static asdl_seq *
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024577_gather_57_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080024578{
24579 D(p->level++);
24580 if (p->error_indicator) {
24581 D(p->level--);
24582 return NULL;
24583 }
24584 asdl_seq * _res = NULL;
24585 int _mark = p->mark;
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024586 { // maybe_star_pattern _loop0_58
Brandt Bucher145bf262021-02-26 14:51:55 -080024587 if (p->error_indicator) {
24588 D(p->level--);
24589 return NULL;
24590 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024591 D(fprintf(stderr, "%*c> _gather_57[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "maybe_star_pattern _loop0_58"));
24592 pattern_ty elem;
Brandt Bucher145bf262021-02-26 14:51:55 -080024593 asdl_seq * seq;
24594 if (
24595 (elem = maybe_star_pattern_rule(p)) // maybe_star_pattern
24596 &&
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024597 (seq = _loop0_58_rule(p)) // _loop0_58
Brandt Bucher145bf262021-02-26 14:51:55 -080024598 )
24599 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024600 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 -080024601 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
24602 goto done;
24603 }
24604 p->mark = _mark;
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024605 D(fprintf(stderr, "%*c%s _gather_57[%d-%d]: %s failed!\n", p->level, ' ',
24606 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "maybe_star_pattern _loop0_58"));
Brandt Bucher145bf262021-02-26 14:51:55 -080024607 }
24608 _res = NULL;
24609 done:
24610 D(p->level--);
24611 return _res;
24612}
24613
24614// _loop0_60: ',' key_value_pattern
24615static asdl_seq *
24616_loop0_60_rule(Parser *p)
24617{
24618 D(p->level++);
24619 if (p->error_indicator) {
24620 D(p->level--);
24621 return NULL;
24622 }
24623 void *_res = NULL;
24624 int _mark = p->mark;
24625 int _start_mark = p->mark;
24626 void **_children = PyMem_Malloc(sizeof(void *));
24627 if (!_children) {
24628 p->error_indicator = 1;
24629 PyErr_NoMemory();
24630 D(p->level--);
24631 return NULL;
24632 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024633 Py_ssize_t _children_capacity = 1;
24634 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080024635 { // ',' key_value_pattern
24636 if (p->error_indicator) {
24637 D(p->level--);
24638 return NULL;
24639 }
24640 D(fprintf(stderr, "%*c> _loop0_60[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' key_value_pattern"));
24641 Token * _literal;
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024642 KeyPatternPair* elem;
Brandt Bucher145bf262021-02-26 14:51:55 -080024643 while (
24644 (_literal = _PyPegen_expect_token(p, 12)) // token=','
24645 &&
24646 (elem = key_value_pattern_rule(p)) // key_value_pattern
24647 )
24648 {
24649 _res = elem;
24650 if (_res == NULL && PyErr_Occurred()) {
24651 p->error_indicator = 1;
24652 PyMem_Free(_children);
24653 D(p->level--);
24654 return NULL;
24655 }
24656 if (_n == _children_capacity) {
24657 _children_capacity *= 2;
24658 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24659 if (!_new_children) {
24660 p->error_indicator = 1;
24661 PyErr_NoMemory();
24662 D(p->level--);
24663 return NULL;
24664 }
24665 _children = _new_children;
24666 }
24667 _children[_n++] = _res;
24668 _mark = p->mark;
24669 }
24670 p->mark = _mark;
24671 D(fprintf(stderr, "%*c%s _loop0_60[%d-%d]: %s failed!\n", p->level, ' ',
24672 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' key_value_pattern"));
24673 }
24674 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
24675 if (!_seq) {
24676 PyMem_Free(_children);
24677 p->error_indicator = 1;
24678 PyErr_NoMemory();
24679 D(p->level--);
24680 return NULL;
24681 }
24682 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
24683 PyMem_Free(_children);
24684 _PyPegen_insert_memo(p, _start_mark, _loop0_60_type, _seq);
24685 D(p->level--);
24686 return _seq;
24687}
24688
24689// _gather_59: key_value_pattern _loop0_60
24690static asdl_seq *
24691_gather_59_rule(Parser *p)
24692{
24693 D(p->level++);
24694 if (p->error_indicator) {
24695 D(p->level--);
24696 return NULL;
24697 }
24698 asdl_seq * _res = NULL;
24699 int _mark = p->mark;
24700 { // key_value_pattern _loop0_60
24701 if (p->error_indicator) {
24702 D(p->level--);
24703 return NULL;
24704 }
24705 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 +100024706 KeyPatternPair* elem;
Brandt Bucher145bf262021-02-26 14:51:55 -080024707 asdl_seq * seq;
24708 if (
24709 (elem = key_value_pattern_rule(p)) // key_value_pattern
24710 &&
24711 (seq = _loop0_60_rule(p)) // _loop0_60
24712 )
24713 {
24714 D(fprintf(stderr, "%*c+ _gather_59[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "key_value_pattern _loop0_60"));
24715 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
24716 goto done;
24717 }
24718 p->mark = _mark;
24719 D(fprintf(stderr, "%*c%s _gather_59[%d-%d]: %s failed!\n", p->level, ' ',
24720 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "key_value_pattern _loop0_60"));
24721 }
24722 _res = NULL;
24723 done:
24724 D(p->level--);
24725 return _res;
24726}
24727
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024728// _tmp_61: literal_expr | attr
Brandt Bucher145bf262021-02-26 14:51:55 -080024729static void *
24730_tmp_61_rule(Parser *p)
24731{
24732 D(p->level++);
24733 if (p->error_indicator) {
24734 D(p->level--);
24735 return NULL;
24736 }
24737 void * _res = NULL;
24738 int _mark = p->mark;
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024739 { // literal_expr
Brandt Bucher145bf262021-02-26 14:51:55 -080024740 if (p->error_indicator) {
24741 D(p->level--);
24742 return NULL;
24743 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024744 D(fprintf(stderr, "%*c> _tmp_61[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "literal_expr"));
24745 expr_ty literal_expr_var;
Brandt Bucher145bf262021-02-26 14:51:55 -080024746 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024747 (literal_expr_var = literal_expr_rule(p)) // literal_expr
Brandt Bucher145bf262021-02-26 14:51:55 -080024748 )
24749 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024750 D(fprintf(stderr, "%*c+ _tmp_61[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "literal_expr"));
24751 _res = literal_expr_var;
Brandt Bucher145bf262021-02-26 14:51:55 -080024752 goto done;
24753 }
24754 p->mark = _mark;
24755 D(fprintf(stderr, "%*c%s _tmp_61[%d-%d]: %s failed!\n", p->level, ' ',
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024756 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "literal_expr"));
Brandt Bucher145bf262021-02-26 14:51:55 -080024757 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024758 { // attr
Brandt Bucher145bf262021-02-26 14:51:55 -080024759 if (p->error_indicator) {
24760 D(p->level--);
24761 return NULL;
24762 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024763 D(fprintf(stderr, "%*c> _tmp_61[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "attr"));
24764 expr_ty attr_var;
Brandt Bucher145bf262021-02-26 14:51:55 -080024765 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024766 (attr_var = attr_rule(p)) // attr
Brandt Bucher145bf262021-02-26 14:51:55 -080024767 )
24768 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024769 D(fprintf(stderr, "%*c+ _tmp_61[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "attr"));
24770 _res = attr_var;
Brandt Bucher145bf262021-02-26 14:51:55 -080024771 goto done;
24772 }
24773 p->mark = _mark;
24774 D(fprintf(stderr, "%*c%s _tmp_61[%d-%d]: %s failed!\n", p->level, ' ',
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024775 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "attr"));
Brandt Bucher145bf262021-02-26 14:51:55 -080024776 }
24777 _res = NULL;
24778 done:
24779 D(p->level--);
24780 return _res;
24781}
24782
24783// _loop0_63: ',' pattern
24784static asdl_seq *
24785_loop0_63_rule(Parser *p)
24786{
24787 D(p->level++);
24788 if (p->error_indicator) {
24789 D(p->level--);
24790 return NULL;
24791 }
24792 void *_res = NULL;
24793 int _mark = p->mark;
24794 int _start_mark = p->mark;
24795 void **_children = PyMem_Malloc(sizeof(void *));
24796 if (!_children) {
24797 p->error_indicator = 1;
24798 PyErr_NoMemory();
24799 D(p->level--);
24800 return NULL;
24801 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024802 Py_ssize_t _children_capacity = 1;
24803 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080024804 { // ',' pattern
24805 if (p->error_indicator) {
24806 D(p->level--);
24807 return NULL;
24808 }
24809 D(fprintf(stderr, "%*c> _loop0_63[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' pattern"));
24810 Token * _literal;
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024811 pattern_ty elem;
Brandt Bucher145bf262021-02-26 14:51:55 -080024812 while (
24813 (_literal = _PyPegen_expect_token(p, 12)) // token=','
24814 &&
24815 (elem = pattern_rule(p)) // pattern
24816 )
24817 {
24818 _res = elem;
24819 if (_res == NULL && PyErr_Occurred()) {
24820 p->error_indicator = 1;
24821 PyMem_Free(_children);
24822 D(p->level--);
24823 return NULL;
24824 }
24825 if (_n == _children_capacity) {
24826 _children_capacity *= 2;
24827 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24828 if (!_new_children) {
24829 p->error_indicator = 1;
24830 PyErr_NoMemory();
24831 D(p->level--);
24832 return NULL;
24833 }
24834 _children = _new_children;
24835 }
24836 _children[_n++] = _res;
24837 _mark = p->mark;
24838 }
24839 p->mark = _mark;
24840 D(fprintf(stderr, "%*c%s _loop0_63[%d-%d]: %s failed!\n", p->level, ' ',
24841 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' pattern"));
24842 }
24843 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
24844 if (!_seq) {
24845 PyMem_Free(_children);
24846 p->error_indicator = 1;
24847 PyErr_NoMemory();
24848 D(p->level--);
24849 return NULL;
24850 }
24851 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
24852 PyMem_Free(_children);
24853 _PyPegen_insert_memo(p, _start_mark, _loop0_63_type, _seq);
24854 D(p->level--);
24855 return _seq;
24856}
24857
24858// _gather_62: pattern _loop0_63
24859static asdl_seq *
24860_gather_62_rule(Parser *p)
24861{
24862 D(p->level++);
24863 if (p->error_indicator) {
24864 D(p->level--);
24865 return NULL;
24866 }
24867 asdl_seq * _res = NULL;
24868 int _mark = p->mark;
24869 { // pattern _loop0_63
24870 if (p->error_indicator) {
24871 D(p->level--);
24872 return NULL;
24873 }
24874 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 +100024875 pattern_ty elem;
Brandt Bucher145bf262021-02-26 14:51:55 -080024876 asdl_seq * seq;
24877 if (
24878 (elem = pattern_rule(p)) // pattern
24879 &&
24880 (seq = _loop0_63_rule(p)) // _loop0_63
24881 )
24882 {
24883 D(fprintf(stderr, "%*c+ _gather_62[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "pattern _loop0_63"));
24884 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
24885 goto done;
24886 }
24887 p->mark = _mark;
24888 D(fprintf(stderr, "%*c%s _gather_62[%d-%d]: %s failed!\n", p->level, ' ',
24889 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "pattern _loop0_63"));
24890 }
24891 _res = NULL;
24892 done:
24893 D(p->level--);
24894 return _res;
24895}
24896
24897// _loop0_65: ',' keyword_pattern
24898static asdl_seq *
24899_loop0_65_rule(Parser *p)
24900{
24901 D(p->level++);
24902 if (p->error_indicator) {
24903 D(p->level--);
24904 return NULL;
24905 }
24906 void *_res = NULL;
24907 int _mark = p->mark;
24908 int _start_mark = p->mark;
24909 void **_children = PyMem_Malloc(sizeof(void *));
24910 if (!_children) {
24911 p->error_indicator = 1;
24912 PyErr_NoMemory();
24913 D(p->level--);
24914 return NULL;
24915 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024916 Py_ssize_t _children_capacity = 1;
24917 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080024918 { // ',' keyword_pattern
24919 if (p->error_indicator) {
24920 D(p->level--);
24921 return NULL;
24922 }
24923 D(fprintf(stderr, "%*c> _loop0_65[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' keyword_pattern"));
24924 Token * _literal;
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024925 KeyPatternPair* elem;
Brandt Bucher145bf262021-02-26 14:51:55 -080024926 while (
24927 (_literal = _PyPegen_expect_token(p, 12)) // token=','
24928 &&
24929 (elem = keyword_pattern_rule(p)) // keyword_pattern
24930 )
24931 {
24932 _res = elem;
24933 if (_res == NULL && PyErr_Occurred()) {
24934 p->error_indicator = 1;
24935 PyMem_Free(_children);
24936 D(p->level--);
24937 return NULL;
24938 }
24939 if (_n == _children_capacity) {
24940 _children_capacity *= 2;
24941 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24942 if (!_new_children) {
24943 p->error_indicator = 1;
24944 PyErr_NoMemory();
24945 D(p->level--);
24946 return NULL;
24947 }
24948 _children = _new_children;
24949 }
24950 _children[_n++] = _res;
24951 _mark = p->mark;
24952 }
24953 p->mark = _mark;
24954 D(fprintf(stderr, "%*c%s _loop0_65[%d-%d]: %s failed!\n", p->level, ' ',
24955 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' keyword_pattern"));
24956 }
24957 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
24958 if (!_seq) {
24959 PyMem_Free(_children);
24960 p->error_indicator = 1;
24961 PyErr_NoMemory();
24962 D(p->level--);
24963 return NULL;
24964 }
24965 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
24966 PyMem_Free(_children);
24967 _PyPegen_insert_memo(p, _start_mark, _loop0_65_type, _seq);
24968 D(p->level--);
24969 return _seq;
24970}
24971
24972// _gather_64: keyword_pattern _loop0_65
24973static asdl_seq *
24974_gather_64_rule(Parser *p)
24975{
24976 D(p->level++);
24977 if (p->error_indicator) {
24978 D(p->level--);
24979 return NULL;
24980 }
24981 asdl_seq * _res = NULL;
24982 int _mark = p->mark;
24983 { // keyword_pattern _loop0_65
24984 if (p->error_indicator) {
24985 D(p->level--);
24986 return NULL;
24987 }
24988 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 +100024989 KeyPatternPair* elem;
Brandt Bucher145bf262021-02-26 14:51:55 -080024990 asdl_seq * seq;
24991 if (
24992 (elem = keyword_pattern_rule(p)) // keyword_pattern
24993 &&
24994 (seq = _loop0_65_rule(p)) // _loop0_65
24995 )
24996 {
24997 D(fprintf(stderr, "%*c+ _gather_64[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "keyword_pattern _loop0_65"));
24998 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
24999 goto done;
25000 }
25001 p->mark = _mark;
25002 D(fprintf(stderr, "%*c%s _gather_64[%d-%d]: %s failed!\n", p->level, ' ',
25003 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "keyword_pattern _loop0_65"));
25004 }
25005 _res = NULL;
25006 done:
25007 D(p->level--);
25008 return _res;
25009}
25010
25011// _tmp_66: 'from' expression
25012static void *
25013_tmp_66_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025014{
25015 D(p->level++);
25016 if (p->error_indicator) {
25017 D(p->level--);
25018 return NULL;
25019 }
25020 void * _res = NULL;
25021 int _mark = p->mark;
25022 { // 'from' expression
25023 if (p->error_indicator) {
25024 D(p->level--);
25025 return NULL;
25026 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025027 D(fprintf(stderr, "%*c> _tmp_66[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025028 Token * _keyword;
25029 expr_ty z;
25030 if (
25031 (_keyword = _PyPegen_expect_token(p, 514)) // token='from'
25032 &&
25033 (z = expression_rule(p)) // expression
25034 )
25035 {
Brandt Bucher145bf262021-02-26 14:51:55 -080025036 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 +010025037 _res = z;
25038 if (_res == NULL && PyErr_Occurred()) {
25039 p->error_indicator = 1;
25040 D(p->level--);
25041 return NULL;
25042 }
25043 goto done;
25044 }
25045 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025046 D(fprintf(stderr, "%*c%s _tmp_66[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025047 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025048 }
25049 _res = NULL;
25050 done:
25051 D(p->level--);
25052 return _res;
25053}
25054
Brandt Bucher145bf262021-02-26 14:51:55 -080025055// _tmp_67: '->' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025056static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080025057_tmp_67_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025058{
25059 D(p->level++);
25060 if (p->error_indicator) {
25061 D(p->level--);
25062 return NULL;
25063 }
25064 void * _res = NULL;
25065 int _mark = p->mark;
25066 { // '->' expression
25067 if (p->error_indicator) {
25068 D(p->level--);
25069 return NULL;
25070 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025071 D(fprintf(stderr, "%*c> _tmp_67[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'->' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025072 Token * _literal;
25073 expr_ty z;
25074 if (
25075 (_literal = _PyPegen_expect_token(p, 51)) // token='->'
25076 &&
25077 (z = expression_rule(p)) // expression
25078 )
25079 {
Brandt Bucher145bf262021-02-26 14:51:55 -080025080 D(fprintf(stderr, "%*c+ _tmp_67[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'->' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025081 _res = z;
25082 if (_res == NULL && PyErr_Occurred()) {
25083 p->error_indicator = 1;
25084 D(p->level--);
25085 return NULL;
25086 }
25087 goto done;
25088 }
25089 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025090 D(fprintf(stderr, "%*c%s _tmp_67[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025091 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'->' expression"));
25092 }
25093 _res = NULL;
25094 done:
25095 D(p->level--);
25096 return _res;
25097}
25098
Brandt Bucher145bf262021-02-26 14:51:55 -080025099// _tmp_68: '->' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025100static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080025101_tmp_68_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025102{
25103 D(p->level++);
25104 if (p->error_indicator) {
25105 D(p->level--);
25106 return NULL;
25107 }
25108 void * _res = NULL;
25109 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025110 { // '->' expression
25111 if (p->error_indicator) {
25112 D(p->level--);
25113 return NULL;
25114 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025115 D(fprintf(stderr, "%*c> _tmp_68[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'->' expression"));
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025116 Token * _literal;
25117 expr_ty z;
25118 if (
25119 (_literal = _PyPegen_expect_token(p, 51)) // token='->'
25120 &&
25121 (z = expression_rule(p)) // expression
25122 )
25123 {
Brandt Bucher145bf262021-02-26 14:51:55 -080025124 D(fprintf(stderr, "%*c+ _tmp_68[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'->' expression"));
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025125 _res = z;
25126 if (_res == NULL && PyErr_Occurred()) {
25127 p->error_indicator = 1;
25128 D(p->level--);
25129 return NULL;
25130 }
25131 goto done;
25132 }
25133 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025134 D(fprintf(stderr, "%*c%s _tmp_68[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025135 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'->' expression"));
25136 }
25137 _res = NULL;
25138 done:
25139 D(p->level--);
25140 return _res;
25141}
25142
Brandt Bucher145bf262021-02-26 14:51:55 -080025143// _tmp_69: NEWLINE INDENT
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025144static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080025145_tmp_69_rule(Parser *p)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025146{
25147 D(p->level++);
25148 if (p->error_indicator) {
25149 D(p->level--);
25150 return NULL;
25151 }
25152 void * _res = NULL;
25153 int _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025154 { // NEWLINE INDENT
25155 if (p->error_indicator) {
25156 D(p->level--);
25157 return NULL;
25158 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025159 D(fprintf(stderr, "%*c> _tmp_69[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE INDENT"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025160 Token * indent_var;
25161 Token * newline_var;
25162 if (
25163 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
25164 &&
25165 (indent_var = _PyPegen_expect_token(p, INDENT)) // token='INDENT'
25166 )
25167 {
Brandt Bucher145bf262021-02-26 14:51:55 -080025168 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 +010025169 _res = _PyPegen_dummy_name(p, newline_var, indent_var);
25170 goto done;
25171 }
25172 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025173 D(fprintf(stderr, "%*c%s _tmp_69[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025174 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE INDENT"));
25175 }
25176 _res = NULL;
25177 done:
25178 D(p->level--);
25179 return _res;
25180}
25181
Brandt Bucher145bf262021-02-26 14:51:55 -080025182// _loop0_70: param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025183static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025184_loop0_70_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025185{
25186 D(p->level++);
25187 if (p->error_indicator) {
25188 D(p->level--);
25189 return NULL;
25190 }
25191 void *_res = NULL;
25192 int _mark = p->mark;
25193 int _start_mark = p->mark;
25194 void **_children = PyMem_Malloc(sizeof(void *));
25195 if (!_children) {
25196 p->error_indicator = 1;
25197 PyErr_NoMemory();
25198 D(p->level--);
25199 return NULL;
25200 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025201 Py_ssize_t _children_capacity = 1;
25202 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025203 { // param_no_default
25204 if (p->error_indicator) {
25205 D(p->level--);
25206 return NULL;
25207 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025208 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 +010025209 arg_ty param_no_default_var;
25210 while (
25211 (param_no_default_var = param_no_default_rule(p)) // param_no_default
25212 )
25213 {
25214 _res = param_no_default_var;
25215 if (_n == _children_capacity) {
25216 _children_capacity *= 2;
25217 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25218 if (!_new_children) {
25219 p->error_indicator = 1;
25220 PyErr_NoMemory();
25221 D(p->level--);
25222 return NULL;
25223 }
25224 _children = _new_children;
25225 }
25226 _children[_n++] = _res;
25227 _mark = p->mark;
25228 }
25229 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025230 D(fprintf(stderr, "%*c%s _loop0_70[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025231 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025232 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025233 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025234 if (!_seq) {
25235 PyMem_Free(_children);
25236 p->error_indicator = 1;
25237 PyErr_NoMemory();
25238 D(p->level--);
25239 return NULL;
25240 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025241 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025242 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025243 _PyPegen_insert_memo(p, _start_mark, _loop0_70_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025244 D(p->level--);
25245 return _seq;
25246}
25247
Brandt Bucher145bf262021-02-26 14:51:55 -080025248// _loop0_71: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025249static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025250_loop0_71_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025251{
25252 D(p->level++);
25253 if (p->error_indicator) {
25254 D(p->level--);
25255 return NULL;
25256 }
25257 void *_res = NULL;
25258 int _mark = p->mark;
25259 int _start_mark = p->mark;
25260 void **_children = PyMem_Malloc(sizeof(void *));
25261 if (!_children) {
25262 p->error_indicator = 1;
25263 PyErr_NoMemory();
25264 D(p->level--);
25265 return NULL;
25266 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025267 Py_ssize_t _children_capacity = 1;
25268 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025269 { // param_with_default
25270 if (p->error_indicator) {
25271 D(p->level--);
25272 return NULL;
25273 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025274 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 +010025275 NameDefaultPair* param_with_default_var;
25276 while (
25277 (param_with_default_var = param_with_default_rule(p)) // param_with_default
25278 )
25279 {
25280 _res = param_with_default_var;
25281 if (_n == _children_capacity) {
25282 _children_capacity *= 2;
25283 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25284 if (!_new_children) {
25285 p->error_indicator = 1;
25286 PyErr_NoMemory();
25287 D(p->level--);
25288 return NULL;
25289 }
25290 _children = _new_children;
25291 }
25292 _children[_n++] = _res;
25293 _mark = p->mark;
25294 }
25295 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025296 D(fprintf(stderr, "%*c%s _loop0_71[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025297 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
25298 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025299 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025300 if (!_seq) {
25301 PyMem_Free(_children);
25302 p->error_indicator = 1;
25303 PyErr_NoMemory();
25304 D(p->level--);
25305 return NULL;
25306 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025307 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025308 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025309 _PyPegen_insert_memo(p, _start_mark, _loop0_71_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025310 D(p->level--);
25311 return _seq;
25312}
25313
Brandt Bucher145bf262021-02-26 14:51:55 -080025314// _loop0_72: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025315static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025316_loop0_72_rule(Parser *p)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025317{
25318 D(p->level++);
25319 if (p->error_indicator) {
25320 D(p->level--);
25321 return NULL;
25322 }
25323 void *_res = NULL;
25324 int _mark = p->mark;
25325 int _start_mark = p->mark;
25326 void **_children = PyMem_Malloc(sizeof(void *));
25327 if (!_children) {
25328 p->error_indicator = 1;
25329 PyErr_NoMemory();
25330 D(p->level--);
25331 return NULL;
25332 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025333 Py_ssize_t _children_capacity = 1;
25334 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025335 { // param_with_default
25336 if (p->error_indicator) {
25337 D(p->level--);
25338 return NULL;
25339 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025340 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 +030025341 NameDefaultPair* param_with_default_var;
25342 while (
25343 (param_with_default_var = param_with_default_rule(p)) // param_with_default
25344 )
25345 {
25346 _res = param_with_default_var;
25347 if (_n == _children_capacity) {
25348 _children_capacity *= 2;
25349 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25350 if (!_new_children) {
25351 p->error_indicator = 1;
25352 PyErr_NoMemory();
25353 D(p->level--);
25354 return NULL;
25355 }
25356 _children = _new_children;
25357 }
25358 _children[_n++] = _res;
25359 _mark = p->mark;
25360 }
25361 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025362 D(fprintf(stderr, "%*c%s _loop0_72[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025363 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
25364 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025365 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025366 if (!_seq) {
25367 PyMem_Free(_children);
25368 p->error_indicator = 1;
25369 PyErr_NoMemory();
25370 D(p->level--);
25371 return NULL;
25372 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025373 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025374 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025375 _PyPegen_insert_memo(p, _start_mark, _loop0_72_type, _seq);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025376 D(p->level--);
25377 return _seq;
25378}
25379
Brandt Bucher145bf262021-02-26 14:51:55 -080025380// _loop1_73: param_no_default
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025381static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025382_loop1_73_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025383{
25384 D(p->level++);
25385 if (p->error_indicator) {
25386 D(p->level--);
25387 return NULL;
25388 }
25389 void *_res = NULL;
25390 int _mark = p->mark;
25391 int _start_mark = p->mark;
25392 void **_children = PyMem_Malloc(sizeof(void *));
25393 if (!_children) {
25394 p->error_indicator = 1;
25395 PyErr_NoMemory();
25396 D(p->level--);
25397 return NULL;
25398 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025399 Py_ssize_t _children_capacity = 1;
25400 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025401 { // param_no_default
25402 if (p->error_indicator) {
25403 D(p->level--);
25404 return NULL;
25405 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025406 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 +010025407 arg_ty param_no_default_var;
25408 while (
25409 (param_no_default_var = param_no_default_rule(p)) // param_no_default
25410 )
25411 {
25412 _res = param_no_default_var;
25413 if (_n == _children_capacity) {
25414 _children_capacity *= 2;
25415 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25416 if (!_new_children) {
25417 p->error_indicator = 1;
25418 PyErr_NoMemory();
25419 D(p->level--);
25420 return NULL;
25421 }
25422 _children = _new_children;
25423 }
25424 _children[_n++] = _res;
25425 _mark = p->mark;
25426 }
25427 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025428 D(fprintf(stderr, "%*c%s _loop1_73[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025429 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
25430 }
25431 if (_n == 0 || p->error_indicator) {
25432 PyMem_Free(_children);
25433 D(p->level--);
25434 return NULL;
25435 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025436 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025437 if (!_seq) {
25438 PyMem_Free(_children);
25439 p->error_indicator = 1;
25440 PyErr_NoMemory();
25441 D(p->level--);
25442 return NULL;
25443 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025444 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025445 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025446 _PyPegen_insert_memo(p, _start_mark, _loop1_73_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025447 D(p->level--);
25448 return _seq;
25449}
25450
Brandt Bucher145bf262021-02-26 14:51:55 -080025451// _loop0_74: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025452static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025453_loop0_74_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025454{
25455 D(p->level++);
25456 if (p->error_indicator) {
25457 D(p->level--);
25458 return NULL;
25459 }
25460 void *_res = NULL;
25461 int _mark = p->mark;
25462 int _start_mark = p->mark;
25463 void **_children = PyMem_Malloc(sizeof(void *));
25464 if (!_children) {
25465 p->error_indicator = 1;
25466 PyErr_NoMemory();
25467 D(p->level--);
25468 return NULL;
25469 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025470 Py_ssize_t _children_capacity = 1;
25471 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025472 { // param_with_default
25473 if (p->error_indicator) {
25474 D(p->level--);
25475 return NULL;
25476 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025477 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 +010025478 NameDefaultPair* param_with_default_var;
25479 while (
25480 (param_with_default_var = param_with_default_rule(p)) // param_with_default
25481 )
25482 {
25483 _res = param_with_default_var;
25484 if (_n == _children_capacity) {
25485 _children_capacity *= 2;
25486 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25487 if (!_new_children) {
25488 p->error_indicator = 1;
25489 PyErr_NoMemory();
25490 D(p->level--);
25491 return NULL;
25492 }
25493 _children = _new_children;
25494 }
25495 _children[_n++] = _res;
25496 _mark = p->mark;
25497 }
25498 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025499 D(fprintf(stderr, "%*c%s _loop0_74[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025500 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
25501 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025502 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025503 if (!_seq) {
25504 PyMem_Free(_children);
25505 p->error_indicator = 1;
25506 PyErr_NoMemory();
25507 D(p->level--);
25508 return NULL;
25509 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025510 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025511 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025512 _PyPegen_insert_memo(p, _start_mark, _loop0_74_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025513 D(p->level--);
25514 return _seq;
25515}
25516
Brandt Bucher145bf262021-02-26 14:51:55 -080025517// _loop1_75: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025518static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025519_loop1_75_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025520{
25521 D(p->level++);
25522 if (p->error_indicator) {
25523 D(p->level--);
25524 return NULL;
25525 }
25526 void *_res = NULL;
25527 int _mark = p->mark;
25528 int _start_mark = p->mark;
25529 void **_children = PyMem_Malloc(sizeof(void *));
25530 if (!_children) {
25531 p->error_indicator = 1;
25532 PyErr_NoMemory();
25533 D(p->level--);
25534 return NULL;
25535 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025536 Py_ssize_t _children_capacity = 1;
25537 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025538 { // param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025539 if (p->error_indicator) {
25540 D(p->level--);
25541 return NULL;
25542 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025543 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 +030025544 NameDefaultPair* param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025545 while (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025546 (param_with_default_var = param_with_default_rule(p)) // param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025547 )
25548 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025549 _res = param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025550 if (_n == _children_capacity) {
25551 _children_capacity *= 2;
25552 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25553 if (!_new_children) {
25554 p->error_indicator = 1;
25555 PyErr_NoMemory();
25556 D(p->level--);
25557 return NULL;
25558 }
25559 _children = _new_children;
25560 }
25561 _children[_n++] = _res;
25562 _mark = p->mark;
25563 }
25564 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025565 D(fprintf(stderr, "%*c%s _loop1_75[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025566 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025567 }
25568 if (_n == 0 || p->error_indicator) {
25569 PyMem_Free(_children);
25570 D(p->level--);
25571 return NULL;
25572 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025573 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025574 if (!_seq) {
25575 PyMem_Free(_children);
25576 p->error_indicator = 1;
25577 PyErr_NoMemory();
25578 D(p->level--);
25579 return NULL;
25580 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025581 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025582 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025583 _PyPegen_insert_memo(p, _start_mark, _loop1_75_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025584 D(p->level--);
25585 return _seq;
25586}
25587
Brandt Bucher145bf262021-02-26 14:51:55 -080025588// _loop1_76: param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025589static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025590_loop1_76_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025591{
25592 D(p->level++);
25593 if (p->error_indicator) {
25594 D(p->level--);
25595 return NULL;
25596 }
25597 void *_res = NULL;
25598 int _mark = p->mark;
25599 int _start_mark = p->mark;
25600 void **_children = PyMem_Malloc(sizeof(void *));
25601 if (!_children) {
25602 p->error_indicator = 1;
25603 PyErr_NoMemory();
25604 D(p->level--);
25605 return NULL;
25606 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025607 Py_ssize_t _children_capacity = 1;
25608 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025609 { // param_no_default
25610 if (p->error_indicator) {
25611 D(p->level--);
25612 return NULL;
25613 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025614 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 +010025615 arg_ty param_no_default_var;
25616 while (
25617 (param_no_default_var = param_no_default_rule(p)) // param_no_default
25618 )
25619 {
25620 _res = param_no_default_var;
25621 if (_n == _children_capacity) {
25622 _children_capacity *= 2;
25623 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25624 if (!_new_children) {
25625 p->error_indicator = 1;
25626 PyErr_NoMemory();
25627 D(p->level--);
25628 return NULL;
25629 }
25630 _children = _new_children;
25631 }
25632 _children[_n++] = _res;
25633 _mark = p->mark;
25634 }
25635 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025636 D(fprintf(stderr, "%*c%s _loop1_76[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025637 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
25638 }
25639 if (_n == 0 || p->error_indicator) {
25640 PyMem_Free(_children);
25641 D(p->level--);
25642 return NULL;
25643 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025644 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025645 if (!_seq) {
25646 PyMem_Free(_children);
25647 p->error_indicator = 1;
25648 PyErr_NoMemory();
25649 D(p->level--);
25650 return NULL;
25651 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025652 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025653 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025654 _PyPegen_insert_memo(p, _start_mark, _loop1_76_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025655 D(p->level--);
25656 return _seq;
25657}
25658
Brandt Bucher145bf262021-02-26 14:51:55 -080025659// _loop1_77: param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025660static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025661_loop1_77_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025662{
25663 D(p->level++);
25664 if (p->error_indicator) {
25665 D(p->level--);
25666 return NULL;
25667 }
25668 void *_res = NULL;
25669 int _mark = p->mark;
25670 int _start_mark = p->mark;
25671 void **_children = PyMem_Malloc(sizeof(void *));
25672 if (!_children) {
25673 p->error_indicator = 1;
25674 PyErr_NoMemory();
25675 D(p->level--);
25676 return NULL;
25677 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025678 Py_ssize_t _children_capacity = 1;
25679 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025680 { // param_no_default
25681 if (p->error_indicator) {
25682 D(p->level--);
25683 return NULL;
25684 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025685 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 +010025686 arg_ty param_no_default_var;
25687 while (
25688 (param_no_default_var = param_no_default_rule(p)) // param_no_default
25689 )
25690 {
25691 _res = param_no_default_var;
25692 if (_n == _children_capacity) {
25693 _children_capacity *= 2;
25694 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25695 if (!_new_children) {
25696 p->error_indicator = 1;
25697 PyErr_NoMemory();
25698 D(p->level--);
25699 return NULL;
25700 }
25701 _children = _new_children;
25702 }
25703 _children[_n++] = _res;
25704 _mark = p->mark;
25705 }
25706 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025707 D(fprintf(stderr, "%*c%s _loop1_77[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025708 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
25709 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025710 if (_n == 0 || p->error_indicator) {
25711 PyMem_Free(_children);
25712 D(p->level--);
25713 return NULL;
25714 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025715 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025716 if (!_seq) {
25717 PyMem_Free(_children);
25718 p->error_indicator = 1;
25719 PyErr_NoMemory();
25720 D(p->level--);
25721 return NULL;
25722 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025723 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025724 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025725 _PyPegen_insert_memo(p, _start_mark, _loop1_77_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025726 D(p->level--);
25727 return _seq;
25728}
25729
Brandt Bucher145bf262021-02-26 14:51:55 -080025730// _loop0_78: param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025731static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025732_loop0_78_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025733{
25734 D(p->level++);
25735 if (p->error_indicator) {
25736 D(p->level--);
25737 return NULL;
25738 }
25739 void *_res = NULL;
25740 int _mark = p->mark;
25741 int _start_mark = p->mark;
25742 void **_children = PyMem_Malloc(sizeof(void *));
25743 if (!_children) {
25744 p->error_indicator = 1;
25745 PyErr_NoMemory();
25746 D(p->level--);
25747 return NULL;
25748 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025749 Py_ssize_t _children_capacity = 1;
25750 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025751 { // param_no_default
25752 if (p->error_indicator) {
25753 D(p->level--);
25754 return NULL;
25755 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025756 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 +010025757 arg_ty param_no_default_var;
25758 while (
25759 (param_no_default_var = param_no_default_rule(p)) // param_no_default
25760 )
25761 {
25762 _res = param_no_default_var;
25763 if (_n == _children_capacity) {
25764 _children_capacity *= 2;
25765 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25766 if (!_new_children) {
25767 p->error_indicator = 1;
25768 PyErr_NoMemory();
25769 D(p->level--);
25770 return NULL;
25771 }
25772 _children = _new_children;
25773 }
25774 _children[_n++] = _res;
25775 _mark = p->mark;
25776 }
25777 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025778 D(fprintf(stderr, "%*c%s _loop0_78[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025779 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
25780 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025781 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025782 if (!_seq) {
25783 PyMem_Free(_children);
25784 p->error_indicator = 1;
25785 PyErr_NoMemory();
25786 D(p->level--);
25787 return NULL;
25788 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025789 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025790 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025791 _PyPegen_insert_memo(p, _start_mark, _loop0_78_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025792 D(p->level--);
25793 return _seq;
25794}
25795
Brandt Bucher145bf262021-02-26 14:51:55 -080025796// _loop1_79: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025797static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025798_loop1_79_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025799{
25800 D(p->level++);
25801 if (p->error_indicator) {
25802 D(p->level--);
25803 return NULL;
25804 }
25805 void *_res = NULL;
25806 int _mark = p->mark;
25807 int _start_mark = p->mark;
25808 void **_children = PyMem_Malloc(sizeof(void *));
25809 if (!_children) {
25810 p->error_indicator = 1;
25811 PyErr_NoMemory();
25812 D(p->level--);
25813 return NULL;
25814 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025815 Py_ssize_t _children_capacity = 1;
25816 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025817 { // param_with_default
25818 if (p->error_indicator) {
25819 D(p->level--);
25820 return NULL;
25821 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025822 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 +010025823 NameDefaultPair* param_with_default_var;
25824 while (
25825 (param_with_default_var = param_with_default_rule(p)) // param_with_default
25826 )
25827 {
25828 _res = param_with_default_var;
25829 if (_n == _children_capacity) {
25830 _children_capacity *= 2;
25831 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25832 if (!_new_children) {
25833 p->error_indicator = 1;
25834 PyErr_NoMemory();
25835 D(p->level--);
25836 return NULL;
25837 }
25838 _children = _new_children;
25839 }
25840 _children[_n++] = _res;
25841 _mark = p->mark;
25842 }
25843 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025844 D(fprintf(stderr, "%*c%s _loop1_79[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025845 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
25846 }
25847 if (_n == 0 || p->error_indicator) {
25848 PyMem_Free(_children);
25849 D(p->level--);
25850 return NULL;
25851 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025852 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025853 if (!_seq) {
25854 PyMem_Free(_children);
25855 p->error_indicator = 1;
25856 PyErr_NoMemory();
25857 D(p->level--);
25858 return NULL;
25859 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025860 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025861 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025862 _PyPegen_insert_memo(p, _start_mark, _loop1_79_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025863 D(p->level--);
25864 return _seq;
25865}
25866
Brandt Bucher145bf262021-02-26 14:51:55 -080025867// _loop0_80: param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025868static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025869_loop0_80_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025870{
25871 D(p->level++);
25872 if (p->error_indicator) {
25873 D(p->level--);
25874 return NULL;
25875 }
25876 void *_res = NULL;
25877 int _mark = p->mark;
25878 int _start_mark = p->mark;
25879 void **_children = PyMem_Malloc(sizeof(void *));
25880 if (!_children) {
25881 p->error_indicator = 1;
25882 PyErr_NoMemory();
25883 D(p->level--);
25884 return NULL;
25885 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025886 Py_ssize_t _children_capacity = 1;
25887 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025888 { // param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025889 if (p->error_indicator) {
25890 D(p->level--);
25891 return NULL;
25892 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025893 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 +030025894 arg_ty param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025895 while (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025896 (param_no_default_var = param_no_default_rule(p)) // param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025897 )
25898 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025899 _res = param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025900 if (_n == _children_capacity) {
25901 _children_capacity *= 2;
25902 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25903 if (!_new_children) {
25904 p->error_indicator = 1;
25905 PyErr_NoMemory();
25906 D(p->level--);
25907 return NULL;
25908 }
25909 _children = _new_children;
25910 }
25911 _children[_n++] = _res;
25912 _mark = p->mark;
25913 }
25914 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025915 D(fprintf(stderr, "%*c%s _loop0_80[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025916 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025917 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025918 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025919 if (!_seq) {
25920 PyMem_Free(_children);
25921 p->error_indicator = 1;
25922 PyErr_NoMemory();
25923 D(p->level--);
25924 return NULL;
25925 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025926 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025927 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025928 _PyPegen_insert_memo(p, _start_mark, _loop0_80_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025929 D(p->level--);
25930 return _seq;
25931}
25932
Brandt Bucher145bf262021-02-26 14:51:55 -080025933// _loop1_81: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025934static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025935_loop1_81_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025936{
25937 D(p->level++);
25938 if (p->error_indicator) {
25939 D(p->level--);
25940 return NULL;
25941 }
25942 void *_res = NULL;
25943 int _mark = p->mark;
25944 int _start_mark = p->mark;
25945 void **_children = PyMem_Malloc(sizeof(void *));
25946 if (!_children) {
25947 p->error_indicator = 1;
25948 PyErr_NoMemory();
25949 D(p->level--);
25950 return NULL;
25951 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025952 Py_ssize_t _children_capacity = 1;
25953 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025954 { // param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025955 if (p->error_indicator) {
25956 D(p->level--);
25957 return NULL;
25958 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025959 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 +030025960 NameDefaultPair* param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025961 while (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025962 (param_with_default_var = param_with_default_rule(p)) // param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025963 )
25964 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025965 _res = param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025966 if (_n == _children_capacity) {
25967 _children_capacity *= 2;
25968 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25969 if (!_new_children) {
25970 p->error_indicator = 1;
25971 PyErr_NoMemory();
25972 D(p->level--);
25973 return NULL;
25974 }
25975 _children = _new_children;
25976 }
25977 _children[_n++] = _res;
25978 _mark = p->mark;
25979 }
25980 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025981 D(fprintf(stderr, "%*c%s _loop1_81[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025982 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025983 }
25984 if (_n == 0 || p->error_indicator) {
25985 PyMem_Free(_children);
25986 D(p->level--);
25987 return NULL;
25988 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025989 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025990 if (!_seq) {
25991 PyMem_Free(_children);
25992 p->error_indicator = 1;
25993 PyErr_NoMemory();
25994 D(p->level--);
25995 return NULL;
25996 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025997 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025998 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025999 _PyPegen_insert_memo(p, _start_mark, _loop1_81_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026000 D(p->level--);
26001 return _seq;
26002}
26003
Brandt Bucher145bf262021-02-26 14:51:55 -080026004// _loop0_82: param_maybe_default
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026005static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026006_loop0_82_rule(Parser *p)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026007{
26008 D(p->level++);
26009 if (p->error_indicator) {
26010 D(p->level--);
26011 return NULL;
26012 }
26013 void *_res = NULL;
26014 int _mark = p->mark;
26015 int _start_mark = p->mark;
26016 void **_children = PyMem_Malloc(sizeof(void *));
26017 if (!_children) {
26018 p->error_indicator = 1;
26019 PyErr_NoMemory();
26020 D(p->level--);
26021 return NULL;
26022 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026023 Py_ssize_t _children_capacity = 1;
26024 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026025 { // param_maybe_default
26026 if (p->error_indicator) {
26027 D(p->level--);
26028 return NULL;
26029 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026030 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 +030026031 NameDefaultPair* param_maybe_default_var;
26032 while (
26033 (param_maybe_default_var = param_maybe_default_rule(p)) // param_maybe_default
26034 )
26035 {
26036 _res = param_maybe_default_var;
26037 if (_n == _children_capacity) {
26038 _children_capacity *= 2;
26039 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26040 if (!_new_children) {
26041 p->error_indicator = 1;
26042 PyErr_NoMemory();
26043 D(p->level--);
26044 return NULL;
26045 }
26046 _children = _new_children;
26047 }
26048 _children[_n++] = _res;
26049 _mark = p->mark;
26050 }
26051 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026052 D(fprintf(stderr, "%*c%s _loop0_82[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026053 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_maybe_default"));
26054 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026055 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026056 if (!_seq) {
26057 PyMem_Free(_children);
26058 p->error_indicator = 1;
26059 PyErr_NoMemory();
26060 D(p->level--);
26061 return NULL;
26062 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026063 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026064 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026065 _PyPegen_insert_memo(p, _start_mark, _loop0_82_type, _seq);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026066 D(p->level--);
26067 return _seq;
26068}
26069
Brandt Bucher145bf262021-02-26 14:51:55 -080026070// _loop1_83: param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026071static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026072_loop1_83_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026073{
26074 D(p->level++);
26075 if (p->error_indicator) {
26076 D(p->level--);
26077 return NULL;
26078 }
26079 void *_res = NULL;
26080 int _mark = p->mark;
26081 int _start_mark = p->mark;
26082 void **_children = PyMem_Malloc(sizeof(void *));
26083 if (!_children) {
26084 p->error_indicator = 1;
26085 PyErr_NoMemory();
26086 D(p->level--);
26087 return NULL;
26088 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026089 Py_ssize_t _children_capacity = 1;
26090 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026091 { // param_maybe_default
26092 if (p->error_indicator) {
26093 D(p->level--);
26094 return NULL;
26095 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026096 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 +030026097 NameDefaultPair* param_maybe_default_var;
26098 while (
26099 (param_maybe_default_var = param_maybe_default_rule(p)) // param_maybe_default
26100 )
26101 {
26102 _res = param_maybe_default_var;
26103 if (_n == _children_capacity) {
26104 _children_capacity *= 2;
26105 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26106 if (!_new_children) {
26107 p->error_indicator = 1;
26108 PyErr_NoMemory();
26109 D(p->level--);
26110 return NULL;
26111 }
26112 _children = _new_children;
26113 }
26114 _children[_n++] = _res;
26115 _mark = p->mark;
26116 }
26117 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026118 D(fprintf(stderr, "%*c%s _loop1_83[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026119 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_maybe_default"));
26120 }
26121 if (_n == 0 || p->error_indicator) {
26122 PyMem_Free(_children);
26123 D(p->level--);
26124 return NULL;
26125 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026126 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026127 if (!_seq) {
26128 PyMem_Free(_children);
26129 p->error_indicator = 1;
26130 PyErr_NoMemory();
26131 D(p->level--);
26132 return NULL;
26133 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026134 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026135 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026136 _PyPegen_insert_memo(p, _start_mark, _loop1_83_type, _seq);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026137 D(p->level--);
26138 return _seq;
26139}
26140
Brandt Bucher145bf262021-02-26 14:51:55 -080026141// _loop1_84: ('@' named_expression NEWLINE)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026142static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026143_loop1_84_rule(Parser *p)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026144{
26145 D(p->level++);
26146 if (p->error_indicator) {
26147 D(p->level--);
26148 return NULL;
26149 }
26150 void *_res = NULL;
26151 int _mark = p->mark;
26152 int _start_mark = p->mark;
26153 void **_children = PyMem_Malloc(sizeof(void *));
26154 if (!_children) {
26155 p->error_indicator = 1;
26156 PyErr_NoMemory();
26157 D(p->level--);
26158 return NULL;
26159 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026160 Py_ssize_t _children_capacity = 1;
26161 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026162 { // ('@' named_expression NEWLINE)
26163 if (p->error_indicator) {
26164 D(p->level--);
26165 return NULL;
26166 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026167 D(fprintf(stderr, "%*c> _loop1_84[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('@' named_expression NEWLINE)"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070026168 void *_tmp_182_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026169 while (
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070026170 (_tmp_182_var = _tmp_182_rule(p)) // '@' named_expression NEWLINE
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026171 )
26172 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070026173 _res = _tmp_182_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026174 if (_n == _children_capacity) {
26175 _children_capacity *= 2;
26176 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26177 if (!_new_children) {
26178 p->error_indicator = 1;
26179 PyErr_NoMemory();
26180 D(p->level--);
26181 return NULL;
26182 }
26183 _children = _new_children;
26184 }
26185 _children[_n++] = _res;
26186 _mark = p->mark;
26187 }
26188 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026189 D(fprintf(stderr, "%*c%s _loop1_84[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026190 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('@' named_expression NEWLINE)"));
26191 }
26192 if (_n == 0 || p->error_indicator) {
26193 PyMem_Free(_children);
26194 D(p->level--);
26195 return NULL;
26196 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026197 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026198 if (!_seq) {
26199 PyMem_Free(_children);
26200 p->error_indicator = 1;
26201 PyErr_NoMemory();
26202 D(p->level--);
26203 return NULL;
26204 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026205 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026206 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026207 _PyPegen_insert_memo(p, _start_mark, _loop1_84_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026208 D(p->level--);
26209 return _seq;
26210}
26211
Brandt Bucher145bf262021-02-26 14:51:55 -080026212// _tmp_85: '(' arguments? ')'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026213static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080026214_tmp_85_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026215{
26216 D(p->level++);
26217 if (p->error_indicator) {
26218 D(p->level--);
26219 return NULL;
26220 }
26221 void * _res = NULL;
26222 int _mark = p->mark;
26223 { // '(' arguments? ')'
26224 if (p->error_indicator) {
26225 D(p->level--);
26226 return NULL;
26227 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026228 D(fprintf(stderr, "%*c> _tmp_85[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026229 Token * _literal;
26230 Token * _literal_1;
26231 void *z;
26232 if (
26233 (_literal = _PyPegen_expect_token(p, 7)) // token='('
26234 &&
26235 (z = arguments_rule(p), 1) // arguments?
26236 &&
26237 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
26238 )
26239 {
Brandt Bucher145bf262021-02-26 14:51:55 -080026240 D(fprintf(stderr, "%*c+ _tmp_85[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026241 _res = z;
26242 if (_res == NULL && PyErr_Occurred()) {
26243 p->error_indicator = 1;
26244 D(p->level--);
26245 return NULL;
26246 }
26247 goto done;
26248 }
26249 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026250 D(fprintf(stderr, "%*c%s _tmp_85[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026251 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' arguments? ')'"));
26252 }
26253 _res = NULL;
26254 done:
26255 D(p->level--);
26256 return _res;
26257}
26258
Brandt Bucher145bf262021-02-26 14:51:55 -080026259// _loop1_86: (',' star_expression)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026260static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026261_loop1_86_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026262{
26263 D(p->level++);
26264 if (p->error_indicator) {
26265 D(p->level--);
26266 return NULL;
26267 }
26268 void *_res = NULL;
26269 int _mark = p->mark;
26270 int _start_mark = p->mark;
26271 void **_children = PyMem_Malloc(sizeof(void *));
26272 if (!_children) {
26273 p->error_indicator = 1;
26274 PyErr_NoMemory();
26275 D(p->level--);
26276 return NULL;
26277 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026278 Py_ssize_t _children_capacity = 1;
26279 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026280 { // (',' star_expression)
26281 if (p->error_indicator) {
26282 D(p->level--);
26283 return NULL;
26284 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026285 D(fprintf(stderr, "%*c> _loop1_86[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' star_expression)"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070026286 void *_tmp_183_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026287 while (
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070026288 (_tmp_183_var = _tmp_183_rule(p)) // ',' star_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026289 )
26290 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070026291 _res = _tmp_183_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026292 if (_n == _children_capacity) {
26293 _children_capacity *= 2;
26294 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26295 if (!_new_children) {
26296 p->error_indicator = 1;
26297 PyErr_NoMemory();
26298 D(p->level--);
26299 return NULL;
26300 }
26301 _children = _new_children;
26302 }
26303 _children[_n++] = _res;
26304 _mark = p->mark;
26305 }
26306 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026307 D(fprintf(stderr, "%*c%s _loop1_86[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026308 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' star_expression)"));
26309 }
26310 if (_n == 0 || p->error_indicator) {
26311 PyMem_Free(_children);
26312 D(p->level--);
26313 return NULL;
26314 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026315 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026316 if (!_seq) {
26317 PyMem_Free(_children);
26318 p->error_indicator = 1;
26319 PyErr_NoMemory();
26320 D(p->level--);
26321 return NULL;
26322 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026323 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026324 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026325 _PyPegen_insert_memo(p, _start_mark, _loop1_86_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026326 D(p->level--);
26327 return _seq;
26328}
26329
Brandt Bucher145bf262021-02-26 14:51:55 -080026330// _loop0_88: ',' star_named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026331static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026332_loop0_88_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026333{
26334 D(p->level++);
26335 if (p->error_indicator) {
26336 D(p->level--);
26337 return NULL;
26338 }
26339 void *_res = NULL;
26340 int _mark = p->mark;
26341 int _start_mark = p->mark;
26342 void **_children = PyMem_Malloc(sizeof(void *));
26343 if (!_children) {
26344 p->error_indicator = 1;
26345 PyErr_NoMemory();
26346 D(p->level--);
26347 return NULL;
26348 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026349 Py_ssize_t _children_capacity = 1;
26350 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026351 { // ',' star_named_expression
26352 if (p->error_indicator) {
26353 D(p->level--);
26354 return NULL;
26355 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026356 D(fprintf(stderr, "%*c> _loop0_88[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_named_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026357 Token * _literal;
26358 expr_ty elem;
26359 while (
26360 (_literal = _PyPegen_expect_token(p, 12)) // token=','
26361 &&
26362 (elem = star_named_expression_rule(p)) // star_named_expression
26363 )
26364 {
26365 _res = elem;
26366 if (_res == NULL && PyErr_Occurred()) {
26367 p->error_indicator = 1;
26368 PyMem_Free(_children);
26369 D(p->level--);
26370 return NULL;
26371 }
26372 if (_n == _children_capacity) {
26373 _children_capacity *= 2;
26374 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26375 if (!_new_children) {
26376 p->error_indicator = 1;
26377 PyErr_NoMemory();
26378 D(p->level--);
26379 return NULL;
26380 }
26381 _children = _new_children;
26382 }
26383 _children[_n++] = _res;
26384 _mark = p->mark;
26385 }
26386 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026387 D(fprintf(stderr, "%*c%s _loop0_88[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026388 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_named_expression"));
26389 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026390 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026391 if (!_seq) {
26392 PyMem_Free(_children);
26393 p->error_indicator = 1;
26394 PyErr_NoMemory();
26395 D(p->level--);
26396 return NULL;
26397 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026398 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026399 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026400 _PyPegen_insert_memo(p, _start_mark, _loop0_88_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026401 D(p->level--);
26402 return _seq;
26403}
26404
Brandt Bucher145bf262021-02-26 14:51:55 -080026405// _gather_87: star_named_expression _loop0_88
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026406static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026407_gather_87_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026408{
26409 D(p->level++);
26410 if (p->error_indicator) {
26411 D(p->level--);
26412 return NULL;
26413 }
26414 asdl_seq * _res = NULL;
26415 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026416 { // star_named_expression _loop0_88
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026417 if (p->error_indicator) {
26418 D(p->level--);
26419 return NULL;
26420 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026421 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 +010026422 expr_ty elem;
26423 asdl_seq * seq;
26424 if (
26425 (elem = star_named_expression_rule(p)) // star_named_expression
26426 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080026427 (seq = _loop0_88_rule(p)) // _loop0_88
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026428 )
26429 {
Brandt Bucher145bf262021-02-26 14:51:55 -080026430 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 +010026431 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
26432 goto done;
26433 }
26434 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026435 D(fprintf(stderr, "%*c%s _gather_87[%d-%d]: %s failed!\n", p->level, ' ',
26436 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression _loop0_88"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026437 }
26438 _res = NULL;
26439 done:
26440 D(p->level--);
26441 return _res;
26442}
26443
Brandt Bucher145bf262021-02-26 14:51:55 -080026444// _loop1_89: (',' expression)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026445static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026446_loop1_89_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026447{
26448 D(p->level++);
26449 if (p->error_indicator) {
26450 D(p->level--);
26451 return NULL;
26452 }
26453 void *_res = NULL;
26454 int _mark = p->mark;
26455 int _start_mark = p->mark;
26456 void **_children = PyMem_Malloc(sizeof(void *));
26457 if (!_children) {
26458 p->error_indicator = 1;
26459 PyErr_NoMemory();
26460 D(p->level--);
26461 return NULL;
26462 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026463 Py_ssize_t _children_capacity = 1;
26464 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026465 { // (',' expression)
26466 if (p->error_indicator) {
26467 D(p->level--);
26468 return NULL;
26469 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026470 D(fprintf(stderr, "%*c> _loop1_89[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' expression)"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070026471 void *_tmp_184_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026472 while (
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070026473 (_tmp_184_var = _tmp_184_rule(p)) // ',' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026474 )
26475 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070026476 _res = _tmp_184_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026477 if (_n == _children_capacity) {
26478 _children_capacity *= 2;
26479 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26480 if (!_new_children) {
26481 p->error_indicator = 1;
26482 PyErr_NoMemory();
26483 D(p->level--);
26484 return NULL;
26485 }
26486 _children = _new_children;
26487 }
26488 _children[_n++] = _res;
26489 _mark = p->mark;
26490 }
26491 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026492 D(fprintf(stderr, "%*c%s _loop1_89[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026493 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' expression)"));
26494 }
26495 if (_n == 0 || p->error_indicator) {
26496 PyMem_Free(_children);
26497 D(p->level--);
26498 return NULL;
26499 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026500 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026501 if (!_seq) {
26502 PyMem_Free(_children);
26503 p->error_indicator = 1;
26504 PyErr_NoMemory();
26505 D(p->level--);
26506 return NULL;
26507 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026508 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026509 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026510 _PyPegen_insert_memo(p, _start_mark, _loop1_89_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026511 D(p->level--);
26512 return _seq;
26513}
26514
Brandt Bucher145bf262021-02-26 14:51:55 -080026515// _loop0_90: lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026516static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026517_loop0_90_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026518{
26519 D(p->level++);
26520 if (p->error_indicator) {
26521 D(p->level--);
26522 return NULL;
26523 }
26524 void *_res = NULL;
26525 int _mark = p->mark;
26526 int _start_mark = p->mark;
26527 void **_children = PyMem_Malloc(sizeof(void *));
26528 if (!_children) {
26529 p->error_indicator = 1;
26530 PyErr_NoMemory();
26531 D(p->level--);
26532 return NULL;
26533 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026534 Py_ssize_t _children_capacity = 1;
26535 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026536 { // lambda_param_no_default
26537 if (p->error_indicator) {
26538 D(p->level--);
26539 return NULL;
26540 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026541 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 +010026542 arg_ty lambda_param_no_default_var;
26543 while (
26544 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
26545 )
26546 {
26547 _res = lambda_param_no_default_var;
26548 if (_n == _children_capacity) {
26549 _children_capacity *= 2;
26550 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26551 if (!_new_children) {
26552 p->error_indicator = 1;
26553 PyErr_NoMemory();
26554 D(p->level--);
26555 return NULL;
26556 }
26557 _children = _new_children;
26558 }
26559 _children[_n++] = _res;
26560 _mark = p->mark;
26561 }
26562 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026563 D(fprintf(stderr, "%*c%s _loop0_90[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026564 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026565 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026566 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026567 if (!_seq) {
26568 PyMem_Free(_children);
26569 p->error_indicator = 1;
26570 PyErr_NoMemory();
26571 D(p->level--);
26572 return NULL;
26573 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026574 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026575 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026576 _PyPegen_insert_memo(p, _start_mark, _loop0_90_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026577 D(p->level--);
26578 return _seq;
26579}
26580
Brandt Bucher145bf262021-02-26 14:51:55 -080026581// _loop0_91: lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026582static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026583_loop0_91_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026584{
26585 D(p->level++);
26586 if (p->error_indicator) {
26587 D(p->level--);
26588 return NULL;
26589 }
26590 void *_res = NULL;
26591 int _mark = p->mark;
26592 int _start_mark = p->mark;
26593 void **_children = PyMem_Malloc(sizeof(void *));
26594 if (!_children) {
26595 p->error_indicator = 1;
26596 PyErr_NoMemory();
26597 D(p->level--);
26598 return NULL;
26599 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026600 Py_ssize_t _children_capacity = 1;
26601 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026602 { // lambda_param_with_default
26603 if (p->error_indicator) {
26604 D(p->level--);
26605 return NULL;
26606 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026607 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 +010026608 NameDefaultPair* lambda_param_with_default_var;
26609 while (
26610 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
26611 )
26612 {
26613 _res = lambda_param_with_default_var;
26614 if (_n == _children_capacity) {
26615 _children_capacity *= 2;
26616 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26617 if (!_new_children) {
26618 p->error_indicator = 1;
26619 PyErr_NoMemory();
26620 D(p->level--);
26621 return NULL;
26622 }
26623 _children = _new_children;
26624 }
26625 _children[_n++] = _res;
26626 _mark = p->mark;
26627 }
26628 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026629 D(fprintf(stderr, "%*c%s _loop0_91[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026630 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
26631 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026632 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026633 if (!_seq) {
26634 PyMem_Free(_children);
26635 p->error_indicator = 1;
26636 PyErr_NoMemory();
26637 D(p->level--);
26638 return NULL;
26639 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026640 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026641 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026642 _PyPegen_insert_memo(p, _start_mark, _loop0_91_type, _seq);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026643 D(p->level--);
26644 return _seq;
26645}
26646
Brandt Bucher145bf262021-02-26 14:51:55 -080026647// _loop0_92: lambda_param_with_default
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026648static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026649_loop0_92_rule(Parser *p)
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026650{
26651 D(p->level++);
26652 if (p->error_indicator) {
26653 D(p->level--);
26654 return NULL;
26655 }
26656 void *_res = NULL;
26657 int _mark = p->mark;
26658 int _start_mark = p->mark;
26659 void **_children = PyMem_Malloc(sizeof(void *));
26660 if (!_children) {
26661 p->error_indicator = 1;
26662 PyErr_NoMemory();
26663 D(p->level--);
26664 return NULL;
26665 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026666 Py_ssize_t _children_capacity = 1;
26667 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026668 { // lambda_param_with_default
26669 if (p->error_indicator) {
26670 D(p->level--);
26671 return NULL;
26672 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026673 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 +000026674 NameDefaultPair* lambda_param_with_default_var;
26675 while (
26676 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
26677 )
26678 {
26679 _res = lambda_param_with_default_var;
26680 if (_n == _children_capacity) {
26681 _children_capacity *= 2;
26682 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26683 if (!_new_children) {
26684 p->error_indicator = 1;
26685 PyErr_NoMemory();
26686 D(p->level--);
26687 return NULL;
26688 }
26689 _children = _new_children;
26690 }
26691 _children[_n++] = _res;
26692 _mark = p->mark;
26693 }
26694 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026695 D(fprintf(stderr, "%*c%s _loop0_92[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026696 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
26697 }
26698 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
26699 if (!_seq) {
26700 PyMem_Free(_children);
26701 p->error_indicator = 1;
26702 PyErr_NoMemory();
26703 D(p->level--);
26704 return NULL;
26705 }
26706 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
26707 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026708 _PyPegen_insert_memo(p, _start_mark, _loop0_92_type, _seq);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026709 D(p->level--);
26710 return _seq;
26711}
26712
Brandt Bucher145bf262021-02-26 14:51:55 -080026713// _loop1_93: lambda_param_no_default
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026714static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026715_loop1_93_rule(Parser *p)
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026716{
26717 D(p->level++);
26718 if (p->error_indicator) {
26719 D(p->level--);
26720 return NULL;
26721 }
26722 void *_res = NULL;
26723 int _mark = p->mark;
26724 int _start_mark = p->mark;
26725 void **_children = PyMem_Malloc(sizeof(void *));
26726 if (!_children) {
26727 p->error_indicator = 1;
26728 PyErr_NoMemory();
26729 D(p->level--);
26730 return NULL;
26731 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026732 Py_ssize_t _children_capacity = 1;
26733 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026734 { // lambda_param_no_default
26735 if (p->error_indicator) {
26736 D(p->level--);
26737 return NULL;
26738 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026739 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 +000026740 arg_ty lambda_param_no_default_var;
26741 while (
26742 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
26743 )
26744 {
26745 _res = lambda_param_no_default_var;
26746 if (_n == _children_capacity) {
26747 _children_capacity *= 2;
26748 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26749 if (!_new_children) {
26750 p->error_indicator = 1;
26751 PyErr_NoMemory();
26752 D(p->level--);
26753 return NULL;
26754 }
26755 _children = _new_children;
26756 }
26757 _children[_n++] = _res;
26758 _mark = p->mark;
26759 }
26760 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026761 D(fprintf(stderr, "%*c%s _loop1_93[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026762 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
26763 }
26764 if (_n == 0 || p->error_indicator) {
26765 PyMem_Free(_children);
26766 D(p->level--);
26767 return NULL;
26768 }
26769 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
26770 if (!_seq) {
26771 PyMem_Free(_children);
26772 p->error_indicator = 1;
26773 PyErr_NoMemory();
26774 D(p->level--);
26775 return NULL;
26776 }
26777 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
26778 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026779 _PyPegen_insert_memo(p, _start_mark, _loop1_93_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026780 D(p->level--);
26781 return _seq;
26782}
26783
Brandt Bucher145bf262021-02-26 14:51:55 -080026784// _loop0_94: lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026785static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026786_loop0_94_rule(Parser *p)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026787{
26788 D(p->level++);
26789 if (p->error_indicator) {
26790 D(p->level--);
26791 return NULL;
26792 }
26793 void *_res = NULL;
26794 int _mark = p->mark;
26795 int _start_mark = p->mark;
26796 void **_children = PyMem_Malloc(sizeof(void *));
26797 if (!_children) {
26798 p->error_indicator = 1;
26799 PyErr_NoMemory();
26800 D(p->level--);
26801 return NULL;
26802 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026803 Py_ssize_t _children_capacity = 1;
26804 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026805 { // lambda_param_with_default
26806 if (p->error_indicator) {
26807 D(p->level--);
26808 return NULL;
26809 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026810 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 +030026811 NameDefaultPair* lambda_param_with_default_var;
26812 while (
26813 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
26814 )
26815 {
26816 _res = lambda_param_with_default_var;
26817 if (_n == _children_capacity) {
26818 _children_capacity *= 2;
26819 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26820 if (!_new_children) {
26821 p->error_indicator = 1;
26822 PyErr_NoMemory();
26823 D(p->level--);
26824 return NULL;
26825 }
26826 _children = _new_children;
26827 }
26828 _children[_n++] = _res;
26829 _mark = p->mark;
26830 }
26831 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026832 D(fprintf(stderr, "%*c%s _loop0_94[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026833 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
26834 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026835 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026836 if (!_seq) {
26837 PyMem_Free(_children);
26838 p->error_indicator = 1;
26839 PyErr_NoMemory();
26840 D(p->level--);
26841 return NULL;
26842 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026843 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026844 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026845 _PyPegen_insert_memo(p, _start_mark, _loop0_94_type, _seq);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026846 D(p->level--);
26847 return _seq;
26848}
26849
Brandt Bucher145bf262021-02-26 14:51:55 -080026850// _loop1_95: lambda_param_with_default
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026851static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026852_loop1_95_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026853{
26854 D(p->level++);
26855 if (p->error_indicator) {
26856 D(p->level--);
26857 return NULL;
26858 }
26859 void *_res = NULL;
26860 int _mark = p->mark;
26861 int _start_mark = p->mark;
26862 void **_children = PyMem_Malloc(sizeof(void *));
26863 if (!_children) {
26864 p->error_indicator = 1;
26865 PyErr_NoMemory();
26866 D(p->level--);
26867 return NULL;
26868 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026869 Py_ssize_t _children_capacity = 1;
26870 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026871 { // lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026872 if (p->error_indicator) {
26873 D(p->level--);
26874 return NULL;
26875 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026876 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 +000026877 NameDefaultPair* lambda_param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026878 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026879 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026880 )
26881 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026882 _res = lambda_param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026883 if (_n == _children_capacity) {
26884 _children_capacity *= 2;
26885 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26886 if (!_new_children) {
26887 p->error_indicator = 1;
26888 PyErr_NoMemory();
26889 D(p->level--);
26890 return NULL;
26891 }
26892 _children = _new_children;
26893 }
26894 _children[_n++] = _res;
26895 _mark = p->mark;
26896 }
26897 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026898 D(fprintf(stderr, "%*c%s _loop1_95[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026899 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026900 }
26901 if (_n == 0 || p->error_indicator) {
26902 PyMem_Free(_children);
26903 D(p->level--);
26904 return NULL;
26905 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026906 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026907 if (!_seq) {
26908 PyMem_Free(_children);
26909 p->error_indicator = 1;
26910 PyErr_NoMemory();
26911 D(p->level--);
26912 return NULL;
26913 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026914 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026915 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026916 _PyPegen_insert_memo(p, _start_mark, _loop1_95_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026917 D(p->level--);
26918 return _seq;
26919}
26920
Brandt Bucher145bf262021-02-26 14:51:55 -080026921// _loop1_96: lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026922static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026923_loop1_96_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026924{
26925 D(p->level++);
26926 if (p->error_indicator) {
26927 D(p->level--);
26928 return NULL;
26929 }
26930 void *_res = NULL;
26931 int _mark = p->mark;
26932 int _start_mark = p->mark;
26933 void **_children = PyMem_Malloc(sizeof(void *));
26934 if (!_children) {
26935 p->error_indicator = 1;
26936 PyErr_NoMemory();
26937 D(p->level--);
26938 return NULL;
26939 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026940 Py_ssize_t _children_capacity = 1;
26941 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026942 { // lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026943 if (p->error_indicator) {
26944 D(p->level--);
26945 return NULL;
26946 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026947 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 +000026948 arg_ty lambda_param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026949 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026950 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026951 )
26952 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026953 _res = lambda_param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026954 if (_n == _children_capacity) {
26955 _children_capacity *= 2;
26956 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26957 if (!_new_children) {
26958 p->error_indicator = 1;
26959 PyErr_NoMemory();
26960 D(p->level--);
26961 return NULL;
26962 }
26963 _children = _new_children;
26964 }
26965 _children[_n++] = _res;
26966 _mark = p->mark;
26967 }
26968 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026969 D(fprintf(stderr, "%*c%s _loop1_96[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026970 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
26971 }
26972 if (_n == 0 || p->error_indicator) {
26973 PyMem_Free(_children);
26974 D(p->level--);
26975 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026976 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026977 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026978 if (!_seq) {
26979 PyMem_Free(_children);
26980 p->error_indicator = 1;
26981 PyErr_NoMemory();
26982 D(p->level--);
26983 return NULL;
26984 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026985 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026986 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026987 _PyPegen_insert_memo(p, _start_mark, _loop1_96_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026988 D(p->level--);
26989 return _seq;
26990}
26991
Brandt Bucher145bf262021-02-26 14:51:55 -080026992// _loop1_97: lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026993static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026994_loop1_97_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026995{
26996 D(p->level++);
26997 if (p->error_indicator) {
26998 D(p->level--);
26999 return NULL;
27000 }
27001 void *_res = NULL;
27002 int _mark = p->mark;
27003 int _start_mark = p->mark;
27004 void **_children = PyMem_Malloc(sizeof(void *));
27005 if (!_children) {
27006 p->error_indicator = 1;
27007 PyErr_NoMemory();
27008 D(p->level--);
27009 return NULL;
27010 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027011 Py_ssize_t _children_capacity = 1;
27012 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027013 { // lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027014 if (p->error_indicator) {
27015 D(p->level--);
27016 return NULL;
27017 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027018 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 +000027019 arg_ty lambda_param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027020 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027021 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027022 )
27023 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027024 _res = lambda_param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027025 if (_n == _children_capacity) {
27026 _children_capacity *= 2;
27027 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27028 if (!_new_children) {
27029 p->error_indicator = 1;
27030 PyErr_NoMemory();
27031 D(p->level--);
27032 return NULL;
27033 }
27034 _children = _new_children;
27035 }
27036 _children[_n++] = _res;
27037 _mark = p->mark;
27038 }
27039 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027040 D(fprintf(stderr, "%*c%s _loop1_97[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027041 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027042 }
27043 if (_n == 0 || p->error_indicator) {
27044 PyMem_Free(_children);
27045 D(p->level--);
27046 return NULL;
27047 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027048 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027049 if (!_seq) {
27050 PyMem_Free(_children);
27051 p->error_indicator = 1;
27052 PyErr_NoMemory();
27053 D(p->level--);
27054 return NULL;
27055 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027056 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027057 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080027058 _PyPegen_insert_memo(p, _start_mark, _loop1_97_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027059 D(p->level--);
27060 return _seq;
27061}
27062
Brandt Bucher145bf262021-02-26 14:51:55 -080027063// _loop0_98: lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027064static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027065_loop0_98_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027066{
27067 D(p->level++);
27068 if (p->error_indicator) {
27069 D(p->level--);
27070 return NULL;
27071 }
27072 void *_res = NULL;
27073 int _mark = p->mark;
27074 int _start_mark = p->mark;
27075 void **_children = PyMem_Malloc(sizeof(void *));
27076 if (!_children) {
27077 p->error_indicator = 1;
27078 PyErr_NoMemory();
27079 D(p->level--);
27080 return NULL;
27081 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027082 Py_ssize_t _children_capacity = 1;
27083 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027084 { // lambda_param_no_default
27085 if (p->error_indicator) {
27086 D(p->level--);
27087 return NULL;
27088 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027089 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 +010027090 arg_ty lambda_param_no_default_var;
27091 while (
27092 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
27093 )
27094 {
27095 _res = lambda_param_no_default_var;
27096 if (_n == _children_capacity) {
27097 _children_capacity *= 2;
27098 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27099 if (!_new_children) {
27100 p->error_indicator = 1;
27101 PyErr_NoMemory();
27102 D(p->level--);
27103 return NULL;
27104 }
27105 _children = _new_children;
27106 }
27107 _children[_n++] = _res;
27108 _mark = p->mark;
27109 }
27110 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027111 D(fprintf(stderr, "%*c%s _loop0_98[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027112 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
27113 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027114 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027115 if (!_seq) {
27116 PyMem_Free(_children);
27117 p->error_indicator = 1;
27118 PyErr_NoMemory();
27119 D(p->level--);
27120 return NULL;
27121 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027122 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027123 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080027124 _PyPegen_insert_memo(p, _start_mark, _loop0_98_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027125 D(p->level--);
27126 return _seq;
27127}
27128
Brandt Bucher145bf262021-02-26 14:51:55 -080027129// _loop1_99: lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027130static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027131_loop1_99_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027132{
27133 D(p->level++);
27134 if (p->error_indicator) {
27135 D(p->level--);
27136 return NULL;
27137 }
27138 void *_res = NULL;
27139 int _mark = p->mark;
27140 int _start_mark = p->mark;
27141 void **_children = PyMem_Malloc(sizeof(void *));
27142 if (!_children) {
27143 p->error_indicator = 1;
27144 PyErr_NoMemory();
27145 D(p->level--);
27146 return NULL;
27147 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027148 Py_ssize_t _children_capacity = 1;
27149 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027150 { // lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027151 if (p->error_indicator) {
27152 D(p->level--);
27153 return NULL;
27154 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027155 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 +000027156 NameDefaultPair* lambda_param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027157 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027158 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027159 )
27160 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027161 _res = lambda_param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027162 if (_n == _children_capacity) {
27163 _children_capacity *= 2;
27164 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27165 if (!_new_children) {
27166 p->error_indicator = 1;
27167 PyErr_NoMemory();
27168 D(p->level--);
27169 return NULL;
27170 }
27171 _children = _new_children;
27172 }
27173 _children[_n++] = _res;
27174 _mark = p->mark;
27175 }
27176 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027177 D(fprintf(stderr, "%*c%s _loop1_99[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027178 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027179 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027180 if (_n == 0 || p->error_indicator) {
27181 PyMem_Free(_children);
27182 D(p->level--);
27183 return NULL;
27184 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027185 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027186 if (!_seq) {
27187 PyMem_Free(_children);
27188 p->error_indicator = 1;
27189 PyErr_NoMemory();
27190 D(p->level--);
27191 return NULL;
27192 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027193 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027194 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080027195 _PyPegen_insert_memo(p, _start_mark, _loop1_99_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027196 D(p->level--);
27197 return _seq;
27198}
27199
Brandt Bucher145bf262021-02-26 14:51:55 -080027200// _loop0_100: lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027201static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027202_loop0_100_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027203{
27204 D(p->level++);
27205 if (p->error_indicator) {
27206 D(p->level--);
27207 return NULL;
27208 }
27209 void *_res = NULL;
27210 int _mark = p->mark;
27211 int _start_mark = p->mark;
27212 void **_children = PyMem_Malloc(sizeof(void *));
27213 if (!_children) {
27214 p->error_indicator = 1;
27215 PyErr_NoMemory();
27216 D(p->level--);
27217 return NULL;
27218 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027219 Py_ssize_t _children_capacity = 1;
27220 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027221 { // lambda_param_no_default
27222 if (p->error_indicator) {
27223 D(p->level--);
27224 return NULL;
27225 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027226 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 +010027227 arg_ty lambda_param_no_default_var;
27228 while (
27229 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
27230 )
27231 {
27232 _res = lambda_param_no_default_var;
27233 if (_n == _children_capacity) {
27234 _children_capacity *= 2;
27235 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27236 if (!_new_children) {
27237 p->error_indicator = 1;
27238 PyErr_NoMemory();
27239 D(p->level--);
27240 return NULL;
27241 }
27242 _children = _new_children;
27243 }
27244 _children[_n++] = _res;
27245 _mark = p->mark;
27246 }
27247 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027248 D(fprintf(stderr, "%*c%s _loop0_100[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027249 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
27250 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027251 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027252 if (!_seq) {
27253 PyMem_Free(_children);
27254 p->error_indicator = 1;
27255 PyErr_NoMemory();
27256 D(p->level--);
27257 return NULL;
27258 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027259 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027260 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080027261 _PyPegen_insert_memo(p, _start_mark, _loop0_100_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027262 D(p->level--);
27263 return _seq;
27264}
27265
Brandt Bucher145bf262021-02-26 14:51:55 -080027266// _loop1_101: lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027267static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027268_loop1_101_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027269{
27270 D(p->level++);
27271 if (p->error_indicator) {
27272 D(p->level--);
27273 return NULL;
27274 }
27275 void *_res = NULL;
27276 int _mark = p->mark;
27277 int _start_mark = p->mark;
27278 void **_children = PyMem_Malloc(sizeof(void *));
27279 if (!_children) {
27280 p->error_indicator = 1;
27281 PyErr_NoMemory();
27282 D(p->level--);
27283 return NULL;
27284 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027285 Py_ssize_t _children_capacity = 1;
27286 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027287 { // lambda_param_with_default
27288 if (p->error_indicator) {
27289 D(p->level--);
27290 return NULL;
27291 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027292 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 +010027293 NameDefaultPair* lambda_param_with_default_var;
27294 while (
27295 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
27296 )
27297 {
27298 _res = lambda_param_with_default_var;
27299 if (_n == _children_capacity) {
27300 _children_capacity *= 2;
27301 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27302 if (!_new_children) {
27303 p->error_indicator = 1;
27304 PyErr_NoMemory();
27305 D(p->level--);
27306 return NULL;
27307 }
27308 _children = _new_children;
27309 }
27310 _children[_n++] = _res;
27311 _mark = p->mark;
27312 }
27313 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027314 D(fprintf(stderr, "%*c%s _loop1_101[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027315 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
27316 }
27317 if (_n == 0 || p->error_indicator) {
27318 PyMem_Free(_children);
27319 D(p->level--);
27320 return NULL;
27321 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027322 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027323 if (!_seq) {
27324 PyMem_Free(_children);
27325 p->error_indicator = 1;
27326 PyErr_NoMemory();
27327 D(p->level--);
27328 return NULL;
27329 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027330 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027331 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080027332 _PyPegen_insert_memo(p, _start_mark, _loop1_101_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027333 D(p->level--);
27334 return _seq;
27335}
27336
Brandt Bucher145bf262021-02-26 14:51:55 -080027337// _loop0_102: lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027338static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027339_loop0_102_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027340{
27341 D(p->level++);
27342 if (p->error_indicator) {
27343 D(p->level--);
27344 return NULL;
27345 }
27346 void *_res = NULL;
27347 int _mark = p->mark;
27348 int _start_mark = p->mark;
27349 void **_children = PyMem_Malloc(sizeof(void *));
27350 if (!_children) {
27351 p->error_indicator = 1;
27352 PyErr_NoMemory();
27353 D(p->level--);
27354 return NULL;
27355 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027356 Py_ssize_t _children_capacity = 1;
27357 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027358 { // lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027359 if (p->error_indicator) {
27360 D(p->level--);
27361 return NULL;
27362 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027363 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 +000027364 NameDefaultPair* lambda_param_maybe_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027365 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027366 (lambda_param_maybe_default_var = lambda_param_maybe_default_rule(p)) // lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027367 )
27368 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027369 _res = lambda_param_maybe_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027370 if (_n == _children_capacity) {
27371 _children_capacity *= 2;
27372 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27373 if (!_new_children) {
27374 p->error_indicator = 1;
27375 PyErr_NoMemory();
27376 D(p->level--);
27377 return NULL;
27378 }
27379 _children = _new_children;
27380 }
27381 _children[_n++] = _res;
27382 _mark = p->mark;
27383 }
27384 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027385 D(fprintf(stderr, "%*c%s _loop0_102[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027386 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_maybe_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027387 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027388 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027389 if (!_seq) {
27390 PyMem_Free(_children);
27391 p->error_indicator = 1;
27392 PyErr_NoMemory();
27393 D(p->level--);
27394 return NULL;
27395 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027396 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027397 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080027398 _PyPegen_insert_memo(p, _start_mark, _loop0_102_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027399 D(p->level--);
27400 return _seq;
27401}
27402
Brandt Bucher145bf262021-02-26 14:51:55 -080027403// _loop1_103: lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027404static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027405_loop1_103_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027406{
27407 D(p->level++);
27408 if (p->error_indicator) {
27409 D(p->level--);
27410 return NULL;
27411 }
27412 void *_res = NULL;
27413 int _mark = p->mark;
27414 int _start_mark = p->mark;
27415 void **_children = PyMem_Malloc(sizeof(void *));
27416 if (!_children) {
27417 p->error_indicator = 1;
27418 PyErr_NoMemory();
27419 D(p->level--);
27420 return NULL;
27421 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027422 Py_ssize_t _children_capacity = 1;
27423 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027424 { // lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027425 if (p->error_indicator) {
27426 D(p->level--);
27427 return NULL;
27428 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027429 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 +000027430 NameDefaultPair* lambda_param_maybe_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027431 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027432 (lambda_param_maybe_default_var = lambda_param_maybe_default_rule(p)) // lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027433 )
27434 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027435 _res = lambda_param_maybe_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027436 if (_n == _children_capacity) {
27437 _children_capacity *= 2;
27438 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27439 if (!_new_children) {
27440 p->error_indicator = 1;
27441 PyErr_NoMemory();
27442 D(p->level--);
27443 return NULL;
27444 }
27445 _children = _new_children;
27446 }
27447 _children[_n++] = _res;
27448 _mark = p->mark;
27449 }
27450 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027451 D(fprintf(stderr, "%*c%s _loop1_103[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027452 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_maybe_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027453 }
27454 if (_n == 0 || p->error_indicator) {
27455 PyMem_Free(_children);
27456 D(p->level--);
27457 return NULL;
27458 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027459 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027460 if (!_seq) {
27461 PyMem_Free(_children);
27462 p->error_indicator = 1;
27463 PyErr_NoMemory();
27464 D(p->level--);
27465 return NULL;
27466 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027467 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027468 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080027469 _PyPegen_insert_memo(p, _start_mark, _loop1_103_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027470 D(p->level--);
27471 return _seq;
27472}
27473
Brandt Bucher145bf262021-02-26 14:51:55 -080027474// _loop1_104: ('or' conjunction)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030027475static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027476_loop1_104_rule(Parser *p)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030027477{
27478 D(p->level++);
27479 if (p->error_indicator) {
27480 D(p->level--);
27481 return NULL;
27482 }
27483 void *_res = NULL;
27484 int _mark = p->mark;
27485 int _start_mark = p->mark;
27486 void **_children = PyMem_Malloc(sizeof(void *));
27487 if (!_children) {
27488 p->error_indicator = 1;
27489 PyErr_NoMemory();
27490 D(p->level--);
27491 return NULL;
27492 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027493 Py_ssize_t _children_capacity = 1;
27494 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027495 { // ('or' conjunction)
27496 if (p->error_indicator) {
27497 D(p->level--);
27498 return NULL;
27499 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027500 D(fprintf(stderr, "%*c> _loop1_104[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('or' conjunction)"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070027501 void *_tmp_185_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027502 while (
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070027503 (_tmp_185_var = _tmp_185_rule(p)) // 'or' conjunction
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027504 )
27505 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070027506 _res = _tmp_185_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027507 if (_n == _children_capacity) {
27508 _children_capacity *= 2;
27509 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27510 if (!_new_children) {
27511 p->error_indicator = 1;
27512 PyErr_NoMemory();
27513 D(p->level--);
27514 return NULL;
27515 }
27516 _children = _new_children;
27517 }
27518 _children[_n++] = _res;
27519 _mark = p->mark;
27520 }
27521 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027522 D(fprintf(stderr, "%*c%s _loop1_104[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027523 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('or' conjunction)"));
27524 }
27525 if (_n == 0 || p->error_indicator) {
27526 PyMem_Free(_children);
27527 D(p->level--);
27528 return NULL;
27529 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027530 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027531 if (!_seq) {
27532 PyMem_Free(_children);
27533 p->error_indicator = 1;
27534 PyErr_NoMemory();
27535 D(p->level--);
27536 return NULL;
27537 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027538 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027539 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080027540 _PyPegen_insert_memo(p, _start_mark, _loop1_104_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027541 D(p->level--);
27542 return _seq;
27543}
27544
Brandt Bucher145bf262021-02-26 14:51:55 -080027545// _loop1_105: ('and' inversion)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027546static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027547_loop1_105_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027548{
27549 D(p->level++);
27550 if (p->error_indicator) {
27551 D(p->level--);
27552 return NULL;
27553 }
27554 void *_res = NULL;
27555 int _mark = p->mark;
27556 int _start_mark = p->mark;
27557 void **_children = PyMem_Malloc(sizeof(void *));
27558 if (!_children) {
27559 p->error_indicator = 1;
27560 PyErr_NoMemory();
27561 D(p->level--);
27562 return NULL;
27563 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027564 Py_ssize_t _children_capacity = 1;
27565 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027566 { // ('and' inversion)
27567 if (p->error_indicator) {
27568 D(p->level--);
27569 return NULL;
27570 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027571 D(fprintf(stderr, "%*c> _loop1_105[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('and' inversion)"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070027572 void *_tmp_186_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027573 while (
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070027574 (_tmp_186_var = _tmp_186_rule(p)) // 'and' inversion
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027575 )
27576 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070027577 _res = _tmp_186_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027578 if (_n == _children_capacity) {
27579 _children_capacity *= 2;
27580 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27581 if (!_new_children) {
27582 p->error_indicator = 1;
27583 PyErr_NoMemory();
27584 D(p->level--);
27585 return NULL;
27586 }
27587 _children = _new_children;
27588 }
27589 _children[_n++] = _res;
27590 _mark = p->mark;
27591 }
27592 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027593 D(fprintf(stderr, "%*c%s _loop1_105[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027594 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('and' inversion)"));
27595 }
27596 if (_n == 0 || p->error_indicator) {
27597 PyMem_Free(_children);
27598 D(p->level--);
27599 return NULL;
27600 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027601 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027602 if (!_seq) {
27603 PyMem_Free(_children);
27604 p->error_indicator = 1;
27605 PyErr_NoMemory();
27606 D(p->level--);
27607 return NULL;
27608 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027609 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027610 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080027611 _PyPegen_insert_memo(p, _start_mark, _loop1_105_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027612 D(p->level--);
27613 return _seq;
27614}
27615
Brandt Bucher145bf262021-02-26 14:51:55 -080027616// _loop1_106: compare_op_bitwise_or_pair
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027617static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027618_loop1_106_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027619{
27620 D(p->level++);
27621 if (p->error_indicator) {
27622 D(p->level--);
27623 return NULL;
27624 }
27625 void *_res = NULL;
27626 int _mark = p->mark;
27627 int _start_mark = p->mark;
27628 void **_children = PyMem_Malloc(sizeof(void *));
27629 if (!_children) {
27630 p->error_indicator = 1;
27631 PyErr_NoMemory();
27632 D(p->level--);
27633 return NULL;
27634 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027635 Py_ssize_t _children_capacity = 1;
27636 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027637 { // compare_op_bitwise_or_pair
27638 if (p->error_indicator) {
27639 D(p->level--);
27640 return NULL;
27641 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027642 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 +010027643 CmpopExprPair* compare_op_bitwise_or_pair_var;
27644 while (
27645 (compare_op_bitwise_or_pair_var = compare_op_bitwise_or_pair_rule(p)) // compare_op_bitwise_or_pair
27646 )
27647 {
27648 _res = compare_op_bitwise_or_pair_var;
27649 if (_n == _children_capacity) {
27650 _children_capacity *= 2;
27651 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27652 if (!_new_children) {
27653 p->error_indicator = 1;
27654 PyErr_NoMemory();
27655 D(p->level--);
27656 return NULL;
27657 }
27658 _children = _new_children;
27659 }
27660 _children[_n++] = _res;
27661 _mark = p->mark;
27662 }
27663 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027664 D(fprintf(stderr, "%*c%s _loop1_106[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027665 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "compare_op_bitwise_or_pair"));
27666 }
27667 if (_n == 0 || p->error_indicator) {
27668 PyMem_Free(_children);
27669 D(p->level--);
27670 return NULL;
27671 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027672 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027673 if (!_seq) {
27674 PyMem_Free(_children);
27675 p->error_indicator = 1;
27676 PyErr_NoMemory();
27677 D(p->level--);
27678 return NULL;
27679 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027680 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027681 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080027682 _PyPegen_insert_memo(p, _start_mark, _loop1_106_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027683 D(p->level--);
27684 return _seq;
27685}
27686
Brandt Bucher145bf262021-02-26 14:51:55 -080027687// _tmp_107: '!='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027688static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080027689_tmp_107_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027690{
27691 D(p->level++);
27692 if (p->error_indicator) {
27693 D(p->level--);
27694 return NULL;
27695 }
27696 void * _res = NULL;
27697 int _mark = p->mark;
27698 { // '!='
27699 if (p->error_indicator) {
27700 D(p->level--);
27701 return NULL;
27702 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027703 D(fprintf(stderr, "%*c> _tmp_107[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'!='"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027704 Token * tok;
27705 if (
27706 (tok = _PyPegen_expect_token(p, 28)) // token='!='
27707 )
27708 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027709 D(fprintf(stderr, "%*c+ _tmp_107[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'!='"));
Pablo Galindo06f8c332020-10-30 23:48:42 +000027710 _res = _PyPegen_check_barry_as_flufl ( p , tok ) ? NULL : tok;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027711 if (_res == NULL && PyErr_Occurred()) {
27712 p->error_indicator = 1;
27713 D(p->level--);
27714 return NULL;
27715 }
27716 goto done;
27717 }
27718 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027719 D(fprintf(stderr, "%*c%s _tmp_107[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027720 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'!='"));
27721 }
27722 _res = NULL;
27723 done:
27724 D(p->level--);
27725 return _res;
27726}
27727
Brandt Bucher145bf262021-02-26 14:51:55 -080027728// _loop0_109: ',' slice
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027729static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027730_loop0_109_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027731{
27732 D(p->level++);
27733 if (p->error_indicator) {
27734 D(p->level--);
27735 return NULL;
27736 }
27737 void *_res = NULL;
27738 int _mark = p->mark;
27739 int _start_mark = p->mark;
27740 void **_children = PyMem_Malloc(sizeof(void *));
27741 if (!_children) {
27742 p->error_indicator = 1;
27743 PyErr_NoMemory();
27744 D(p->level--);
27745 return NULL;
27746 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027747 Py_ssize_t _children_capacity = 1;
27748 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027749 { // ',' slice
27750 if (p->error_indicator) {
27751 D(p->level--);
27752 return NULL;
27753 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027754 D(fprintf(stderr, "%*c> _loop0_109[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' slice"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027755 Token * _literal;
27756 expr_ty elem;
27757 while (
27758 (_literal = _PyPegen_expect_token(p, 12)) // token=','
27759 &&
27760 (elem = slice_rule(p)) // slice
27761 )
27762 {
27763 _res = elem;
27764 if (_res == NULL && PyErr_Occurred()) {
27765 p->error_indicator = 1;
27766 PyMem_Free(_children);
27767 D(p->level--);
27768 return NULL;
27769 }
27770 if (_n == _children_capacity) {
27771 _children_capacity *= 2;
27772 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27773 if (!_new_children) {
27774 p->error_indicator = 1;
27775 PyErr_NoMemory();
27776 D(p->level--);
27777 return NULL;
27778 }
27779 _children = _new_children;
27780 }
27781 _children[_n++] = _res;
27782 _mark = p->mark;
27783 }
27784 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027785 D(fprintf(stderr, "%*c%s _loop0_109[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027786 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' slice"));
27787 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027788 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027789 if (!_seq) {
27790 PyMem_Free(_children);
27791 p->error_indicator = 1;
27792 PyErr_NoMemory();
27793 D(p->level--);
27794 return NULL;
27795 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027796 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027797 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080027798 _PyPegen_insert_memo(p, _start_mark, _loop0_109_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027799 D(p->level--);
27800 return _seq;
27801}
27802
Brandt Bucher145bf262021-02-26 14:51:55 -080027803// _gather_108: slice _loop0_109
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027804static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027805_gather_108_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027806{
27807 D(p->level++);
27808 if (p->error_indicator) {
27809 D(p->level--);
27810 return NULL;
27811 }
27812 asdl_seq * _res = NULL;
27813 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027814 { // slice _loop0_109
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027815 if (p->error_indicator) {
27816 D(p->level--);
27817 return NULL;
27818 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027819 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 +010027820 expr_ty elem;
27821 asdl_seq * seq;
27822 if (
27823 (elem = slice_rule(p)) // slice
27824 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080027825 (seq = _loop0_109_rule(p)) // _loop0_109
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027826 )
27827 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027828 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 +010027829 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
27830 goto done;
27831 }
27832 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027833 D(fprintf(stderr, "%*c%s _gather_108[%d-%d]: %s failed!\n", p->level, ' ',
27834 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slice _loop0_109"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027835 }
27836 _res = NULL;
27837 done:
27838 D(p->level--);
27839 return _res;
27840}
27841
Brandt Bucher145bf262021-02-26 14:51:55 -080027842// _tmp_110: ':' expression?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027843static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080027844_tmp_110_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027845{
27846 D(p->level++);
27847 if (p->error_indicator) {
27848 D(p->level--);
27849 return NULL;
27850 }
27851 void * _res = NULL;
27852 int _mark = p->mark;
27853 { // ':' expression?
27854 if (p->error_indicator) {
27855 D(p->level--);
27856 return NULL;
27857 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027858 D(fprintf(stderr, "%*c> _tmp_110[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':' expression?"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027859 Token * _literal;
27860 void *d;
27861 if (
27862 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
27863 &&
27864 (d = expression_rule(p), 1) // expression?
27865 )
27866 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027867 D(fprintf(stderr, "%*c+ _tmp_110[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':' expression?"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027868 _res = d;
27869 if (_res == NULL && PyErr_Occurred()) {
27870 p->error_indicator = 1;
27871 D(p->level--);
27872 return NULL;
27873 }
27874 goto done;
27875 }
27876 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027877 D(fprintf(stderr, "%*c%s _tmp_110[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027878 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':' expression?"));
27879 }
27880 _res = NULL;
27881 done:
27882 D(p->level--);
27883 return _res;
27884}
27885
Brandt Bucher145bf262021-02-26 14:51:55 -080027886// _tmp_111: tuple | group | genexp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027887static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080027888_tmp_111_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027889{
27890 D(p->level++);
27891 if (p->error_indicator) {
27892 D(p->level--);
27893 return NULL;
27894 }
27895 void * _res = NULL;
27896 int _mark = p->mark;
27897 { // tuple
27898 if (p->error_indicator) {
27899 D(p->level--);
27900 return NULL;
27901 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027902 D(fprintf(stderr, "%*c> _tmp_111[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "tuple"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027903 expr_ty tuple_var;
27904 if (
27905 (tuple_var = tuple_rule(p)) // tuple
27906 )
27907 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027908 D(fprintf(stderr, "%*c+ _tmp_111[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "tuple"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027909 _res = tuple_var;
27910 goto done;
27911 }
27912 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027913 D(fprintf(stderr, "%*c%s _tmp_111[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027914 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "tuple"));
27915 }
27916 { // group
27917 if (p->error_indicator) {
27918 D(p->level--);
27919 return NULL;
27920 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027921 D(fprintf(stderr, "%*c> _tmp_111[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "group"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027922 expr_ty group_var;
27923 if (
27924 (group_var = group_rule(p)) // group
27925 )
27926 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027927 D(fprintf(stderr, "%*c+ _tmp_111[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "group"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027928 _res = group_var;
27929 goto done;
27930 }
27931 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027932 D(fprintf(stderr, "%*c%s _tmp_111[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027933 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "group"));
27934 }
27935 { // genexp
27936 if (p->error_indicator) {
27937 D(p->level--);
27938 return NULL;
27939 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027940 D(fprintf(stderr, "%*c> _tmp_111[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "genexp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027941 expr_ty genexp_var;
27942 if (
27943 (genexp_var = genexp_rule(p)) // genexp
27944 )
27945 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027946 D(fprintf(stderr, "%*c+ _tmp_111[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "genexp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027947 _res = genexp_var;
27948 goto done;
27949 }
27950 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027951 D(fprintf(stderr, "%*c%s _tmp_111[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027952 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "genexp"));
27953 }
27954 _res = NULL;
27955 done:
27956 D(p->level--);
27957 return _res;
27958}
27959
Brandt Bucher145bf262021-02-26 14:51:55 -080027960// _tmp_112: list | listcomp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027961static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080027962_tmp_112_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027963{
27964 D(p->level++);
27965 if (p->error_indicator) {
27966 D(p->level--);
27967 return NULL;
27968 }
27969 void * _res = NULL;
27970 int _mark = p->mark;
27971 { // list
27972 if (p->error_indicator) {
27973 D(p->level--);
27974 return NULL;
27975 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027976 D(fprintf(stderr, "%*c> _tmp_112[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "list"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027977 expr_ty list_var;
27978 if (
27979 (list_var = list_rule(p)) // list
27980 )
27981 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027982 D(fprintf(stderr, "%*c+ _tmp_112[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "list"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027983 _res = list_var;
27984 goto done;
27985 }
27986 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027987 D(fprintf(stderr, "%*c%s _tmp_112[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027988 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "list"));
27989 }
27990 { // listcomp
27991 if (p->error_indicator) {
27992 D(p->level--);
27993 return NULL;
27994 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027995 D(fprintf(stderr, "%*c> _tmp_112[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "listcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027996 expr_ty listcomp_var;
27997 if (
27998 (listcomp_var = listcomp_rule(p)) // listcomp
27999 )
28000 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028001 D(fprintf(stderr, "%*c+ _tmp_112[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "listcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028002 _res = listcomp_var;
28003 goto done;
28004 }
28005 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028006 D(fprintf(stderr, "%*c%s _tmp_112[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028007 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "listcomp"));
28008 }
28009 _res = NULL;
28010 done:
28011 D(p->level--);
28012 return _res;
28013}
28014
Brandt Bucher145bf262021-02-26 14:51:55 -080028015// _tmp_113: dict | set | dictcomp | setcomp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028016static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080028017_tmp_113_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028018{
28019 D(p->level++);
28020 if (p->error_indicator) {
28021 D(p->level--);
28022 return NULL;
28023 }
28024 void * _res = NULL;
28025 int _mark = p->mark;
28026 { // dict
28027 if (p->error_indicator) {
28028 D(p->level--);
28029 return NULL;
28030 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028031 D(fprintf(stderr, "%*c> _tmp_113[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dict"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028032 expr_ty dict_var;
28033 if (
28034 (dict_var = dict_rule(p)) // dict
28035 )
28036 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028037 D(fprintf(stderr, "%*c+ _tmp_113[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dict"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028038 _res = dict_var;
28039 goto done;
28040 }
28041 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028042 D(fprintf(stderr, "%*c%s _tmp_113[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028043 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dict"));
28044 }
28045 { // set
28046 if (p->error_indicator) {
28047 D(p->level--);
28048 return NULL;
28049 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028050 D(fprintf(stderr, "%*c> _tmp_113[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "set"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028051 expr_ty set_var;
28052 if (
28053 (set_var = set_rule(p)) // set
28054 )
28055 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028056 D(fprintf(stderr, "%*c+ _tmp_113[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "set"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028057 _res = set_var;
28058 goto done;
28059 }
28060 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028061 D(fprintf(stderr, "%*c%s _tmp_113[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028062 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "set"));
28063 }
28064 { // dictcomp
28065 if (p->error_indicator) {
28066 D(p->level--);
28067 return NULL;
28068 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028069 D(fprintf(stderr, "%*c> _tmp_113[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dictcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028070 expr_ty dictcomp_var;
28071 if (
28072 (dictcomp_var = dictcomp_rule(p)) // dictcomp
28073 )
28074 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028075 D(fprintf(stderr, "%*c+ _tmp_113[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dictcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028076 _res = dictcomp_var;
28077 goto done;
28078 }
28079 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028080 D(fprintf(stderr, "%*c%s _tmp_113[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028081 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dictcomp"));
28082 }
28083 { // setcomp
28084 if (p->error_indicator) {
28085 D(p->level--);
28086 return NULL;
28087 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028088 D(fprintf(stderr, "%*c> _tmp_113[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "setcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028089 expr_ty setcomp_var;
28090 if (
28091 (setcomp_var = setcomp_rule(p)) // setcomp
28092 )
28093 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028094 D(fprintf(stderr, "%*c+ _tmp_113[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "setcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028095 _res = setcomp_var;
28096 goto done;
28097 }
28098 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028099 D(fprintf(stderr, "%*c%s _tmp_113[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028100 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "setcomp"));
28101 }
28102 _res = NULL;
28103 done:
28104 D(p->level--);
28105 return _res;
28106}
28107
Brandt Bucher145bf262021-02-26 14:51:55 -080028108// _loop1_114: STRING
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028109static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080028110_loop1_114_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028111{
28112 D(p->level++);
28113 if (p->error_indicator) {
28114 D(p->level--);
28115 return NULL;
28116 }
28117 void *_res = NULL;
28118 int _mark = p->mark;
28119 int _start_mark = p->mark;
28120 void **_children = PyMem_Malloc(sizeof(void *));
28121 if (!_children) {
28122 p->error_indicator = 1;
28123 PyErr_NoMemory();
28124 D(p->level--);
28125 return NULL;
28126 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010028127 Py_ssize_t _children_capacity = 1;
28128 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028129 { // STRING
28130 if (p->error_indicator) {
28131 D(p->level--);
28132 return NULL;
28133 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028134 D(fprintf(stderr, "%*c> _loop1_114[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "STRING"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028135 expr_ty string_var;
28136 while (
28137 (string_var = _PyPegen_string_token(p)) // STRING
28138 )
28139 {
28140 _res = string_var;
28141 if (_n == _children_capacity) {
28142 _children_capacity *= 2;
28143 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28144 if (!_new_children) {
28145 p->error_indicator = 1;
28146 PyErr_NoMemory();
28147 D(p->level--);
28148 return NULL;
28149 }
28150 _children = _new_children;
28151 }
28152 _children[_n++] = _res;
28153 _mark = p->mark;
28154 }
28155 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028156 D(fprintf(stderr, "%*c%s _loop1_114[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028157 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "STRING"));
28158 }
28159 if (_n == 0 || p->error_indicator) {
28160 PyMem_Free(_children);
28161 D(p->level--);
28162 return NULL;
28163 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010028164 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028165 if (!_seq) {
28166 PyMem_Free(_children);
28167 p->error_indicator = 1;
28168 PyErr_NoMemory();
28169 D(p->level--);
28170 return NULL;
28171 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010028172 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028173 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080028174 _PyPegen_insert_memo(p, _start_mark, _loop1_114_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028175 D(p->level--);
28176 return _seq;
28177}
28178
Brandt Bucher145bf262021-02-26 14:51:55 -080028179// _tmp_115: star_named_expression ',' star_named_expressions?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028180static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080028181_tmp_115_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028182{
28183 D(p->level++);
28184 if (p->error_indicator) {
28185 D(p->level--);
28186 return NULL;
28187 }
28188 void * _res = NULL;
28189 int _mark = p->mark;
28190 { // star_named_expression ',' star_named_expressions?
28191 if (p->error_indicator) {
28192 D(p->level--);
28193 return NULL;
28194 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028195 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 +010028196 Token * _literal;
28197 expr_ty y;
28198 void *z;
28199 if (
28200 (y = star_named_expression_rule(p)) // star_named_expression
28201 &&
28202 (_literal = _PyPegen_expect_token(p, 12)) // token=','
28203 &&
28204 (z = star_named_expressions_rule(p), 1) // star_named_expressions?
28205 )
28206 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028207 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 +010028208 _res = _PyPegen_seq_insert_in_front ( p , y , z );
28209 if (_res == NULL && PyErr_Occurred()) {
28210 p->error_indicator = 1;
28211 D(p->level--);
28212 return NULL;
28213 }
28214 goto done;
28215 }
28216 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028217 D(fprintf(stderr, "%*c%s _tmp_115[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028218 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression ',' star_named_expressions?"));
28219 }
28220 _res = NULL;
28221 done:
28222 D(p->level--);
28223 return _res;
28224}
28225
Brandt Bucher145bf262021-02-26 14:51:55 -080028226// _tmp_116: yield_expr | named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028227static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080028228_tmp_116_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028229{
28230 D(p->level++);
28231 if (p->error_indicator) {
28232 D(p->level--);
28233 return NULL;
28234 }
28235 void * _res = NULL;
28236 int _mark = p->mark;
28237 { // yield_expr
28238 if (p->error_indicator) {
28239 D(p->level--);
28240 return NULL;
28241 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028242 D(fprintf(stderr, "%*c> _tmp_116[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028243 expr_ty yield_expr_var;
28244 if (
28245 (yield_expr_var = yield_expr_rule(p)) // yield_expr
28246 )
28247 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028248 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 +010028249 _res = yield_expr_var;
28250 goto done;
28251 }
28252 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028253 D(fprintf(stderr, "%*c%s _tmp_116[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028254 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
28255 }
28256 { // named_expression
28257 if (p->error_indicator) {
28258 D(p->level--);
28259 return NULL;
28260 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028261 D(fprintf(stderr, "%*c> _tmp_116[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028262 expr_ty named_expression_var;
28263 if (
28264 (named_expression_var = named_expression_rule(p)) // named_expression
28265 )
28266 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028267 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 +010028268 _res = named_expression_var;
28269 goto done;
28270 }
28271 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028272 D(fprintf(stderr, "%*c%s _tmp_116[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028273 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression"));
28274 }
28275 _res = NULL;
28276 done:
28277 D(p->level--);
28278 return _res;
28279}
28280
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028281// _tmp_117: assigment_expression | expression !':='
28282static void *
28283_tmp_117_rule(Parser *p)
28284{
28285 D(p->level++);
28286 if (p->error_indicator) {
28287 D(p->level--);
28288 return NULL;
28289 }
28290 void * _res = NULL;
28291 int _mark = p->mark;
28292 { // assigment_expression
28293 if (p->error_indicator) {
28294 D(p->level--);
28295 return NULL;
28296 }
28297 D(fprintf(stderr, "%*c> _tmp_117[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "assigment_expression"));
28298 expr_ty assigment_expression_var;
28299 if (
28300 (assigment_expression_var = assigment_expression_rule(p)) // assigment_expression
28301 )
28302 {
28303 D(fprintf(stderr, "%*c+ _tmp_117[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "assigment_expression"));
28304 _res = assigment_expression_var;
28305 goto done;
28306 }
28307 p->mark = _mark;
28308 D(fprintf(stderr, "%*c%s _tmp_117[%d-%d]: %s failed!\n", p->level, ' ',
28309 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "assigment_expression"));
28310 }
28311 { // expression !':='
28312 if (p->error_indicator) {
28313 D(p->level--);
28314 return NULL;
28315 }
28316 D(fprintf(stderr, "%*c> _tmp_117[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression !':='"));
28317 expr_ty expression_var;
28318 if (
28319 (expression_var = expression_rule(p)) // expression
28320 &&
28321 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 53) // token=':='
28322 )
28323 {
28324 D(fprintf(stderr, "%*c+ _tmp_117[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression !':='"));
28325 _res = expression_var;
28326 goto done;
28327 }
28328 p->mark = _mark;
28329 D(fprintf(stderr, "%*c%s _tmp_117[%d-%d]: %s failed!\n", p->level, ' ',
28330 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression !':='"));
28331 }
28332 _res = NULL;
28333 done:
28334 D(p->level--);
28335 return _res;
28336}
28337
28338// _loop0_119: ',' double_starred_kvpair
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028339static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028340_loop0_119_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028341{
28342 D(p->level++);
28343 if (p->error_indicator) {
28344 D(p->level--);
28345 return NULL;
28346 }
28347 void *_res = NULL;
28348 int _mark = p->mark;
28349 int _start_mark = p->mark;
28350 void **_children = PyMem_Malloc(sizeof(void *));
28351 if (!_children) {
28352 p->error_indicator = 1;
28353 PyErr_NoMemory();
28354 D(p->level--);
28355 return NULL;
28356 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010028357 Py_ssize_t _children_capacity = 1;
28358 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028359 { // ',' double_starred_kvpair
28360 if (p->error_indicator) {
28361 D(p->level--);
28362 return NULL;
28363 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028364 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 +010028365 Token * _literal;
28366 KeyValuePair* elem;
28367 while (
28368 (_literal = _PyPegen_expect_token(p, 12)) // token=','
28369 &&
28370 (elem = double_starred_kvpair_rule(p)) // double_starred_kvpair
28371 )
28372 {
28373 _res = elem;
28374 if (_res == NULL && PyErr_Occurred()) {
28375 p->error_indicator = 1;
28376 PyMem_Free(_children);
28377 D(p->level--);
28378 return NULL;
28379 }
28380 if (_n == _children_capacity) {
28381 _children_capacity *= 2;
28382 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28383 if (!_new_children) {
28384 p->error_indicator = 1;
28385 PyErr_NoMemory();
28386 D(p->level--);
28387 return NULL;
28388 }
28389 _children = _new_children;
28390 }
28391 _children[_n++] = _res;
28392 _mark = p->mark;
28393 }
28394 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028395 D(fprintf(stderr, "%*c%s _loop0_119[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028396 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' double_starred_kvpair"));
28397 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010028398 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028399 if (!_seq) {
28400 PyMem_Free(_children);
28401 p->error_indicator = 1;
28402 PyErr_NoMemory();
28403 D(p->level--);
28404 return NULL;
28405 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010028406 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028407 PyMem_Free(_children);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028408 _PyPegen_insert_memo(p, _start_mark, _loop0_119_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028409 D(p->level--);
28410 return _seq;
28411}
28412
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028413// _gather_118: double_starred_kvpair _loop0_119
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028414static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028415_gather_118_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028416{
28417 D(p->level++);
28418 if (p->error_indicator) {
28419 D(p->level--);
28420 return NULL;
28421 }
28422 asdl_seq * _res = NULL;
28423 int _mark = p->mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028424 { // double_starred_kvpair _loop0_119
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028425 if (p->error_indicator) {
28426 D(p->level--);
28427 return NULL;
28428 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028429 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 +010028430 KeyValuePair* elem;
28431 asdl_seq * seq;
28432 if (
28433 (elem = double_starred_kvpair_rule(p)) // double_starred_kvpair
28434 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028435 (seq = _loop0_119_rule(p)) // _loop0_119
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028436 )
28437 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028438 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 +010028439 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
28440 goto done;
28441 }
28442 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028443 D(fprintf(stderr, "%*c%s _gather_118[%d-%d]: %s failed!\n", p->level, ' ',
28444 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "double_starred_kvpair _loop0_119"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028445 }
28446 _res = NULL;
28447 done:
28448 D(p->level--);
28449 return _res;
28450}
28451
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028452// _loop1_120: for_if_clause
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028453static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028454_loop1_120_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028455{
28456 D(p->level++);
28457 if (p->error_indicator) {
28458 D(p->level--);
28459 return NULL;
28460 }
28461 void *_res = NULL;
28462 int _mark = p->mark;
28463 int _start_mark = p->mark;
28464 void **_children = PyMem_Malloc(sizeof(void *));
28465 if (!_children) {
28466 p->error_indicator = 1;
28467 PyErr_NoMemory();
28468 D(p->level--);
28469 return NULL;
28470 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010028471 Py_ssize_t _children_capacity = 1;
28472 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028473 { // for_if_clause
28474 if (p->error_indicator) {
28475 D(p->level--);
28476 return NULL;
28477 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028478 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 +010028479 comprehension_ty for_if_clause_var;
28480 while (
28481 (for_if_clause_var = for_if_clause_rule(p)) // for_if_clause
28482 )
28483 {
28484 _res = for_if_clause_var;
28485 if (_n == _children_capacity) {
28486 _children_capacity *= 2;
28487 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28488 if (!_new_children) {
28489 p->error_indicator = 1;
28490 PyErr_NoMemory();
28491 D(p->level--);
28492 return NULL;
28493 }
28494 _children = _new_children;
28495 }
28496 _children[_n++] = _res;
28497 _mark = p->mark;
28498 }
28499 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028500 D(fprintf(stderr, "%*c%s _loop1_120[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028501 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "for_if_clause"));
28502 }
28503 if (_n == 0 || p->error_indicator) {
28504 PyMem_Free(_children);
28505 D(p->level--);
28506 return NULL;
28507 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010028508 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028509 if (!_seq) {
28510 PyMem_Free(_children);
28511 p->error_indicator = 1;
28512 PyErr_NoMemory();
28513 D(p->level--);
28514 return NULL;
28515 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010028516 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028517 PyMem_Free(_children);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028518 _PyPegen_insert_memo(p, _start_mark, _loop1_120_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028519 D(p->level--);
28520 return _seq;
28521}
28522
Brandt Bucher145bf262021-02-26 14:51:55 -080028523// _loop0_121: ('if' disjunction)
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028524static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080028525_loop0_121_rule(Parser *p)
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028526{
28527 D(p->level++);
28528 if (p->error_indicator) {
28529 D(p->level--);
28530 return NULL;
28531 }
28532 void *_res = NULL;
28533 int _mark = p->mark;
28534 int _start_mark = p->mark;
28535 void **_children = PyMem_Malloc(sizeof(void *));
28536 if (!_children) {
28537 p->error_indicator = 1;
28538 PyErr_NoMemory();
28539 D(p->level--);
28540 return NULL;
28541 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010028542 Py_ssize_t _children_capacity = 1;
28543 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028544 { // ('if' disjunction)
28545 if (p->error_indicator) {
28546 D(p->level--);
28547 return NULL;
28548 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028549 D(fprintf(stderr, "%*c> _loop0_121[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('if' disjunction)"));
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070028550 void *_tmp_187_var;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028551 while (
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070028552 (_tmp_187_var = _tmp_187_rule(p)) // 'if' disjunction
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028553 )
28554 {
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070028555 _res = _tmp_187_var;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028556 if (_n == _children_capacity) {
28557 _children_capacity *= 2;
28558 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28559 if (!_new_children) {
28560 p->error_indicator = 1;
28561 PyErr_NoMemory();
28562 D(p->level--);
28563 return NULL;
28564 }
28565 _children = _new_children;
28566 }
28567 _children[_n++] = _res;
28568 _mark = p->mark;
28569 }
28570 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028571 D(fprintf(stderr, "%*c%s _loop0_121[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028572 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('if' disjunction)"));
28573 }
28574 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
28575 if (!_seq) {
28576 PyMem_Free(_children);
28577 p->error_indicator = 1;
28578 PyErr_NoMemory();
28579 D(p->level--);
28580 return NULL;
28581 }
28582 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
28583 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080028584 _PyPegen_insert_memo(p, _start_mark, _loop0_121_type, _seq);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028585 D(p->level--);
28586 return _seq;
28587}
28588
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028589// _loop0_122: ('if' disjunction)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030028590static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028591_loop0_122_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028592{
28593 D(p->level++);
28594 if (p->error_indicator) {
28595 D(p->level--);
28596 return NULL;
28597 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030028598 void *_res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028599 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030028600 int _start_mark = p->mark;
28601 void **_children = PyMem_Malloc(sizeof(void *));
28602 if (!_children) {
28603 p->error_indicator = 1;
28604 PyErr_NoMemory();
28605 D(p->level--);
28606 return NULL;
28607 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010028608 Py_ssize_t _children_capacity = 1;
28609 Py_ssize_t _n = 0;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028610 { // ('if' disjunction)
Pablo Galindo4a97b152020-09-02 17:44:19 +010028611 if (p->error_indicator) {
28612 D(p->level--);
28613 return NULL;
28614 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028615 D(fprintf(stderr, "%*c> _loop0_122[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('if' disjunction)"));
28616 void *_tmp_188_var;
28617 while (
28618 (_tmp_188_var = _tmp_188_rule(p)) // 'if' disjunction
28619 )
28620 {
28621 _res = _tmp_188_var;
28622 if (_n == _children_capacity) {
28623 _children_capacity *= 2;
28624 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28625 if (!_new_children) {
28626 p->error_indicator = 1;
28627 PyErr_NoMemory();
28628 D(p->level--);
28629 return NULL;
28630 }
28631 _children = _new_children;
28632 }
28633 _children[_n++] = _res;
28634 _mark = p->mark;
28635 }
28636 p->mark = _mark;
28637 D(fprintf(stderr, "%*c%s _loop0_122[%d-%d]: %s failed!\n", p->level, ' ',
28638 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('if' disjunction)"));
28639 }
28640 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
28641 if (!_seq) {
28642 PyMem_Free(_children);
28643 p->error_indicator = 1;
28644 PyErr_NoMemory();
28645 D(p->level--);
28646 return NULL;
28647 }
28648 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
28649 PyMem_Free(_children);
28650 _PyPegen_insert_memo(p, _start_mark, _loop0_122_type, _seq);
28651 D(p->level--);
28652 return _seq;
28653}
28654
28655// _loop0_124: ',' (starred_expression | (assigment_expression | expression !':=') !'=')
28656static asdl_seq *
28657_loop0_124_rule(Parser *p)
28658{
28659 D(p->level++);
28660 if (p->error_indicator) {
28661 D(p->level--);
28662 return NULL;
28663 }
28664 void *_res = NULL;
28665 int _mark = p->mark;
28666 int _start_mark = p->mark;
28667 void **_children = PyMem_Malloc(sizeof(void *));
28668 if (!_children) {
28669 p->error_indicator = 1;
28670 PyErr_NoMemory();
28671 D(p->level--);
28672 return NULL;
28673 }
28674 Py_ssize_t _children_capacity = 1;
28675 Py_ssize_t _n = 0;
28676 { // ',' (starred_expression | (assigment_expression | expression !':=') !'=')
28677 if (p->error_indicator) {
28678 D(p->level--);
28679 return NULL;
28680 }
28681 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 +010028682 Token * _literal;
28683 void *elem;
28684 while (
28685 (_literal = _PyPegen_expect_token(p, 12)) // token=','
28686 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028687 (elem = _tmp_189_rule(p)) // starred_expression | (assigment_expression | expression !':=') !'='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028688 )
28689 {
28690 _res = elem;
28691 if (_res == NULL && PyErr_Occurred()) {
28692 p->error_indicator = 1;
28693 PyMem_Free(_children);
28694 D(p->level--);
28695 return NULL;
28696 }
28697 if (_n == _children_capacity) {
28698 _children_capacity *= 2;
28699 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28700 if (!_new_children) {
28701 p->error_indicator = 1;
28702 PyErr_NoMemory();
28703 D(p->level--);
28704 return NULL;
28705 }
28706 _children = _new_children;
28707 }
28708 _children[_n++] = _res;
28709 _mark = p->mark;
28710 }
28711 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028712 D(fprintf(stderr, "%*c%s _loop0_124[%d-%d]: %s failed!\n", p->level, ' ',
28713 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (starred_expression | (assigment_expression | expression !':=') !'=')"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028714 }
28715 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
28716 if (!_seq) {
28717 PyMem_Free(_children);
28718 p->error_indicator = 1;
28719 PyErr_NoMemory();
28720 D(p->level--);
28721 return NULL;
28722 }
28723 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
28724 PyMem_Free(_children);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028725 _PyPegen_insert_memo(p, _start_mark, _loop0_124_type, _seq);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028726 D(p->level--);
28727 return _seq;
28728}
28729
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028730// _gather_123:
28731// | (starred_expression | (assigment_expression | expression !':=') !'=') _loop0_124
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028732static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028733_gather_123_rule(Parser *p)
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028734{
28735 D(p->level++);
28736 if (p->error_indicator) {
28737 D(p->level--);
28738 return NULL;
28739 }
28740 asdl_seq * _res = NULL;
28741 int _mark = p->mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028742 { // (starred_expression | (assigment_expression | expression !':=') !'=') _loop0_124
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028743 if (p->error_indicator) {
28744 D(p->level--);
28745 return NULL;
28746 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028747 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 -080028748 void *elem;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028749 asdl_seq * seq;
28750 if (
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028751 (elem = _tmp_189_rule(p)) // starred_expression | (assigment_expression | expression !':=') !'='
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028752 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028753 (seq = _loop0_124_rule(p)) // _loop0_124
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028754 )
28755 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028756 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 +000028757 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
28758 goto done;
28759 }
28760 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028761 D(fprintf(stderr, "%*c%s _gather_123[%d-%d]: %s failed!\n", p->level, ' ',
28762 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(starred_expression | (assigment_expression | expression !':=') !'=') _loop0_124"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028763 }
28764 _res = NULL;
28765 done:
28766 D(p->level--);
28767 return _res;
28768}
28769
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028770// _tmp_125: ',' kwargs
Brandt Bucher145bf262021-02-26 14:51:55 -080028771static void *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028772_tmp_125_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080028773{
28774 D(p->level++);
28775 if (p->error_indicator) {
28776 D(p->level--);
28777 return NULL;
28778 }
28779 void * _res = NULL;
28780 int _mark = p->mark;
28781 { // ',' kwargs
28782 if (p->error_indicator) {
28783 D(p->level--);
28784 return NULL;
28785 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028786 D(fprintf(stderr, "%*c> _tmp_125[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwargs"));
Brandt Bucher145bf262021-02-26 14:51:55 -080028787 Token * _literal;
28788 asdl_seq* k;
28789 if (
28790 (_literal = _PyPegen_expect_token(p, 12)) // token=','
28791 &&
28792 (k = kwargs_rule(p)) // kwargs
28793 )
28794 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028795 D(fprintf(stderr, "%*c+ _tmp_125[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' kwargs"));
Brandt Bucher145bf262021-02-26 14:51:55 -080028796 _res = k;
28797 if (_res == NULL && PyErr_Occurred()) {
28798 p->error_indicator = 1;
28799 D(p->level--);
28800 return NULL;
28801 }
28802 goto done;
28803 }
28804 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028805 D(fprintf(stderr, "%*c%s _tmp_125[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080028806 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwargs"));
28807 }
28808 _res = NULL;
28809 done:
28810 D(p->level--);
28811 return _res;
28812}
28813
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028814// _loop0_127: ',' kwarg_or_starred
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028815static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028816_loop0_127_rule(Parser *p)
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028817{
28818 D(p->level++);
28819 if (p->error_indicator) {
28820 D(p->level--);
28821 return NULL;
28822 }
28823 void *_res = NULL;
28824 int _mark = p->mark;
28825 int _start_mark = p->mark;
28826 void **_children = PyMem_Malloc(sizeof(void *));
28827 if (!_children) {
28828 p->error_indicator = 1;
28829 PyErr_NoMemory();
28830 D(p->level--);
28831 return NULL;
28832 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010028833 Py_ssize_t _children_capacity = 1;
28834 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080028835 { // ',' kwarg_or_starred
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028836 if (p->error_indicator) {
28837 D(p->level--);
28838 return NULL;
28839 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028840 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 +000028841 Token * _literal;
Brandt Bucher145bf262021-02-26 14:51:55 -080028842 KeywordOrStarred* elem;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028843 while (
28844 (_literal = _PyPegen_expect_token(p, 12)) // token=','
28845 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080028846 (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028847 )
28848 {
28849 _res = elem;
28850 if (_res == NULL && PyErr_Occurred()) {
28851 p->error_indicator = 1;
28852 PyMem_Free(_children);
28853 D(p->level--);
28854 return NULL;
28855 }
28856 if (_n == _children_capacity) {
28857 _children_capacity *= 2;
28858 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28859 if (!_new_children) {
28860 p->error_indicator = 1;
28861 PyErr_NoMemory();
28862 D(p->level--);
28863 return NULL;
28864 }
28865 _children = _new_children;
28866 }
28867 _children[_n++] = _res;
28868 _mark = p->mark;
28869 }
28870 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028871 D(fprintf(stderr, "%*c%s _loop0_127[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080028872 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_starred"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028873 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010028874 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028875 if (!_seq) {
28876 PyMem_Free(_children);
28877 p->error_indicator = 1;
28878 PyErr_NoMemory();
28879 D(p->level--);
28880 return NULL;
28881 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010028882 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028883 PyMem_Free(_children);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028884 _PyPegen_insert_memo(p, _start_mark, _loop0_127_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028885 D(p->level--);
28886 return _seq;
28887}
28888
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028889// _gather_126: kwarg_or_starred _loop0_127
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028890static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028891_gather_126_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028892{
28893 D(p->level++);
28894 if (p->error_indicator) {
28895 D(p->level--);
28896 return NULL;
28897 }
28898 asdl_seq * _res = NULL;
28899 int _mark = p->mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028900 { // kwarg_or_starred _loop0_127
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028901 if (p->error_indicator) {
28902 D(p->level--);
28903 return NULL;
28904 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028905 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 -080028906 KeywordOrStarred* elem;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028907 asdl_seq * seq;
28908 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080028909 (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028910 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028911 (seq = _loop0_127_rule(p)) // _loop0_127
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028912 )
28913 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028914 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 +010028915 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
28916 goto done;
28917 }
28918 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028919 D(fprintf(stderr, "%*c%s _gather_126[%d-%d]: %s failed!\n", p->level, ' ',
28920 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_starred _loop0_127"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028921 }
28922 _res = NULL;
28923 done:
28924 D(p->level--);
28925 return _res;
28926}
28927
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028928// _loop0_129: ',' kwarg_or_double_starred
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028929static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028930_loop0_129_rule(Parser *p)
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028931{
28932 D(p->level++);
28933 if (p->error_indicator) {
28934 D(p->level--);
28935 return NULL;
28936 }
28937 void *_res = NULL;
28938 int _mark = p->mark;
28939 int _start_mark = p->mark;
28940 void **_children = PyMem_Malloc(sizeof(void *));
28941 if (!_children) {
28942 p->error_indicator = 1;
28943 PyErr_NoMemory();
28944 D(p->level--);
28945 return NULL;
28946 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010028947 Py_ssize_t _children_capacity = 1;
28948 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080028949 { // ',' kwarg_or_double_starred
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028950 if (p->error_indicator) {
28951 D(p->level--);
28952 return NULL;
28953 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028954 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 -080028955 Token * _literal;
28956 KeywordOrStarred* elem;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028957 while (
Brandt Bucher145bf262021-02-26 14:51:55 -080028958 (_literal = _PyPegen_expect_token(p, 12)) // token=','
28959 &&
28960 (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028961 )
28962 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028963 _res = elem;
28964 if (_res == NULL && PyErr_Occurred()) {
28965 p->error_indicator = 1;
28966 PyMem_Free(_children);
28967 D(p->level--);
28968 return NULL;
28969 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028970 if (_n == _children_capacity) {
28971 _children_capacity *= 2;
28972 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28973 if (!_new_children) {
28974 p->error_indicator = 1;
28975 PyErr_NoMemory();
28976 D(p->level--);
28977 return NULL;
28978 }
28979 _children = _new_children;
28980 }
28981 _children[_n++] = _res;
28982 _mark = p->mark;
28983 }
28984 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028985 D(fprintf(stderr, "%*c%s _loop0_129[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080028986 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_double_starred"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028987 }
28988 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
28989 if (!_seq) {
28990 PyMem_Free(_children);
28991 p->error_indicator = 1;
28992 PyErr_NoMemory();
28993 D(p->level--);
28994 return NULL;
28995 }
28996 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
28997 PyMem_Free(_children);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028998 _PyPegen_insert_memo(p, _start_mark, _loop0_129_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028999 D(p->level--);
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030029000 return _seq;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029001}
29002
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029003// _gather_128: kwarg_or_double_starred _loop0_129
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020029004static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029005_gather_128_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080029006{
29007 D(p->level++);
29008 if (p->error_indicator) {
29009 D(p->level--);
29010 return NULL;
29011 }
29012 asdl_seq * _res = NULL;
29013 int _mark = p->mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029014 { // kwarg_or_double_starred _loop0_129
Brandt Bucher145bf262021-02-26 14:51:55 -080029015 if (p->error_indicator) {
29016 D(p->level--);
29017 return NULL;
29018 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029019 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 -080029020 KeywordOrStarred* elem;
29021 asdl_seq * seq;
29022 if (
29023 (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
29024 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029025 (seq = _loop0_129_rule(p)) // _loop0_129
Brandt Bucher145bf262021-02-26 14:51:55 -080029026 )
29027 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029028 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 -080029029 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
29030 goto done;
29031 }
29032 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029033 D(fprintf(stderr, "%*c%s _gather_128[%d-%d]: %s failed!\n", p->level, ' ',
29034 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_double_starred _loop0_129"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029035 }
29036 _res = NULL;
29037 done:
29038 D(p->level--);
29039 return _res;
29040}
29041
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029042// _loop0_131: ',' kwarg_or_starred
Brandt Bucher145bf262021-02-26 14:51:55 -080029043static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029044_loop0_131_rule(Parser *p)
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020029045{
29046 D(p->level++);
29047 if (p->error_indicator) {
29048 D(p->level--);
29049 return NULL;
29050 }
29051 void *_res = NULL;
29052 int _mark = p->mark;
29053 int _start_mark = p->mark;
29054 void **_children = PyMem_Malloc(sizeof(void *));
29055 if (!_children) {
29056 p->error_indicator = 1;
29057 PyErr_NoMemory();
29058 D(p->level--);
29059 return NULL;
29060 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010029061 Py_ssize_t _children_capacity = 1;
29062 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080029063 { // ',' kwarg_or_starred
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020029064 if (p->error_indicator) {
29065 D(p->level--);
29066 return NULL;
29067 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029068 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 -080029069 Token * _literal;
29070 KeywordOrStarred* elem;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020029071 while (
Brandt Bucher145bf262021-02-26 14:51:55 -080029072 (_literal = _PyPegen_expect_token(p, 12)) // token=','
29073 &&
29074 (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020029075 )
29076 {
Brandt Bucher145bf262021-02-26 14:51:55 -080029077 _res = elem;
29078 if (_res == NULL && PyErr_Occurred()) {
29079 p->error_indicator = 1;
29080 PyMem_Free(_children);
29081 D(p->level--);
29082 return NULL;
29083 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020029084 if (_n == _children_capacity) {
29085 _children_capacity *= 2;
29086 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
29087 if (!_new_children) {
29088 p->error_indicator = 1;
29089 PyErr_NoMemory();
29090 D(p->level--);
29091 return NULL;
29092 }
29093 _children = _new_children;
29094 }
29095 _children[_n++] = _res;
29096 _mark = p->mark;
29097 }
29098 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029099 D(fprintf(stderr, "%*c%s _loop0_131[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080029100 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_starred"));
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020029101 }
29102 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
29103 if (!_seq) {
29104 PyMem_Free(_children);
29105 p->error_indicator = 1;
29106 PyErr_NoMemory();
29107 D(p->level--);
29108 return NULL;
29109 }
29110 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
29111 PyMem_Free(_children);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029112 _PyPegen_insert_memo(p, _start_mark, _loop0_131_type, _seq);
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020029113 D(p->level--);
29114 return _seq;
29115}
29116
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029117// _gather_130: kwarg_or_starred _loop0_131
Brandt Bucher145bf262021-02-26 14:51:55 -080029118static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029119_gather_130_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029120{
29121 D(p->level++);
29122 if (p->error_indicator) {
29123 D(p->level--);
29124 return NULL;
29125 }
Brandt Bucher145bf262021-02-26 14:51:55 -080029126 asdl_seq * _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029127 int _mark = p->mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029128 { // kwarg_or_starred _loop0_131
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029129 if (p->error_indicator) {
29130 D(p->level--);
29131 return NULL;
29132 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029133 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 -080029134 KeywordOrStarred* elem;
29135 asdl_seq * seq;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029136 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080029137 (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
29138 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029139 (seq = _loop0_131_rule(p)) // _loop0_131
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029140 )
29141 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029142 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 -080029143 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029144 goto done;
29145 }
29146 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029147 D(fprintf(stderr, "%*c%s _gather_130[%d-%d]: %s failed!\n", p->level, ' ',
29148 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_starred _loop0_131"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029149 }
29150 _res = NULL;
29151 done:
29152 D(p->level--);
29153 return _res;
29154}
29155
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029156// _loop0_133: ',' kwarg_or_double_starred
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029157static asdl_seq *
Pablo Galindo835f14f2021-01-31 22:52:56 +000029158_loop0_133_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029159{
29160 D(p->level++);
29161 if (p->error_indicator) {
29162 D(p->level--);
29163 return NULL;
29164 }
29165 void *_res = NULL;
29166 int _mark = p->mark;
29167 int _start_mark = p->mark;
29168 void **_children = PyMem_Malloc(sizeof(void *));
29169 if (!_children) {
29170 p->error_indicator = 1;
29171 PyErr_NoMemory();
29172 D(p->level--);
29173 return NULL;
29174 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010029175 Py_ssize_t _children_capacity = 1;
29176 Py_ssize_t _n = 0;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029177 { // ',' kwarg_or_double_starred
29178 if (p->error_indicator) {
29179 D(p->level--);
29180 return NULL;
29181 }
29182 D(fprintf(stderr, "%*c> _loop0_133[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwarg_or_double_starred"));
29183 Token * _literal;
29184 KeywordOrStarred* elem;
29185 while (
29186 (_literal = _PyPegen_expect_token(p, 12)) // token=','
29187 &&
29188 (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
29189 )
29190 {
29191 _res = elem;
29192 if (_res == NULL && PyErr_Occurred()) {
29193 p->error_indicator = 1;
29194 PyMem_Free(_children);
29195 D(p->level--);
29196 return NULL;
29197 }
29198 if (_n == _children_capacity) {
29199 _children_capacity *= 2;
29200 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
29201 if (!_new_children) {
29202 p->error_indicator = 1;
29203 PyErr_NoMemory();
29204 D(p->level--);
29205 return NULL;
29206 }
29207 _children = _new_children;
29208 }
29209 _children[_n++] = _res;
29210 _mark = p->mark;
29211 }
29212 p->mark = _mark;
29213 D(fprintf(stderr, "%*c%s _loop0_133[%d-%d]: %s failed!\n", p->level, ' ',
29214 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_double_starred"));
29215 }
29216 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
29217 if (!_seq) {
29218 PyMem_Free(_children);
29219 p->error_indicator = 1;
29220 PyErr_NoMemory();
29221 D(p->level--);
29222 return NULL;
29223 }
29224 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
29225 PyMem_Free(_children);
29226 _PyPegen_insert_memo(p, _start_mark, _loop0_133_type, _seq);
29227 D(p->level--);
29228 return _seq;
29229}
29230
29231// _gather_132: kwarg_or_double_starred _loop0_133
29232static asdl_seq *
29233_gather_132_rule(Parser *p)
29234{
29235 D(p->level++);
29236 if (p->error_indicator) {
29237 D(p->level--);
29238 return NULL;
29239 }
29240 asdl_seq * _res = NULL;
29241 int _mark = p->mark;
29242 { // kwarg_or_double_starred _loop0_133
29243 if (p->error_indicator) {
29244 D(p->level--);
29245 return NULL;
29246 }
29247 D(fprintf(stderr, "%*c> _gather_132[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwarg_or_double_starred _loop0_133"));
29248 KeywordOrStarred* elem;
29249 asdl_seq * seq;
29250 if (
29251 (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
29252 &&
29253 (seq = _loop0_133_rule(p)) // _loop0_133
29254 )
29255 {
29256 D(fprintf(stderr, "%*c+ _gather_132[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwarg_or_double_starred _loop0_133"));
29257 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
29258 goto done;
29259 }
29260 p->mark = _mark;
29261 D(fprintf(stderr, "%*c%s _gather_132[%d-%d]: %s failed!\n", p->level, ' ',
29262 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_double_starred _loop0_133"));
29263 }
29264 _res = NULL;
29265 done:
29266 D(p->level--);
29267 return _res;
29268}
29269
29270// _loop0_134: (',' star_target)
29271static asdl_seq *
29272_loop0_134_rule(Parser *p)
29273{
29274 D(p->level++);
29275 if (p->error_indicator) {
29276 D(p->level--);
29277 return NULL;
29278 }
29279 void *_res = NULL;
29280 int _mark = p->mark;
29281 int _start_mark = p->mark;
29282 void **_children = PyMem_Malloc(sizeof(void *));
29283 if (!_children) {
29284 p->error_indicator = 1;
29285 PyErr_NoMemory();
29286 D(p->level--);
29287 return NULL;
29288 }
29289 Py_ssize_t _children_capacity = 1;
29290 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080029291 { // (',' star_target)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029292 if (p->error_indicator) {
29293 D(p->level--);
29294 return NULL;
29295 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029296 D(fprintf(stderr, "%*c> _loop0_134[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' star_target)"));
29297 void *_tmp_190_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029298 while (
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029299 (_tmp_190_var = _tmp_190_rule(p)) // ',' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029300 )
29301 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029302 _res = _tmp_190_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029303 if (_n == _children_capacity) {
29304 _children_capacity *= 2;
29305 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
29306 if (!_new_children) {
29307 p->error_indicator = 1;
29308 PyErr_NoMemory();
29309 D(p->level--);
29310 return NULL;
29311 }
29312 _children = _new_children;
29313 }
29314 _children[_n++] = _res;
29315 _mark = p->mark;
29316 }
29317 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029318 D(fprintf(stderr, "%*c%s _loop0_134[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080029319 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' star_target)"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029320 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010029321 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029322 if (!_seq) {
29323 PyMem_Free(_children);
29324 p->error_indicator = 1;
29325 PyErr_NoMemory();
29326 D(p->level--);
29327 return NULL;
29328 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010029329 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029330 PyMem_Free(_children);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029331 _PyPegen_insert_memo(p, _start_mark, _loop0_134_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029332 D(p->level--);
29333 return _seq;
29334}
29335
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029336// _loop0_136: ',' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029337static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029338_loop0_136_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029339{
29340 D(p->level++);
29341 if (p->error_indicator) {
29342 D(p->level--);
29343 return NULL;
29344 }
29345 void *_res = NULL;
29346 int _mark = p->mark;
29347 int _start_mark = p->mark;
29348 void **_children = PyMem_Malloc(sizeof(void *));
29349 if (!_children) {
29350 p->error_indicator = 1;
29351 PyErr_NoMemory();
29352 D(p->level--);
29353 return NULL;
29354 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010029355 Py_ssize_t _children_capacity = 1;
29356 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080029357 { // ',' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029358 if (p->error_indicator) {
29359 D(p->level--);
29360 return NULL;
29361 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029362 D(fprintf(stderr, "%*c> _loop0_136[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_target"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029363 Token * _literal;
29364 expr_ty elem;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029365 while (
Brandt Bucher145bf262021-02-26 14:51:55 -080029366 (_literal = _PyPegen_expect_token(p, 12)) // token=','
29367 &&
29368 (elem = star_target_rule(p)) // star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029369 )
29370 {
Brandt Bucher145bf262021-02-26 14:51:55 -080029371 _res = elem;
29372 if (_res == NULL && PyErr_Occurred()) {
29373 p->error_indicator = 1;
29374 PyMem_Free(_children);
29375 D(p->level--);
29376 return NULL;
29377 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029378 if (_n == _children_capacity) {
29379 _children_capacity *= 2;
29380 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
29381 if (!_new_children) {
29382 p->error_indicator = 1;
29383 PyErr_NoMemory();
29384 D(p->level--);
29385 return NULL;
29386 }
29387 _children = _new_children;
29388 }
29389 _children[_n++] = _res;
29390 _mark = p->mark;
29391 }
29392 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029393 D(fprintf(stderr, "%*c%s _loop0_136[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080029394 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029395 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010029396 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029397 if (!_seq) {
29398 PyMem_Free(_children);
29399 p->error_indicator = 1;
29400 PyErr_NoMemory();
29401 D(p->level--);
29402 return NULL;
29403 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010029404 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029405 PyMem_Free(_children);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029406 _PyPegen_insert_memo(p, _start_mark, _loop0_136_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029407 D(p->level--);
29408 return _seq;
29409}
29410
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029411// _gather_135: star_target _loop0_136
Brandt Bucher145bf262021-02-26 14:51:55 -080029412static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029413_gather_135_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080029414{
29415 D(p->level++);
29416 if (p->error_indicator) {
29417 D(p->level--);
29418 return NULL;
29419 }
29420 asdl_seq * _res = NULL;
29421 int _mark = p->mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029422 { // star_target _loop0_136
Brandt Bucher145bf262021-02-26 14:51:55 -080029423 if (p->error_indicator) {
29424 D(p->level--);
29425 return NULL;
29426 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029427 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 -080029428 expr_ty elem;
29429 asdl_seq * seq;
29430 if (
29431 (elem = star_target_rule(p)) // star_target
29432 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029433 (seq = _loop0_136_rule(p)) // _loop0_136
Brandt Bucher145bf262021-02-26 14:51:55 -080029434 )
29435 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029436 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 -080029437 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
29438 goto done;
29439 }
29440 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029441 D(fprintf(stderr, "%*c%s _gather_135[%d-%d]: %s failed!\n", p->level, ' ',
29442 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target _loop0_136"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029443 }
29444 _res = NULL;
29445 done:
29446 D(p->level--);
29447 return _res;
29448}
29449
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029450// _loop1_137: (',' star_target)
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020029451static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029452_loop1_137_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029453{
29454 D(p->level++);
29455 if (p->error_indicator) {
29456 D(p->level--);
29457 return NULL;
29458 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020029459 void *_res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029460 int _mark = p->mark;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020029461 int _start_mark = p->mark;
29462 void **_children = PyMem_Malloc(sizeof(void *));
29463 if (!_children) {
29464 p->error_indicator = 1;
29465 PyErr_NoMemory();
29466 D(p->level--);
29467 return NULL;
29468 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010029469 Py_ssize_t _children_capacity = 1;
29470 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080029471 { // (',' star_target)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029472 if (p->error_indicator) {
29473 D(p->level--);
29474 return NULL;
29475 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029476 D(fprintf(stderr, "%*c> _loop1_137[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' star_target)"));
29477 void *_tmp_191_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020029478 while (
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029479 (_tmp_191_var = _tmp_191_rule(p)) // ',' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029480 )
29481 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029482 _res = _tmp_191_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020029483 if (_n == _children_capacity) {
29484 _children_capacity *= 2;
29485 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
29486 if (!_new_children) {
29487 p->error_indicator = 1;
29488 PyErr_NoMemory();
29489 D(p->level--);
29490 return NULL;
29491 }
29492 _children = _new_children;
29493 }
29494 _children[_n++] = _res;
29495 _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029496 }
29497 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029498 D(fprintf(stderr, "%*c%s _loop1_137[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080029499 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' star_target)"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029500 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020029501 if (_n == 0 || p->error_indicator) {
29502 PyMem_Free(_children);
29503 D(p->level--);
29504 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029505 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020029506 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
29507 if (!_seq) {
29508 PyMem_Free(_children);
29509 p->error_indicator = 1;
29510 PyErr_NoMemory();
29511 D(p->level--);
29512 return NULL;
29513 }
29514 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
29515 PyMem_Free(_children);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029516 _PyPegen_insert_memo(p, _start_mark, _loop1_137_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029517 D(p->level--);
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020029518 return _seq;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029519}
29520
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029521// _tmp_138: !'*' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029522static void *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029523_tmp_138_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029524{
29525 D(p->level++);
29526 if (p->error_indicator) {
29527 D(p->level--);
29528 return NULL;
29529 }
29530 void * _res = NULL;
29531 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080029532 { // !'*' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029533 if (p->error_indicator) {
29534 D(p->level--);
29535 return NULL;
29536 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029537 D(fprintf(stderr, "%*c> _tmp_138[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "!'*' star_target"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029538 expr_ty star_target_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029539 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080029540 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 16) // token='*'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029541 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080029542 (star_target_var = star_target_rule(p)) // star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029543 )
29544 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029545 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 -080029546 _res = star_target_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029547 goto done;
29548 }
29549 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029550 D(fprintf(stderr, "%*c%s _tmp_138[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080029551 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "!'*' star_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029552 }
29553 _res = NULL;
29554 done:
29555 D(p->level--);
29556 return _res;
29557}
29558
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029559// _loop0_140: ',' del_target
Brandt Bucher145bf262021-02-26 14:51:55 -080029560static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029561_loop0_140_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029562{
29563 D(p->level++);
29564 if (p->error_indicator) {
29565 D(p->level--);
29566 return NULL;
29567 }
Brandt Bucher145bf262021-02-26 14:51:55 -080029568 void *_res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029569 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080029570 int _start_mark = p->mark;
29571 void **_children = PyMem_Malloc(sizeof(void *));
29572 if (!_children) {
29573 p->error_indicator = 1;
29574 PyErr_NoMemory();
29575 D(p->level--);
29576 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029577 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010029578 Py_ssize_t _children_capacity = 1;
29579 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080029580 { // ',' del_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029581 if (p->error_indicator) {
29582 D(p->level--);
29583 return NULL;
29584 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029585 D(fprintf(stderr, "%*c> _loop0_140[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' del_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029586 Token * _literal;
Brandt Bucher145bf262021-02-26 14:51:55 -080029587 expr_ty elem;
29588 while (
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029589 (_literal = _PyPegen_expect_token(p, 12)) // token=','
29590 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080029591 (elem = del_target_rule(p)) // del_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029592 )
29593 {
Brandt Bucher145bf262021-02-26 14:51:55 -080029594 _res = elem;
29595 if (_res == NULL && PyErr_Occurred()) {
29596 p->error_indicator = 1;
29597 PyMem_Free(_children);
29598 D(p->level--);
29599 return NULL;
29600 }
29601 if (_n == _children_capacity) {
29602 _children_capacity *= 2;
29603 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
29604 if (!_new_children) {
29605 p->error_indicator = 1;
29606 PyErr_NoMemory();
29607 D(p->level--);
29608 return NULL;
29609 }
29610 _children = _new_children;
29611 }
29612 _children[_n++] = _res;
29613 _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029614 }
29615 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029616 D(fprintf(stderr, "%*c%s _loop0_140[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080029617 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' del_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029618 }
Brandt Bucher145bf262021-02-26 14:51:55 -080029619 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
29620 if (!_seq) {
29621 PyMem_Free(_children);
29622 p->error_indicator = 1;
29623 PyErr_NoMemory();
29624 D(p->level--);
29625 return NULL;
29626 }
29627 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
29628 PyMem_Free(_children);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029629 _PyPegen_insert_memo(p, _start_mark, _loop0_140_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029630 D(p->level--);
Brandt Bucher145bf262021-02-26 14:51:55 -080029631 return _seq;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029632}
29633
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029634// _gather_139: del_target _loop0_140
Brandt Bucher145bf262021-02-26 14:51:55 -080029635static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029636_gather_139_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029637{
29638 D(p->level++);
29639 if (p->error_indicator) {
29640 D(p->level--);
29641 return NULL;
29642 }
Brandt Bucher145bf262021-02-26 14:51:55 -080029643 asdl_seq * _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029644 int _mark = p->mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029645 { // del_target _loop0_140
Pablo Galindo58fb1562021-02-02 19:54:22 +000029646 if (p->error_indicator) {
29647 D(p->level--);
29648 return NULL;
29649 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029650 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 -080029651 expr_ty elem;
29652 asdl_seq * seq;
Pablo Galindo58fb1562021-02-02 19:54:22 +000029653 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080029654 (elem = del_target_rule(p)) // del_target
29655 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029656 (seq = _loop0_140_rule(p)) // _loop0_140
Pablo Galindo58fb1562021-02-02 19:54:22 +000029657 )
29658 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029659 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 -080029660 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindo58fb1562021-02-02 19:54:22 +000029661 goto done;
29662 }
29663 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029664 D(fprintf(stderr, "%*c%s _gather_139[%d-%d]: %s failed!\n", p->level, ' ',
29665 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "del_target _loop0_140"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000029666 }
29667 _res = NULL;
29668 done:
29669 D(p->level--);
29670 return _res;
29671}
29672
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029673// _loop0_142: ',' target
Pablo Galindo58fb1562021-02-02 19:54:22 +000029674static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029675_loop0_142_rule(Parser *p)
Pablo Galindo58fb1562021-02-02 19:54:22 +000029676{
29677 D(p->level++);
29678 if (p->error_indicator) {
29679 D(p->level--);
29680 return NULL;
29681 }
29682 void *_res = NULL;
29683 int _mark = p->mark;
29684 int _start_mark = p->mark;
29685 void **_children = PyMem_Malloc(sizeof(void *));
29686 if (!_children) {
29687 p->error_indicator = 1;
29688 PyErr_NoMemory();
29689 D(p->level--);
29690 return NULL;
29691 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010029692 Py_ssize_t _children_capacity = 1;
29693 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080029694 { // ',' target
Pablo Galindo58fb1562021-02-02 19:54:22 +000029695 if (p->error_indicator) {
29696 D(p->level--);
29697 return NULL;
29698 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029699 D(fprintf(stderr, "%*c> _loop0_142[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' target"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000029700 Token * _literal;
Brandt Bucher145bf262021-02-26 14:51:55 -080029701 expr_ty elem;
Pablo Galindo58fb1562021-02-02 19:54:22 +000029702 while (
29703 (_literal = _PyPegen_expect_token(p, 12)) // token=','
29704 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080029705 (elem = target_rule(p)) // target
Pablo Galindo58fb1562021-02-02 19:54:22 +000029706 )
29707 {
29708 _res = elem;
29709 if (_res == NULL && PyErr_Occurred()) {
29710 p->error_indicator = 1;
29711 PyMem_Free(_children);
29712 D(p->level--);
29713 return NULL;
29714 }
29715 if (_n == _children_capacity) {
29716 _children_capacity *= 2;
29717 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
29718 if (!_new_children) {
29719 p->error_indicator = 1;
29720 PyErr_NoMemory();
29721 D(p->level--);
29722 return NULL;
29723 }
29724 _children = _new_children;
29725 }
29726 _children[_n++] = _res;
29727 _mark = p->mark;
29728 }
29729 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029730 D(fprintf(stderr, "%*c%s _loop0_142[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080029731 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' target"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000029732 }
29733 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
29734 if (!_seq) {
29735 PyMem_Free(_children);
29736 p->error_indicator = 1;
29737 PyErr_NoMemory();
29738 D(p->level--);
29739 return NULL;
29740 }
29741 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
29742 PyMem_Free(_children);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029743 _PyPegen_insert_memo(p, _start_mark, _loop0_142_type, _seq);
Pablo Galindo58fb1562021-02-02 19:54:22 +000029744 D(p->level--);
29745 return _seq;
29746}
29747
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029748// _gather_141: target _loop0_142
Pablo Galindo58fb1562021-02-02 19:54:22 +000029749static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029750_gather_141_rule(Parser *p)
Pablo Galindo58fb1562021-02-02 19:54:22 +000029751{
29752 D(p->level++);
29753 if (p->error_indicator) {
29754 D(p->level--);
29755 return NULL;
29756 }
29757 asdl_seq * _res = NULL;
29758 int _mark = p->mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029759 { // target _loop0_142
Pablo Galindo58fb1562021-02-02 19:54:22 +000029760 if (p->error_indicator) {
29761 D(p->level--);
29762 return NULL;
29763 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029764 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 -080029765 expr_ty elem;
Pablo Galindo58fb1562021-02-02 19:54:22 +000029766 asdl_seq * seq;
29767 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080029768 (elem = target_rule(p)) // target
Pablo Galindo58fb1562021-02-02 19:54:22 +000029769 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029770 (seq = _loop0_142_rule(p)) // _loop0_142
Pablo Galindo58fb1562021-02-02 19:54:22 +000029771 )
29772 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029773 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 +000029774 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
29775 goto done;
29776 }
29777 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029778 D(fprintf(stderr, "%*c%s _gather_141[%d-%d]: %s failed!\n", p->level, ' ',
29779 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "target _loop0_142"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000029780 }
29781 _res = NULL;
29782 done:
29783 D(p->level--);
29784 return _res;
29785}
29786
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029787// _tmp_143: args | expression for_if_clauses
Brandt Bucher145bf262021-02-26 14:51:55 -080029788static void *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029789_tmp_143_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080029790{
29791 D(p->level++);
29792 if (p->error_indicator) {
29793 D(p->level--);
29794 return NULL;
29795 }
29796 void * _res = NULL;
29797 int _mark = p->mark;
29798 { // args
29799 if (p->error_indicator) {
29800 D(p->level--);
29801 return NULL;
29802 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029803 D(fprintf(stderr, "%*c> _tmp_143[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029804 expr_ty args_var;
29805 if (
29806 (args_var = args_rule(p)) // args
29807 )
29808 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029809 D(fprintf(stderr, "%*c+ _tmp_143[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029810 _res = args_var;
29811 goto done;
29812 }
29813 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029814 D(fprintf(stderr, "%*c%s _tmp_143[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080029815 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args"));
29816 }
29817 { // expression for_if_clauses
29818 if (p->error_indicator) {
29819 D(p->level--);
29820 return NULL;
29821 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029822 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 -080029823 expr_ty expression_var;
29824 asdl_comprehension_seq* for_if_clauses_var;
29825 if (
29826 (expression_var = expression_rule(p)) // expression
29827 &&
29828 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
29829 )
29830 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029831 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 -080029832 _res = _PyPegen_dummy_name(p, expression_var, for_if_clauses_var);
29833 goto done;
29834 }
29835 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029836 D(fprintf(stderr, "%*c%s _tmp_143[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080029837 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression for_if_clauses"));
29838 }
29839 _res = NULL;
29840 done:
29841 D(p->level--);
29842 return _res;
29843}
29844
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029845// _tmp_144: NAME '='
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029846static void *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029847_tmp_144_rule(Parser *p)
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029848{
29849 D(p->level++);
29850 if (p->error_indicator) {
29851 D(p->level--);
29852 return NULL;
29853 }
29854 void * _res = NULL;
29855 int _mark = p->mark;
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070029856 { // NAME '='
29857 if (p->error_indicator) {
29858 D(p->level--);
29859 return NULL;
29860 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029861 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 -070029862 Token * _literal;
29863 expr_ty name_var;
29864 if (
29865 (name_var = _PyPegen_name_token(p)) // NAME
29866 &&
29867 (_literal = _PyPegen_expect_token(p, 22)) // token='='
29868 )
29869 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029870 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 -070029871 _res = _PyPegen_dummy_name(p, name_var, _literal);
29872 goto done;
29873 }
29874 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029875 D(fprintf(stderr, "%*c%s _tmp_144[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070029876 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '='"));
29877 }
29878 _res = NULL;
29879 done:
29880 D(p->level--);
29881 return _res;
29882}
29883
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029884// _tmp_145: NAME STRING | SOFT_KEYWORD
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070029885static void *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029886_tmp_145_rule(Parser *p)
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070029887{
29888 D(p->level++);
29889 if (p->error_indicator) {
29890 D(p->level--);
29891 return NULL;
29892 }
29893 void * _res = NULL;
29894 int _mark = p->mark;
Pablo Galindob2802482021-04-15 21:38:45 +010029895 { // NAME STRING
29896 if (p->error_indicator) {
29897 D(p->level--);
29898 return NULL;
29899 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029900 D(fprintf(stderr, "%*c> _tmp_145[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME STRING"));
Pablo Galindob2802482021-04-15 21:38:45 +010029901 expr_ty name_var;
29902 expr_ty string_var;
29903 if (
29904 (name_var = _PyPegen_name_token(p)) // NAME
29905 &&
29906 (string_var = _PyPegen_string_token(p)) // STRING
29907 )
29908 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029909 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 +010029910 _res = _PyPegen_dummy_name(p, name_var, string_var);
29911 goto done;
29912 }
29913 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029914 D(fprintf(stderr, "%*c%s _tmp_145[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob2802482021-04-15 21:38:45 +010029915 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME STRING"));
29916 }
29917 { // SOFT_KEYWORD
29918 if (p->error_indicator) {
29919 D(p->level--);
29920 return NULL;
29921 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029922 D(fprintf(stderr, "%*c> _tmp_145[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "SOFT_KEYWORD"));
Pablo Galindob2802482021-04-15 21:38:45 +010029923 expr_ty soft_keyword_var;
29924 if (
29925 (soft_keyword_var = _PyPegen_soft_keyword_token(p)) // SOFT_KEYWORD
29926 )
29927 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029928 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 +010029929 _res = soft_keyword_var;
29930 goto done;
29931 }
29932 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029933 D(fprintf(stderr, "%*c%s _tmp_145[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob2802482021-04-15 21:38:45 +010029934 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "SOFT_KEYWORD"));
29935 }
29936 _res = NULL;
29937 done:
29938 D(p->level--);
29939 return _res;
29940}
29941
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029942// _tmp_146: '=' | ':='
Pablo Galindob2802482021-04-15 21:38:45 +010029943static void *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029944_tmp_146_rule(Parser *p)
Pablo Galindob2802482021-04-15 21:38:45 +010029945{
29946 D(p->level++);
29947 if (p->error_indicator) {
29948 D(p->level--);
29949 return NULL;
29950 }
29951 void * _res = NULL;
29952 int _mark = p->mark;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029953 { // '='
29954 if (p->error_indicator) {
29955 D(p->level--);
29956 return NULL;
29957 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029958 D(fprintf(stderr, "%*c> _tmp_146[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'='"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029959 Token * _literal;
29960 if (
29961 (_literal = _PyPegen_expect_token(p, 22)) // token='='
29962 )
29963 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029964 D(fprintf(stderr, "%*c+ _tmp_146[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'='"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029965 _res = _literal;
29966 goto done;
29967 }
29968 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029969 D(fprintf(stderr, "%*c%s _tmp_146[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029970 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'='"));
29971 }
29972 { // ':='
29973 if (p->error_indicator) {
29974 D(p->level--);
29975 return NULL;
29976 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029977 D(fprintf(stderr, "%*c> _tmp_146[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':='"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029978 Token * _literal;
29979 if (
29980 (_literal = _PyPegen_expect_token(p, 53)) // token=':='
29981 )
29982 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029983 D(fprintf(stderr, "%*c+ _tmp_146[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':='"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029984 _res = _literal;
29985 goto done;
29986 }
29987 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029988 D(fprintf(stderr, "%*c%s _tmp_146[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029989 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':='"));
29990 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029991 _res = NULL;
29992 done:
29993 D(p->level--);
29994 return _res;
29995}
29996
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029997// _tmp_147: list | tuple | genexp | 'True' | 'None' | 'False'
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029998static void *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029999_tmp_147_rule(Parser *p)
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030000{
30001 D(p->level++);
30002 if (p->error_indicator) {
30003 D(p->level--);
30004 return NULL;
30005 }
30006 void * _res = NULL;
30007 int _mark = p->mark;
30008 { // list
30009 if (p->error_indicator) {
30010 D(p->level--);
30011 return NULL;
30012 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030013 D(fprintf(stderr, "%*c> _tmp_147[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "list"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030014 expr_ty list_var;
30015 if (
30016 (list_var = list_rule(p)) // list
30017 )
30018 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030019 D(fprintf(stderr, "%*c+ _tmp_147[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "list"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030020 _res = list_var;
30021 goto done;
30022 }
30023 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030024 D(fprintf(stderr, "%*c%s _tmp_147[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030025 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "list"));
30026 }
30027 { // tuple
30028 if (p->error_indicator) {
30029 D(p->level--);
30030 return NULL;
30031 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030032 D(fprintf(stderr, "%*c> _tmp_147[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "tuple"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030033 expr_ty tuple_var;
30034 if (
30035 (tuple_var = tuple_rule(p)) // tuple
30036 )
30037 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030038 D(fprintf(stderr, "%*c+ _tmp_147[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "tuple"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030039 _res = tuple_var;
30040 goto done;
30041 }
30042 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030043 D(fprintf(stderr, "%*c%s _tmp_147[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030044 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "tuple"));
30045 }
30046 { // genexp
30047 if (p->error_indicator) {
30048 D(p->level--);
30049 return NULL;
30050 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030051 D(fprintf(stderr, "%*c> _tmp_147[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "genexp"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030052 expr_ty genexp_var;
30053 if (
30054 (genexp_var = genexp_rule(p)) // genexp
30055 )
30056 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030057 D(fprintf(stderr, "%*c+ _tmp_147[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "genexp"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030058 _res = genexp_var;
30059 goto done;
30060 }
30061 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030062 D(fprintf(stderr, "%*c%s _tmp_147[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030063 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "genexp"));
30064 }
30065 { // 'True'
30066 if (p->error_indicator) {
30067 D(p->level--);
30068 return NULL;
30069 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030070 D(fprintf(stderr, "%*c> _tmp_147[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'True'"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030071 Token * _keyword;
30072 if (
30073 (_keyword = _PyPegen_expect_token(p, 524)) // token='True'
30074 )
30075 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030076 D(fprintf(stderr, "%*c+ _tmp_147[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030077 _res = _keyword;
30078 goto done;
30079 }
30080 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030081 D(fprintf(stderr, "%*c%s _tmp_147[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030082 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'True'"));
30083 }
30084 { // 'None'
30085 if (p->error_indicator) {
30086 D(p->level--);
30087 return NULL;
30088 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030089 D(fprintf(stderr, "%*c> _tmp_147[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'None'"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030090 Token * _keyword;
30091 if (
30092 (_keyword = _PyPegen_expect_token(p, 523)) // token='None'
30093 )
30094 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030095 D(fprintf(stderr, "%*c+ _tmp_147[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030096 _res = _keyword;
30097 goto done;
30098 }
30099 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030100 D(fprintf(stderr, "%*c%s _tmp_147[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030101 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'None'"));
30102 }
30103 { // 'False'
30104 if (p->error_indicator) {
30105 D(p->level--);
30106 return NULL;
30107 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030108 D(fprintf(stderr, "%*c> _tmp_147[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False'"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030109 Token * _keyword;
30110 if (
30111 (_keyword = _PyPegen_expect_token(p, 525)) // token='False'
30112 )
30113 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030114 D(fprintf(stderr, "%*c+ _tmp_147[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030115 _res = _keyword;
30116 goto done;
30117 }
30118 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030119 D(fprintf(stderr, "%*c%s _tmp_147[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030120 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'False'"));
30121 }
30122 _res = NULL;
30123 done:
30124 D(p->level--);
30125 return _res;
30126}
30127
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030128// _tmp_148: '=' | ':='
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030129static void *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030130_tmp_148_rule(Parser *p)
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030131{
30132 D(p->level++);
30133 if (p->error_indicator) {
30134 D(p->level--);
30135 return NULL;
30136 }
30137 void * _res = NULL;
30138 int _mark = p->mark;
30139 { // '='
30140 if (p->error_indicator) {
30141 D(p->level--);
30142 return NULL;
30143 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030144 D(fprintf(stderr, "%*c> _tmp_148[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'='"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030145 Token * _literal;
30146 if (
30147 (_literal = _PyPegen_expect_token(p, 22)) // token='='
30148 )
30149 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030150 D(fprintf(stderr, "%*c+ _tmp_148[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'='"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030151 _res = _literal;
30152 goto done;
30153 }
30154 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030155 D(fprintf(stderr, "%*c%s _tmp_148[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030156 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'='"));
30157 }
30158 { // ':='
30159 if (p->error_indicator) {
30160 D(p->level--);
30161 return NULL;
30162 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030163 D(fprintf(stderr, "%*c> _tmp_148[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':='"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030164 Token * _literal;
30165 if (
30166 (_literal = _PyPegen_expect_token(p, 53)) // token=':='
30167 )
30168 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030169 D(fprintf(stderr, "%*c+ _tmp_148[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':='"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030170 _res = _literal;
30171 goto done;
30172 }
30173 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030174 D(fprintf(stderr, "%*c%s _tmp_148[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030175 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':='"));
30176 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030177 _res = NULL;
30178 done:
30179 D(p->level--);
30180 return _res;
30181}
30182
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030183// _loop0_149: star_named_expressions
Pablo Galindo58fb1562021-02-02 19:54:22 +000030184static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030185_loop0_149_rule(Parser *p)
Pablo Galindo58fb1562021-02-02 19:54:22 +000030186{
30187 D(p->level++);
30188 if (p->error_indicator) {
30189 D(p->level--);
30190 return NULL;
30191 }
30192 void *_res = NULL;
30193 int _mark = p->mark;
30194 int _start_mark = p->mark;
30195 void **_children = PyMem_Malloc(sizeof(void *));
30196 if (!_children) {
30197 p->error_indicator = 1;
30198 PyErr_NoMemory();
30199 D(p->level--);
30200 return NULL;
30201 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010030202 Py_ssize_t _children_capacity = 1;
30203 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080030204 { // star_named_expressions
Pablo Galindo58fb1562021-02-02 19:54:22 +000030205 if (p->error_indicator) {
30206 D(p->level--);
30207 return NULL;
30208 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030209 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 -080030210 asdl_expr_seq* star_named_expressions_var;
30211 while (
30212 (star_named_expressions_var = star_named_expressions_rule(p)) // star_named_expressions
30213 )
30214 {
30215 _res = star_named_expressions_var;
30216 if (_n == _children_capacity) {
30217 _children_capacity *= 2;
30218 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
30219 if (!_new_children) {
30220 p->error_indicator = 1;
30221 PyErr_NoMemory();
30222 D(p->level--);
30223 return NULL;
30224 }
30225 _children = _new_children;
30226 }
30227 _children[_n++] = _res;
30228 _mark = p->mark;
30229 }
30230 p->mark = _mark;
Pablo Galindob2802482021-04-15 21:38:45 +010030231 D(fprintf(stderr, "%*c%s _loop0_149[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030232 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expressions"));
Pablo Galindob2802482021-04-15 21:38:45 +010030233 }
30234 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
30235 if (!_seq) {
30236 PyMem_Free(_children);
30237 p->error_indicator = 1;
30238 PyErr_NoMemory();
30239 D(p->level--);
30240 return NULL;
30241 }
30242 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
30243 PyMem_Free(_children);
30244 _PyPegen_insert_memo(p, _start_mark, _loop0_149_type, _seq);
30245 D(p->level--);
30246 return _seq;
30247}
30248
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070030249// _loop0_150: (star_targets '=')
30250static asdl_seq *
30251_loop0_150_rule(Parser *p)
30252{
30253 D(p->level++);
30254 if (p->error_indicator) {
30255 D(p->level--);
30256 return NULL;
30257 }
30258 void *_res = NULL;
30259 int _mark = p->mark;
30260 int _start_mark = p->mark;
30261 void **_children = PyMem_Malloc(sizeof(void *));
30262 if (!_children) {
30263 p->error_indicator = 1;
30264 PyErr_NoMemory();
30265 D(p->level--);
30266 return NULL;
30267 }
30268 Py_ssize_t _children_capacity = 1;
30269 Py_ssize_t _n = 0;
30270 { // (star_targets '=')
30271 if (p->error_indicator) {
30272 D(p->level--);
30273 return NULL;
30274 }
30275 D(fprintf(stderr, "%*c> _loop0_150[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')"));
30276 void *_tmp_192_var;
30277 while (
30278 (_tmp_192_var = _tmp_192_rule(p)) // star_targets '='
30279 )
30280 {
30281 _res = _tmp_192_var;
30282 if (_n == _children_capacity) {
30283 _children_capacity *= 2;
30284 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
30285 if (!_new_children) {
30286 p->error_indicator = 1;
30287 PyErr_NoMemory();
30288 D(p->level--);
30289 return NULL;
30290 }
30291 _children = _new_children;
30292 }
30293 _children[_n++] = _res;
30294 _mark = p->mark;
30295 }
30296 p->mark = _mark;
30297 D(fprintf(stderr, "%*c%s _loop0_150[%d-%d]: %s failed!\n", p->level, ' ',
30298 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(star_targets '=')"));
30299 }
30300 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
30301 if (!_seq) {
30302 PyMem_Free(_children);
30303 p->error_indicator = 1;
30304 PyErr_NoMemory();
30305 D(p->level--);
30306 return NULL;
30307 }
30308 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
30309 PyMem_Free(_children);
30310 _PyPegen_insert_memo(p, _start_mark, _loop0_150_type, _seq);
30311 D(p->level--);
30312 return _seq;
30313}
30314
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030315// _loop0_151: (star_targets '=')
30316static asdl_seq *
30317_loop0_151_rule(Parser *p)
30318{
30319 D(p->level++);
30320 if (p->error_indicator) {
30321 D(p->level--);
30322 return NULL;
30323 }
30324 void *_res = NULL;
30325 int _mark = p->mark;
30326 int _start_mark = p->mark;
30327 void **_children = PyMem_Malloc(sizeof(void *));
30328 if (!_children) {
30329 p->error_indicator = 1;
30330 PyErr_NoMemory();
30331 D(p->level--);
30332 return NULL;
30333 }
30334 Py_ssize_t _children_capacity = 1;
30335 Py_ssize_t _n = 0;
30336 { // (star_targets '=')
30337 if (p->error_indicator) {
30338 D(p->level--);
30339 return NULL;
30340 }
30341 D(fprintf(stderr, "%*c> _loop0_151[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')"));
30342 void *_tmp_193_var;
30343 while (
30344 (_tmp_193_var = _tmp_193_rule(p)) // star_targets '='
30345 )
30346 {
30347 _res = _tmp_193_var;
30348 if (_n == _children_capacity) {
30349 _children_capacity *= 2;
30350 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
30351 if (!_new_children) {
30352 p->error_indicator = 1;
30353 PyErr_NoMemory();
30354 D(p->level--);
30355 return NULL;
30356 }
30357 _children = _new_children;
30358 }
30359 _children[_n++] = _res;
30360 _mark = p->mark;
30361 }
30362 p->mark = _mark;
30363 D(fprintf(stderr, "%*c%s _loop0_151[%d-%d]: %s failed!\n", p->level, ' ',
30364 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(star_targets '=')"));
30365 }
30366 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
30367 if (!_seq) {
30368 PyMem_Free(_children);
30369 p->error_indicator = 1;
30370 PyErr_NoMemory();
30371 D(p->level--);
30372 return NULL;
30373 }
30374 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
30375 PyMem_Free(_children);
30376 _PyPegen_insert_memo(p, _start_mark, _loop0_151_type, _seq);
30377 D(p->level--);
30378 return _seq;
30379}
30380
30381// _tmp_152: yield_expr | star_expressions
Brandt Bucher145bf262021-02-26 14:51:55 -080030382static void *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030383_tmp_152_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080030384{
30385 D(p->level++);
30386 if (p->error_indicator) {
30387 D(p->level--);
30388 return NULL;
30389 }
30390 void * _res = NULL;
30391 int _mark = p->mark;
30392 { // yield_expr
30393 if (p->error_indicator) {
30394 D(p->level--);
30395 return NULL;
30396 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030397 D(fprintf(stderr, "%*c> _tmp_152[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
Brandt Bucher145bf262021-02-26 14:51:55 -080030398 expr_ty yield_expr_var;
30399 if (
30400 (yield_expr_var = yield_expr_rule(p)) // yield_expr
30401 )
30402 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030403 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 -080030404 _res = yield_expr_var;
30405 goto done;
30406 }
30407 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030408 D(fprintf(stderr, "%*c%s _tmp_152[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080030409 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
30410 }
30411 { // star_expressions
30412 if (p->error_indicator) {
30413 D(p->level--);
30414 return NULL;
30415 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030416 D(fprintf(stderr, "%*c> _tmp_152[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
Brandt Bucher145bf262021-02-26 14:51:55 -080030417 expr_ty star_expressions_var;
30418 if (
30419 (star_expressions_var = star_expressions_rule(p)) // star_expressions
30420 )
30421 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030422 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 -080030423 _res = star_expressions_var;
30424 goto done;
30425 }
30426 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030427 D(fprintf(stderr, "%*c%s _tmp_152[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080030428 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
30429 }
30430 _res = NULL;
30431 done:
30432 D(p->level--);
30433 return _res;
30434}
30435
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030436// _tmp_153: '[' | '(' | '{'
Pablo Galindoa77aac42021-04-23 14:27:05 +010030437static void *
30438_tmp_153_rule(Parser *p)
30439{
30440 D(p->level++);
30441 if (p->error_indicator) {
30442 D(p->level--);
30443 return NULL;
30444 }
30445 void * _res = NULL;
30446 int _mark = p->mark;
30447 { // '['
30448 if (p->error_indicator) {
30449 D(p->level--);
30450 return NULL;
30451 }
30452 D(fprintf(stderr, "%*c> _tmp_153[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['"));
30453 Token * _literal;
30454 if (
30455 (_literal = _PyPegen_expect_token(p, 9)) // token='['
30456 )
30457 {
30458 D(fprintf(stderr, "%*c+ _tmp_153[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['"));
30459 _res = _literal;
30460 goto done;
30461 }
30462 p->mark = _mark;
30463 D(fprintf(stderr, "%*c%s _tmp_153[%d-%d]: %s failed!\n", p->level, ' ',
30464 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'['"));
30465 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030466 { // '('
30467 if (p->error_indicator) {
30468 D(p->level--);
30469 return NULL;
30470 }
30471 D(fprintf(stderr, "%*c> _tmp_153[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'('"));
30472 Token * _literal;
30473 if (
30474 (_literal = _PyPegen_expect_token(p, 7)) // token='('
30475 )
30476 {
30477 D(fprintf(stderr, "%*c+ _tmp_153[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'('"));
30478 _res = _literal;
30479 goto done;
30480 }
30481 p->mark = _mark;
30482 D(fprintf(stderr, "%*c%s _tmp_153[%d-%d]: %s failed!\n", p->level, ' ',
30483 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'('"));
30484 }
Pablo Galindoa77aac42021-04-23 14:27:05 +010030485 { // '{'
30486 if (p->error_indicator) {
30487 D(p->level--);
30488 return NULL;
30489 }
30490 D(fprintf(stderr, "%*c> _tmp_153[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{'"));
30491 Token * _literal;
30492 if (
30493 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
30494 )
30495 {
30496 D(fprintf(stderr, "%*c+ _tmp_153[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{'"));
30497 _res = _literal;
30498 goto done;
30499 }
30500 p->mark = _mark;
30501 D(fprintf(stderr, "%*c%s _tmp_153[%d-%d]: %s failed!\n", p->level, ' ',
30502 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{'"));
30503 }
30504 _res = NULL;
30505 done:
30506 D(p->level--);
30507 return _res;
30508}
30509
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070030510// _tmp_154: '[' | '{'
30511static void *
30512_tmp_154_rule(Parser *p)
30513{
30514 D(p->level++);
30515 if (p->error_indicator) {
30516 D(p->level--);
30517 return NULL;
30518 }
30519 void * _res = NULL;
30520 int _mark = p->mark;
30521 { // '['
30522 if (p->error_indicator) {
30523 D(p->level--);
30524 return NULL;
30525 }
30526 D(fprintf(stderr, "%*c> _tmp_154[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['"));
30527 Token * _literal;
30528 if (
30529 (_literal = _PyPegen_expect_token(p, 9)) // token='['
30530 )
30531 {
30532 D(fprintf(stderr, "%*c+ _tmp_154[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['"));
30533 _res = _literal;
30534 goto done;
30535 }
30536 p->mark = _mark;
30537 D(fprintf(stderr, "%*c%s _tmp_154[%d-%d]: %s failed!\n", p->level, ' ',
30538 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'['"));
30539 }
30540 { // '{'
30541 if (p->error_indicator) {
30542 D(p->level--);
30543 return NULL;
30544 }
30545 D(fprintf(stderr, "%*c> _tmp_154[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{'"));
30546 Token * _literal;
30547 if (
30548 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
30549 )
30550 {
30551 D(fprintf(stderr, "%*c+ _tmp_154[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{'"));
30552 _res = _literal;
30553 goto done;
30554 }
30555 p->mark = _mark;
30556 D(fprintf(stderr, "%*c%s _tmp_154[%d-%d]: %s failed!\n", p->level, ' ',
30557 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{'"));
30558 }
30559 _res = NULL;
30560 done:
30561 D(p->level--);
30562 return _res;
30563}
30564
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030565// _tmp_155: '[' | '{'
30566static void *
30567_tmp_155_rule(Parser *p)
30568{
30569 D(p->level++);
30570 if (p->error_indicator) {
30571 D(p->level--);
30572 return NULL;
30573 }
30574 void * _res = NULL;
30575 int _mark = p->mark;
30576 { // '['
30577 if (p->error_indicator) {
30578 D(p->level--);
30579 return NULL;
30580 }
30581 D(fprintf(stderr, "%*c> _tmp_155[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['"));
30582 Token * _literal;
30583 if (
30584 (_literal = _PyPegen_expect_token(p, 9)) // token='['
30585 )
30586 {
30587 D(fprintf(stderr, "%*c+ _tmp_155[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['"));
30588 _res = _literal;
30589 goto done;
30590 }
30591 p->mark = _mark;
30592 D(fprintf(stderr, "%*c%s _tmp_155[%d-%d]: %s failed!\n", p->level, ' ',
30593 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'['"));
30594 }
30595 { // '{'
30596 if (p->error_indicator) {
30597 D(p->level--);
30598 return NULL;
30599 }
30600 D(fprintf(stderr, "%*c> _tmp_155[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{'"));
30601 Token * _literal;
30602 if (
30603 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
30604 )
30605 {
30606 D(fprintf(stderr, "%*c+ _tmp_155[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{'"));
30607 _res = _literal;
30608 goto done;
30609 }
30610 p->mark = _mark;
30611 D(fprintf(stderr, "%*c%s _tmp_155[%d-%d]: %s failed!\n", p->level, ' ',
30612 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{'"));
30613 }
30614 _res = NULL;
30615 done:
30616 D(p->level--);
30617 return _res;
30618}
30619
30620// _loop0_156: param_no_default
Brandt Bucher145bf262021-02-26 14:51:55 -080030621static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030622_loop0_156_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080030623{
30624 D(p->level++);
30625 if (p->error_indicator) {
30626 D(p->level--);
30627 return NULL;
30628 }
30629 void *_res = NULL;
30630 int _mark = p->mark;
30631 int _start_mark = p->mark;
30632 void **_children = PyMem_Malloc(sizeof(void *));
30633 if (!_children) {
30634 p->error_indicator = 1;
30635 PyErr_NoMemory();
30636 D(p->level--);
30637 return NULL;
30638 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010030639 Py_ssize_t _children_capacity = 1;
30640 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080030641 { // param_no_default
30642 if (p->error_indicator) {
30643 D(p->level--);
30644 return NULL;
30645 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030646 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 -080030647 arg_ty param_no_default_var;
30648 while (
30649 (param_no_default_var = param_no_default_rule(p)) // param_no_default
30650 )
30651 {
30652 _res = param_no_default_var;
30653 if (_n == _children_capacity) {
30654 _children_capacity *= 2;
30655 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
30656 if (!_new_children) {
30657 p->error_indicator = 1;
30658 PyErr_NoMemory();
30659 D(p->level--);
30660 return NULL;
30661 }
30662 _children = _new_children;
30663 }
30664 _children[_n++] = _res;
30665 _mark = p->mark;
30666 }
30667 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030668 D(fprintf(stderr, "%*c%s _loop0_156[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080030669 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
30670 }
30671 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
30672 if (!_seq) {
30673 PyMem_Free(_children);
30674 p->error_indicator = 1;
30675 PyErr_NoMemory();
30676 D(p->level--);
30677 return NULL;
30678 }
30679 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
30680 PyMem_Free(_children);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030681 _PyPegen_insert_memo(p, _start_mark, _loop0_156_type, _seq);
Brandt Bucher145bf262021-02-26 14:51:55 -080030682 D(p->level--);
30683 return _seq;
30684}
30685
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030686// _loop1_157: param_with_default
Brandt Bucher145bf262021-02-26 14:51:55 -080030687static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030688_loop1_157_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080030689{
30690 D(p->level++);
30691 if (p->error_indicator) {
30692 D(p->level--);
30693 return NULL;
30694 }
30695 void *_res = NULL;
30696 int _mark = p->mark;
30697 int _start_mark = p->mark;
30698 void **_children = PyMem_Malloc(sizeof(void *));
30699 if (!_children) {
30700 p->error_indicator = 1;
30701 PyErr_NoMemory();
30702 D(p->level--);
30703 return NULL;
30704 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010030705 Py_ssize_t _children_capacity = 1;
30706 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080030707 { // param_with_default
30708 if (p->error_indicator) {
30709 D(p->level--);
30710 return NULL;
30711 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030712 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 -080030713 NameDefaultPair* param_with_default_var;
30714 while (
30715 (param_with_default_var = param_with_default_rule(p)) // param_with_default
30716 )
30717 {
30718 _res = param_with_default_var;
30719 if (_n == _children_capacity) {
30720 _children_capacity *= 2;
30721 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
30722 if (!_new_children) {
30723 p->error_indicator = 1;
30724 PyErr_NoMemory();
30725 D(p->level--);
30726 return NULL;
30727 }
30728 _children = _new_children;
30729 }
30730 _children[_n++] = _res;
30731 _mark = p->mark;
30732 }
30733 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030734 D(fprintf(stderr, "%*c%s _loop1_157[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080030735 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
30736 }
30737 if (_n == 0 || p->error_indicator) {
30738 PyMem_Free(_children);
30739 D(p->level--);
30740 return NULL;
30741 }
30742 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
30743 if (!_seq) {
30744 PyMem_Free(_children);
30745 p->error_indicator = 1;
30746 PyErr_NoMemory();
30747 D(p->level--);
30748 return NULL;
30749 }
30750 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
30751 PyMem_Free(_children);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030752 _PyPegen_insert_memo(p, _start_mark, _loop1_157_type, _seq);
Brandt Bucher145bf262021-02-26 14:51:55 -080030753 D(p->level--);
30754 return _seq;
30755}
30756
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030757// _loop0_158: lambda_param_no_default
Brandt Bucher145bf262021-02-26 14:51:55 -080030758static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030759_loop0_158_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080030760{
30761 D(p->level++);
30762 if (p->error_indicator) {
30763 D(p->level--);
30764 return NULL;
30765 }
30766 void *_res = NULL;
30767 int _mark = p->mark;
30768 int _start_mark = p->mark;
30769 void **_children = PyMem_Malloc(sizeof(void *));
30770 if (!_children) {
30771 p->error_indicator = 1;
30772 PyErr_NoMemory();
30773 D(p->level--);
30774 return NULL;
30775 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010030776 Py_ssize_t _children_capacity = 1;
30777 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080030778 { // lambda_param_no_default
30779 if (p->error_indicator) {
30780 D(p->level--);
30781 return NULL;
30782 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030783 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 -080030784 arg_ty lambda_param_no_default_var;
30785 while (
30786 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
30787 )
30788 {
30789 _res = lambda_param_no_default_var;
30790 if (_n == _children_capacity) {
30791 _children_capacity *= 2;
30792 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
30793 if (!_new_children) {
30794 p->error_indicator = 1;
30795 PyErr_NoMemory();
30796 D(p->level--);
30797 return NULL;
30798 }
30799 _children = _new_children;
30800 }
30801 _children[_n++] = _res;
30802 _mark = p->mark;
30803 }
30804 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030805 D(fprintf(stderr, "%*c%s _loop0_158[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080030806 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
30807 }
30808 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
30809 if (!_seq) {
30810 PyMem_Free(_children);
30811 p->error_indicator = 1;
30812 PyErr_NoMemory();
30813 D(p->level--);
30814 return NULL;
30815 }
30816 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
30817 PyMem_Free(_children);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030818 _PyPegen_insert_memo(p, _start_mark, _loop0_158_type, _seq);
Brandt Bucher145bf262021-02-26 14:51:55 -080030819 D(p->level--);
30820 return _seq;
30821}
30822
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030823// _loop1_159: lambda_param_with_default
Brandt Bucher145bf262021-02-26 14:51:55 -080030824static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030825_loop1_159_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080030826{
30827 D(p->level++);
30828 if (p->error_indicator) {
30829 D(p->level--);
30830 return NULL;
30831 }
30832 void *_res = NULL;
30833 int _mark = p->mark;
30834 int _start_mark = p->mark;
30835 void **_children = PyMem_Malloc(sizeof(void *));
30836 if (!_children) {
30837 p->error_indicator = 1;
30838 PyErr_NoMemory();
30839 D(p->level--);
30840 return NULL;
30841 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010030842 Py_ssize_t _children_capacity = 1;
30843 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080030844 { // lambda_param_with_default
30845 if (p->error_indicator) {
30846 D(p->level--);
30847 return NULL;
30848 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030849 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 -080030850 NameDefaultPair* lambda_param_with_default_var;
30851 while (
30852 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
30853 )
30854 {
30855 _res = lambda_param_with_default_var;
30856 if (_n == _children_capacity) {
30857 _children_capacity *= 2;
30858 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
30859 if (!_new_children) {
30860 p->error_indicator = 1;
30861 PyErr_NoMemory();
30862 D(p->level--);
30863 return NULL;
30864 }
30865 _children = _new_children;
30866 }
30867 _children[_n++] = _res;
30868 _mark = p->mark;
30869 }
30870 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030871 D(fprintf(stderr, "%*c%s _loop1_159[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080030872 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
30873 }
30874 if (_n == 0 || p->error_indicator) {
30875 PyMem_Free(_children);
30876 D(p->level--);
30877 return NULL;
30878 }
30879 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
30880 if (!_seq) {
30881 PyMem_Free(_children);
30882 p->error_indicator = 1;
30883 PyErr_NoMemory();
30884 D(p->level--);
30885 return NULL;
30886 }
30887 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
30888 PyMem_Free(_children);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030889 _PyPegen_insert_memo(p, _start_mark, _loop1_159_type, _seq);
Brandt Bucher145bf262021-02-26 14:51:55 -080030890 D(p->level--);
30891 return _seq;
30892}
30893
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030894// _tmp_160: ')' | ',' (')' | '**')
Pablo Galindo56c95df2021-04-21 15:28:21 +010030895static void *
Pablo Galindoa77aac42021-04-23 14:27:05 +010030896_tmp_160_rule(Parser *p)
Pablo Galindo56c95df2021-04-21 15:28:21 +010030897{
30898 D(p->level++);
30899 if (p->error_indicator) {
30900 D(p->level--);
30901 return NULL;
30902 }
30903 void * _res = NULL;
30904 int _mark = p->mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030905 { // ')'
Pablo Galindoa77aac42021-04-23 14:27:05 +010030906 if (p->error_indicator) {
30907 D(p->level--);
30908 return NULL;
30909 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030910 D(fprintf(stderr, "%*c> _tmp_160[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010030911 Token * _literal;
30912 if (
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030913 (_literal = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoa77aac42021-04-23 14:27:05 +010030914 )
30915 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030916 D(fprintf(stderr, "%*c+ _tmp_160[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010030917 _res = _literal;
30918 goto done;
30919 }
30920 p->mark = _mark;
30921 D(fprintf(stderr, "%*c%s _tmp_160[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030922 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010030923 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030924 { // ',' (')' | '**')
Pablo Galindoa77aac42021-04-23 14:27:05 +010030925 if (p->error_indicator) {
30926 D(p->level--);
30927 return NULL;
30928 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030929 D(fprintf(stderr, "%*c> _tmp_160[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (')' | '**')"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010030930 Token * _literal;
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070030931 void *_tmp_194_var;
30932 if (
Pablo Galindoa77aac42021-04-23 14:27:05 +010030933 (_literal = _PyPegen_expect_token(p, 12)) // token=','
30934 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030935 (_tmp_194_var = _tmp_194_rule(p)) // ')' | '**'
Pablo Galindoa77aac42021-04-23 14:27:05 +010030936 )
30937 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030938 D(fprintf(stderr, "%*c+ _tmp_160[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' (')' | '**')"));
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070030939 _res = _PyPegen_dummy_name(p, _literal, _tmp_194_var);
Pablo Galindoa77aac42021-04-23 14:27:05 +010030940 goto done;
30941 }
30942 p->mark = _mark;
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070030943 D(fprintf(stderr, "%*c%s _tmp_160[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030944 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (')' | '**')"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010030945 }
30946 _res = NULL;
30947 done:
30948 D(p->level--);
30949 return _res;
30950}
30951
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030952// _tmp_161: ':' | ',' (':' | '**')
Pablo Galindo56c95df2021-04-21 15:28:21 +010030953static void *
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070030954_tmp_161_rule(Parser *p)
Pablo Galindo56c95df2021-04-21 15:28:21 +010030955{
30956 D(p->level++);
30957 if (p->error_indicator) {
30958 D(p->level--);
30959 return NULL;
30960 }
30961 void * _res = NULL;
30962 int _mark = p->mark;
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070030963 { // ':'
30964 if (p->error_indicator) {
30965 D(p->level--);
30966 return NULL;
30967 }
30968 D(fprintf(stderr, "%*c> _tmp_161[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
30969 Token * _literal;
30970 if (
30971 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
30972 )
30973 {
30974 D(fprintf(stderr, "%*c+ _tmp_161[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
30975 _res = _literal;
30976 goto done;
30977 }
30978 p->mark = _mark;
30979 D(fprintf(stderr, "%*c%s _tmp_161[%d-%d]: %s failed!\n", p->level, ' ',
30980 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
30981 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030982 { // ',' (':' | '**')
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070030983 if (p->error_indicator) {
30984 D(p->level--);
30985 return NULL;
30986 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030987 D(fprintf(stderr, "%*c> _tmp_161[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (':' | '**')"));
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070030988 Token * _literal;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030989 void *_tmp_195_var;
30990 if (
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070030991 (_literal = _PyPegen_expect_token(p, 12)) // token=','
30992 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030993 (_tmp_195_var = _tmp_195_rule(p)) // ':' | '**'
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070030994 )
30995 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030996 D(fprintf(stderr, "%*c+ _tmp_161[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' (':' | '**')"));
30997 _res = _PyPegen_dummy_name(p, _literal, _tmp_195_var);
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070030998 goto done;
30999 }
31000 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070031001 D(fprintf(stderr, "%*c%s _tmp_161[%d-%d]: %s failed!\n", p->level, ' ',
31002 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (':' | '**')"));
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070031003 }
31004 _res = NULL;
31005 done:
31006 D(p->level--);
31007 return _res;
31008}
31009
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070031010// _tmp_162: ',' | ')' | ':'
Pablo Galindo56c95df2021-04-21 15:28:21 +010031011static void *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070031012_tmp_162_rule(Parser *p)
Pablo Galindo56c95df2021-04-21 15:28:21 +010031013{
31014 D(p->level++);
31015 if (p->error_indicator) {
31016 D(p->level--);
31017 return NULL;
31018 }
31019 void * _res = NULL;
31020 int _mark = p->mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070031021 { // ','
Pablo Galindo56c95df2021-04-21 15:28:21 +010031022 if (p->error_indicator) {
31023 D(p->level--);
31024 return NULL;
31025 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070031026 D(fprintf(stderr, "%*c> _tmp_162[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','"));
31027 Token * _literal;
Pablo Galindo56c95df2021-04-21 15:28:21 +010031028 if (
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070031029 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindo56c95df2021-04-21 15:28:21 +010031030 )
31031 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070031032 D(fprintf(stderr, "%*c+ _tmp_162[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','"));
31033 _res = _literal;
Pablo Galindo56c95df2021-04-21 15:28:21 +010031034 goto done;
31035 }
31036 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070031037 D(fprintf(stderr, "%*c%s _tmp_162[%d-%d]: %s failed!\n", p->level, ' ',
31038 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','"));
31039 }
31040 { // ')'
31041 if (p->error_indicator) {
31042 D(p->level--);
31043 return NULL;
31044 }
31045 D(fprintf(stderr, "%*c> _tmp_162[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
31046 Token * _literal;
31047 if (
31048 (_literal = _PyPegen_expect_token(p, 8)) // token=')'
31049 )
31050 {
31051 D(fprintf(stderr, "%*c+ _tmp_162[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
31052 _res = _literal;
31053 goto done;
31054 }
31055 p->mark = _mark;
31056 D(fprintf(stderr, "%*c%s _tmp_162[%d-%d]: %s failed!\n", p->level, ' ',
31057 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
31058 }
31059 { // ':'
31060 if (p->error_indicator) {
31061 D(p->level--);
31062 return NULL;
31063 }
31064 D(fprintf(stderr, "%*c> _tmp_162[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
31065 Token * _literal;
31066 if (
31067 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
31068 )
31069 {
31070 D(fprintf(stderr, "%*c+ _tmp_162[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
31071 _res = _literal;
31072 goto done;
31073 }
31074 p->mark = _mark;
31075 D(fprintf(stderr, "%*c%s _tmp_162[%d-%d]: %s failed!\n", p->level, ' ',
31076 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
31077 }
31078 _res = NULL;
31079 done:
31080 D(p->level--);
31081 return _res;
31082}
31083
31084// _loop0_164: ',' (expression ['as' star_target])
31085static asdl_seq *
31086_loop0_164_rule(Parser *p)
31087{
31088 D(p->level++);
31089 if (p->error_indicator) {
31090 D(p->level--);
31091 return NULL;
31092 }
31093 void *_res = NULL;
31094 int _mark = p->mark;
31095 int _start_mark = p->mark;
31096 void **_children = PyMem_Malloc(sizeof(void *));
31097 if (!_children) {
31098 p->error_indicator = 1;
31099 PyErr_NoMemory();
31100 D(p->level--);
31101 return NULL;
31102 }
31103 Py_ssize_t _children_capacity = 1;
31104 Py_ssize_t _n = 0;
31105 { // ',' (expression ['as' star_target])
31106 if (p->error_indicator) {
31107 D(p->level--);
31108 return NULL;
31109 }
31110 D(fprintf(stderr, "%*c> _loop0_164[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (expression ['as' star_target])"));
31111 Token * _literal;
31112 void *elem;
31113 while (
31114 (_literal = _PyPegen_expect_token(p, 12)) // token=','
31115 &&
31116 (elem = _tmp_196_rule(p)) // expression ['as' star_target]
31117 )
31118 {
31119 _res = elem;
31120 if (_res == NULL && PyErr_Occurred()) {
31121 p->error_indicator = 1;
31122 PyMem_Free(_children);
31123 D(p->level--);
31124 return NULL;
31125 }
31126 if (_n == _children_capacity) {
31127 _children_capacity *= 2;
31128 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
31129 if (!_new_children) {
31130 p->error_indicator = 1;
31131 PyErr_NoMemory();
31132 D(p->level--);
31133 return NULL;
31134 }
31135 _children = _new_children;
31136 }
31137 _children[_n++] = _res;
31138 _mark = p->mark;
31139 }
31140 p->mark = _mark;
31141 D(fprintf(stderr, "%*c%s _loop0_164[%d-%d]: %s failed!\n", p->level, ' ',
31142 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (expression ['as' star_target])"));
31143 }
31144 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
31145 if (!_seq) {
31146 PyMem_Free(_children);
31147 p->error_indicator = 1;
31148 PyErr_NoMemory();
31149 D(p->level--);
31150 return NULL;
31151 }
31152 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
31153 PyMem_Free(_children);
31154 _PyPegen_insert_memo(p, _start_mark, _loop0_164_type, _seq);
31155 D(p->level--);
31156 return _seq;
31157}
31158
31159// _gather_163: (expression ['as' star_target]) _loop0_164
31160static asdl_seq *
31161_gather_163_rule(Parser *p)
31162{
31163 D(p->level++);
31164 if (p->error_indicator) {
31165 D(p->level--);
31166 return NULL;
31167 }
31168 asdl_seq * _res = NULL;
31169 int _mark = p->mark;
31170 { // (expression ['as' star_target]) _loop0_164
31171 if (p->error_indicator) {
31172 D(p->level--);
31173 return NULL;
31174 }
31175 D(fprintf(stderr, "%*c> _gather_163[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(expression ['as' star_target]) _loop0_164"));
31176 void *elem;
31177 asdl_seq * seq;
31178 if (
31179 (elem = _tmp_196_rule(p)) // expression ['as' star_target]
31180 &&
31181 (seq = _loop0_164_rule(p)) // _loop0_164
31182 )
31183 {
31184 D(fprintf(stderr, "%*c+ _gather_163[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(expression ['as' star_target]) _loop0_164"));
31185 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
31186 goto done;
31187 }
31188 p->mark = _mark;
31189 D(fprintf(stderr, "%*c%s _gather_163[%d-%d]: %s failed!\n", p->level, ' ',
31190 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(expression ['as' star_target]) _loop0_164"));
31191 }
31192 _res = NULL;
31193 done:
31194 D(p->level--);
31195 return _res;
31196}
31197
31198// _loop0_166: ',' (expressions ['as' star_target])
31199static asdl_seq *
31200_loop0_166_rule(Parser *p)
31201{
31202 D(p->level++);
31203 if (p->error_indicator) {
31204 D(p->level--);
31205 return NULL;
31206 }
31207 void *_res = NULL;
31208 int _mark = p->mark;
31209 int _start_mark = p->mark;
31210 void **_children = PyMem_Malloc(sizeof(void *));
31211 if (!_children) {
31212 p->error_indicator = 1;
31213 PyErr_NoMemory();
31214 D(p->level--);
31215 return NULL;
31216 }
31217 Py_ssize_t _children_capacity = 1;
31218 Py_ssize_t _n = 0;
31219 { // ',' (expressions ['as' star_target])
31220 if (p->error_indicator) {
31221 D(p->level--);
31222 return NULL;
31223 }
31224 D(fprintf(stderr, "%*c> _loop0_166[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (expressions ['as' star_target])"));
31225 Token * _literal;
31226 void *elem;
31227 while (
31228 (_literal = _PyPegen_expect_token(p, 12)) // token=','
31229 &&
31230 (elem = _tmp_197_rule(p)) // expressions ['as' star_target]
31231 )
31232 {
31233 _res = elem;
31234 if (_res == NULL && PyErr_Occurred()) {
31235 p->error_indicator = 1;
31236 PyMem_Free(_children);
31237 D(p->level--);
31238 return NULL;
31239 }
31240 if (_n == _children_capacity) {
31241 _children_capacity *= 2;
31242 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
31243 if (!_new_children) {
31244 p->error_indicator = 1;
31245 PyErr_NoMemory();
31246 D(p->level--);
31247 return NULL;
31248 }
31249 _children = _new_children;
31250 }
31251 _children[_n++] = _res;
31252 _mark = p->mark;
31253 }
31254 p->mark = _mark;
31255 D(fprintf(stderr, "%*c%s _loop0_166[%d-%d]: %s failed!\n", p->level, ' ',
31256 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (expressions ['as' star_target])"));
31257 }
31258 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
31259 if (!_seq) {
31260 PyMem_Free(_children);
31261 p->error_indicator = 1;
31262 PyErr_NoMemory();
31263 D(p->level--);
31264 return NULL;
31265 }
31266 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
31267 PyMem_Free(_children);
31268 _PyPegen_insert_memo(p, _start_mark, _loop0_166_type, _seq);
31269 D(p->level--);
31270 return _seq;
31271}
31272
31273// _gather_165: (expressions ['as' star_target]) _loop0_166
31274static asdl_seq *
31275_gather_165_rule(Parser *p)
31276{
31277 D(p->level++);
31278 if (p->error_indicator) {
31279 D(p->level--);
31280 return NULL;
31281 }
31282 asdl_seq * _res = NULL;
31283 int _mark = p->mark;
31284 { // (expressions ['as' star_target]) _loop0_166
31285 if (p->error_indicator) {
31286 D(p->level--);
31287 return NULL;
31288 }
31289 D(fprintf(stderr, "%*c> _gather_165[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(expressions ['as' star_target]) _loop0_166"));
31290 void *elem;
31291 asdl_seq * seq;
31292 if (
31293 (elem = _tmp_197_rule(p)) // expressions ['as' star_target]
31294 &&
31295 (seq = _loop0_166_rule(p)) // _loop0_166
31296 )
31297 {
31298 D(fprintf(stderr, "%*c+ _gather_165[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(expressions ['as' star_target]) _loop0_166"));
31299 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
31300 goto done;
31301 }
31302 p->mark = _mark;
31303 D(fprintf(stderr, "%*c%s _gather_165[%d-%d]: %s failed!\n", p->level, ' ',
31304 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(expressions ['as' star_target]) _loop0_166"));
31305 }
31306 _res = NULL;
31307 done:
31308 D(p->level--);
31309 return _res;
31310}
31311
31312// _loop0_168: ',' (expression ['as' star_target])
31313static asdl_seq *
31314_loop0_168_rule(Parser *p)
31315{
31316 D(p->level++);
31317 if (p->error_indicator) {
31318 D(p->level--);
31319 return NULL;
31320 }
31321 void *_res = NULL;
31322 int _mark = p->mark;
31323 int _start_mark = p->mark;
31324 void **_children = PyMem_Malloc(sizeof(void *));
31325 if (!_children) {
31326 p->error_indicator = 1;
31327 PyErr_NoMemory();
31328 D(p->level--);
31329 return NULL;
31330 }
31331 Py_ssize_t _children_capacity = 1;
31332 Py_ssize_t _n = 0;
31333 { // ',' (expression ['as' star_target])
31334 if (p->error_indicator) {
31335 D(p->level--);
31336 return NULL;
31337 }
31338 D(fprintf(stderr, "%*c> _loop0_168[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (expression ['as' star_target])"));
31339 Token * _literal;
31340 void *elem;
31341 while (
31342 (_literal = _PyPegen_expect_token(p, 12)) // token=','
31343 &&
31344 (elem = _tmp_198_rule(p)) // expression ['as' star_target]
31345 )
31346 {
31347 _res = elem;
31348 if (_res == NULL && PyErr_Occurred()) {
31349 p->error_indicator = 1;
31350 PyMem_Free(_children);
31351 D(p->level--);
31352 return NULL;
31353 }
31354 if (_n == _children_capacity) {
31355 _children_capacity *= 2;
31356 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
31357 if (!_new_children) {
31358 p->error_indicator = 1;
31359 PyErr_NoMemory();
31360 D(p->level--);
31361 return NULL;
31362 }
31363 _children = _new_children;
31364 }
31365 _children[_n++] = _res;
31366 _mark = p->mark;
31367 }
31368 p->mark = _mark;
31369 D(fprintf(stderr, "%*c%s _loop0_168[%d-%d]: %s failed!\n", p->level, ' ',
31370 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (expression ['as' star_target])"));
31371 }
31372 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
31373 if (!_seq) {
31374 PyMem_Free(_children);
31375 p->error_indicator = 1;
31376 PyErr_NoMemory();
31377 D(p->level--);
31378 return NULL;
31379 }
31380 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
31381 PyMem_Free(_children);
31382 _PyPegen_insert_memo(p, _start_mark, _loop0_168_type, _seq);
31383 D(p->level--);
31384 return _seq;
31385}
31386
31387// _gather_167: (expression ['as' star_target]) _loop0_168
31388static asdl_seq *
31389_gather_167_rule(Parser *p)
31390{
31391 D(p->level++);
31392 if (p->error_indicator) {
31393 D(p->level--);
31394 return NULL;
31395 }
31396 asdl_seq * _res = NULL;
31397 int _mark = p->mark;
31398 { // (expression ['as' star_target]) _loop0_168
31399 if (p->error_indicator) {
31400 D(p->level--);
31401 return NULL;
31402 }
31403 D(fprintf(stderr, "%*c> _gather_167[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(expression ['as' star_target]) _loop0_168"));
31404 void *elem;
31405 asdl_seq * seq;
31406 if (
31407 (elem = _tmp_198_rule(p)) // expression ['as' star_target]
31408 &&
31409 (seq = _loop0_168_rule(p)) // _loop0_168
31410 )
31411 {
31412 D(fprintf(stderr, "%*c+ _gather_167[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(expression ['as' star_target]) _loop0_168"));
31413 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
31414 goto done;
31415 }
31416 p->mark = _mark;
31417 D(fprintf(stderr, "%*c%s _gather_167[%d-%d]: %s failed!\n", p->level, ' ',
31418 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(expression ['as' star_target]) _loop0_168"));
31419 }
31420 _res = NULL;
31421 done:
31422 D(p->level--);
31423 return _res;
31424}
31425
31426// _loop0_170: ',' (expressions ['as' star_target])
31427static asdl_seq *
31428_loop0_170_rule(Parser *p)
31429{
31430 D(p->level++);
31431 if (p->error_indicator) {
31432 D(p->level--);
31433 return NULL;
31434 }
31435 void *_res = NULL;
31436 int _mark = p->mark;
31437 int _start_mark = p->mark;
31438 void **_children = PyMem_Malloc(sizeof(void *));
31439 if (!_children) {
31440 p->error_indicator = 1;
31441 PyErr_NoMemory();
31442 D(p->level--);
31443 return NULL;
31444 }
31445 Py_ssize_t _children_capacity = 1;
31446 Py_ssize_t _n = 0;
31447 { // ',' (expressions ['as' star_target])
31448 if (p->error_indicator) {
31449 D(p->level--);
31450 return NULL;
31451 }
31452 D(fprintf(stderr, "%*c> _loop0_170[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (expressions ['as' star_target])"));
31453 Token * _literal;
31454 void *elem;
31455 while (
31456 (_literal = _PyPegen_expect_token(p, 12)) // token=','
31457 &&
31458 (elem = _tmp_199_rule(p)) // expressions ['as' star_target]
31459 )
31460 {
31461 _res = elem;
31462 if (_res == NULL && PyErr_Occurred()) {
31463 p->error_indicator = 1;
31464 PyMem_Free(_children);
31465 D(p->level--);
31466 return NULL;
31467 }
31468 if (_n == _children_capacity) {
31469 _children_capacity *= 2;
31470 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
31471 if (!_new_children) {
31472 p->error_indicator = 1;
31473 PyErr_NoMemory();
31474 D(p->level--);
31475 return NULL;
31476 }
31477 _children = _new_children;
31478 }
31479 _children[_n++] = _res;
31480 _mark = p->mark;
31481 }
31482 p->mark = _mark;
31483 D(fprintf(stderr, "%*c%s _loop0_170[%d-%d]: %s failed!\n", p->level, ' ',
31484 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (expressions ['as' star_target])"));
31485 }
31486 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
31487 if (!_seq) {
31488 PyMem_Free(_children);
31489 p->error_indicator = 1;
31490 PyErr_NoMemory();
31491 D(p->level--);
31492 return NULL;
31493 }
31494 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
31495 PyMem_Free(_children);
31496 _PyPegen_insert_memo(p, _start_mark, _loop0_170_type, _seq);
31497 D(p->level--);
31498 return _seq;
31499}
31500
31501// _gather_169: (expressions ['as' star_target]) _loop0_170
31502static asdl_seq *
31503_gather_169_rule(Parser *p)
31504{
31505 D(p->level++);
31506 if (p->error_indicator) {
31507 D(p->level--);
31508 return NULL;
31509 }
31510 asdl_seq * _res = NULL;
31511 int _mark = p->mark;
31512 { // (expressions ['as' star_target]) _loop0_170
31513 if (p->error_indicator) {
31514 D(p->level--);
31515 return NULL;
31516 }
31517 D(fprintf(stderr, "%*c> _gather_169[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(expressions ['as' star_target]) _loop0_170"));
31518 void *elem;
31519 asdl_seq * seq;
31520 if (
31521 (elem = _tmp_199_rule(p)) // expressions ['as' star_target]
31522 &&
31523 (seq = _loop0_170_rule(p)) // _loop0_170
31524 )
31525 {
31526 D(fprintf(stderr, "%*c+ _gather_169[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(expressions ['as' star_target]) _loop0_170"));
31527 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
31528 goto done;
31529 }
31530 p->mark = _mark;
31531 D(fprintf(stderr, "%*c%s _gather_169[%d-%d]: %s failed!\n", p->level, ' ',
31532 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(expressions ['as' star_target]) _loop0_170"));
Pablo Galindo56c95df2021-04-21 15:28:21 +010031533 }
31534 _res = NULL;
31535 done:
31536 D(p->level--);
31537 return _res;
31538}
31539
Pablo Galindoa77aac42021-04-23 14:27:05 +010031540// _tmp_171: 'as' NAME
Pablo Galindo56c95df2021-04-21 15:28:21 +010031541static void *
31542_tmp_171_rule(Parser *p)
31543{
31544 D(p->level++);
31545 if (p->error_indicator) {
31546 D(p->level--);
31547 return NULL;
31548 }
31549 void * _res = NULL;
31550 int _mark = p->mark;
Pablo Galindoa77aac42021-04-23 14:27:05 +010031551 { // 'as' NAME
31552 if (p->error_indicator) {
31553 D(p->level--);
31554 return NULL;
31555 }
31556 D(fprintf(stderr, "%*c> _tmp_171[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
31557 Token * _keyword;
31558 expr_ty name_var;
31559 if (
31560 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
31561 &&
31562 (name_var = _PyPegen_name_token(p)) // NAME
31563 )
31564 {
31565 D(fprintf(stderr, "%*c+ _tmp_171[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
31566 _res = _PyPegen_dummy_name(p, _keyword, name_var);
31567 goto done;
31568 }
31569 p->mark = _mark;
31570 D(fprintf(stderr, "%*c%s _tmp_171[%d-%d]: %s failed!\n", p->level, ' ',
31571 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
31572 }
31573 _res = NULL;
31574 done:
31575 D(p->level--);
31576 return _res;
31577}
31578
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070031579// _tmp_172: 'as' NAME
Pablo Galindoa77aac42021-04-23 14:27:05 +010031580static void *
31581_tmp_172_rule(Parser *p)
31582{
31583 D(p->level++);
31584 if (p->error_indicator) {
31585 D(p->level--);
31586 return NULL;
31587 }
31588 void * _res = NULL;
31589 int _mark = p->mark;
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070031590 { // 'as' NAME
31591 if (p->error_indicator) {
31592 D(p->level--);
31593 return NULL;
31594 }
31595 D(fprintf(stderr, "%*c> _tmp_172[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
31596 Token * _keyword;
31597 expr_ty name_var;
31598 if (
31599 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
31600 &&
31601 (name_var = _PyPegen_name_token(p)) // NAME
31602 )
31603 {
31604 D(fprintf(stderr, "%*c+ _tmp_172[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
31605 _res = _PyPegen_dummy_name(p, _keyword, name_var);
31606 goto done;
31607 }
31608 p->mark = _mark;
31609 D(fprintf(stderr, "%*c%s _tmp_172[%d-%d]: %s failed!\n", p->level, ' ',
31610 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
31611 }
31612 _res = NULL;
31613 done:
31614 D(p->level--);
31615 return _res;
31616}
31617
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070031618// _tmp_173: 'as' NAME
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070031619static void *
31620_tmp_173_rule(Parser *p)
31621{
31622 D(p->level++);
31623 if (p->error_indicator) {
31624 D(p->level--);
31625 return NULL;
31626 }
31627 void * _res = NULL;
31628 int _mark = p->mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070031629 { // 'as' NAME
31630 if (p->error_indicator) {
31631 D(p->level--);
31632 return NULL;
31633 }
31634 D(fprintf(stderr, "%*c> _tmp_173[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
31635 Token * _keyword;
31636 expr_ty name_var;
31637 if (
31638 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
31639 &&
31640 (name_var = _PyPegen_name_token(p)) // NAME
31641 )
31642 {
31643 D(fprintf(stderr, "%*c+ _tmp_173[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
31644 _res = _PyPegen_dummy_name(p, _keyword, name_var);
31645 goto done;
31646 }
31647 p->mark = _mark;
31648 D(fprintf(stderr, "%*c%s _tmp_173[%d-%d]: %s failed!\n", p->level, ' ',
31649 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
31650 }
31651 _res = NULL;
31652 done:
31653 D(p->level--);
31654 return _res;
31655}
31656
31657// _tmp_174: '->' expression
31658static void *
31659_tmp_174_rule(Parser *p)
31660{
31661 D(p->level++);
31662 if (p->error_indicator) {
31663 D(p->level--);
31664 return NULL;
31665 }
31666 void * _res = NULL;
31667 int _mark = p->mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +010031668 { // '->' expression
31669 if (p->error_indicator) {
31670 D(p->level--);
31671 return NULL;
31672 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070031673 D(fprintf(stderr, "%*c> _tmp_174[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'->' expression"));
Pablo Galindo56c95df2021-04-21 15:28:21 +010031674 Token * _literal;
31675 expr_ty expression_var;
31676 if (
31677 (_literal = _PyPegen_expect_token(p, 51)) // token='->'
31678 &&
31679 (expression_var = expression_rule(p)) // expression
31680 )
31681 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070031682 D(fprintf(stderr, "%*c+ _tmp_174[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'->' expression"));
Pablo Galindo56c95df2021-04-21 15:28:21 +010031683 _res = _PyPegen_dummy_name(p, _literal, expression_var);
31684 goto done;
31685 }
31686 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070031687 D(fprintf(stderr, "%*c%s _tmp_174[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo56c95df2021-04-21 15:28:21 +010031688 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'->' expression"));
31689 }
31690 _res = NULL;
31691 done:
31692 D(p->level--);
31693 return _res;
31694}
31695
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070031696// _tmp_175: '(' arguments? ')'
Pablo Galindo56c95df2021-04-21 15:28:21 +010031697static void *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070031698_tmp_175_rule(Parser *p)
Pablo Galindo56c95df2021-04-21 15:28:21 +010031699{
31700 D(p->level++);
31701 if (p->error_indicator) {
31702 D(p->level--);
31703 return NULL;
31704 }
31705 void * _res = NULL;
31706 int _mark = p->mark;
31707 { // '(' arguments? ')'
31708 if (p->error_indicator) {
31709 D(p->level--);
31710 return NULL;
31711 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070031712 D(fprintf(stderr, "%*c> _tmp_175[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'"));
Pablo Galindo56c95df2021-04-21 15:28:21 +010031713 Token * _literal;
31714 Token * _literal_1;
31715 void *_opt_var;
31716 UNUSED(_opt_var); // Silence compiler warnings
31717 if (
31718 (_literal = _PyPegen_expect_token(p, 7)) // token='('
31719 &&
31720 (_opt_var = arguments_rule(p), 1) // arguments?
31721 &&
31722 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
31723 )
31724 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070031725 D(fprintf(stderr, "%*c+ _tmp_175[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'"));
Pablo Galindo56c95df2021-04-21 15:28:21 +010031726 _res = _PyPegen_dummy_name(p, _literal, _opt_var, _literal_1);
31727 goto done;
31728 }
31729 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070031730 D(fprintf(stderr, "%*c%s _tmp_175[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo56c95df2021-04-21 15:28:21 +010031731 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' arguments? ')'"));
31732 }
31733 _res = NULL;
31734 done:
31735 D(p->level--);
31736 return _res;
31737}
31738
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070031739// _loop0_177: ',' double_starred_kvpair
Pablo Galindo56c95df2021-04-21 15:28:21 +010031740static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070031741_loop0_177_rule(Parser *p)
Pablo Galindo56c95df2021-04-21 15:28:21 +010031742{
31743 D(p->level++);
31744 if (p->error_indicator) {
31745 D(p->level--);
31746 return NULL;
31747 }
31748 void *_res = NULL;
31749 int _mark = p->mark;
31750 int _start_mark = p->mark;
31751 void **_children = PyMem_Malloc(sizeof(void *));
31752 if (!_children) {
31753 p->error_indicator = 1;
31754 PyErr_NoMemory();
31755 D(p->level--);
31756 return NULL;
31757 }
31758 Py_ssize_t _children_capacity = 1;
31759 Py_ssize_t _n = 0;
Pablo Galindoda743502021-04-15 14:06:39 +010031760 { // ',' double_starred_kvpair
31761 if (p->error_indicator) {
31762 D(p->level--);
31763 return NULL;
31764 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070031765 D(fprintf(stderr, "%*c> _loop0_177[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' double_starred_kvpair"));
Pablo Galindoda743502021-04-15 14:06:39 +010031766 Token * _literal;
31767 KeyValuePair* elem;
31768 while (
31769 (_literal = _PyPegen_expect_token(p, 12)) // token=','
31770 &&
31771 (elem = double_starred_kvpair_rule(p)) // double_starred_kvpair
31772 )
31773 {
31774 _res = elem;
31775 if (_res == NULL && PyErr_Occurred()) {
31776 p->error_indicator = 1;
31777 PyMem_Free(_children);
31778 D(p->level--);
31779 return NULL;
31780 }
31781 if (_n == _children_capacity) {
31782 _children_capacity *= 2;
31783 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
31784 if (!_new_children) {
31785 p->error_indicator = 1;
31786 PyErr_NoMemory();
31787 D(p->level--);
31788 return NULL;
31789 }
31790 _children = _new_children;
31791 }
31792 _children[_n++] = _res;
31793 _mark = p->mark;
31794 }
31795 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070031796 D(fprintf(stderr, "%*c%s _loop0_177[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindoda743502021-04-15 14:06:39 +010031797 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' double_starred_kvpair"));
31798 }
31799 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
31800 if (!_seq) {
31801 PyMem_Free(_children);
31802 p->error_indicator = 1;
31803 PyErr_NoMemory();
31804 D(p->level--);
31805 return NULL;
31806 }
31807 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
31808 PyMem_Free(_children);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070031809 _PyPegen_insert_memo(p, _start_mark, _loop0_177_type, _seq);
Pablo Galindoda743502021-04-15 14:06:39 +010031810 D(p->level--);
31811 return _seq;
31812}
31813
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070031814// _gather_176: double_starred_kvpair _loop0_177
Pablo Galindoda743502021-04-15 14:06:39 +010031815static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070031816_gather_176_rule(Parser *p)
Pablo Galindoda743502021-04-15 14:06:39 +010031817{
31818 D(p->level++);
31819 if (p->error_indicator) {
31820 D(p->level--);
31821 return NULL;
31822 }
31823 asdl_seq * _res = NULL;
31824 int _mark = p->mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070031825 { // double_starred_kvpair _loop0_177
Pablo Galindoda743502021-04-15 14:06:39 +010031826 if (p->error_indicator) {
31827 D(p->level--);
31828 return NULL;
31829 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070031830 D(fprintf(stderr, "%*c> _gather_176[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "double_starred_kvpair _loop0_177"));
Pablo Galindoda743502021-04-15 14:06:39 +010031831 KeyValuePair* elem;
31832 asdl_seq * seq;
31833 if (
31834 (elem = double_starred_kvpair_rule(p)) // double_starred_kvpair
31835 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070031836 (seq = _loop0_177_rule(p)) // _loop0_177
Pablo Galindoda743502021-04-15 14:06:39 +010031837 )
31838 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070031839 D(fprintf(stderr, "%*c+ _gather_176[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "double_starred_kvpair _loop0_177"));
Pablo Galindoda743502021-04-15 14:06:39 +010031840 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
31841 goto done;
31842 }
31843 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070031844 D(fprintf(stderr, "%*c%s _gather_176[%d-%d]: %s failed!\n", p->level, ' ',
31845 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "double_starred_kvpair _loop0_177"));
Pablo Galindoda743502021-04-15 14:06:39 +010031846 }
31847 _res = NULL;
31848 done:
31849 D(p->level--);
31850 return _res;
31851}
31852
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070031853// _tmp_178: '}' | ','
Pablo Galindo206cbda2021-02-07 18:42:21 +000031854static void *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070031855_tmp_178_rule(Parser *p)
Pablo Galindoda743502021-04-15 14:06:39 +010031856{
31857 D(p->level++);
31858 if (p->error_indicator) {
31859 D(p->level--);
31860 return NULL;
31861 }
31862 void * _res = NULL;
31863 int _mark = p->mark;
31864 { // '}'
31865 if (p->error_indicator) {
31866 D(p->level--);
31867 return NULL;
31868 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070031869 D(fprintf(stderr, "%*c> _tmp_178[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'}'"));
Pablo Galindoda743502021-04-15 14:06:39 +010031870 Token * _literal;
31871 if (
31872 (_literal = _PyPegen_expect_token(p, 26)) // token='}'
31873 )
31874 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070031875 D(fprintf(stderr, "%*c+ _tmp_178[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'}'"));
Pablo Galindoda743502021-04-15 14:06:39 +010031876 _res = _literal;
31877 goto done;
31878 }
31879 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070031880 D(fprintf(stderr, "%*c%s _tmp_178[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindoda743502021-04-15 14:06:39 +010031881 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'}'"));
31882 }
31883 { // ','
31884 if (p->error_indicator) {
31885 D(p->level--);
31886 return NULL;
31887 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070031888 D(fprintf(stderr, "%*c> _tmp_178[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','"));
Pablo Galindoda743502021-04-15 14:06:39 +010031889 Token * _literal;
31890 if (
31891 (_literal = _PyPegen_expect_token(p, 12)) // token=','
31892 )
31893 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070031894 D(fprintf(stderr, "%*c+ _tmp_178[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','"));
Pablo Galindoda743502021-04-15 14:06:39 +010031895 _res = _literal;
31896 goto done;
31897 }
31898 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070031899 D(fprintf(stderr, "%*c%s _tmp_178[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindoda743502021-04-15 14:06:39 +010031900 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','"));
31901 }
31902 _res = NULL;
31903 done:
31904 D(p->level--);
31905 return _res;
31906}
31907
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070031908// _tmp_179: star_targets '='
Pablo Galindoda743502021-04-15 14:06:39 +010031909static void *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070031910_tmp_179_rule(Parser *p)
Pablo Galindo206cbda2021-02-07 18:42:21 +000031911{
31912 D(p->level++);
31913 if (p->error_indicator) {
31914 D(p->level--);
31915 return NULL;
31916 }
31917 void * _res = NULL;
31918 int _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031919 { // star_targets '='
31920 if (p->error_indicator) {
31921 D(p->level--);
31922 return NULL;
31923 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070031924 D(fprintf(stderr, "%*c> _tmp_179[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031925 Token * _literal;
31926 expr_ty z;
31927 if (
31928 (z = star_targets_rule(p)) // star_targets
31929 &&
31930 (_literal = _PyPegen_expect_token(p, 22)) // token='='
31931 )
31932 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070031933 D(fprintf(stderr, "%*c+ _tmp_179[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031934 _res = z;
31935 if (_res == NULL && PyErr_Occurred()) {
31936 p->error_indicator = 1;
31937 D(p->level--);
31938 return NULL;
31939 }
31940 goto done;
31941 }
31942 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070031943 D(fprintf(stderr, "%*c%s _tmp_179[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031944 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_targets '='"));
31945 }
31946 _res = NULL;
31947 done:
31948 D(p->level--);
31949 return _res;
31950}
31951
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070031952// _tmp_180: '.' | '...'
Pablo Galindoa77aac42021-04-23 14:27:05 +010031953static void *
31954_tmp_180_rule(Parser *p)
31955{
31956 D(p->level++);
31957 if (p->error_indicator) {
31958 D(p->level--);
31959 return NULL;
31960 }
31961 void * _res = NULL;
31962 int _mark = p->mark;
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070031963 { // '.'
31964 if (p->error_indicator) {
31965 D(p->level--);
31966 return NULL;
31967 }
31968 D(fprintf(stderr, "%*c> _tmp_180[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
31969 Token * _literal;
31970 if (
31971 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
31972 )
31973 {
31974 D(fprintf(stderr, "%*c+ _tmp_180[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
31975 _res = _literal;
31976 goto done;
31977 }
31978 p->mark = _mark;
31979 D(fprintf(stderr, "%*c%s _tmp_180[%d-%d]: %s failed!\n", p->level, ' ',
31980 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
31981 }
31982 { // '...'
31983 if (p->error_indicator) {
31984 D(p->level--);
31985 return NULL;
31986 }
31987 D(fprintf(stderr, "%*c> _tmp_180[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'"));
31988 Token * _literal;
31989 if (
31990 (_literal = _PyPegen_expect_token(p, 52)) // token='...'
31991 )
31992 {
31993 D(fprintf(stderr, "%*c+ _tmp_180[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'"));
31994 _res = _literal;
31995 goto done;
31996 }
31997 p->mark = _mark;
31998 D(fprintf(stderr, "%*c%s _tmp_180[%d-%d]: %s failed!\n", p->level, ' ',
31999 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'...'"));
32000 }
32001 _res = NULL;
32002 done:
32003 D(p->level--);
32004 return _res;
32005}
32006
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032007// _tmp_181: '.' | '...'
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032008static void *
32009_tmp_181_rule(Parser *p)
32010{
32011 D(p->level++);
32012 if (p->error_indicator) {
32013 D(p->level--);
32014 return NULL;
32015 }
32016 void * _res = NULL;
32017 int _mark = p->mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032018 { // '.'
32019 if (p->error_indicator) {
32020 D(p->level--);
32021 return NULL;
32022 }
32023 D(fprintf(stderr, "%*c> _tmp_181[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
32024 Token * _literal;
32025 if (
32026 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
32027 )
32028 {
32029 D(fprintf(stderr, "%*c+ _tmp_181[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
32030 _res = _literal;
32031 goto done;
32032 }
32033 p->mark = _mark;
32034 D(fprintf(stderr, "%*c%s _tmp_181[%d-%d]: %s failed!\n", p->level, ' ',
32035 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
32036 }
32037 { // '...'
32038 if (p->error_indicator) {
32039 D(p->level--);
32040 return NULL;
32041 }
32042 D(fprintf(stderr, "%*c> _tmp_181[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'"));
32043 Token * _literal;
32044 if (
32045 (_literal = _PyPegen_expect_token(p, 52)) // token='...'
32046 )
32047 {
32048 D(fprintf(stderr, "%*c+ _tmp_181[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'"));
32049 _res = _literal;
32050 goto done;
32051 }
32052 p->mark = _mark;
32053 D(fprintf(stderr, "%*c%s _tmp_181[%d-%d]: %s failed!\n", p->level, ' ',
32054 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'...'"));
32055 }
32056 _res = NULL;
32057 done:
32058 D(p->level--);
32059 return _res;
32060}
32061
32062// _tmp_182: '@' named_expression NEWLINE
32063static void *
32064_tmp_182_rule(Parser *p)
32065{
32066 D(p->level++);
32067 if (p->error_indicator) {
32068 D(p->level--);
32069 return NULL;
32070 }
32071 void * _res = NULL;
32072 int _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032073 { // '@' named_expression NEWLINE
32074 if (p->error_indicator) {
32075 D(p->level--);
32076 return NULL;
32077 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032078 D(fprintf(stderr, "%*c> _tmp_182[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@' named_expression NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032079 Token * _literal;
32080 expr_ty f;
32081 Token * newline_var;
32082 if (
32083 (_literal = _PyPegen_expect_token(p, 49)) // token='@'
32084 &&
32085 (f = named_expression_rule(p)) // named_expression
32086 &&
32087 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
32088 )
32089 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032090 D(fprintf(stderr, "%*c+ _tmp_182[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@' named_expression NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032091 _res = f;
32092 if (_res == NULL && PyErr_Occurred()) {
32093 p->error_indicator = 1;
32094 D(p->level--);
32095 return NULL;
32096 }
32097 goto done;
32098 }
32099 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032100 D(fprintf(stderr, "%*c%s _tmp_182[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032101 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@' named_expression NEWLINE"));
32102 }
32103 _res = NULL;
32104 done:
32105 D(p->level--);
32106 return _res;
32107}
32108
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032109// _tmp_183: ',' star_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032110static void *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032111_tmp_183_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032112{
32113 D(p->level++);
32114 if (p->error_indicator) {
32115 D(p->level--);
32116 return NULL;
32117 }
32118 void * _res = NULL;
32119 int _mark = p->mark;
32120 { // ',' star_expression
32121 if (p->error_indicator) {
32122 D(p->level--);
32123 return NULL;
32124 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032125 D(fprintf(stderr, "%*c> _tmp_183[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032126 Token * _literal;
32127 expr_ty c;
32128 if (
32129 (_literal = _PyPegen_expect_token(p, 12)) // token=','
32130 &&
32131 (c = star_expression_rule(p)) // star_expression
32132 )
32133 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032134 D(fprintf(stderr, "%*c+ _tmp_183[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032135 _res = c;
32136 if (_res == NULL && PyErr_Occurred()) {
32137 p->error_indicator = 1;
32138 D(p->level--);
32139 return NULL;
32140 }
32141 goto done;
32142 }
32143 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032144 D(fprintf(stderr, "%*c%s _tmp_183[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032145 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_expression"));
32146 }
32147 _res = NULL;
32148 done:
32149 D(p->level--);
32150 return _res;
32151}
32152
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032153// _tmp_184: ',' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032154static void *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032155_tmp_184_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032156{
32157 D(p->level++);
32158 if (p->error_indicator) {
32159 D(p->level--);
32160 return NULL;
32161 }
32162 void * _res = NULL;
32163 int _mark = p->mark;
32164 { // ',' expression
32165 if (p->error_indicator) {
32166 D(p->level--);
32167 return NULL;
32168 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032169 D(fprintf(stderr, "%*c> _tmp_184[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032170 Token * _literal;
32171 expr_ty c;
32172 if (
32173 (_literal = _PyPegen_expect_token(p, 12)) // token=','
32174 &&
32175 (c = expression_rule(p)) // expression
32176 )
32177 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032178 D(fprintf(stderr, "%*c+ _tmp_184[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032179 _res = c;
32180 if (_res == NULL && PyErr_Occurred()) {
32181 p->error_indicator = 1;
32182 D(p->level--);
32183 return NULL;
32184 }
32185 goto done;
32186 }
32187 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032188 D(fprintf(stderr, "%*c%s _tmp_184[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032189 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
32190 }
32191 _res = NULL;
32192 done:
32193 D(p->level--);
32194 return _res;
32195}
32196
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032197// _tmp_185: 'or' conjunction
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032198static void *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032199_tmp_185_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032200{
32201 D(p->level++);
32202 if (p->error_indicator) {
32203 D(p->level--);
32204 return NULL;
32205 }
32206 void * _res = NULL;
32207 int _mark = p->mark;
32208 { // 'or' conjunction
32209 if (p->error_indicator) {
32210 D(p->level--);
32211 return NULL;
32212 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032213 D(fprintf(stderr, "%*c> _tmp_185[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'or' conjunction"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032214 Token * _keyword;
32215 expr_ty c;
32216 if (
32217 (_keyword = _PyPegen_expect_token(p, 531)) // token='or'
32218 &&
32219 (c = conjunction_rule(p)) // conjunction
32220 )
32221 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032222 D(fprintf(stderr, "%*c+ _tmp_185[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'or' conjunction"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032223 _res = c;
32224 if (_res == NULL && PyErr_Occurred()) {
32225 p->error_indicator = 1;
32226 D(p->level--);
32227 return NULL;
32228 }
32229 goto done;
32230 }
32231 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032232 D(fprintf(stderr, "%*c%s _tmp_185[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032233 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'or' conjunction"));
32234 }
32235 _res = NULL;
32236 done:
32237 D(p->level--);
32238 return _res;
32239}
32240
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032241// _tmp_186: 'and' inversion
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032242static void *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032243_tmp_186_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032244{
32245 D(p->level++);
32246 if (p->error_indicator) {
32247 D(p->level--);
32248 return NULL;
32249 }
32250 void * _res = NULL;
32251 int _mark = p->mark;
32252 { // 'and' inversion
32253 if (p->error_indicator) {
32254 D(p->level--);
32255 return NULL;
32256 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032257 D(fprintf(stderr, "%*c> _tmp_186[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'and' inversion"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032258 Token * _keyword;
32259 expr_ty c;
32260 if (
32261 (_keyword = _PyPegen_expect_token(p, 532)) // token='and'
32262 &&
32263 (c = inversion_rule(p)) // inversion
32264 )
32265 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032266 D(fprintf(stderr, "%*c+ _tmp_186[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'and' inversion"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032267 _res = c;
32268 if (_res == NULL && PyErr_Occurred()) {
32269 p->error_indicator = 1;
32270 D(p->level--);
32271 return NULL;
32272 }
32273 goto done;
32274 }
32275 p->mark = _mark;
Pablo Galindoa77aac42021-04-23 14:27:05 +010032276 D(fprintf(stderr, "%*c%s _tmp_186[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032277 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'and' inversion"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010032278 }
32279 _res = NULL;
32280 done:
32281 D(p->level--);
32282 return _res;
32283}
32284
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032285// _tmp_187: 'if' disjunction
Pablo Galindoa77aac42021-04-23 14:27:05 +010032286static void *
32287_tmp_187_rule(Parser *p)
32288{
32289 D(p->level++);
32290 if (p->error_indicator) {
32291 D(p->level--);
32292 return NULL;
32293 }
32294 void * _res = NULL;
32295 int _mark = p->mark;
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032296 { // 'if' disjunction
32297 if (p->error_indicator) {
32298 D(p->level--);
32299 return NULL;
32300 }
32301 D(fprintf(stderr, "%*c> _tmp_187[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
32302 Token * _keyword;
32303 expr_ty z;
32304 if (
32305 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
32306 &&
32307 (z = disjunction_rule(p)) // disjunction
32308 )
32309 {
32310 D(fprintf(stderr, "%*c+ _tmp_187[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
32311 _res = z;
32312 if (_res == NULL && PyErr_Occurred()) {
32313 p->error_indicator = 1;
32314 D(p->level--);
32315 return NULL;
32316 }
32317 goto done;
32318 }
32319 p->mark = _mark;
32320 D(fprintf(stderr, "%*c%s _tmp_187[%d-%d]: %s failed!\n", p->level, ' ',
32321 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' disjunction"));
32322 }
32323 _res = NULL;
32324 done:
32325 D(p->level--);
32326 return _res;
32327}
32328
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032329// _tmp_188: 'if' disjunction
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032330static void *
32331_tmp_188_rule(Parser *p)
32332{
32333 D(p->level++);
32334 if (p->error_indicator) {
32335 D(p->level--);
32336 return NULL;
32337 }
32338 void * _res = NULL;
32339 int _mark = p->mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032340 { // 'if' disjunction
32341 if (p->error_indicator) {
32342 D(p->level--);
32343 return NULL;
32344 }
32345 D(fprintf(stderr, "%*c> _tmp_188[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
32346 Token * _keyword;
32347 expr_ty z;
32348 if (
32349 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
32350 &&
32351 (z = disjunction_rule(p)) // disjunction
32352 )
32353 {
32354 D(fprintf(stderr, "%*c+ _tmp_188[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
32355 _res = z;
32356 if (_res == NULL && PyErr_Occurred()) {
32357 p->error_indicator = 1;
32358 D(p->level--);
32359 return NULL;
32360 }
32361 goto done;
32362 }
32363 p->mark = _mark;
32364 D(fprintf(stderr, "%*c%s _tmp_188[%d-%d]: %s failed!\n", p->level, ' ',
32365 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' disjunction"));
32366 }
32367 _res = NULL;
32368 done:
32369 D(p->level--);
32370 return _res;
32371}
32372
32373// _tmp_189: starred_expression | (assigment_expression | expression !':=') !'='
32374static void *
32375_tmp_189_rule(Parser *p)
32376{
32377 D(p->level++);
32378 if (p->error_indicator) {
32379 D(p->level--);
32380 return NULL;
32381 }
32382 void * _res = NULL;
32383 int _mark = p->mark;
Pablo Galindo4a97b152020-09-02 17:44:19 +010032384 { // starred_expression
32385 if (p->error_indicator) {
32386 D(p->level--);
32387 return NULL;
32388 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032389 D(fprintf(stderr, "%*c> _tmp_189[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "starred_expression"));
Pablo Galindo4a97b152020-09-02 17:44:19 +010032390 expr_ty starred_expression_var;
32391 if (
32392 (starred_expression_var = starred_expression_rule(p)) // starred_expression
32393 )
32394 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032395 D(fprintf(stderr, "%*c+ _tmp_189[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "starred_expression"));
Pablo Galindo4a97b152020-09-02 17:44:19 +010032396 _res = starred_expression_var;
32397 goto done;
32398 }
32399 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032400 D(fprintf(stderr, "%*c%s _tmp_189[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo4a97b152020-09-02 17:44:19 +010032401 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "starred_expression"));
32402 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032403 { // (assigment_expression | expression !':=') !'='
Pablo Galindo4a97b152020-09-02 17:44:19 +010032404 if (p->error_indicator) {
32405 D(p->level--);
32406 return NULL;
32407 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032408 D(fprintf(stderr, "%*c> _tmp_189[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(assigment_expression | expression !':=') !'='"));
32409 void *_tmp_200_var;
Pablo Galindo4a97b152020-09-02 17:44:19 +010032410 if (
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032411 (_tmp_200_var = _tmp_200_rule(p)) // assigment_expression | expression !':='
Pablo Galindo4a97b152020-09-02 17:44:19 +010032412 &&
32413 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 22) // token='='
32414 )
32415 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032416 D(fprintf(stderr, "%*c+ _tmp_189[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(assigment_expression | expression !':=') !'='"));
32417 _res = _tmp_200_var;
Pablo Galindoda743502021-04-15 14:06:39 +010032418 goto done;
32419 }
32420 p->mark = _mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +010032421 D(fprintf(stderr, "%*c%s _tmp_189[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032422 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(assigment_expression | expression !':=') !'='"));
Pablo Galindoda743502021-04-15 14:06:39 +010032423 }
32424 _res = NULL;
32425 done:
32426 D(p->level--);
32427 return _res;
32428}
32429
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032430// _tmp_190: ',' star_target
Pablo Galindoda743502021-04-15 14:06:39 +010032431static void *
Pablo Galindo56c95df2021-04-21 15:28:21 +010032432_tmp_190_rule(Parser *p)
Pablo Galindo835f14f2021-01-31 22:52:56 +000032433{
32434 D(p->level++);
32435 if (p->error_indicator) {
32436 D(p->level--);
32437 return NULL;
32438 }
32439 void * _res = NULL;
32440 int _mark = p->mark;
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032441 { // ',' star_target
Pablo Galindob2802482021-04-15 21:38:45 +010032442 if (p->error_indicator) {
32443 D(p->level--);
32444 return NULL;
32445 }
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032446 D(fprintf(stderr, "%*c> _tmp_190[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_target"));
Pablo Galindob2802482021-04-15 21:38:45 +010032447 Token * _literal;
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032448 expr_ty c;
Pablo Galindob2802482021-04-15 21:38:45 +010032449 if (
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032450 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindob2802482021-04-15 21:38:45 +010032451 &&
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032452 (c = star_target_rule(p)) // star_target
Pablo Galindob2802482021-04-15 21:38:45 +010032453 )
32454 {
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032455 D(fprintf(stderr, "%*c+ _tmp_190[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_target"));
32456 _res = c;
32457 if (_res == NULL && PyErr_Occurred()) {
32458 p->error_indicator = 1;
32459 D(p->level--);
32460 return NULL;
32461 }
Pablo Galindob2802482021-04-15 21:38:45 +010032462 goto done;
32463 }
32464 p->mark = _mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +010032465 D(fprintf(stderr, "%*c%s _tmp_190[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032466 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_target"));
Pablo Galindob2802482021-04-15 21:38:45 +010032467 }
32468 _res = NULL;
32469 done:
32470 D(p->level--);
32471 return _res;
32472}
32473
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032474// _tmp_191: ',' star_target
Pablo Galindob2802482021-04-15 21:38:45 +010032475static void *
Pablo Galindo56c95df2021-04-21 15:28:21 +010032476_tmp_191_rule(Parser *p)
Pablo Galindob2802482021-04-15 21:38:45 +010032477{
32478 D(p->level++);
32479 if (p->error_indicator) {
32480 D(p->level--);
32481 return NULL;
32482 }
32483 void * _res = NULL;
32484 int _mark = p->mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032485 { // ',' star_target
Pablo Galindoa77aac42021-04-23 14:27:05 +010032486 if (p->error_indicator) {
32487 D(p->level--);
32488 return NULL;
32489 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032490 D(fprintf(stderr, "%*c> _tmp_191[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_target"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010032491 Token * _literal;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032492 expr_ty c;
Pablo Galindoa77aac42021-04-23 14:27:05 +010032493 if (
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032494 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoa77aac42021-04-23 14:27:05 +010032495 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032496 (c = star_target_rule(p)) // star_target
Pablo Galindoa77aac42021-04-23 14:27:05 +010032497 )
32498 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032499 D(fprintf(stderr, "%*c+ _tmp_191[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_target"));
32500 _res = c;
32501 if (_res == NULL && PyErr_Occurred()) {
32502 p->error_indicator = 1;
32503 D(p->level--);
32504 return NULL;
32505 }
Pablo Galindoa77aac42021-04-23 14:27:05 +010032506 goto done;
32507 }
32508 p->mark = _mark;
32509 D(fprintf(stderr, "%*c%s _tmp_191[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032510 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_target"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010032511 }
32512 _res = NULL;
32513 done:
32514 D(p->level--);
32515 return _res;
32516}
32517
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032518// _tmp_192: star_targets '='
Pablo Galindoa77aac42021-04-23 14:27:05 +010032519static void *
32520_tmp_192_rule(Parser *p)
32521{
32522 D(p->level++);
32523 if (p->error_indicator) {
32524 D(p->level--);
32525 return NULL;
32526 }
32527 void * _res = NULL;
32528 int _mark = p->mark;
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032529 { // star_targets '='
32530 if (p->error_indicator) {
32531 D(p->level--);
32532 return NULL;
32533 }
32534 D(fprintf(stderr, "%*c> _tmp_192[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
32535 Token * _literal;
32536 expr_ty star_targets_var;
32537 if (
32538 (star_targets_var = star_targets_rule(p)) // star_targets
32539 &&
32540 (_literal = _PyPegen_expect_token(p, 22)) // token='='
32541 )
32542 {
32543 D(fprintf(stderr, "%*c+ _tmp_192[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
32544 _res = _PyPegen_dummy_name(p, star_targets_var, _literal);
32545 goto done;
32546 }
32547 p->mark = _mark;
32548 D(fprintf(stderr, "%*c%s _tmp_192[%d-%d]: %s failed!\n", p->level, ' ',
32549 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_targets '='"));
32550 }
32551 _res = NULL;
32552 done:
32553 D(p->level--);
32554 return _res;
32555}
32556
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032557// _tmp_193: star_targets '='
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032558static void *
32559_tmp_193_rule(Parser *p)
32560{
32561 D(p->level++);
32562 if (p->error_indicator) {
32563 D(p->level--);
32564 return NULL;
32565 }
32566 void * _res = NULL;
32567 int _mark = p->mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032568 { // star_targets '='
32569 if (p->error_indicator) {
32570 D(p->level--);
32571 return NULL;
32572 }
32573 D(fprintf(stderr, "%*c> _tmp_193[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
32574 Token * _literal;
32575 expr_ty star_targets_var;
32576 if (
32577 (star_targets_var = star_targets_rule(p)) // star_targets
32578 &&
32579 (_literal = _PyPegen_expect_token(p, 22)) // token='='
32580 )
32581 {
32582 D(fprintf(stderr, "%*c+ _tmp_193[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
32583 _res = _PyPegen_dummy_name(p, star_targets_var, _literal);
32584 goto done;
32585 }
32586 p->mark = _mark;
32587 D(fprintf(stderr, "%*c%s _tmp_193[%d-%d]: %s failed!\n", p->level, ' ',
32588 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_targets '='"));
32589 }
32590 _res = NULL;
32591 done:
32592 D(p->level--);
32593 return _res;
32594}
32595
32596// _tmp_194: ')' | '**'
32597static void *
32598_tmp_194_rule(Parser *p)
32599{
32600 D(p->level++);
32601 if (p->error_indicator) {
32602 D(p->level--);
32603 return NULL;
32604 }
32605 void * _res = NULL;
32606 int _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032607 { // ')'
32608 if (p->error_indicator) {
32609 D(p->level--);
32610 return NULL;
32611 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032612 D(fprintf(stderr, "%*c> _tmp_194[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032613 Token * _literal;
32614 if (
32615 (_literal = _PyPegen_expect_token(p, 8)) // token=')'
32616 )
32617 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032618 D(fprintf(stderr, "%*c+ _tmp_194[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032619 _res = _literal;
Pablo Galindoa77aac42021-04-23 14:27:05 +010032620 goto done;
32621 }
32622 p->mark = _mark;
32623 D(fprintf(stderr, "%*c%s _tmp_194[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032624 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032625 }
32626 { // '**'
32627 if (p->error_indicator) {
32628 D(p->level--);
32629 return NULL;
32630 }
32631 D(fprintf(stderr, "%*c> _tmp_194[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**'"));
32632 Token * _literal;
32633 if (
32634 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
32635 )
32636 {
32637 D(fprintf(stderr, "%*c+ _tmp_194[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**'"));
32638 _res = _literal;
32639 goto done;
32640 }
32641 p->mark = _mark;
32642 D(fprintf(stderr, "%*c%s _tmp_194[%d-%d]: %s failed!\n", p->level, ' ',
32643 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**'"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010032644 }
32645 _res = NULL;
32646 done:
32647 D(p->level--);
32648 return _res;
32649}
32650
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032651// _tmp_195: ':' | '**'
Pablo Galindoa77aac42021-04-23 14:27:05 +010032652static void *
32653_tmp_195_rule(Parser *p)
32654{
32655 D(p->level++);
32656 if (p->error_indicator) {
32657 D(p->level--);
32658 return NULL;
32659 }
32660 void * _res = NULL;
32661 int _mark = p->mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032662 { // ':'
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032663 if (p->error_indicator) {
32664 D(p->level--);
32665 return NULL;
32666 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032667 D(fprintf(stderr, "%*c> _tmp_195[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
32668 Token * _literal;
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032669 if (
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032670 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032671 )
32672 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032673 D(fprintf(stderr, "%*c+ _tmp_195[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
32674 _res = _literal;
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032675 goto done;
32676 }
32677 p->mark = _mark;
32678 D(fprintf(stderr, "%*c%s _tmp_195[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032679 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
32680 }
32681 { // '**'
32682 if (p->error_indicator) {
32683 D(p->level--);
32684 return NULL;
32685 }
32686 D(fprintf(stderr, "%*c> _tmp_195[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**'"));
32687 Token * _literal;
32688 if (
32689 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
32690 )
32691 {
32692 D(fprintf(stderr, "%*c+ _tmp_195[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**'"));
32693 _res = _literal;
32694 goto done;
32695 }
32696 p->mark = _mark;
32697 D(fprintf(stderr, "%*c%s _tmp_195[%d-%d]: %s failed!\n", p->level, ' ',
32698 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**'"));
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032699 }
32700 _res = NULL;
32701 done:
32702 D(p->level--);
32703 return _res;
32704}
32705
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032706// _tmp_196: expression ['as' star_target]
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032707static void *
32708_tmp_196_rule(Parser *p)
32709{
32710 D(p->level++);
32711 if (p->error_indicator) {
32712 D(p->level--);
32713 return NULL;
32714 }
32715 void * _res = NULL;
32716 int _mark = p->mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032717 { // expression ['as' star_target]
32718 if (p->error_indicator) {
32719 D(p->level--);
32720 return NULL;
32721 }
32722 D(fprintf(stderr, "%*c> _tmp_196[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]"));
32723 void *_opt_var;
32724 UNUSED(_opt_var); // Silence compiler warnings
32725 expr_ty expression_var;
32726 if (
32727 (expression_var = expression_rule(p)) // expression
32728 &&
32729 (_opt_var = _tmp_201_rule(p), 1) // ['as' star_target]
32730 )
32731 {
32732 D(fprintf(stderr, "%*c+ _tmp_196[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]"));
32733 _res = _PyPegen_dummy_name(p, expression_var, _opt_var);
32734 goto done;
32735 }
32736 p->mark = _mark;
32737 D(fprintf(stderr, "%*c%s _tmp_196[%d-%d]: %s failed!\n", p->level, ' ',
32738 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ['as' star_target]"));
32739 }
32740 _res = NULL;
32741 done:
32742 D(p->level--);
32743 return _res;
32744}
32745
32746// _tmp_197: expressions ['as' star_target]
32747static void *
32748_tmp_197_rule(Parser *p)
32749{
32750 D(p->level++);
32751 if (p->error_indicator) {
32752 D(p->level--);
32753 return NULL;
32754 }
32755 void * _res = NULL;
32756 int _mark = p->mark;
Pablo Galindo58fb1562021-02-02 19:54:22 +000032757 { // expressions ['as' star_target]
32758 if (p->error_indicator) {
32759 D(p->level--);
32760 return NULL;
32761 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032762 D(fprintf(stderr, "%*c> _tmp_197[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000032763 void *_opt_var;
32764 UNUSED(_opt_var); // Silence compiler warnings
32765 expr_ty expressions_var;
32766 if (
32767 (expressions_var = expressions_rule(p)) // expressions
32768 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032769 (_opt_var = _tmp_202_rule(p), 1) // ['as' star_target]
Pablo Galindo58fb1562021-02-02 19:54:22 +000032770 )
32771 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032772 D(fprintf(stderr, "%*c+ _tmp_197[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000032773 _res = _PyPegen_dummy_name(p, expressions_var, _opt_var);
32774 goto done;
32775 }
32776 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032777 D(fprintf(stderr, "%*c%s _tmp_197[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob2802482021-04-15 21:38:45 +010032778 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expressions ['as' star_target]"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000032779 }
32780 _res = NULL;
32781 done:
32782 D(p->level--);
32783 return _res;
32784}
32785
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032786// _tmp_198: expression ['as' star_target]
Pablo Galindo58fb1562021-02-02 19:54:22 +000032787static void *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032788_tmp_198_rule(Parser *p)
Pablo Galindo56c95df2021-04-21 15:28:21 +010032789{
32790 D(p->level++);
32791 if (p->error_indicator) {
32792 D(p->level--);
32793 return NULL;
32794 }
32795 void * _res = NULL;
32796 int _mark = p->mark;
32797 { // expression ['as' star_target]
32798 if (p->error_indicator) {
32799 D(p->level--);
32800 return NULL;
32801 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032802 D(fprintf(stderr, "%*c> _tmp_198[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]"));
Pablo Galindo56c95df2021-04-21 15:28:21 +010032803 void *_opt_var;
32804 UNUSED(_opt_var); // Silence compiler warnings
32805 expr_ty expression_var;
32806 if (
32807 (expression_var = expression_rule(p)) // expression
32808 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032809 (_opt_var = _tmp_203_rule(p), 1) // ['as' star_target]
Pablo Galindo56c95df2021-04-21 15:28:21 +010032810 )
32811 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032812 D(fprintf(stderr, "%*c+ _tmp_198[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]"));
Pablo Galindo56c95df2021-04-21 15:28:21 +010032813 _res = _PyPegen_dummy_name(p, expression_var, _opt_var);
32814 goto done;
32815 }
32816 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032817 D(fprintf(stderr, "%*c%s _tmp_198[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo56c95df2021-04-21 15:28:21 +010032818 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ['as' star_target]"));
32819 }
32820 _res = NULL;
32821 done:
32822 D(p->level--);
32823 return _res;
32824}
32825
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032826// _tmp_199: expressions ['as' star_target]
Pablo Galindo56c95df2021-04-21 15:28:21 +010032827static void *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032828_tmp_199_rule(Parser *p)
Pablo Galindo56c95df2021-04-21 15:28:21 +010032829{
32830 D(p->level++);
32831 if (p->error_indicator) {
32832 D(p->level--);
32833 return NULL;
32834 }
32835 void * _res = NULL;
32836 int _mark = p->mark;
32837 { // expressions ['as' star_target]
32838 if (p->error_indicator) {
32839 D(p->level--);
32840 return NULL;
32841 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032842 D(fprintf(stderr, "%*c> _tmp_199[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]"));
Pablo Galindo56c95df2021-04-21 15:28:21 +010032843 void *_opt_var;
32844 UNUSED(_opt_var); // Silence compiler warnings
32845 expr_ty expressions_var;
32846 if (
32847 (expressions_var = expressions_rule(p)) // expressions
32848 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032849 (_opt_var = _tmp_204_rule(p), 1) // ['as' star_target]
Pablo Galindo56c95df2021-04-21 15:28:21 +010032850 )
32851 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032852 D(fprintf(stderr, "%*c+ _tmp_199[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]"));
Pablo Galindo56c95df2021-04-21 15:28:21 +010032853 _res = _PyPegen_dummy_name(p, expressions_var, _opt_var);
32854 goto done;
32855 }
32856 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032857 D(fprintf(stderr, "%*c%s _tmp_199[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032858 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expressions ['as' star_target]"));
Pablo Galindo56c95df2021-04-21 15:28:21 +010032859 }
32860 _res = NULL;
32861 done:
32862 D(p->level--);
32863 return _res;
32864}
32865
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032866// _tmp_200: assigment_expression | expression !':='
Pablo Galindo56c95df2021-04-21 15:28:21 +010032867static void *
32868_tmp_200_rule(Parser *p)
32869{
32870 D(p->level++);
32871 if (p->error_indicator) {
32872 D(p->level--);
32873 return NULL;
32874 }
32875 void * _res = NULL;
32876 int _mark = p->mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032877 { // assigment_expression
Pablo Galindo56c95df2021-04-21 15:28:21 +010032878 if (p->error_indicator) {
32879 D(p->level--);
32880 return NULL;
32881 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032882 D(fprintf(stderr, "%*c> _tmp_200[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "assigment_expression"));
32883 expr_ty assigment_expression_var;
Pablo Galindo56c95df2021-04-21 15:28:21 +010032884 if (
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032885 (assigment_expression_var = assigment_expression_rule(p)) // assigment_expression
Pablo Galindo56c95df2021-04-21 15:28:21 +010032886 )
32887 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032888 D(fprintf(stderr, "%*c+ _tmp_200[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "assigment_expression"));
32889 _res = assigment_expression_var;
Pablo Galindo56c95df2021-04-21 15:28:21 +010032890 goto done;
32891 }
32892 p->mark = _mark;
32893 D(fprintf(stderr, "%*c%s _tmp_200[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032894 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "assigment_expression"));
32895 }
32896 { // expression !':='
32897 if (p->error_indicator) {
32898 D(p->level--);
32899 return NULL;
32900 }
32901 D(fprintf(stderr, "%*c> _tmp_200[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression !':='"));
32902 expr_ty expression_var;
32903 if (
32904 (expression_var = expression_rule(p)) // expression
32905 &&
32906 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 53) // token=':='
32907 )
32908 {
32909 D(fprintf(stderr, "%*c+ _tmp_200[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression !':='"));
32910 _res = expression_var;
32911 goto done;
32912 }
32913 p->mark = _mark;
32914 D(fprintf(stderr, "%*c%s _tmp_200[%d-%d]: %s failed!\n", p->level, ' ',
32915 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression !':='"));
Pablo Galindob2802482021-04-15 21:38:45 +010032916 }
32917 _res = NULL;
32918 done:
32919 D(p->level--);
32920 return _res;
32921}
32922
Pablo Galindoa77aac42021-04-23 14:27:05 +010032923// _tmp_201: 'as' star_target
32924static void *
32925_tmp_201_rule(Parser *p)
32926{
32927 D(p->level++);
32928 if (p->error_indicator) {
32929 D(p->level--);
32930 return NULL;
32931 }
32932 void * _res = NULL;
32933 int _mark = p->mark;
32934 { // 'as' star_target
32935 if (p->error_indicator) {
32936 D(p->level--);
32937 return NULL;
32938 }
32939 D(fprintf(stderr, "%*c> _tmp_201[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
32940 Token * _keyword;
32941 expr_ty star_target_var;
32942 if (
32943 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
32944 &&
32945 (star_target_var = star_target_rule(p)) // star_target
32946 )
32947 {
32948 D(fprintf(stderr, "%*c+ _tmp_201[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
32949 _res = _PyPegen_dummy_name(p, _keyword, star_target_var);
32950 goto done;
32951 }
32952 p->mark = _mark;
32953 D(fprintf(stderr, "%*c%s _tmp_201[%d-%d]: %s failed!\n", p->level, ' ',
32954 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' star_target"));
32955 }
32956 _res = NULL;
32957 done:
32958 D(p->level--);
32959 return _res;
32960}
32961
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032962// _tmp_202: 'as' star_target
32963static void *
32964_tmp_202_rule(Parser *p)
32965{
32966 D(p->level++);
32967 if (p->error_indicator) {
32968 D(p->level--);
32969 return NULL;
32970 }
32971 void * _res = NULL;
32972 int _mark = p->mark;
32973 { // 'as' star_target
32974 if (p->error_indicator) {
32975 D(p->level--);
32976 return NULL;
32977 }
32978 D(fprintf(stderr, "%*c> _tmp_202[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
32979 Token * _keyword;
32980 expr_ty star_target_var;
32981 if (
32982 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
32983 &&
32984 (star_target_var = star_target_rule(p)) // star_target
32985 )
32986 {
32987 D(fprintf(stderr, "%*c+ _tmp_202[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
32988 _res = _PyPegen_dummy_name(p, _keyword, star_target_var);
32989 goto done;
32990 }
32991 p->mark = _mark;
32992 D(fprintf(stderr, "%*c%s _tmp_202[%d-%d]: %s failed!\n", p->level, ' ',
32993 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' star_target"));
32994 }
32995 _res = NULL;
32996 done:
32997 D(p->level--);
32998 return _res;
32999}
33000
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070033001// _tmp_203: 'as' star_target
33002static void *
33003_tmp_203_rule(Parser *p)
33004{
33005 D(p->level++);
33006 if (p->error_indicator) {
33007 D(p->level--);
33008 return NULL;
33009 }
33010 void * _res = NULL;
33011 int _mark = p->mark;
33012 { // 'as' star_target
33013 if (p->error_indicator) {
33014 D(p->level--);
33015 return NULL;
33016 }
33017 D(fprintf(stderr, "%*c> _tmp_203[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
33018 Token * _keyword;
33019 expr_ty star_target_var;
33020 if (
33021 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
33022 &&
33023 (star_target_var = star_target_rule(p)) // star_target
33024 )
33025 {
33026 D(fprintf(stderr, "%*c+ _tmp_203[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
33027 _res = _PyPegen_dummy_name(p, _keyword, star_target_var);
33028 goto done;
33029 }
33030 p->mark = _mark;
33031 D(fprintf(stderr, "%*c%s _tmp_203[%d-%d]: %s failed!\n", p->level, ' ',
33032 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' star_target"));
33033 }
33034 _res = NULL;
33035 done:
33036 D(p->level--);
33037 return _res;
33038}
33039
33040// _tmp_204: 'as' star_target
33041static void *
33042_tmp_204_rule(Parser *p)
33043{
33044 D(p->level++);
33045 if (p->error_indicator) {
33046 D(p->level--);
33047 return NULL;
33048 }
33049 void * _res = NULL;
33050 int _mark = p->mark;
33051 { // 'as' star_target
33052 if (p->error_indicator) {
33053 D(p->level--);
33054 return NULL;
33055 }
33056 D(fprintf(stderr, "%*c> _tmp_204[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
33057 Token * _keyword;
33058 expr_ty star_target_var;
33059 if (
33060 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
33061 &&
33062 (star_target_var = star_target_rule(p)) // star_target
33063 )
33064 {
33065 D(fprintf(stderr, "%*c+ _tmp_204[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
33066 _res = _PyPegen_dummy_name(p, _keyword, star_target_var);
33067 goto done;
33068 }
33069 p->mark = _mark;
33070 D(fprintf(stderr, "%*c%s _tmp_204[%d-%d]: %s failed!\n", p->level, ' ',
33071 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' star_target"));
33072 }
33073 _res = NULL;
33074 done:
33075 D(p->level--);
33076 return _res;
33077}
33078
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010033079void *
33080_PyPegen_parse(Parser *p)
33081{
33082 // Initialize keywords
33083 p->keywords = reserved_keywords;
33084 p->n_keyword_lists = n_keyword_lists;
Pablo Galindob2802482021-04-15 21:38:45 +010033085 p->soft_keywords = soft_keywords;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010033086
33087 // Run parser
33088 void *result = NULL;
33089 if (p->start_rule == Py_file_input) {
33090 result = file_rule(p);
33091 } else if (p->start_rule == Py_single_input) {
33092 result = interactive_rule(p);
33093 } else if (p->start_rule == Py_eval_input) {
33094 result = eval_rule(p);
33095 } else if (p->start_rule == Py_func_type_input) {
33096 result = func_type_rule(p);
33097 } else if (p->start_rule == Py_fstring_input) {
33098 result = fstring_rule(p);
33099 }
33100
33101 return result;
33102}
33103
33104// The end