blob: bda24a3de52ce5ba6e157215ba51b72f5eeff5c4 [file] [log] [blame]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001// @generated by pegen.py from ./Grammar/python.gram
2#include "pegen.h"
Guido van Rossumf70e43a1991-02-19 12:39:46 +00003
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004#if defined(Py_DEBUG) && defined(Py_BUILD_CORE)
Victor Stinner6af528b2021-03-18 09:54:13 +01005# define D(x) if (Py_DebugFlag) x;
Guido van Rossum85a5fbb1990-10-14 12:07:46 +00006#else
Victor Stinner6af528b2021-03-18 09:54:13 +01007# define D(x)
Guido van Rossum85a5fbb1990-10-14 12:07:46 +00008#endif
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009static const int n_keyword_lists = 9;
10static KeywordToken *reserved_keywords[] = {
Pablo Galindo1ac0cbc2020-07-06 20:31:16 +010011 (KeywordToken[]) {{NULL, -1}},
12 (KeywordToken[]) {{NULL, -1}},
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013 (KeywordToken[]) {
14 {"if", 510},
15 {"in", 518},
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016 {"as", 520},
Brandt Bucher145bf262021-02-26 14:51:55 -080017 {"is", 530},
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018 {"or", 531},
19 {NULL, -1},
20 },
21 (KeywordToken[]) {
22 {"del", 503},
23 {"try", 511},
24 {"for", 517},
Brandt Bucher145bf262021-02-26 14:51:55 -080025 {"def", 526},
26 {"not", 529},
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027 {"and", 532},
28 {NULL, -1},
29 },
30 (KeywordToken[]) {
31 {"pass", 502},
32 {"from", 514},
33 {"elif", 515},
34 {"else", 516},
35 {"with", 519},
Brandt Bucher145bf262021-02-26 14:51:55 -080036 {"None", 523},
37 {"True", 524},
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010038 {NULL, -1},
39 },
40 (KeywordToken[]) {
41 {"raise", 501},
42 {"yield", 504},
43 {"break", 506},
44 {"while", 512},
Brandt Bucher145bf262021-02-26 14:51:55 -080045 {"False", 525},
46 {"class", 527},
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010047 {NULL, -1},
48 },
49 (KeywordToken[]) {
50 {"return", 500},
51 {"assert", 505},
52 {"global", 508},
53 {"import", 513},
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030054 {"except", 521},
Brandt Bucher145bf262021-02-26 14:51:55 -080055 {"lambda", 528},
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010056 {NULL, -1},
57 },
58 (KeywordToken[]) {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030059 {"finally", 522},
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010060 {NULL, -1},
61 },
62 (KeywordToken[]) {
63 {"continue", 507},
64 {"nonlocal", 509},
65 {NULL, -1},
66 },
67};
Pablo Galindob2802482021-04-15 21:38:45 +010068static char *soft_keywords[] = {
69 "_",
70 "case",
71 "match",
72 NULL,
73};
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010074#define file_type 1000
75#define interactive_type 1001
76#define eval_type 1002
77#define func_type_type 1003
78#define fstring_type 1004
79#define type_expressions_type 1005
80#define statements_type 1006
81#define statement_type 1007
82#define statement_newline_type 1008
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000083#define simple_stmts_type 1009
84#define simple_stmt_type 1010
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010085#define compound_stmt_type 1011
86#define assignment_type 1012
87#define augassign_type 1013
88#define global_stmt_type 1014
89#define nonlocal_stmt_type 1015
90#define yield_stmt_type 1016
91#define assert_stmt_type 1017
92#define del_stmt_type 1018
93#define import_stmt_type 1019
94#define import_name_type 1020
95#define import_from_type 1021
96#define import_from_targets_type 1022
97#define import_from_as_names_type 1023
98#define import_from_as_name_type 1024
99#define dotted_as_names_type 1025
100#define dotted_as_name_type 1026
101#define dotted_name_type 1027 // Left-recursive
102#define if_stmt_type 1028
103#define elif_stmt_type 1029
104#define else_block_type 1030
105#define while_stmt_type 1031
106#define for_stmt_type 1032
107#define with_stmt_type 1033
108#define with_item_type 1034
109#define try_stmt_type 1035
110#define except_block_type 1036
111#define finally_block_type 1037
Brandt Bucher145bf262021-02-26 14:51:55 -0800112#define match_stmt_type 1038
113#define subject_expr_type 1039
114#define case_block_type 1040
115#define guard_type 1041
116#define patterns_type 1042
117#define pattern_type 1043
118#define as_pattern_type 1044
119#define or_pattern_type 1045
120#define closed_pattern_type 1046
121#define literal_pattern_type 1047
Nick Coghlan1e7b8582021-04-29 15:58:44 +1000122#define literal_expr_type 1048
123#define complex_number_type 1049
124#define signed_number_type 1050
Brandt Bucherdbe60ee2021-04-29 17:19:28 -0700125#define signed_real_number_type 1051
126#define real_number_type 1052
127#define imaginary_number_type 1053
128#define capture_pattern_type 1054
129#define pattern_capture_target_type 1055
130#define wildcard_pattern_type 1056
131#define value_pattern_type 1057
132#define attr_type 1058 // Left-recursive
133#define name_or_attr_type 1059 // Left-recursive
134#define group_pattern_type 1060
135#define sequence_pattern_type 1061
136#define open_sequence_pattern_type 1062
137#define maybe_sequence_pattern_type 1063
138#define maybe_star_pattern_type 1064
139#define star_pattern_type 1065
140#define mapping_pattern_type 1066
141#define items_pattern_type 1067
142#define key_value_pattern_type 1068
143#define double_star_pattern_type 1069
144#define class_pattern_type 1070
145#define positional_patterns_type 1071
146#define keyword_patterns_type 1072
147#define keyword_pattern_type 1073
148#define return_stmt_type 1074
149#define raise_stmt_type 1075
150#define function_def_type 1076
151#define function_def_raw_type 1077
152#define func_type_comment_type 1078
153#define params_type 1079
154#define parameters_type 1080
155#define slash_no_default_type 1081
156#define slash_with_default_type 1082
157#define star_etc_type 1083
158#define kwds_type 1084
159#define param_no_default_type 1085
160#define param_with_default_type 1086
161#define param_maybe_default_type 1087
162#define param_type 1088
163#define annotation_type 1089
164#define default_type 1090
165#define decorators_type 1091
166#define class_def_type 1092
167#define class_def_raw_type 1093
168#define block_type 1094
169#define star_expressions_type 1095
170#define star_expression_type 1096
171#define star_named_expressions_type 1097
172#define star_named_expression_type 1098
Pablo Galindo Salgado0e34a592021-11-04 23:19:27 +0000173#define assignment_expression_type 1099
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -0700174#define named_expression_type 1100
Brandt Bucherdbe60ee2021-04-29 17:19:28 -0700175#define annotated_rhs_type 1101
176#define expressions_type 1102
177#define expression_type 1103
178#define lambdef_type 1104
179#define lambda_params_type 1105
180#define lambda_parameters_type 1106
181#define lambda_slash_no_default_type 1107
182#define lambda_slash_with_default_type 1108
183#define lambda_star_etc_type 1109
184#define lambda_kwds_type 1110
185#define lambda_param_no_default_type 1111
186#define lambda_param_with_default_type 1112
187#define lambda_param_maybe_default_type 1113
188#define lambda_param_type 1114
189#define disjunction_type 1115
190#define conjunction_type 1116
191#define inversion_type 1117
192#define comparison_type 1118
193#define compare_op_bitwise_or_pair_type 1119
194#define eq_bitwise_or_type 1120
195#define noteq_bitwise_or_type 1121
196#define lte_bitwise_or_type 1122
197#define lt_bitwise_or_type 1123
198#define gte_bitwise_or_type 1124
199#define gt_bitwise_or_type 1125
200#define notin_bitwise_or_type 1126
201#define in_bitwise_or_type 1127
202#define isnot_bitwise_or_type 1128
203#define is_bitwise_or_type 1129
204#define bitwise_or_type 1130 // Left-recursive
205#define bitwise_xor_type 1131 // Left-recursive
206#define bitwise_and_type 1132 // Left-recursive
207#define shift_expr_type 1133 // Left-recursive
208#define sum_type 1134 // Left-recursive
209#define term_type 1135 // Left-recursive
210#define factor_type 1136
211#define power_type 1137
212#define await_primary_type 1138
213#define primary_type 1139 // Left-recursive
214#define slices_type 1140
215#define slice_type 1141
216#define atom_type 1142
217#define strings_type 1143
218#define list_type 1144
219#define listcomp_type 1145
220#define tuple_type 1146
221#define group_type 1147
222#define genexp_type 1148
223#define set_type 1149
224#define setcomp_type 1150
225#define dict_type 1151
226#define dictcomp_type 1152
227#define double_starred_kvpairs_type 1153
228#define double_starred_kvpair_type 1154
229#define kvpair_type 1155
230#define for_if_clauses_type 1156
231#define for_if_clause_type 1157
232#define yield_expr_type 1158
233#define arguments_type 1159
234#define args_type 1160
235#define kwargs_type 1161
236#define starred_expression_type 1162
237#define kwarg_or_starred_type 1163
238#define kwarg_or_double_starred_type 1164
239#define star_targets_type 1165
240#define star_targets_list_seq_type 1166
241#define star_targets_tuple_seq_type 1167
242#define star_target_type 1168
243#define target_with_star_atom_type 1169
244#define star_atom_type 1170
245#define single_target_type 1171
246#define single_subscript_attribute_target_type 1172
247#define del_targets_type 1173
248#define del_target_type 1174
249#define del_t_atom_type 1175
Miss Islington (bot)3e137422021-06-10 15:31:09 -0700250#define t_primary_type 1176 // Left-recursive
251#define t_lookahead_type 1177
252#define invalid_arguments_type 1178
253#define invalid_kwarg_type 1179
254#define expression_without_invalid_type 1180
Pablo Galindo Salgadob977f852021-07-27 18:52:32 +0100255#define invalid_legacy_expression_type 1181
256#define invalid_expression_type 1182
257#define invalid_named_expression_type 1183
258#define invalid_assignment_type 1184
259#define invalid_ann_assign_target_type 1185
260#define invalid_del_stmt_type 1186
261#define invalid_block_type 1187
262#define invalid_primary_type 1188 // Left-recursive
263#define invalid_comprehension_type 1189
264#define invalid_dict_comprehension_type 1190
265#define invalid_parameters_type 1191
266#define invalid_parameters_helper_type 1192
267#define invalid_lambda_parameters_type 1193
268#define invalid_lambda_parameters_helper_type 1194
269#define invalid_star_etc_type 1195
270#define invalid_lambda_star_etc_type 1196
271#define invalid_double_type_comments_type 1197
272#define invalid_with_item_type 1198
273#define invalid_for_target_type 1199
274#define invalid_group_type 1200
275#define invalid_import_from_targets_type 1201
276#define invalid_with_stmt_type 1202
277#define invalid_with_stmt_indent_type 1203
278#define invalid_try_stmt_type 1204
279#define invalid_except_stmt_type 1205
280#define invalid_finally_stmt_type 1206
281#define invalid_except_stmt_indent_type 1207
282#define invalid_match_stmt_type 1208
283#define invalid_case_block_type 1209
284#define invalid_as_pattern_type 1210
285#define invalid_class_pattern_type 1211
286#define invalid_class_argument_pattern_type 1212
287#define invalid_if_stmt_type 1213
288#define invalid_elif_stmt_type 1214
289#define invalid_else_stmt_type 1215
290#define invalid_while_stmt_type 1216
291#define invalid_for_stmt_type 1217
292#define invalid_def_raw_type 1218
293#define invalid_class_def_raw_type 1219
294#define invalid_double_starred_kvpairs_type 1220
295#define invalid_kvpair_type 1221
296#define _loop0_1_type 1222
297#define _loop0_2_type 1223
298#define _loop0_4_type 1224
299#define _gather_3_type 1225
300#define _loop0_6_type 1226
301#define _gather_5_type 1227
302#define _loop0_8_type 1228
303#define _gather_7_type 1229
304#define _loop0_10_type 1230
305#define _gather_9_type 1231
306#define _loop1_11_type 1232
307#define _loop0_13_type 1233
308#define _gather_12_type 1234
309#define _tmp_14_type 1235
310#define _tmp_15_type 1236
311#define _tmp_16_type 1237
312#define _tmp_17_type 1238
313#define _tmp_18_type 1239
314#define _tmp_19_type 1240
315#define _tmp_20_type 1241
316#define _tmp_21_type 1242
317#define _loop1_22_type 1243
318#define _tmp_23_type 1244
319#define _tmp_24_type 1245
320#define _loop0_26_type 1246
321#define _gather_25_type 1247
322#define _loop0_28_type 1248
323#define _gather_27_type 1249
324#define _tmp_29_type 1250
325#define _tmp_30_type 1251
326#define _loop0_31_type 1252
327#define _loop1_32_type 1253
328#define _loop0_34_type 1254
329#define _gather_33_type 1255
330#define _tmp_35_type 1256
331#define _loop0_37_type 1257
332#define _gather_36_type 1258
333#define _tmp_38_type 1259
334#define _loop0_40_type 1260
335#define _gather_39_type 1261
336#define _loop0_42_type 1262
337#define _gather_41_type 1263
338#define _loop0_44_type 1264
339#define _gather_43_type 1265
340#define _loop0_46_type 1266
341#define _gather_45_type 1267
342#define _tmp_47_type 1268
343#define _loop1_48_type 1269
344#define _tmp_49_type 1270
345#define _loop1_50_type 1271
346#define _loop0_52_type 1272
347#define _gather_51_type 1273
348#define _tmp_53_type 1274
349#define _tmp_54_type 1275
350#define _tmp_55_type 1276
351#define _tmp_56_type 1277
352#define _loop0_58_type 1278
353#define _gather_57_type 1279
354#define _loop0_60_type 1280
355#define _gather_59_type 1281
356#define _tmp_61_type 1282
357#define _loop0_63_type 1283
358#define _gather_62_type 1284
359#define _loop0_65_type 1285
360#define _gather_64_type 1286
361#define _tmp_66_type 1287
362#define _tmp_67_type 1288
363#define _tmp_68_type 1289
364#define _tmp_69_type 1290
365#define _loop0_70_type 1291
366#define _loop0_71_type 1292
367#define _loop0_72_type 1293
368#define _loop1_73_type 1294
369#define _loop0_74_type 1295
370#define _loop1_75_type 1296
371#define _loop1_76_type 1297
372#define _loop1_77_type 1298
373#define _loop0_78_type 1299
374#define _loop1_79_type 1300
375#define _loop0_80_type 1301
376#define _loop1_81_type 1302
377#define _loop0_82_type 1303
378#define _loop1_83_type 1304
379#define _loop1_84_type 1305
380#define _tmp_85_type 1306
381#define _loop1_86_type 1307
382#define _loop0_88_type 1308
383#define _gather_87_type 1309
384#define _loop1_89_type 1310
385#define _loop0_90_type 1311
386#define _loop0_91_type 1312
387#define _loop0_92_type 1313
388#define _loop1_93_type 1314
389#define _loop0_94_type 1315
390#define _loop1_95_type 1316
391#define _loop1_96_type 1317
392#define _loop1_97_type 1318
393#define _loop0_98_type 1319
394#define _loop1_99_type 1320
395#define _loop0_100_type 1321
396#define _loop1_101_type 1322
397#define _loop0_102_type 1323
398#define _loop1_103_type 1324
399#define _loop1_104_type 1325
400#define _loop1_105_type 1326
401#define _loop1_106_type 1327
402#define _tmp_107_type 1328
403#define _loop0_109_type 1329
404#define _gather_108_type 1330
405#define _tmp_110_type 1331
406#define _tmp_111_type 1332
407#define _tmp_112_type 1333
408#define _tmp_113_type 1334
409#define _loop1_114_type 1335
410#define _tmp_115_type 1336
411#define _tmp_116_type 1337
412#define _tmp_117_type 1338
413#define _loop0_119_type 1339
414#define _gather_118_type 1340
415#define _loop1_120_type 1341
416#define _loop0_121_type 1342
417#define _loop0_122_type 1343
418#define _loop0_124_type 1344
419#define _gather_123_type 1345
420#define _tmp_125_type 1346
421#define _loop0_127_type 1347
422#define _gather_126_type 1348
423#define _loop0_129_type 1349
424#define _gather_128_type 1350
425#define _loop0_131_type 1351
426#define _gather_130_type 1352
427#define _loop0_133_type 1353
428#define _gather_132_type 1354
429#define _loop0_134_type 1355
430#define _loop0_136_type 1356
431#define _gather_135_type 1357
432#define _loop1_137_type 1358
433#define _tmp_138_type 1359
434#define _loop0_140_type 1360
435#define _gather_139_type 1361
436#define _tmp_141_type 1362
437#define _tmp_142_type 1363
438#define _tmp_143_type 1364
439#define _tmp_144_type 1365
440#define _tmp_145_type 1366
441#define _tmp_146_type 1367
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +0100442#define _tmp_147_type 1368
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +0000443#define _tmp_148_type 1369
Pablo Galindo Salgadob977f852021-07-27 18:52:32 +0100444#define _loop0_149_type 1370
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +0100445#define _loop0_150_type 1371
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +0000446#define _loop0_151_type 1372
Pablo Galindo Salgadob977f852021-07-27 18:52:32 +0100447#define _tmp_152_type 1373
448#define _tmp_153_type 1374
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +0100449#define _tmp_154_type 1375
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +0000450#define _tmp_155_type 1376
451#define _loop0_156_type 1377
452#define _loop1_157_type 1378
453#define _loop0_158_type 1379
454#define _loop1_159_type 1380
Pablo Galindo Salgadob977f852021-07-27 18:52:32 +0100455#define _tmp_160_type 1381
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +0100456#define _tmp_161_type 1382
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +0000457#define _tmp_162_type 1383
458#define _loop0_164_type 1384
459#define _gather_163_type 1385
460#define _loop0_166_type 1386
461#define _gather_165_type 1387
462#define _loop0_168_type 1388
463#define _gather_167_type 1389
464#define _loop0_170_type 1390
465#define _gather_169_type 1391
Pablo Galindo Salgadob977f852021-07-27 18:52:32 +0100466#define _tmp_171_type 1392
467#define _tmp_172_type 1393
468#define _tmp_173_type 1394
469#define _tmp_174_type 1395
470#define _tmp_175_type 1396
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +0100471#define _tmp_176_type 1397
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +0000472#define _tmp_177_type 1398
473#define _loop0_179_type 1399
474#define _gather_178_type 1400
Pablo Galindo Salgadob977f852021-07-27 18:52:32 +0100475#define _tmp_180_type 1401
476#define _tmp_181_type 1402
477#define _tmp_182_type 1403
478#define _tmp_183_type 1404
479#define _tmp_184_type 1405
480#define _tmp_185_type 1406
481#define _tmp_186_type 1407
482#define _tmp_187_type 1408
483#define _tmp_188_type 1409
484#define _tmp_189_type 1410
485#define _tmp_190_type 1411
486#define _tmp_191_type 1412
487#define _tmp_192_type 1413
488#define _tmp_193_type 1414
489#define _tmp_194_type 1415
490#define _tmp_195_type 1416
491#define _tmp_196_type 1417
492#define _tmp_197_type 1418
493#define _tmp_198_type 1419
494#define _tmp_199_type 1420
495#define _tmp_200_type 1421
496#define _tmp_201_type 1422
497#define _tmp_202_type 1423
498#define _tmp_203_type 1424
499#define _tmp_204_type 1425
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +0100500#define _tmp_205_type 1426
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +0000501#define _tmp_206_type 1427
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100502
503static mod_ty file_rule(Parser *p);
504static mod_ty interactive_rule(Parser *p);
505static mod_ty eval_rule(Parser *p);
506static mod_ty func_type_rule(Parser *p);
507static expr_ty fstring_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100508static asdl_expr_seq* type_expressions_rule(Parser *p);
509static asdl_stmt_seq* statements_rule(Parser *p);
510static asdl_stmt_seq* statement_rule(Parser *p);
511static asdl_stmt_seq* statement_newline_rule(Parser *p);
Pablo Galindo9bdc40e2020-11-30 19:42:38 +0000512static asdl_stmt_seq* simple_stmts_rule(Parser *p);
513static stmt_ty simple_stmt_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100514static stmt_ty compound_stmt_rule(Parser *p);
515static stmt_ty assignment_rule(Parser *p);
516static AugOperator* augassign_rule(Parser *p);
517static stmt_ty global_stmt_rule(Parser *p);
518static stmt_ty nonlocal_stmt_rule(Parser *p);
519static stmt_ty yield_stmt_rule(Parser *p);
520static stmt_ty assert_stmt_rule(Parser *p);
521static stmt_ty del_stmt_rule(Parser *p);
522static stmt_ty import_stmt_rule(Parser *p);
523static stmt_ty import_name_rule(Parser *p);
524static stmt_ty import_from_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100525static asdl_alias_seq* import_from_targets_rule(Parser *p);
526static asdl_alias_seq* import_from_as_names_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100527static alias_ty import_from_as_name_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100528static asdl_alias_seq* dotted_as_names_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100529static alias_ty dotted_as_name_rule(Parser *p);
530static expr_ty dotted_name_rule(Parser *p);
531static stmt_ty if_stmt_rule(Parser *p);
532static stmt_ty elif_stmt_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100533static asdl_stmt_seq* else_block_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100534static stmt_ty while_stmt_rule(Parser *p);
535static stmt_ty for_stmt_rule(Parser *p);
536static stmt_ty with_stmt_rule(Parser *p);
537static withitem_ty with_item_rule(Parser *p);
538static stmt_ty try_stmt_rule(Parser *p);
539static excepthandler_ty except_block_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100540static asdl_stmt_seq* finally_block_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800541static stmt_ty match_stmt_rule(Parser *p);
542static expr_ty subject_expr_rule(Parser *p);
543static match_case_ty case_block_rule(Parser *p);
544static expr_ty guard_rule(Parser *p);
Nick Coghlan1e7b8582021-04-29 15:58:44 +1000545static pattern_ty patterns_rule(Parser *p);
546static pattern_ty pattern_rule(Parser *p);
547static pattern_ty as_pattern_rule(Parser *p);
548static pattern_ty or_pattern_rule(Parser *p);
549static pattern_ty closed_pattern_rule(Parser *p);
550static pattern_ty literal_pattern_rule(Parser *p);
551static expr_ty literal_expr_rule(Parser *p);
552static expr_ty complex_number_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800553static expr_ty signed_number_rule(Parser *p);
Brandt Bucherdbe60ee2021-04-29 17:19:28 -0700554static expr_ty signed_real_number_rule(Parser *p);
555static expr_ty real_number_rule(Parser *p);
Nick Coghlan1e7b8582021-04-29 15:58:44 +1000556static expr_ty imaginary_number_rule(Parser *p);
557static pattern_ty capture_pattern_rule(Parser *p);
558static expr_ty pattern_capture_target_rule(Parser *p);
559static pattern_ty wildcard_pattern_rule(Parser *p);
560static pattern_ty value_pattern_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800561static expr_ty attr_rule(Parser *p);
562static expr_ty name_or_attr_rule(Parser *p);
Nick Coghlan1e7b8582021-04-29 15:58:44 +1000563static pattern_ty group_pattern_rule(Parser *p);
564static pattern_ty sequence_pattern_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800565static asdl_seq* open_sequence_pattern_rule(Parser *p);
566static asdl_seq* maybe_sequence_pattern_rule(Parser *p);
Nick Coghlan1e7b8582021-04-29 15:58:44 +1000567static pattern_ty maybe_star_pattern_rule(Parser *p);
568static pattern_ty star_pattern_rule(Parser *p);
569static pattern_ty mapping_pattern_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800570static asdl_seq* items_pattern_rule(Parser *p);
Nick Coghlan1e7b8582021-04-29 15:58:44 +1000571static KeyPatternPair* key_value_pattern_rule(Parser *p);
572static expr_ty double_star_pattern_rule(Parser *p);
573static pattern_ty class_pattern_rule(Parser *p);
574static asdl_pattern_seq* positional_patterns_rule(Parser *p);
575static asdl_seq* keyword_patterns_rule(Parser *p);
576static KeyPatternPair* keyword_pattern_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100577static stmt_ty return_stmt_rule(Parser *p);
578static stmt_ty raise_stmt_rule(Parser *p);
579static stmt_ty function_def_rule(Parser *p);
580static stmt_ty function_def_raw_rule(Parser *p);
581static Token* func_type_comment_rule(Parser *p);
582static arguments_ty params_rule(Parser *p);
583static arguments_ty parameters_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100584static asdl_arg_seq* slash_no_default_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100585static SlashWithDefault* slash_with_default_rule(Parser *p);
586static StarEtc* star_etc_rule(Parser *p);
587static arg_ty kwds_rule(Parser *p);
588static arg_ty param_no_default_rule(Parser *p);
589static NameDefaultPair* param_with_default_rule(Parser *p);
590static NameDefaultPair* param_maybe_default_rule(Parser *p);
591static arg_ty param_rule(Parser *p);
592static expr_ty annotation_rule(Parser *p);
593static expr_ty default_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100594static asdl_expr_seq* decorators_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100595static stmt_ty class_def_rule(Parser *p);
596static stmt_ty class_def_raw_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100597static asdl_stmt_seq* block_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100598static expr_ty star_expressions_rule(Parser *p);
599static expr_ty star_expression_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100600static asdl_expr_seq* star_named_expressions_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100601static expr_ty star_named_expression_rule(Parser *p);
Pablo Galindo Salgado0e34a592021-11-04 23:19:27 +0000602static expr_ty assignment_expression_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100603static expr_ty named_expression_rule(Parser *p);
604static expr_ty annotated_rhs_rule(Parser *p);
605static expr_ty expressions_rule(Parser *p);
606static expr_ty expression_rule(Parser *p);
607static expr_ty lambdef_rule(Parser *p);
608static arguments_ty lambda_params_rule(Parser *p);
609static arguments_ty lambda_parameters_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100610static asdl_arg_seq* lambda_slash_no_default_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100611static SlashWithDefault* lambda_slash_with_default_rule(Parser *p);
612static StarEtc* lambda_star_etc_rule(Parser *p);
613static arg_ty lambda_kwds_rule(Parser *p);
614static arg_ty lambda_param_no_default_rule(Parser *p);
615static NameDefaultPair* lambda_param_with_default_rule(Parser *p);
616static NameDefaultPair* lambda_param_maybe_default_rule(Parser *p);
617static arg_ty lambda_param_rule(Parser *p);
618static expr_ty disjunction_rule(Parser *p);
619static expr_ty conjunction_rule(Parser *p);
620static expr_ty inversion_rule(Parser *p);
621static expr_ty comparison_rule(Parser *p);
622static CmpopExprPair* compare_op_bitwise_or_pair_rule(Parser *p);
623static CmpopExprPair* eq_bitwise_or_rule(Parser *p);
624static CmpopExprPair* noteq_bitwise_or_rule(Parser *p);
625static CmpopExprPair* lte_bitwise_or_rule(Parser *p);
626static CmpopExprPair* lt_bitwise_or_rule(Parser *p);
627static CmpopExprPair* gte_bitwise_or_rule(Parser *p);
628static CmpopExprPair* gt_bitwise_or_rule(Parser *p);
629static CmpopExprPair* notin_bitwise_or_rule(Parser *p);
630static CmpopExprPair* in_bitwise_or_rule(Parser *p);
631static CmpopExprPair* isnot_bitwise_or_rule(Parser *p);
632static CmpopExprPair* is_bitwise_or_rule(Parser *p);
633static expr_ty bitwise_or_rule(Parser *p);
634static expr_ty bitwise_xor_rule(Parser *p);
635static expr_ty bitwise_and_rule(Parser *p);
636static expr_ty shift_expr_rule(Parser *p);
637static expr_ty sum_rule(Parser *p);
638static expr_ty term_rule(Parser *p);
639static expr_ty factor_rule(Parser *p);
640static expr_ty power_rule(Parser *p);
641static expr_ty await_primary_rule(Parser *p);
642static expr_ty primary_rule(Parser *p);
643static expr_ty slices_rule(Parser *p);
644static expr_ty slice_rule(Parser *p);
645static expr_ty atom_rule(Parser *p);
646static expr_ty strings_rule(Parser *p);
647static expr_ty list_rule(Parser *p);
648static expr_ty listcomp_rule(Parser *p);
649static expr_ty tuple_rule(Parser *p);
650static expr_ty group_rule(Parser *p);
651static expr_ty genexp_rule(Parser *p);
652static expr_ty set_rule(Parser *p);
653static expr_ty setcomp_rule(Parser *p);
654static expr_ty dict_rule(Parser *p);
655static expr_ty dictcomp_rule(Parser *p);
656static asdl_seq* double_starred_kvpairs_rule(Parser *p);
657static KeyValuePair* double_starred_kvpair_rule(Parser *p);
658static KeyValuePair* kvpair_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100659static asdl_comprehension_seq* for_if_clauses_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100660static comprehension_ty for_if_clause_rule(Parser *p);
661static expr_ty yield_expr_rule(Parser *p);
662static expr_ty arguments_rule(Parser *p);
663static expr_ty args_rule(Parser *p);
664static asdl_seq* kwargs_rule(Parser *p);
665static expr_ty starred_expression_rule(Parser *p);
666static KeywordOrStarred* kwarg_or_starred_rule(Parser *p);
667static KeywordOrStarred* kwarg_or_double_starred_rule(Parser *p);
668static expr_ty star_targets_rule(Parser *p);
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +0200669static asdl_expr_seq* star_targets_list_seq_rule(Parser *p);
670static asdl_expr_seq* star_targets_tuple_seq_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100671static expr_ty star_target_rule(Parser *p);
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +0200672static expr_ty target_with_star_atom_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100673static expr_ty star_atom_rule(Parser *p);
674static expr_ty single_target_rule(Parser *p);
675static expr_ty single_subscript_attribute_target_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100676static asdl_expr_seq* del_targets_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100677static expr_ty del_target_rule(Parser *p);
678static expr_ty del_t_atom_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100679static expr_ty t_primary_rule(Parser *p);
680static void *t_lookahead_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 Galindo Salgadob977f852021-07-27 18:52:32 +0100684static void *invalid_legacy_expression_rule(Parser *p);
Pablo Galindob2802482021-04-15 21:38:45 +0100685static void *invalid_expression_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100686static void *invalid_named_expression_rule(Parser *p);
687static void *invalid_assignment_rule(Parser *p);
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +0300688static expr_ty invalid_ann_assign_target_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300689static void *invalid_del_stmt_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100690static void *invalid_block_rule(Parser *p);
Lysandros Nikolaou15acc4e2020-10-27 20:54:20 +0200691static void *invalid_primary_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100692static void *invalid_comprehension_rule(Parser *p);
693static void *invalid_dict_comprehension_rule(Parser *p);
694static void *invalid_parameters_rule(Parser *p);
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +0200695static void *invalid_parameters_helper_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100696static void *invalid_lambda_parameters_rule(Parser *p);
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +0200697static void *invalid_lambda_parameters_helper_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100698static void *invalid_star_etc_rule(Parser *p);
699static void *invalid_lambda_star_etc_rule(Parser *p);
700static void *invalid_double_type_comments_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300701static void *invalid_with_item_rule(Parser *p);
702static void *invalid_for_target_rule(Parser *p);
703static void *invalid_group_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100704static void *invalid_import_from_targets_rule(Parser *p);
Pablo Galindo58fb1562021-02-02 19:54:22 +0000705static void *invalid_with_stmt_rule(Parser *p);
Pablo Galindo56c95df2021-04-21 15:28:21 +0100706static void *invalid_with_stmt_indent_rule(Parser *p);
707static void *invalid_try_stmt_rule(Parser *p);
708static void *invalid_except_stmt_rule(Parser *p);
709static void *invalid_finally_stmt_rule(Parser *p);
710static void *invalid_except_stmt_indent_rule(Parser *p);
Pablo Galindo08fb8ac2021-03-18 01:03:11 +0000711static void *invalid_match_stmt_rule(Parser *p);
712static void *invalid_case_block_rule(Parser *p);
Pablo Galindoa8c418d2021-06-18 22:15:57 +0100713static void *invalid_as_pattern_rule(Parser *p);
Miss Islington (bot)11f1a302021-06-24 08:34:28 -0700714static void *invalid_class_pattern_rule(Parser *p);
715static asdl_pattern_seq* invalid_class_argument_pattern_rule(Parser *p);
Pablo Galindob86ed8e2021-04-12 16:59:30 +0100716static void *invalid_if_stmt_rule(Parser *p);
717static void *invalid_elif_stmt_rule(Parser *p);
Pablo Galindo56c95df2021-04-21 15:28:21 +0100718static void *invalid_else_stmt_rule(Parser *p);
Pablo Galindob86ed8e2021-04-12 16:59:30 +0100719static void *invalid_while_stmt_rule(Parser *p);
Pablo Galindo56c95df2021-04-21 15:28:21 +0100720static void *invalid_for_stmt_rule(Parser *p);
721static void *invalid_def_raw_rule(Parser *p);
722static void *invalid_class_def_raw_rule(Parser *p);
Pablo Galindoda743502021-04-15 14:06:39 +0100723static void *invalid_double_starred_kvpairs_rule(Parser *p);
724static void *invalid_kvpair_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100725static asdl_seq *_loop0_1_rule(Parser *p);
726static asdl_seq *_loop0_2_rule(Parser *p);
727static asdl_seq *_loop0_4_rule(Parser *p);
728static asdl_seq *_gather_3_rule(Parser *p);
729static asdl_seq *_loop0_6_rule(Parser *p);
730static asdl_seq *_gather_5_rule(Parser *p);
731static asdl_seq *_loop0_8_rule(Parser *p);
732static asdl_seq *_gather_7_rule(Parser *p);
733static asdl_seq *_loop0_10_rule(Parser *p);
734static asdl_seq *_gather_9_rule(Parser *p);
735static asdl_seq *_loop1_11_rule(Parser *p);
736static asdl_seq *_loop0_13_rule(Parser *p);
737static asdl_seq *_gather_12_rule(Parser *p);
738static void *_tmp_14_rule(Parser *p);
739static void *_tmp_15_rule(Parser *p);
740static void *_tmp_16_rule(Parser *p);
741static void *_tmp_17_rule(Parser *p);
742static void *_tmp_18_rule(Parser *p);
743static void *_tmp_19_rule(Parser *p);
744static void *_tmp_20_rule(Parser *p);
745static void *_tmp_21_rule(Parser *p);
746static asdl_seq *_loop1_22_rule(Parser *p);
747static void *_tmp_23_rule(Parser *p);
748static void *_tmp_24_rule(Parser *p);
749static asdl_seq *_loop0_26_rule(Parser *p);
750static asdl_seq *_gather_25_rule(Parser *p);
751static asdl_seq *_loop0_28_rule(Parser *p);
752static asdl_seq *_gather_27_rule(Parser *p);
753static void *_tmp_29_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300754static void *_tmp_30_rule(Parser *p);
755static asdl_seq *_loop0_31_rule(Parser *p);
756static asdl_seq *_loop1_32_rule(Parser *p);
757static asdl_seq *_loop0_34_rule(Parser *p);
758static asdl_seq *_gather_33_rule(Parser *p);
759static void *_tmp_35_rule(Parser *p);
760static asdl_seq *_loop0_37_rule(Parser *p);
761static asdl_seq *_gather_36_rule(Parser *p);
762static void *_tmp_38_rule(Parser *p);
763static asdl_seq *_loop0_40_rule(Parser *p);
764static asdl_seq *_gather_39_rule(Parser *p);
765static asdl_seq *_loop0_42_rule(Parser *p);
766static asdl_seq *_gather_41_rule(Parser *p);
767static asdl_seq *_loop0_44_rule(Parser *p);
768static asdl_seq *_gather_43_rule(Parser *p);
769static asdl_seq *_loop0_46_rule(Parser *p);
770static asdl_seq *_gather_45_rule(Parser *p);
771static void *_tmp_47_rule(Parser *p);
772static asdl_seq *_loop1_48_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100773static void *_tmp_49_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800774static asdl_seq *_loop1_50_rule(Parser *p);
775static asdl_seq *_loop0_52_rule(Parser *p);
776static asdl_seq *_gather_51_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300777static void *_tmp_53_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800778static void *_tmp_54_rule(Parser *p);
779static void *_tmp_55_rule(Parser *p);
Nick Coghlan1e7b8582021-04-29 15:58:44 +1000780static void *_tmp_56_rule(Parser *p);
781static asdl_seq *_loop0_58_rule(Parser *p);
782static asdl_seq *_gather_57_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800783static asdl_seq *_loop0_60_rule(Parser *p);
784static asdl_seq *_gather_59_rule(Parser *p);
785static void *_tmp_61_rule(Parser *p);
786static asdl_seq *_loop0_63_rule(Parser *p);
787static asdl_seq *_gather_62_rule(Parser *p);
788static asdl_seq *_loop0_65_rule(Parser *p);
789static asdl_seq *_gather_64_rule(Parser *p);
790static void *_tmp_66_rule(Parser *p);
791static void *_tmp_67_rule(Parser *p);
792static void *_tmp_68_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300793static void *_tmp_69_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800794static asdl_seq *_loop0_70_rule(Parser *p);
795static asdl_seq *_loop0_71_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000796static asdl_seq *_loop0_72_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000797static asdl_seq *_loop1_73_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300798static asdl_seq *_loop0_74_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800799static asdl_seq *_loop1_75_rule(Parser *p);
800static asdl_seq *_loop1_76_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000801static asdl_seq *_loop1_77_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300802static asdl_seq *_loop0_78_rule(Parser *p);
803static asdl_seq *_loop1_79_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800804static asdl_seq *_loop0_80_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100805static asdl_seq *_loop1_81_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000806static asdl_seq *_loop0_82_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300807static asdl_seq *_loop1_83_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800808static asdl_seq *_loop1_84_rule(Parser *p);
809static void *_tmp_85_rule(Parser *p);
810static asdl_seq *_loop1_86_rule(Parser *p);
811static asdl_seq *_loop0_88_rule(Parser *p);
812static asdl_seq *_gather_87_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100813static asdl_seq *_loop1_89_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800814static asdl_seq *_loop0_90_rule(Parser *p);
815static asdl_seq *_loop0_91_rule(Parser *p);
816static asdl_seq *_loop0_92_rule(Parser *p);
817static asdl_seq *_loop1_93_rule(Parser *p);
818static asdl_seq *_loop0_94_rule(Parser *p);
819static asdl_seq *_loop1_95_rule(Parser *p);
820static asdl_seq *_loop1_96_rule(Parser *p);
821static asdl_seq *_loop1_97_rule(Parser *p);
822static asdl_seq *_loop0_98_rule(Parser *p);
823static asdl_seq *_loop1_99_rule(Parser *p);
824static asdl_seq *_loop0_100_rule(Parser *p);
825static asdl_seq *_loop1_101_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000826static asdl_seq *_loop0_102_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000827static asdl_seq *_loop1_103_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800828static asdl_seq *_loop1_104_rule(Parser *p);
829static asdl_seq *_loop1_105_rule(Parser *p);
830static asdl_seq *_loop1_106_rule(Parser *p);
831static void *_tmp_107_rule(Parser *p);
832static asdl_seq *_loop0_109_rule(Parser *p);
833static asdl_seq *_gather_108_rule(Parser *p);
834static void *_tmp_110_rule(Parser *p);
835static void *_tmp_111_rule(Parser *p);
836static void *_tmp_112_rule(Parser *p);
837static void *_tmp_113_rule(Parser *p);
838static asdl_seq *_loop1_114_rule(Parser *p);
839static void *_tmp_115_rule(Parser *p);
840static void *_tmp_116_rule(Parser *p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -0700841static void *_tmp_117_rule(Parser *p);
842static asdl_seq *_loop0_119_rule(Parser *p);
843static asdl_seq *_gather_118_rule(Parser *p);
844static asdl_seq *_loop1_120_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800845static asdl_seq *_loop0_121_rule(Parser *p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -0700846static asdl_seq *_loop0_122_rule(Parser *p);
847static asdl_seq *_loop0_124_rule(Parser *p);
848static asdl_seq *_gather_123_rule(Parser *p);
849static void *_tmp_125_rule(Parser *p);
850static asdl_seq *_loop0_127_rule(Parser *p);
851static asdl_seq *_gather_126_rule(Parser *p);
852static asdl_seq *_loop0_129_rule(Parser *p);
853static asdl_seq *_gather_128_rule(Parser *p);
854static asdl_seq *_loop0_131_rule(Parser *p);
855static asdl_seq *_gather_130_rule(Parser *p);
Pablo Galindo835f14f2021-01-31 22:52:56 +0000856static asdl_seq *_loop0_133_rule(Parser *p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -0700857static asdl_seq *_gather_132_rule(Parser *p);
858static asdl_seq *_loop0_134_rule(Parser *p);
859static asdl_seq *_loop0_136_rule(Parser *p);
860static asdl_seq *_gather_135_rule(Parser *p);
861static asdl_seq *_loop1_137_rule(Parser *p);
862static void *_tmp_138_rule(Parser *p);
863static asdl_seq *_loop0_140_rule(Parser *p);
864static asdl_seq *_gather_139_rule(Parser *p);
Miss Islington (bot)3e137422021-06-10 15:31:09 -0700865static void *_tmp_141_rule(Parser *p);
866static void *_tmp_142_rule(Parser *p);
Pablo Galindob86ed8e2021-04-12 16:59:30 +0100867static void *_tmp_143_rule(Parser *p);
868static void *_tmp_144_rule(Parser *p);
869static void *_tmp_145_rule(Parser *p);
Pablo Galindob2802482021-04-15 21:38:45 +0100870static void *_tmp_146_rule(Parser *p);
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +0100871static void *_tmp_147_rule(Parser *p);
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +0000872static void *_tmp_148_rule(Parser *p);
Pablo Galindob2802482021-04-15 21:38:45 +0100873static asdl_seq *_loop0_149_rule(Parser *p);
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +0100874static asdl_seq *_loop0_150_rule(Parser *p);
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +0000875static asdl_seq *_loop0_151_rule(Parser *p);
Pablo Galindob2802482021-04-15 21:38:45 +0100876static void *_tmp_152_rule(Parser *p);
Pablo Galindoa77aac42021-04-23 14:27:05 +0100877static void *_tmp_153_rule(Parser *p);
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +0100878static void *_tmp_154_rule(Parser *p);
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +0000879static void *_tmp_155_rule(Parser *p);
880static asdl_seq *_loop0_156_rule(Parser *p);
881static asdl_seq *_loop1_157_rule(Parser *p);
882static asdl_seq *_loop0_158_rule(Parser *p);
883static asdl_seq *_loop1_159_rule(Parser *p);
Pablo Galindoa77aac42021-04-23 14:27:05 +0100884static void *_tmp_160_rule(Parser *p);
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +0100885static void *_tmp_161_rule(Parser *p);
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +0000886static void *_tmp_162_rule(Parser *p);
887static asdl_seq *_loop0_164_rule(Parser *p);
888static asdl_seq *_gather_163_rule(Parser *p);
889static asdl_seq *_loop0_166_rule(Parser *p);
890static asdl_seq *_gather_165_rule(Parser *p);
891static asdl_seq *_loop0_168_rule(Parser *p);
892static asdl_seq *_gather_167_rule(Parser *p);
893static asdl_seq *_loop0_170_rule(Parser *p);
894static asdl_seq *_gather_169_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800895static void *_tmp_171_rule(Parser *p);
896static void *_tmp_172_rule(Parser *p);
Pablo Galindoa77aac42021-04-23 14:27:05 +0100897static void *_tmp_173_rule(Parser *p);
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -0700898static void *_tmp_174_rule(Parser *p);
Miss Islington (bot)11f1a302021-06-24 08:34:28 -0700899static void *_tmp_175_rule(Parser *p);
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +0100900static void *_tmp_176_rule(Parser *p);
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +0000901static void *_tmp_177_rule(Parser *p);
902static asdl_seq *_loop0_179_rule(Parser *p);
903static asdl_seq *_gather_178_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800904static void *_tmp_180_rule(Parser *p);
905static void *_tmp_181_rule(Parser *p);
906static void *_tmp_182_rule(Parser *p);
Pablo Galindob86ed8e2021-04-12 16:59:30 +0100907static void *_tmp_183_rule(Parser *p);
908static void *_tmp_184_rule(Parser *p);
909static void *_tmp_185_rule(Parser *p);
Pablo Galindoda743502021-04-15 14:06:39 +0100910static void *_tmp_186_rule(Parser *p);
911static void *_tmp_187_rule(Parser *p);
912static void *_tmp_188_rule(Parser *p);
Pablo Galindob2802482021-04-15 21:38:45 +0100913static void *_tmp_189_rule(Parser *p);
Pablo Galindo56c95df2021-04-21 15:28:21 +0100914static void *_tmp_190_rule(Parser *p);
915static void *_tmp_191_rule(Parser *p);
916static void *_tmp_192_rule(Parser *p);
917static void *_tmp_193_rule(Parser *p);
918static void *_tmp_194_rule(Parser *p);
919static void *_tmp_195_rule(Parser *p);
920static void *_tmp_196_rule(Parser *p);
921static void *_tmp_197_rule(Parser *p);
922static void *_tmp_198_rule(Parser *p);
923static void *_tmp_199_rule(Parser *p);
924static void *_tmp_200_rule(Parser *p);
Pablo Galindoa77aac42021-04-23 14:27:05 +0100925static void *_tmp_201_rule(Parser *p);
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -0700926static void *_tmp_202_rule(Parser *p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -0700927static void *_tmp_203_rule(Parser *p);
Miss Islington (bot)11f1a302021-06-24 08:34:28 -0700928static void *_tmp_204_rule(Parser *p);
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +0100929static void *_tmp_205_rule(Parser *p);
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +0000930static void *_tmp_206_rule(Parser *p);
Guido van Rossum85a5fbb1990-10-14 12:07:46 +0000931
932
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100933// file: statements? $
934static mod_ty
935file_rule(Parser *p)
Guido van Rossum85a5fbb1990-10-14 12:07:46 +0000936{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100937 D(p->level++);
938 if (p->error_indicator) {
939 D(p->level--);
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000940 return NULL;
941 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100942 mod_ty _res = NULL;
943 int _mark = p->mark;
944 { // statements? $
945 if (p->error_indicator) {
946 D(p->level--);
947 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000948 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100949 D(fprintf(stderr, "%*c> file[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statements? $"));
950 void *a;
951 Token * endmarker_var;
952 if (
Łukasz Langa5c9cab52021-10-19 22:31:18 +0200953 (a = statements_rule(p), !p->error_indicator) // statements?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100954 &&
955 (endmarker_var = _PyPegen_expect_token(p, ENDMARKER)) // token='ENDMARKER'
956 )
957 {
958 D(fprintf(stderr, "%*c+ file[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "statements? $"));
959 _res = _PyPegen_make_module ( p , a );
960 if (_res == NULL && PyErr_Occurred()) {
961 p->error_indicator = 1;
962 D(p->level--);
963 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000964 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100965 goto done;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000966 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100967 p->mark = _mark;
968 D(fprintf(stderr, "%*c%s file[%d-%d]: %s failed!\n", p->level, ' ',
969 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statements? $"));
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000970 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100971 _res = NULL;
972 done:
973 D(p->level--);
974 return _res;
Guido van Rossum85a5fbb1990-10-14 12:07:46 +0000975}
976
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100977// interactive: statement_newline
978static mod_ty
979interactive_rule(Parser *p)
Guido van Rossumb09f7ed2001-07-15 21:08:29 +0000980{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100981 D(p->level++);
982 if (p->error_indicator) {
983 D(p->level--);
984 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000985 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100986 mod_ty _res = NULL;
987 int _mark = p->mark;
988 { // statement_newline
989 if (p->error_indicator) {
990 D(p->level--);
991 return NULL;
992 }
993 D(fprintf(stderr, "%*c> interactive[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statement_newline"));
Pablo Galindoa5634c42020-09-16 19:42:00 +0100994 asdl_stmt_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100995 if (
996 (a = statement_newline_rule(p)) // statement_newline
997 )
998 {
999 D(fprintf(stderr, "%*c+ interactive[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "statement_newline"));
Victor Stinnerd27f8d22021-04-07 21:34:22 +02001000 _res = _PyAST_Interactive ( a , p -> arena );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001001 if (_res == NULL && PyErr_Occurred()) {
1002 p->error_indicator = 1;
1003 D(p->level--);
1004 return NULL;
1005 }
1006 goto done;
1007 }
1008 p->mark = _mark;
1009 D(fprintf(stderr, "%*c%s interactive[%d-%d]: %s failed!\n", p->level, ' ',
1010 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statement_newline"));
1011 }
1012 _res = NULL;
1013 done:
1014 D(p->level--);
1015 return _res;
Guido van Rossumb09f7ed2001-07-15 21:08:29 +00001016}
1017
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001018// eval: expressions NEWLINE* $
1019static mod_ty
1020eval_rule(Parser *p)
Guido van Rossum85a5fbb1990-10-14 12:07:46 +00001021{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001022 D(p->level++);
1023 if (p->error_indicator) {
1024 D(p->level--);
1025 return NULL;
1026 }
1027 mod_ty _res = NULL;
1028 int _mark = p->mark;
1029 { // expressions NEWLINE* $
1030 if (p->error_indicator) {
1031 D(p->level--);
1032 return NULL;
1033 }
1034 D(fprintf(stderr, "%*c> eval[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expressions NEWLINE* $"));
1035 asdl_seq * _loop0_1_var;
1036 expr_ty a;
1037 Token * endmarker_var;
1038 if (
1039 (a = expressions_rule(p)) // expressions
1040 &&
1041 (_loop0_1_var = _loop0_1_rule(p)) // NEWLINE*
1042 &&
1043 (endmarker_var = _PyPegen_expect_token(p, ENDMARKER)) // token='ENDMARKER'
1044 )
1045 {
1046 D(fprintf(stderr, "%*c+ eval[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expressions NEWLINE* $"));
Victor Stinnerd27f8d22021-04-07 21:34:22 +02001047 _res = _PyAST_Expression ( a , p -> arena );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001048 if (_res == NULL && PyErr_Occurred()) {
1049 p->error_indicator = 1;
1050 D(p->level--);
1051 return NULL;
1052 }
1053 goto done;
1054 }
1055 p->mark = _mark;
1056 D(fprintf(stderr, "%*c%s eval[%d-%d]: %s failed!\n", p->level, ' ',
1057 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expressions NEWLINE* $"));
1058 }
1059 _res = NULL;
1060 done:
1061 D(p->level--);
1062 return _res;
1063}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +00001064
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001065// func_type: '(' type_expressions? ')' '->' expression NEWLINE* $
1066static mod_ty
1067func_type_rule(Parser *p)
1068{
1069 D(p->level++);
1070 if (p->error_indicator) {
1071 D(p->level--);
1072 return NULL;
1073 }
1074 mod_ty _res = NULL;
1075 int _mark = p->mark;
1076 { // '(' type_expressions? ')' '->' expression NEWLINE* $
1077 if (p->error_indicator) {
1078 D(p->level--);
1079 return NULL;
1080 }
1081 D(fprintf(stderr, "%*c> func_type[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' type_expressions? ')' '->' expression NEWLINE* $"));
1082 Token * _literal;
1083 Token * _literal_1;
1084 Token * _literal_2;
1085 asdl_seq * _loop0_2_var;
1086 void *a;
1087 expr_ty b;
1088 Token * endmarker_var;
1089 if (
1090 (_literal = _PyPegen_expect_token(p, 7)) // token='('
1091 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02001092 (a = type_expressions_rule(p), !p->error_indicator) // type_expressions?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001093 &&
1094 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
1095 &&
1096 (_literal_2 = _PyPegen_expect_token(p, 51)) // token='->'
1097 &&
1098 (b = expression_rule(p)) // expression
1099 &&
1100 (_loop0_2_var = _loop0_2_rule(p)) // NEWLINE*
1101 &&
1102 (endmarker_var = _PyPegen_expect_token(p, ENDMARKER)) // token='ENDMARKER'
1103 )
1104 {
1105 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 +02001106 _res = _PyAST_FunctionType ( a , b , p -> arena );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001107 if (_res == NULL && PyErr_Occurred()) {
1108 p->error_indicator = 1;
1109 D(p->level--);
1110 return NULL;
1111 }
1112 goto done;
1113 }
1114 p->mark = _mark;
1115 D(fprintf(stderr, "%*c%s func_type[%d-%d]: %s failed!\n", p->level, ' ',
1116 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' type_expressions? ')' '->' expression NEWLINE* $"));
1117 }
1118 _res = NULL;
1119 done:
1120 D(p->level--);
1121 return _res;
1122}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +00001123
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001124// fstring: star_expressions
1125static expr_ty
1126fstring_rule(Parser *p)
1127{
1128 D(p->level++);
1129 if (p->error_indicator) {
1130 D(p->level--);
1131 return NULL;
1132 }
1133 expr_ty _res = NULL;
1134 int _mark = p->mark;
1135 { // star_expressions
1136 if (p->error_indicator) {
1137 D(p->level--);
1138 return NULL;
1139 }
1140 D(fprintf(stderr, "%*c> fstring[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
1141 expr_ty star_expressions_var;
1142 if (
1143 (star_expressions_var = star_expressions_rule(p)) // star_expressions
1144 )
1145 {
1146 D(fprintf(stderr, "%*c+ fstring[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
1147 _res = star_expressions_var;
1148 goto done;
1149 }
1150 p->mark = _mark;
1151 D(fprintf(stderr, "%*c%s fstring[%d-%d]: %s failed!\n", p->level, ' ',
1152 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
1153 }
1154 _res = NULL;
1155 done:
1156 D(p->level--);
1157 return _res;
1158}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +00001159
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001160// type_expressions:
1161// | ','.expression+ ',' '*' expression ',' '**' expression
1162// | ','.expression+ ',' '*' expression
1163// | ','.expression+ ',' '**' expression
1164// | '*' expression ',' '**' expression
1165// | '*' expression
1166// | '**' expression
1167// | ','.expression+
Pablo Galindoa5634c42020-09-16 19:42:00 +01001168static asdl_expr_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001169type_expressions_rule(Parser *p)
1170{
1171 D(p->level++);
1172 if (p->error_indicator) {
1173 D(p->level--);
1174 return NULL;
1175 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01001176 asdl_expr_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001177 int _mark = p->mark;
1178 { // ','.expression+ ',' '*' expression ',' '**' expression
1179 if (p->error_indicator) {
1180 D(p->level--);
1181 return NULL;
1182 }
1183 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.expression+ ',' '*' expression ',' '**' expression"));
1184 Token * _literal;
1185 Token * _literal_1;
1186 Token * _literal_2;
1187 Token * _literal_3;
1188 asdl_seq * a;
1189 expr_ty b;
1190 expr_ty c;
1191 if (
1192 (a = _gather_3_rule(p)) // ','.expression+
1193 &&
1194 (_literal = _PyPegen_expect_token(p, 12)) // token=','
1195 &&
1196 (_literal_1 = _PyPegen_expect_token(p, 16)) // token='*'
1197 &&
1198 (b = expression_rule(p)) // expression
1199 &&
1200 (_literal_2 = _PyPegen_expect_token(p, 12)) // token=','
1201 &&
1202 (_literal_3 = _PyPegen_expect_token(p, 35)) // token='**'
1203 &&
1204 (c = expression_rule(p)) // expression
1205 )
1206 {
1207 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 +03001208 _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 +01001209 if (_res == NULL && PyErr_Occurred()) {
1210 p->error_indicator = 1;
1211 D(p->level--);
1212 return NULL;
1213 }
1214 goto done;
1215 }
1216 p->mark = _mark;
1217 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1218 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+ ',' '*' expression ',' '**' expression"));
1219 }
1220 { // ','.expression+ ',' '*' expression
1221 if (p->error_indicator) {
1222 D(p->level--);
1223 return NULL;
1224 }
1225 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.expression+ ',' '*' expression"));
1226 Token * _literal;
1227 Token * _literal_1;
1228 asdl_seq * a;
1229 expr_ty b;
1230 if (
1231 (a = _gather_5_rule(p)) // ','.expression+
1232 &&
1233 (_literal = _PyPegen_expect_token(p, 12)) // token=','
1234 &&
1235 (_literal_1 = _PyPegen_expect_token(p, 16)) // token='*'
1236 &&
1237 (b = expression_rule(p)) // expression
1238 )
1239 {
1240 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 +01001241 _res = ( asdl_expr_seq * ) _PyPegen_seq_append_to_end ( p , a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001242 if (_res == NULL && PyErr_Occurred()) {
1243 p->error_indicator = 1;
1244 D(p->level--);
1245 return NULL;
1246 }
1247 goto done;
1248 }
1249 p->mark = _mark;
1250 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1251 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+ ',' '*' expression"));
1252 }
1253 { // ','.expression+ ',' '**' expression
1254 if (p->error_indicator) {
1255 D(p->level--);
1256 return NULL;
1257 }
1258 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.expression+ ',' '**' expression"));
1259 Token * _literal;
1260 Token * _literal_1;
1261 asdl_seq * a;
1262 expr_ty b;
1263 if (
1264 (a = _gather_7_rule(p)) // ','.expression+
1265 &&
1266 (_literal = _PyPegen_expect_token(p, 12)) // token=','
1267 &&
1268 (_literal_1 = _PyPegen_expect_token(p, 35)) // token='**'
1269 &&
1270 (b = expression_rule(p)) // expression
1271 )
1272 {
1273 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 +01001274 _res = ( asdl_expr_seq * ) _PyPegen_seq_append_to_end ( p , a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001275 if (_res == NULL && PyErr_Occurred()) {
1276 p->error_indicator = 1;
1277 D(p->level--);
1278 return NULL;
1279 }
1280 goto done;
1281 }
1282 p->mark = _mark;
1283 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1284 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+ ',' '**' expression"));
1285 }
1286 { // '*' expression ',' '**' expression
1287 if (p->error_indicator) {
1288 D(p->level--);
1289 return NULL;
1290 }
1291 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' expression ',' '**' expression"));
1292 Token * _literal;
1293 Token * _literal_1;
1294 Token * _literal_2;
1295 expr_ty a;
1296 expr_ty b;
1297 if (
1298 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
1299 &&
1300 (a = expression_rule(p)) // expression
1301 &&
1302 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
1303 &&
1304 (_literal_2 = _PyPegen_expect_token(p, 35)) // token='**'
1305 &&
1306 (b = expression_rule(p)) // expression
1307 )
1308 {
1309 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 +03001310 _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 +01001311 if (_res == NULL && PyErr_Occurred()) {
1312 p->error_indicator = 1;
1313 D(p->level--);
1314 return NULL;
1315 }
1316 goto done;
1317 }
1318 p->mark = _mark;
1319 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1320 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' expression ',' '**' expression"));
1321 }
1322 { // '*' expression
1323 if (p->error_indicator) {
1324 D(p->level--);
1325 return NULL;
1326 }
1327 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' expression"));
1328 Token * _literal;
1329 expr_ty a;
1330 if (
1331 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
1332 &&
1333 (a = expression_rule(p)) // expression
1334 )
1335 {
1336 D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' expression"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001337 _res = ( asdl_expr_seq * ) _PyPegen_singleton_seq ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001338 if (_res == NULL && PyErr_Occurred()) {
1339 p->error_indicator = 1;
1340 D(p->level--);
1341 return NULL;
1342 }
1343 goto done;
1344 }
1345 p->mark = _mark;
1346 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1347 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' expression"));
1348 }
1349 { // '**' expression
1350 if (p->error_indicator) {
1351 D(p->level--);
1352 return NULL;
1353 }
1354 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' expression"));
1355 Token * _literal;
1356 expr_ty a;
1357 if (
1358 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
1359 &&
1360 (a = expression_rule(p)) // expression
1361 )
1362 {
1363 D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' expression"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001364 _res = ( asdl_expr_seq * ) _PyPegen_singleton_seq ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001365 if (_res == NULL && PyErr_Occurred()) {
1366 p->error_indicator = 1;
1367 D(p->level--);
1368 return NULL;
1369 }
1370 goto done;
1371 }
1372 p->mark = _mark;
1373 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1374 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' expression"));
1375 }
1376 { // ','.expression+
1377 if (p->error_indicator) {
1378 D(p->level--);
1379 return NULL;
1380 }
1381 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.expression+"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001382 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001383 if (
Pablo Galindoa5634c42020-09-16 19:42:00 +01001384 (a = (asdl_expr_seq*)_gather_9_rule(p)) // ','.expression+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001385 )
1386 {
1387 D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.expression+"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001388 _res = a;
1389 if (_res == NULL && PyErr_Occurred()) {
1390 p->error_indicator = 1;
1391 D(p->level--);
1392 return NULL;
1393 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001394 goto done;
1395 }
1396 p->mark = _mark;
1397 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1398 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+"));
1399 }
1400 _res = NULL;
1401 done:
1402 D(p->level--);
1403 return _res;
1404}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +00001405
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001406// statements: statement+
Pablo Galindoa5634c42020-09-16 19:42:00 +01001407static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001408statements_rule(Parser *p)
1409{
1410 D(p->level++);
1411 if (p->error_indicator) {
1412 D(p->level--);
1413 return NULL;
1414 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01001415 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001416 int _mark = p->mark;
1417 { // statement+
1418 if (p->error_indicator) {
1419 D(p->level--);
1420 return NULL;
1421 }
1422 D(fprintf(stderr, "%*c> statements[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statement+"));
1423 asdl_seq * a;
1424 if (
1425 (a = _loop1_11_rule(p)) // statement+
1426 )
1427 {
1428 D(fprintf(stderr, "%*c+ statements[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "statement+"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001429 _res = ( asdl_stmt_seq * ) _PyPegen_seq_flatten ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001430 if (_res == NULL && PyErr_Occurred()) {
1431 p->error_indicator = 1;
1432 D(p->level--);
1433 return NULL;
1434 }
1435 goto done;
1436 }
1437 p->mark = _mark;
1438 D(fprintf(stderr, "%*c%s statements[%d-%d]: %s failed!\n", p->level, ' ',
1439 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statement+"));
1440 }
1441 _res = NULL;
1442 done:
1443 D(p->level--);
1444 return _res;
1445}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +00001446
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001447// statement: compound_stmt | simple_stmts
Pablo Galindoa5634c42020-09-16 19:42:00 +01001448static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001449statement_rule(Parser *p)
1450{
1451 D(p->level++);
1452 if (p->error_indicator) {
1453 D(p->level--);
1454 return NULL;
1455 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01001456 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001457 int _mark = p->mark;
1458 { // compound_stmt
1459 if (p->error_indicator) {
1460 D(p->level--);
1461 return NULL;
1462 }
1463 D(fprintf(stderr, "%*c> statement[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "compound_stmt"));
1464 stmt_ty a;
1465 if (
1466 (a = compound_stmt_rule(p)) // compound_stmt
1467 )
1468 {
1469 D(fprintf(stderr, "%*c+ statement[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "compound_stmt"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001470 _res = ( asdl_stmt_seq * ) _PyPegen_singleton_seq ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001471 if (_res == NULL && PyErr_Occurred()) {
1472 p->error_indicator = 1;
1473 D(p->level--);
1474 return NULL;
1475 }
1476 goto done;
1477 }
1478 p->mark = _mark;
1479 D(fprintf(stderr, "%*c%s statement[%d-%d]: %s failed!\n", p->level, ' ',
1480 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "compound_stmt"));
1481 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001482 { // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001483 if (p->error_indicator) {
1484 D(p->level--);
1485 return NULL;
1486 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001487 D(fprintf(stderr, "%*c> statement[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001488 asdl_stmt_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001489 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001490 (a = (asdl_stmt_seq*)simple_stmts_rule(p)) // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001491 )
1492 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001493 D(fprintf(stderr, "%*c+ statement[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001494 _res = a;
1495 if (_res == NULL && PyErr_Occurred()) {
1496 p->error_indicator = 1;
1497 D(p->level--);
1498 return NULL;
1499 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001500 goto done;
1501 }
1502 p->mark = _mark;
1503 D(fprintf(stderr, "%*c%s statement[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001504 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmts"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001505 }
1506 _res = NULL;
1507 done:
1508 D(p->level--);
1509 return _res;
1510}
1511
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001512// statement_newline: compound_stmt NEWLINE | simple_stmts | NEWLINE | $
Pablo Galindoa5634c42020-09-16 19:42:00 +01001513static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001514statement_newline_rule(Parser *p)
1515{
1516 D(p->level++);
1517 if (p->error_indicator) {
1518 D(p->level--);
1519 return NULL;
1520 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01001521 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001522 int _mark = p->mark;
1523 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
1524 p->error_indicator = 1;
1525 D(p->level--);
1526 return NULL;
1527 }
1528 int _start_lineno = p->tokens[_mark]->lineno;
1529 UNUSED(_start_lineno); // Only used by EXTRA macro
1530 int _start_col_offset = p->tokens[_mark]->col_offset;
1531 UNUSED(_start_col_offset); // Only used by EXTRA macro
1532 { // compound_stmt NEWLINE
1533 if (p->error_indicator) {
1534 D(p->level--);
1535 return NULL;
1536 }
1537 D(fprintf(stderr, "%*c> statement_newline[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "compound_stmt NEWLINE"));
1538 stmt_ty a;
1539 Token * newline_var;
1540 if (
1541 (a = compound_stmt_rule(p)) // compound_stmt
1542 &&
1543 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
1544 )
1545 {
1546 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 +01001547 _res = ( asdl_stmt_seq * ) _PyPegen_singleton_seq ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001548 if (_res == NULL && PyErr_Occurred()) {
1549 p->error_indicator = 1;
1550 D(p->level--);
1551 return NULL;
1552 }
1553 goto done;
1554 }
1555 p->mark = _mark;
1556 D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ',
1557 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "compound_stmt NEWLINE"));
1558 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001559 { // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001560 if (p->error_indicator) {
1561 D(p->level--);
1562 return NULL;
1563 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001564 D(fprintf(stderr, "%*c> statement_newline[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
1565 asdl_stmt_seq* simple_stmts_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001566 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001567 (simple_stmts_var = simple_stmts_rule(p)) // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001568 )
1569 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001570 D(fprintf(stderr, "%*c+ statement_newline[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
1571 _res = simple_stmts_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001572 goto done;
1573 }
1574 p->mark = _mark;
1575 D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001576 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmts"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001577 }
1578 { // NEWLINE
1579 if (p->error_indicator) {
1580 D(p->level--);
1581 return NULL;
1582 }
1583 D(fprintf(stderr, "%*c> statement_newline[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
1584 Token * newline_var;
1585 if (
1586 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
1587 )
1588 {
1589 D(fprintf(stderr, "%*c+ statement_newline[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
1590 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1591 if (_token == NULL) {
1592 D(p->level--);
1593 return NULL;
1594 }
1595 int _end_lineno = _token->end_lineno;
1596 UNUSED(_end_lineno); // Only used by EXTRA macro
1597 int _end_col_offset = _token->end_col_offset;
1598 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02001599 _res = ( asdl_stmt_seq * ) _PyPegen_singleton_seq ( p , CHECK ( stmt_ty , _PyAST_Pass ( EXTRA ) ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001600 if (_res == NULL && PyErr_Occurred()) {
1601 p->error_indicator = 1;
1602 D(p->level--);
1603 return NULL;
1604 }
1605 goto done;
1606 }
1607 p->mark = _mark;
1608 D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ',
1609 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
1610 }
1611 { // $
1612 if (p->error_indicator) {
1613 D(p->level--);
1614 return NULL;
1615 }
1616 D(fprintf(stderr, "%*c> statement_newline[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "$"));
1617 Token * endmarker_var;
1618 if (
1619 (endmarker_var = _PyPegen_expect_token(p, ENDMARKER)) // token='ENDMARKER'
1620 )
1621 {
1622 D(fprintf(stderr, "%*c+ statement_newline[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "$"));
1623 _res = _PyPegen_interactive_exit ( p );
1624 if (_res == NULL && PyErr_Occurred()) {
1625 p->error_indicator = 1;
1626 D(p->level--);
1627 return NULL;
1628 }
1629 goto done;
1630 }
1631 p->mark = _mark;
1632 D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ',
1633 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "$"));
1634 }
1635 _res = NULL;
1636 done:
1637 D(p->level--);
1638 return _res;
1639}
1640
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001641// simple_stmts: simple_stmt !';' NEWLINE | ';'.simple_stmt+ ';'? NEWLINE
Pablo Galindoa5634c42020-09-16 19:42:00 +01001642static asdl_stmt_seq*
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001643simple_stmts_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001644{
1645 D(p->level++);
1646 if (p->error_indicator) {
1647 D(p->level--);
1648 return NULL;
1649 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01001650 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001651 int _mark = p->mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001652 { // simple_stmt !';' NEWLINE
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001653 if (p->error_indicator) {
1654 D(p->level--);
1655 return NULL;
1656 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001657 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 +01001658 stmt_ty a;
1659 Token * newline_var;
1660 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001661 (a = simple_stmt_rule(p)) // simple_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001662 &&
1663 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 13) // token=';'
1664 &&
1665 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
1666 )
1667 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001668 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 +01001669 _res = ( asdl_stmt_seq * ) _PyPegen_singleton_seq ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001670 if (_res == NULL && PyErr_Occurred()) {
1671 p->error_indicator = 1;
1672 D(p->level--);
1673 return NULL;
1674 }
1675 goto done;
1676 }
1677 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001678 D(fprintf(stderr, "%*c%s simple_stmts[%d-%d]: %s failed!\n", p->level, ' ',
1679 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmt !';' NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001680 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001681 { // ';'.simple_stmt+ ';'? NEWLINE
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001682 if (p->error_indicator) {
1683 D(p->level--);
1684 return NULL;
1685 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001686 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 +01001687 void *_opt_var;
1688 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +01001689 asdl_stmt_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001690 Token * newline_var;
1691 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001692 (a = (asdl_stmt_seq*)_gather_12_rule(p)) // ';'.simple_stmt+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001693 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02001694 (_opt_var = _PyPegen_expect_token(p, 13), !p->error_indicator) // ';'?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001695 &&
1696 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
1697 )
1698 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001699 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 +01001700 _res = a;
1701 if (_res == NULL && PyErr_Occurred()) {
1702 p->error_indicator = 1;
1703 D(p->level--);
1704 return NULL;
1705 }
1706 goto done;
1707 }
1708 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001709 D(fprintf(stderr, "%*c%s simple_stmts[%d-%d]: %s failed!\n", p->level, ' ',
1710 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "';'.simple_stmt+ ';'? NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001711 }
1712 _res = NULL;
1713 done:
1714 D(p->level--);
1715 return _res;
1716}
1717
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001718// simple_stmt:
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001719// | assignment
1720// | star_expressions
1721// | &'return' return_stmt
1722// | &('import' | 'from') import_stmt
1723// | &'raise' raise_stmt
1724// | 'pass'
1725// | &'del' del_stmt
1726// | &'yield' yield_stmt
1727// | &'assert' assert_stmt
1728// | 'break'
1729// | 'continue'
1730// | &'global' global_stmt
1731// | &'nonlocal' nonlocal_stmt
1732static stmt_ty
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001733simple_stmt_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001734{
1735 D(p->level++);
1736 if (p->error_indicator) {
1737 D(p->level--);
1738 return NULL;
1739 }
1740 stmt_ty _res = NULL;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001741 if (_PyPegen_is_memoized(p, simple_stmt_type, &_res)) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001742 D(p->level--);
1743 return _res;
1744 }
1745 int _mark = p->mark;
1746 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
1747 p->error_indicator = 1;
1748 D(p->level--);
1749 return NULL;
1750 }
1751 int _start_lineno = p->tokens[_mark]->lineno;
1752 UNUSED(_start_lineno); // Only used by EXTRA macro
1753 int _start_col_offset = p->tokens[_mark]->col_offset;
1754 UNUSED(_start_col_offset); // Only used by EXTRA macro
1755 { // assignment
1756 if (p->error_indicator) {
1757 D(p->level--);
1758 return NULL;
1759 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001760 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "assignment"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001761 stmt_ty assignment_var;
1762 if (
1763 (assignment_var = assignment_rule(p)) // assignment
1764 )
1765 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001766 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "assignment"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001767 _res = assignment_var;
1768 goto done;
1769 }
1770 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001771 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001772 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "assignment"));
1773 }
1774 { // star_expressions
1775 if (p->error_indicator) {
1776 D(p->level--);
1777 return NULL;
1778 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001779 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001780 expr_ty e;
1781 if (
1782 (e = star_expressions_rule(p)) // star_expressions
1783 )
1784 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001785 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 +01001786 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1787 if (_token == NULL) {
1788 D(p->level--);
1789 return NULL;
1790 }
1791 int _end_lineno = _token->end_lineno;
1792 UNUSED(_end_lineno); // Only used by EXTRA macro
1793 int _end_col_offset = _token->end_col_offset;
1794 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02001795 _res = _PyAST_Expr ( e , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001796 if (_res == NULL && PyErr_Occurred()) {
1797 p->error_indicator = 1;
1798 D(p->level--);
1799 return NULL;
1800 }
1801 goto done;
1802 }
1803 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001804 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001805 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
1806 }
1807 { // &'return' return_stmt
1808 if (p->error_indicator) {
1809 D(p->level--);
1810 return NULL;
1811 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001812 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 +01001813 stmt_ty return_stmt_var;
1814 if (
1815 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 500) // token='return'
1816 &&
1817 (return_stmt_var = return_stmt_rule(p)) // return_stmt
1818 )
1819 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001820 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 +01001821 _res = return_stmt_var;
1822 goto done;
1823 }
1824 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001825 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001826 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'return' return_stmt"));
1827 }
1828 { // &('import' | 'from') import_stmt
1829 if (p->error_indicator) {
1830 D(p->level--);
1831 return NULL;
1832 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001833 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 +01001834 stmt_ty import_stmt_var;
1835 if (
1836 _PyPegen_lookahead(1, _tmp_14_rule, p)
1837 &&
1838 (import_stmt_var = import_stmt_rule(p)) // import_stmt
1839 )
1840 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001841 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 +01001842 _res = import_stmt_var;
1843 goto done;
1844 }
1845 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001846 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001847 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('import' | 'from') import_stmt"));
1848 }
1849 { // &'raise' raise_stmt
1850 if (p->error_indicator) {
1851 D(p->level--);
1852 return NULL;
1853 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001854 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 +01001855 stmt_ty raise_stmt_var;
1856 if (
1857 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 501) // token='raise'
1858 &&
1859 (raise_stmt_var = raise_stmt_rule(p)) // raise_stmt
1860 )
1861 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001862 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 +01001863 _res = raise_stmt_var;
1864 goto done;
1865 }
1866 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001867 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001868 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'raise' raise_stmt"));
1869 }
1870 { // 'pass'
1871 if (p->error_indicator) {
1872 D(p->level--);
1873 return NULL;
1874 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001875 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'pass'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001876 Token * _keyword;
1877 if (
1878 (_keyword = _PyPegen_expect_token(p, 502)) // token='pass'
1879 )
1880 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001881 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'pass'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001882 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1883 if (_token == NULL) {
1884 D(p->level--);
1885 return NULL;
1886 }
1887 int _end_lineno = _token->end_lineno;
1888 UNUSED(_end_lineno); // Only used by EXTRA macro
1889 int _end_col_offset = _token->end_col_offset;
1890 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02001891 _res = _PyAST_Pass ( EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001892 if (_res == NULL && PyErr_Occurred()) {
1893 p->error_indicator = 1;
1894 D(p->level--);
1895 return NULL;
1896 }
1897 goto done;
1898 }
1899 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001900 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001901 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'pass'"));
1902 }
1903 { // &'del' del_stmt
1904 if (p->error_indicator) {
1905 D(p->level--);
1906 return NULL;
1907 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001908 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 +01001909 stmt_ty del_stmt_var;
1910 if (
1911 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 503) // token='del'
1912 &&
1913 (del_stmt_var = del_stmt_rule(p)) // del_stmt
1914 )
1915 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001916 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 +01001917 _res = del_stmt_var;
1918 goto done;
1919 }
1920 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001921 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001922 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'del' del_stmt"));
1923 }
1924 { // &'yield' yield_stmt
1925 if (p->error_indicator) {
1926 D(p->level--);
1927 return NULL;
1928 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001929 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 +01001930 stmt_ty yield_stmt_var;
1931 if (
1932 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 504) // token='yield'
1933 &&
1934 (yield_stmt_var = yield_stmt_rule(p)) // yield_stmt
1935 )
1936 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001937 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 +01001938 _res = yield_stmt_var;
1939 goto done;
1940 }
1941 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001942 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001943 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'yield' yield_stmt"));
1944 }
1945 { // &'assert' assert_stmt
1946 if (p->error_indicator) {
1947 D(p->level--);
1948 return NULL;
1949 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001950 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 +01001951 stmt_ty assert_stmt_var;
1952 if (
1953 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 505) // token='assert'
1954 &&
1955 (assert_stmt_var = assert_stmt_rule(p)) // assert_stmt
1956 )
1957 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001958 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 +01001959 _res = assert_stmt_var;
1960 goto done;
1961 }
1962 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001963 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001964 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'assert' assert_stmt"));
1965 }
1966 { // 'break'
1967 if (p->error_indicator) {
1968 D(p->level--);
1969 return NULL;
1970 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001971 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'break'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001972 Token * _keyword;
1973 if (
1974 (_keyword = _PyPegen_expect_token(p, 506)) // token='break'
1975 )
1976 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001977 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'break'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001978 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1979 if (_token == NULL) {
1980 D(p->level--);
1981 return NULL;
1982 }
1983 int _end_lineno = _token->end_lineno;
1984 UNUSED(_end_lineno); // Only used by EXTRA macro
1985 int _end_col_offset = _token->end_col_offset;
1986 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02001987 _res = _PyAST_Break ( EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001988 if (_res == NULL && PyErr_Occurred()) {
1989 p->error_indicator = 1;
1990 D(p->level--);
1991 return NULL;
1992 }
1993 goto done;
1994 }
1995 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001996 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001997 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'break'"));
1998 }
1999 { // 'continue'
2000 if (p->error_indicator) {
2001 D(p->level--);
2002 return NULL;
2003 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00002004 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'continue'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002005 Token * _keyword;
2006 if (
2007 (_keyword = _PyPegen_expect_token(p, 507)) // token='continue'
2008 )
2009 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00002010 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'continue'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002011 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2012 if (_token == NULL) {
2013 D(p->level--);
2014 return NULL;
2015 }
2016 int _end_lineno = _token->end_lineno;
2017 UNUSED(_end_lineno); // Only used by EXTRA macro
2018 int _end_col_offset = _token->end_col_offset;
2019 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02002020 _res = _PyAST_Continue ( EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002021 if (_res == NULL && PyErr_Occurred()) {
2022 p->error_indicator = 1;
2023 D(p->level--);
2024 return NULL;
2025 }
2026 goto done;
2027 }
2028 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00002029 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002030 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'continue'"));
2031 }
2032 { // &'global' global_stmt
2033 if (p->error_indicator) {
2034 D(p->level--);
2035 return NULL;
2036 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00002037 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 +01002038 stmt_ty global_stmt_var;
2039 if (
2040 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 508) // token='global'
2041 &&
2042 (global_stmt_var = global_stmt_rule(p)) // global_stmt
2043 )
2044 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00002045 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 +01002046 _res = global_stmt_var;
2047 goto done;
2048 }
2049 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00002050 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002051 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'global' global_stmt"));
2052 }
2053 { // &'nonlocal' nonlocal_stmt
2054 if (p->error_indicator) {
2055 D(p->level--);
2056 return NULL;
2057 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00002058 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 +01002059 stmt_ty nonlocal_stmt_var;
2060 if (
2061 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 509) // token='nonlocal'
2062 &&
2063 (nonlocal_stmt_var = nonlocal_stmt_rule(p)) // nonlocal_stmt
2064 )
2065 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00002066 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 +01002067 _res = nonlocal_stmt_var;
2068 goto done;
2069 }
2070 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00002071 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002072 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'nonlocal' nonlocal_stmt"));
2073 }
2074 _res = NULL;
2075 done:
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00002076 _PyPegen_insert_memo(p, _mark, simple_stmt_type, _res);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002077 D(p->level--);
2078 return _res;
2079}
2080
2081// compound_stmt:
2082// | &('def' | '@' | ASYNC) function_def
2083// | &'if' if_stmt
2084// | &('class' | '@') class_def
2085// | &('with' | ASYNC) with_stmt
2086// | &('for' | ASYNC) for_stmt
2087// | &'try' try_stmt
2088// | &'while' while_stmt
Brandt Bucher145bf262021-02-26 14:51:55 -08002089// | match_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002090static stmt_ty
2091compound_stmt_rule(Parser *p)
2092{
2093 D(p->level++);
2094 if (p->error_indicator) {
2095 D(p->level--);
2096 return NULL;
2097 }
2098 stmt_ty _res = NULL;
2099 int _mark = p->mark;
2100 { // &('def' | '@' | ASYNC) function_def
2101 if (p->error_indicator) {
2102 D(p->level--);
2103 return NULL;
2104 }
2105 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('def' | '@' | ASYNC) function_def"));
2106 stmt_ty function_def_var;
2107 if (
2108 _PyPegen_lookahead(1, _tmp_15_rule, p)
2109 &&
2110 (function_def_var = function_def_rule(p)) // function_def
2111 )
2112 {
2113 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('def' | '@' | ASYNC) function_def"));
2114 _res = function_def_var;
2115 goto done;
2116 }
2117 p->mark = _mark;
2118 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2119 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('def' | '@' | ASYNC) function_def"));
2120 }
2121 { // &'if' if_stmt
2122 if (p->error_indicator) {
2123 D(p->level--);
2124 return NULL;
2125 }
2126 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'if' if_stmt"));
2127 stmt_ty if_stmt_var;
2128 if (
2129 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 510) // token='if'
2130 &&
2131 (if_stmt_var = if_stmt_rule(p)) // if_stmt
2132 )
2133 {
2134 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'if' if_stmt"));
2135 _res = if_stmt_var;
2136 goto done;
2137 }
2138 p->mark = _mark;
2139 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2140 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'if' if_stmt"));
2141 }
2142 { // &('class' | '@') class_def
2143 if (p->error_indicator) {
2144 D(p->level--);
2145 return NULL;
2146 }
2147 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('class' | '@') class_def"));
2148 stmt_ty class_def_var;
2149 if (
2150 _PyPegen_lookahead(1, _tmp_16_rule, p)
2151 &&
2152 (class_def_var = class_def_rule(p)) // class_def
2153 )
2154 {
2155 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('class' | '@') class_def"));
2156 _res = class_def_var;
2157 goto done;
2158 }
2159 p->mark = _mark;
2160 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2161 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('class' | '@') class_def"));
2162 }
2163 { // &('with' | ASYNC) with_stmt
2164 if (p->error_indicator) {
2165 D(p->level--);
2166 return NULL;
2167 }
2168 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('with' | ASYNC) with_stmt"));
2169 stmt_ty with_stmt_var;
2170 if (
2171 _PyPegen_lookahead(1, _tmp_17_rule, p)
2172 &&
2173 (with_stmt_var = with_stmt_rule(p)) // with_stmt
2174 )
2175 {
2176 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('with' | ASYNC) with_stmt"));
2177 _res = with_stmt_var;
2178 goto done;
2179 }
2180 p->mark = _mark;
2181 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2182 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('with' | ASYNC) with_stmt"));
2183 }
2184 { // &('for' | ASYNC) for_stmt
2185 if (p->error_indicator) {
2186 D(p->level--);
2187 return NULL;
2188 }
2189 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('for' | ASYNC) for_stmt"));
2190 stmt_ty for_stmt_var;
2191 if (
2192 _PyPegen_lookahead(1, _tmp_18_rule, p)
2193 &&
2194 (for_stmt_var = for_stmt_rule(p)) // for_stmt
2195 )
2196 {
2197 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('for' | ASYNC) for_stmt"));
2198 _res = for_stmt_var;
2199 goto done;
2200 }
2201 p->mark = _mark;
2202 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2203 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('for' | ASYNC) for_stmt"));
2204 }
2205 { // &'try' try_stmt
2206 if (p->error_indicator) {
2207 D(p->level--);
2208 return NULL;
2209 }
2210 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'try' try_stmt"));
2211 stmt_ty try_stmt_var;
2212 if (
2213 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 511) // token='try'
2214 &&
2215 (try_stmt_var = try_stmt_rule(p)) // try_stmt
2216 )
2217 {
2218 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'try' try_stmt"));
2219 _res = try_stmt_var;
2220 goto done;
2221 }
2222 p->mark = _mark;
2223 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2224 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'try' try_stmt"));
2225 }
2226 { // &'while' while_stmt
2227 if (p->error_indicator) {
2228 D(p->level--);
2229 return NULL;
2230 }
2231 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'while' while_stmt"));
2232 stmt_ty while_stmt_var;
2233 if (
2234 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 512) // token='while'
2235 &&
2236 (while_stmt_var = while_stmt_rule(p)) // while_stmt
2237 )
2238 {
2239 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'while' while_stmt"));
2240 _res = while_stmt_var;
2241 goto done;
2242 }
2243 p->mark = _mark;
2244 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2245 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'while' while_stmt"));
2246 }
Brandt Bucher145bf262021-02-26 14:51:55 -08002247 { // match_stmt
2248 if (p->error_indicator) {
2249 D(p->level--);
2250 return NULL;
2251 }
2252 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "match_stmt"));
2253 stmt_ty match_stmt_var;
2254 if (
2255 (match_stmt_var = match_stmt_rule(p)) // match_stmt
2256 )
2257 {
2258 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "match_stmt"));
2259 _res = match_stmt_var;
2260 goto done;
2261 }
2262 p->mark = _mark;
2263 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2264 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "match_stmt"));
2265 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002266 _res = NULL;
2267 done:
2268 D(p->level--);
2269 return _res;
2270}
2271
2272// assignment:
2273// | NAME ':' expression ['=' annotated_rhs]
2274// | ('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]
2275// | ((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002276// | single_target augassign ~ (yield_expr | star_expressions)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002277// | invalid_assignment
2278static stmt_ty
2279assignment_rule(Parser *p)
2280{
2281 D(p->level++);
2282 if (p->error_indicator) {
2283 D(p->level--);
2284 return NULL;
2285 }
2286 stmt_ty _res = NULL;
2287 int _mark = p->mark;
2288 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2289 p->error_indicator = 1;
2290 D(p->level--);
2291 return NULL;
2292 }
2293 int _start_lineno = p->tokens[_mark]->lineno;
2294 UNUSED(_start_lineno); // Only used by EXTRA macro
2295 int _start_col_offset = p->tokens[_mark]->col_offset;
2296 UNUSED(_start_col_offset); // Only used by EXTRA macro
2297 { // NAME ':' expression ['=' annotated_rhs]
2298 if (p->error_indicator) {
2299 D(p->level--);
2300 return NULL;
2301 }
2302 D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME ':' expression ['=' annotated_rhs]"));
2303 Token * _literal;
2304 expr_ty a;
2305 expr_ty b;
2306 void *c;
2307 if (
2308 (a = _PyPegen_name_token(p)) // NAME
2309 &&
2310 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
2311 &&
2312 (b = expression_rule(p)) // expression
2313 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02002314 (c = _tmp_19_rule(p), !p->error_indicator) // ['=' annotated_rhs]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002315 )
2316 {
2317 D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME ':' expression ['=' annotated_rhs]"));
2318 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2319 if (_token == NULL) {
2320 D(p->level--);
2321 return NULL;
2322 }
2323 int _end_lineno = _token->end_lineno;
2324 UNUSED(_end_lineno); // Only used by EXTRA macro
2325 int _end_col_offset = _token->end_col_offset;
2326 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02002327 _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 +01002328 if (_res == NULL && PyErr_Occurred()) {
2329 p->error_indicator = 1;
2330 D(p->level--);
2331 return NULL;
2332 }
2333 goto done;
2334 }
2335 p->mark = _mark;
2336 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
2337 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME ':' expression ['=' annotated_rhs]"));
2338 }
2339 { // ('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]
2340 if (p->error_indicator) {
2341 D(p->level--);
2342 return NULL;
2343 }
2344 D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]"));
2345 Token * _literal;
2346 void *a;
2347 expr_ty b;
2348 void *c;
2349 if (
2350 (a = _tmp_20_rule(p)) // '(' single_target ')' | single_subscript_attribute_target
2351 &&
2352 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
2353 &&
2354 (b = expression_rule(p)) // expression
2355 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02002356 (c = _tmp_21_rule(p), !p->error_indicator) // ['=' annotated_rhs]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002357 )
2358 {
2359 D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]"));
2360 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2361 if (_token == NULL) {
2362 D(p->level--);
2363 return NULL;
2364 }
2365 int _end_lineno = _token->end_lineno;
2366 UNUSED(_end_lineno); // Only used by EXTRA macro
2367 int _end_col_offset = _token->end_col_offset;
2368 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02002369 _res = CHECK_VERSION ( stmt_ty , 6 , "Variable annotations syntax is" , _PyAST_AnnAssign ( a , b , c , 0 , EXTRA ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002370 if (_res == NULL && PyErr_Occurred()) {
2371 p->error_indicator = 1;
2372 D(p->level--);
2373 return NULL;
2374 }
2375 goto done;
2376 }
2377 p->mark = _mark;
2378 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
2379 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]"));
2380 }
2381 { // ((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?
2382 if (p->error_indicator) {
2383 D(p->level--);
2384 return NULL;
2385 }
2386 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 +01002387 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002388 void *b;
2389 void *tc;
2390 if (
Pablo Galindoa5634c42020-09-16 19:42:00 +01002391 (a = (asdl_expr_seq*)_loop1_22_rule(p)) // ((star_targets '='))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002392 &&
2393 (b = _tmp_23_rule(p)) // yield_expr | star_expressions
2394 &&
2395 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 22) // token='='
2396 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02002397 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), !p->error_indicator) // TYPE_COMMENT?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002398 )
2399 {
2400 D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?"));
2401 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2402 if (_token == NULL) {
2403 D(p->level--);
2404 return NULL;
2405 }
2406 int _end_lineno = _token->end_lineno;
2407 UNUSED(_end_lineno); // Only used by EXTRA macro
2408 int _end_col_offset = _token->end_col_offset;
2409 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02002410 _res = _PyAST_Assign ( a , b , NEW_TYPE_COMMENT ( p , tc ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002411 if (_res == NULL && PyErr_Occurred()) {
2412 p->error_indicator = 1;
2413 D(p->level--);
2414 return NULL;
2415 }
2416 goto done;
2417 }
2418 p->mark = _mark;
2419 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
2420 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?"));
2421 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002422 { // single_target augassign ~ (yield_expr | star_expressions)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002423 if (p->error_indicator) {
2424 D(p->level--);
2425 return NULL;
2426 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002427 D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "single_target augassign ~ (yield_expr | star_expressions)"));
2428 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002429 expr_ty a;
2430 AugOperator* b;
2431 void *c;
2432 if (
2433 (a = single_target_rule(p)) // single_target
2434 &&
2435 (b = augassign_rule(p)) // augassign
2436 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002437 (_cut_var = 1)
2438 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002439 (c = _tmp_24_rule(p)) // yield_expr | star_expressions
2440 )
2441 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002442 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 +01002443 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2444 if (_token == NULL) {
2445 D(p->level--);
2446 return NULL;
2447 }
2448 int _end_lineno = _token->end_lineno;
2449 UNUSED(_end_lineno); // Only used by EXTRA macro
2450 int _end_col_offset = _token->end_col_offset;
2451 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02002452 _res = _PyAST_AugAssign ( a , b -> kind , c , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002453 if (_res == NULL && PyErr_Occurred()) {
2454 p->error_indicator = 1;
2455 D(p->level--);
2456 return NULL;
2457 }
2458 goto done;
2459 }
2460 p->mark = _mark;
2461 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002462 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "single_target augassign ~ (yield_expr | star_expressions)"));
2463 if (_cut_var) {
2464 D(p->level--);
2465 return NULL;
2466 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002467 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02002468 if (p->call_invalid_rules) { // invalid_assignment
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002469 if (p->error_indicator) {
2470 D(p->level--);
2471 return NULL;
2472 }
2473 D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_assignment"));
2474 void *invalid_assignment_var;
2475 if (
2476 (invalid_assignment_var = invalid_assignment_rule(p)) // invalid_assignment
2477 )
2478 {
2479 D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_assignment"));
2480 _res = invalid_assignment_var;
2481 goto done;
2482 }
2483 p->mark = _mark;
2484 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
2485 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_assignment"));
2486 }
2487 _res = NULL;
2488 done:
2489 D(p->level--);
2490 return _res;
2491}
2492
2493// augassign:
2494// | '+='
2495// | '-='
2496// | '*='
2497// | '@='
2498// | '/='
2499// | '%='
2500// | '&='
2501// | '|='
2502// | '^='
2503// | '<<='
2504// | '>>='
2505// | '**='
2506// | '//='
2507static AugOperator*
2508augassign_rule(Parser *p)
2509{
2510 D(p->level++);
2511 if (p->error_indicator) {
2512 D(p->level--);
2513 return NULL;
2514 }
2515 AugOperator* _res = NULL;
2516 int _mark = p->mark;
2517 { // '+='
2518 if (p->error_indicator) {
2519 D(p->level--);
2520 return NULL;
2521 }
2522 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'+='"));
2523 Token * _literal;
2524 if (
2525 (_literal = _PyPegen_expect_token(p, 36)) // token='+='
2526 )
2527 {
2528 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'+='"));
2529 _res = _PyPegen_augoperator ( p , Add );
2530 if (_res == NULL && PyErr_Occurred()) {
2531 p->error_indicator = 1;
2532 D(p->level--);
2533 return NULL;
2534 }
2535 goto done;
2536 }
2537 p->mark = _mark;
2538 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2539 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'+='"));
2540 }
2541 { // '-='
2542 if (p->error_indicator) {
2543 D(p->level--);
2544 return NULL;
2545 }
2546 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-='"));
2547 Token * _literal;
2548 if (
2549 (_literal = _PyPegen_expect_token(p, 37)) // token='-='
2550 )
2551 {
2552 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-='"));
2553 _res = _PyPegen_augoperator ( p , Sub );
2554 if (_res == NULL && PyErr_Occurred()) {
2555 p->error_indicator = 1;
2556 D(p->level--);
2557 return NULL;
2558 }
2559 goto done;
2560 }
2561 p->mark = _mark;
2562 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2563 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-='"));
2564 }
2565 { // '*='
2566 if (p->error_indicator) {
2567 D(p->level--);
2568 return NULL;
2569 }
2570 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*='"));
2571 Token * _literal;
2572 if (
2573 (_literal = _PyPegen_expect_token(p, 38)) // token='*='
2574 )
2575 {
2576 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*='"));
2577 _res = _PyPegen_augoperator ( p , Mult );
2578 if (_res == NULL && PyErr_Occurred()) {
2579 p->error_indicator = 1;
2580 D(p->level--);
2581 return NULL;
2582 }
2583 goto done;
2584 }
2585 p->mark = _mark;
2586 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2587 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*='"));
2588 }
2589 { // '@='
2590 if (p->error_indicator) {
2591 D(p->level--);
2592 return NULL;
2593 }
2594 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@='"));
2595 Token * _literal;
2596 if (
2597 (_literal = _PyPegen_expect_token(p, 50)) // token='@='
2598 )
2599 {
2600 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@='"));
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03002601 _res = CHECK_VERSION ( AugOperator * , 5 , "The '@' operator is" , _PyPegen_augoperator ( p , MatMult ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002602 if (_res == NULL && PyErr_Occurred()) {
2603 p->error_indicator = 1;
2604 D(p->level--);
2605 return NULL;
2606 }
2607 goto done;
2608 }
2609 p->mark = _mark;
2610 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2611 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@='"));
2612 }
2613 { // '/='
2614 if (p->error_indicator) {
2615 D(p->level--);
2616 return NULL;
2617 }
2618 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'/='"));
2619 Token * _literal;
2620 if (
2621 (_literal = _PyPegen_expect_token(p, 39)) // token='/='
2622 )
2623 {
2624 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'/='"));
2625 _res = _PyPegen_augoperator ( p , Div );
2626 if (_res == NULL && PyErr_Occurred()) {
2627 p->error_indicator = 1;
2628 D(p->level--);
2629 return NULL;
2630 }
2631 goto done;
2632 }
2633 p->mark = _mark;
2634 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2635 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'/='"));
2636 }
2637 { // '%='
2638 if (p->error_indicator) {
2639 D(p->level--);
2640 return NULL;
2641 }
2642 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'%='"));
2643 Token * _literal;
2644 if (
2645 (_literal = _PyPegen_expect_token(p, 40)) // token='%='
2646 )
2647 {
2648 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'%='"));
2649 _res = _PyPegen_augoperator ( p , Mod );
2650 if (_res == NULL && PyErr_Occurred()) {
2651 p->error_indicator = 1;
2652 D(p->level--);
2653 return NULL;
2654 }
2655 goto done;
2656 }
2657 p->mark = _mark;
2658 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2659 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'%='"));
2660 }
2661 { // '&='
2662 if (p->error_indicator) {
2663 D(p->level--);
2664 return NULL;
2665 }
2666 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'&='"));
2667 Token * _literal;
2668 if (
2669 (_literal = _PyPegen_expect_token(p, 41)) // token='&='
2670 )
2671 {
2672 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'&='"));
2673 _res = _PyPegen_augoperator ( p , BitAnd );
2674 if (_res == NULL && PyErr_Occurred()) {
2675 p->error_indicator = 1;
2676 D(p->level--);
2677 return NULL;
2678 }
2679 goto done;
2680 }
2681 p->mark = _mark;
2682 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2683 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'&='"));
2684 }
2685 { // '|='
2686 if (p->error_indicator) {
2687 D(p->level--);
2688 return NULL;
2689 }
2690 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'|='"));
2691 Token * _literal;
2692 if (
2693 (_literal = _PyPegen_expect_token(p, 42)) // token='|='
2694 )
2695 {
2696 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'|='"));
2697 _res = _PyPegen_augoperator ( p , BitOr );
2698 if (_res == NULL && PyErr_Occurred()) {
2699 p->error_indicator = 1;
2700 D(p->level--);
2701 return NULL;
2702 }
2703 goto done;
2704 }
2705 p->mark = _mark;
2706 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2707 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'|='"));
2708 }
2709 { // '^='
2710 if (p->error_indicator) {
2711 D(p->level--);
2712 return NULL;
2713 }
2714 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'^='"));
2715 Token * _literal;
2716 if (
2717 (_literal = _PyPegen_expect_token(p, 43)) // token='^='
2718 )
2719 {
2720 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'^='"));
2721 _res = _PyPegen_augoperator ( p , BitXor );
2722 if (_res == NULL && PyErr_Occurred()) {
2723 p->error_indicator = 1;
2724 D(p->level--);
2725 return NULL;
2726 }
2727 goto done;
2728 }
2729 p->mark = _mark;
2730 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2731 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'^='"));
2732 }
2733 { // '<<='
2734 if (p->error_indicator) {
2735 D(p->level--);
2736 return NULL;
2737 }
2738 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'<<='"));
2739 Token * _literal;
2740 if (
2741 (_literal = _PyPegen_expect_token(p, 44)) // token='<<='
2742 )
2743 {
2744 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'<<='"));
2745 _res = _PyPegen_augoperator ( p , LShift );
2746 if (_res == NULL && PyErr_Occurred()) {
2747 p->error_indicator = 1;
2748 D(p->level--);
2749 return NULL;
2750 }
2751 goto done;
2752 }
2753 p->mark = _mark;
2754 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2755 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'<<='"));
2756 }
2757 { // '>>='
2758 if (p->error_indicator) {
2759 D(p->level--);
2760 return NULL;
2761 }
2762 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'>>='"));
2763 Token * _literal;
2764 if (
2765 (_literal = _PyPegen_expect_token(p, 45)) // token='>>='
2766 )
2767 {
2768 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'>>='"));
2769 _res = _PyPegen_augoperator ( p , RShift );
2770 if (_res == NULL && PyErr_Occurred()) {
2771 p->error_indicator = 1;
2772 D(p->level--);
2773 return NULL;
2774 }
2775 goto done;
2776 }
2777 p->mark = _mark;
2778 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2779 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'>>='"));
2780 }
2781 { // '**='
2782 if (p->error_indicator) {
2783 D(p->level--);
2784 return NULL;
2785 }
2786 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**='"));
2787 Token * _literal;
2788 if (
2789 (_literal = _PyPegen_expect_token(p, 46)) // token='**='
2790 )
2791 {
2792 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**='"));
2793 _res = _PyPegen_augoperator ( p , Pow );
2794 if (_res == NULL && PyErr_Occurred()) {
2795 p->error_indicator = 1;
2796 D(p->level--);
2797 return NULL;
2798 }
2799 goto done;
2800 }
2801 p->mark = _mark;
2802 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2803 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**='"));
2804 }
2805 { // '//='
2806 if (p->error_indicator) {
2807 D(p->level--);
2808 return NULL;
2809 }
2810 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'//='"));
2811 Token * _literal;
2812 if (
2813 (_literal = _PyPegen_expect_token(p, 48)) // token='//='
2814 )
2815 {
2816 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'//='"));
2817 _res = _PyPegen_augoperator ( p , FloorDiv );
2818 if (_res == NULL && PyErr_Occurred()) {
2819 p->error_indicator = 1;
2820 D(p->level--);
2821 return NULL;
2822 }
2823 goto done;
2824 }
2825 p->mark = _mark;
2826 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2827 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'//='"));
2828 }
2829 _res = NULL;
2830 done:
2831 D(p->level--);
2832 return _res;
2833}
2834
2835// global_stmt: 'global' ','.NAME+
2836static stmt_ty
2837global_stmt_rule(Parser *p)
2838{
2839 D(p->level++);
2840 if (p->error_indicator) {
2841 D(p->level--);
2842 return NULL;
2843 }
2844 stmt_ty _res = NULL;
2845 int _mark = p->mark;
2846 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2847 p->error_indicator = 1;
2848 D(p->level--);
2849 return NULL;
2850 }
2851 int _start_lineno = p->tokens[_mark]->lineno;
2852 UNUSED(_start_lineno); // Only used by EXTRA macro
2853 int _start_col_offset = p->tokens[_mark]->col_offset;
2854 UNUSED(_start_col_offset); // Only used by EXTRA macro
2855 { // 'global' ','.NAME+
2856 if (p->error_indicator) {
2857 D(p->level--);
2858 return NULL;
2859 }
2860 D(fprintf(stderr, "%*c> global_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'global' ','.NAME+"));
2861 Token * _keyword;
Pablo Galindoa5634c42020-09-16 19:42:00 +01002862 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002863 if (
2864 (_keyword = _PyPegen_expect_token(p, 508)) // token='global'
2865 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01002866 (a = (asdl_expr_seq*)_gather_25_rule(p)) // ','.NAME+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002867 )
2868 {
2869 D(fprintf(stderr, "%*c+ global_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'global' ','.NAME+"));
2870 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2871 if (_token == NULL) {
2872 D(p->level--);
2873 return NULL;
2874 }
2875 int _end_lineno = _token->end_lineno;
2876 UNUSED(_end_lineno); // Only used by EXTRA macro
2877 int _end_col_offset = _token->end_col_offset;
2878 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02002879 _res = _PyAST_Global ( CHECK ( asdl_identifier_seq * , _PyPegen_map_names_to_ids ( p , a ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002880 if (_res == NULL && PyErr_Occurred()) {
2881 p->error_indicator = 1;
2882 D(p->level--);
2883 return NULL;
2884 }
2885 goto done;
2886 }
2887 p->mark = _mark;
2888 D(fprintf(stderr, "%*c%s global_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2889 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'global' ','.NAME+"));
2890 }
2891 _res = NULL;
2892 done:
2893 D(p->level--);
2894 return _res;
2895}
2896
2897// nonlocal_stmt: 'nonlocal' ','.NAME+
2898static stmt_ty
2899nonlocal_stmt_rule(Parser *p)
2900{
2901 D(p->level++);
2902 if (p->error_indicator) {
2903 D(p->level--);
2904 return NULL;
2905 }
2906 stmt_ty _res = NULL;
2907 int _mark = p->mark;
2908 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2909 p->error_indicator = 1;
2910 D(p->level--);
2911 return NULL;
2912 }
2913 int _start_lineno = p->tokens[_mark]->lineno;
2914 UNUSED(_start_lineno); // Only used by EXTRA macro
2915 int _start_col_offset = p->tokens[_mark]->col_offset;
2916 UNUSED(_start_col_offset); // Only used by EXTRA macro
2917 { // 'nonlocal' ','.NAME+
2918 if (p->error_indicator) {
2919 D(p->level--);
2920 return NULL;
2921 }
2922 D(fprintf(stderr, "%*c> nonlocal_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'nonlocal' ','.NAME+"));
2923 Token * _keyword;
Pablo Galindoa5634c42020-09-16 19:42:00 +01002924 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002925 if (
2926 (_keyword = _PyPegen_expect_token(p, 509)) // token='nonlocal'
2927 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01002928 (a = (asdl_expr_seq*)_gather_27_rule(p)) // ','.NAME+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002929 )
2930 {
2931 D(fprintf(stderr, "%*c+ nonlocal_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'nonlocal' ','.NAME+"));
2932 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2933 if (_token == NULL) {
2934 D(p->level--);
2935 return NULL;
2936 }
2937 int _end_lineno = _token->end_lineno;
2938 UNUSED(_end_lineno); // Only used by EXTRA macro
2939 int _end_col_offset = _token->end_col_offset;
2940 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02002941 _res = _PyAST_Nonlocal ( CHECK ( asdl_identifier_seq * , _PyPegen_map_names_to_ids ( p , a ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002942 if (_res == NULL && PyErr_Occurred()) {
2943 p->error_indicator = 1;
2944 D(p->level--);
2945 return NULL;
2946 }
2947 goto done;
2948 }
2949 p->mark = _mark;
2950 D(fprintf(stderr, "%*c%s nonlocal_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2951 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'nonlocal' ','.NAME+"));
2952 }
2953 _res = NULL;
2954 done:
2955 D(p->level--);
2956 return _res;
2957}
2958
2959// yield_stmt: yield_expr
2960static stmt_ty
2961yield_stmt_rule(Parser *p)
2962{
2963 D(p->level++);
2964 if (p->error_indicator) {
2965 D(p->level--);
2966 return NULL;
2967 }
2968 stmt_ty _res = NULL;
2969 int _mark = p->mark;
2970 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2971 p->error_indicator = 1;
2972 D(p->level--);
2973 return NULL;
2974 }
2975 int _start_lineno = p->tokens[_mark]->lineno;
2976 UNUSED(_start_lineno); // Only used by EXTRA macro
2977 int _start_col_offset = p->tokens[_mark]->col_offset;
2978 UNUSED(_start_col_offset); // Only used by EXTRA macro
2979 { // yield_expr
2980 if (p->error_indicator) {
2981 D(p->level--);
2982 return NULL;
2983 }
2984 D(fprintf(stderr, "%*c> yield_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
2985 expr_ty y;
2986 if (
2987 (y = yield_expr_rule(p)) // yield_expr
2988 )
2989 {
2990 D(fprintf(stderr, "%*c+ yield_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
2991 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2992 if (_token == NULL) {
2993 D(p->level--);
2994 return NULL;
2995 }
2996 int _end_lineno = _token->end_lineno;
2997 UNUSED(_end_lineno); // Only used by EXTRA macro
2998 int _end_col_offset = _token->end_col_offset;
2999 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02003000 _res = _PyAST_Expr ( y , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003001 if (_res == NULL && PyErr_Occurred()) {
3002 p->error_indicator = 1;
3003 D(p->level--);
3004 return NULL;
3005 }
3006 goto done;
3007 }
3008 p->mark = _mark;
3009 D(fprintf(stderr, "%*c%s yield_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3010 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
3011 }
3012 _res = NULL;
3013 done:
3014 D(p->level--);
3015 return _res;
3016}
3017
3018// assert_stmt: 'assert' expression [',' expression]
3019static stmt_ty
3020assert_stmt_rule(Parser *p)
3021{
3022 D(p->level++);
3023 if (p->error_indicator) {
3024 D(p->level--);
3025 return NULL;
3026 }
3027 stmt_ty _res = NULL;
3028 int _mark = p->mark;
3029 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3030 p->error_indicator = 1;
3031 D(p->level--);
3032 return NULL;
3033 }
3034 int _start_lineno = p->tokens[_mark]->lineno;
3035 UNUSED(_start_lineno); // Only used by EXTRA macro
3036 int _start_col_offset = p->tokens[_mark]->col_offset;
3037 UNUSED(_start_col_offset); // Only used by EXTRA macro
3038 { // 'assert' expression [',' expression]
3039 if (p->error_indicator) {
3040 D(p->level--);
3041 return NULL;
3042 }
3043 D(fprintf(stderr, "%*c> assert_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'assert' expression [',' expression]"));
3044 Token * _keyword;
3045 expr_ty a;
3046 void *b;
3047 if (
3048 (_keyword = _PyPegen_expect_token(p, 505)) // token='assert'
3049 &&
3050 (a = expression_rule(p)) // expression
3051 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02003052 (b = _tmp_29_rule(p), !p->error_indicator) // [',' expression]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003053 )
3054 {
3055 D(fprintf(stderr, "%*c+ assert_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'assert' expression [',' expression]"));
3056 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3057 if (_token == NULL) {
3058 D(p->level--);
3059 return NULL;
3060 }
3061 int _end_lineno = _token->end_lineno;
3062 UNUSED(_end_lineno); // Only used by EXTRA macro
3063 int _end_col_offset = _token->end_col_offset;
3064 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02003065 _res = _PyAST_Assert ( a , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003066 if (_res == NULL && PyErr_Occurred()) {
3067 p->error_indicator = 1;
3068 D(p->level--);
3069 return NULL;
3070 }
3071 goto done;
3072 }
3073 p->mark = _mark;
3074 D(fprintf(stderr, "%*c%s assert_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3075 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'assert' expression [',' expression]"));
3076 }
3077 _res = NULL;
3078 done:
3079 D(p->level--);
3080 return _res;
3081}
3082
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003083// del_stmt: 'del' del_targets &(';' | NEWLINE) | invalid_del_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003084static stmt_ty
3085del_stmt_rule(Parser *p)
3086{
3087 D(p->level++);
3088 if (p->error_indicator) {
3089 D(p->level--);
3090 return NULL;
3091 }
3092 stmt_ty _res = NULL;
3093 int _mark = p->mark;
3094 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3095 p->error_indicator = 1;
3096 D(p->level--);
3097 return NULL;
3098 }
3099 int _start_lineno = p->tokens[_mark]->lineno;
3100 UNUSED(_start_lineno); // Only used by EXTRA macro
3101 int _start_col_offset = p->tokens[_mark]->col_offset;
3102 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003103 { // 'del' del_targets &(';' | NEWLINE)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003104 if (p->error_indicator) {
3105 D(p->level--);
3106 return NULL;
3107 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003108 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 +01003109 Token * _keyword;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003110 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003111 if (
3112 (_keyword = _PyPegen_expect_token(p, 503)) // token='del'
3113 &&
3114 (a = del_targets_rule(p)) // del_targets
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003115 &&
3116 _PyPegen_lookahead(1, _tmp_30_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003117 )
3118 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003119 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 +01003120 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3121 if (_token == NULL) {
3122 D(p->level--);
3123 return NULL;
3124 }
3125 int _end_lineno = _token->end_lineno;
3126 UNUSED(_end_lineno); // Only used by EXTRA macro
3127 int _end_col_offset = _token->end_col_offset;
3128 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02003129 _res = _PyAST_Delete ( a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003130 if (_res == NULL && PyErr_Occurred()) {
3131 p->error_indicator = 1;
3132 D(p->level--);
3133 return NULL;
3134 }
3135 goto done;
3136 }
3137 p->mark = _mark;
3138 D(fprintf(stderr, "%*c%s del_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003139 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'del' del_targets &(';' | NEWLINE)"));
3140 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02003141 if (p->call_invalid_rules) { // invalid_del_stmt
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003142 if (p->error_indicator) {
3143 D(p->level--);
3144 return NULL;
3145 }
3146 D(fprintf(stderr, "%*c> del_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_del_stmt"));
3147 void *invalid_del_stmt_var;
3148 if (
3149 (invalid_del_stmt_var = invalid_del_stmt_rule(p)) // invalid_del_stmt
3150 )
3151 {
3152 D(fprintf(stderr, "%*c+ del_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_del_stmt"));
3153 _res = invalid_del_stmt_var;
3154 goto done;
3155 }
3156 p->mark = _mark;
3157 D(fprintf(stderr, "%*c%s del_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3158 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_del_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003159 }
3160 _res = NULL;
3161 done:
3162 D(p->level--);
3163 return _res;
3164}
3165
3166// import_stmt: import_name | import_from
3167static stmt_ty
3168import_stmt_rule(Parser *p)
3169{
3170 D(p->level++);
3171 if (p->error_indicator) {
3172 D(p->level--);
3173 return NULL;
3174 }
3175 stmt_ty _res = NULL;
3176 int _mark = p->mark;
3177 { // import_name
3178 if (p->error_indicator) {
3179 D(p->level--);
3180 return NULL;
3181 }
3182 D(fprintf(stderr, "%*c> import_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "import_name"));
3183 stmt_ty import_name_var;
3184 if (
3185 (import_name_var = import_name_rule(p)) // import_name
3186 )
3187 {
3188 D(fprintf(stderr, "%*c+ import_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "import_name"));
3189 _res = import_name_var;
3190 goto done;
3191 }
3192 p->mark = _mark;
3193 D(fprintf(stderr, "%*c%s import_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3194 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_name"));
3195 }
3196 { // import_from
3197 if (p->error_indicator) {
3198 D(p->level--);
3199 return NULL;
3200 }
3201 D(fprintf(stderr, "%*c> import_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "import_from"));
3202 stmt_ty import_from_var;
3203 if (
3204 (import_from_var = import_from_rule(p)) // import_from
3205 )
3206 {
3207 D(fprintf(stderr, "%*c+ import_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "import_from"));
3208 _res = import_from_var;
3209 goto done;
3210 }
3211 p->mark = _mark;
3212 D(fprintf(stderr, "%*c%s import_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3213 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from"));
3214 }
3215 _res = NULL;
3216 done:
3217 D(p->level--);
3218 return _res;
3219}
3220
3221// import_name: 'import' dotted_as_names
3222static stmt_ty
3223import_name_rule(Parser *p)
3224{
3225 D(p->level++);
3226 if (p->error_indicator) {
3227 D(p->level--);
3228 return NULL;
3229 }
3230 stmt_ty _res = NULL;
3231 int _mark = p->mark;
3232 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3233 p->error_indicator = 1;
3234 D(p->level--);
3235 return NULL;
3236 }
3237 int _start_lineno = p->tokens[_mark]->lineno;
3238 UNUSED(_start_lineno); // Only used by EXTRA macro
3239 int _start_col_offset = p->tokens[_mark]->col_offset;
3240 UNUSED(_start_col_offset); // Only used by EXTRA macro
3241 { // 'import' dotted_as_names
3242 if (p->error_indicator) {
3243 D(p->level--);
3244 return NULL;
3245 }
3246 D(fprintf(stderr, "%*c> import_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'import' dotted_as_names"));
3247 Token * _keyword;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003248 asdl_alias_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003249 if (
3250 (_keyword = _PyPegen_expect_token(p, 513)) // token='import'
3251 &&
3252 (a = dotted_as_names_rule(p)) // dotted_as_names
3253 )
3254 {
3255 D(fprintf(stderr, "%*c+ import_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'import' dotted_as_names"));
3256 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3257 if (_token == NULL) {
3258 D(p->level--);
3259 return NULL;
3260 }
3261 int _end_lineno = _token->end_lineno;
3262 UNUSED(_end_lineno); // Only used by EXTRA macro
3263 int _end_col_offset = _token->end_col_offset;
3264 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02003265 _res = _PyAST_Import ( a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003266 if (_res == NULL && PyErr_Occurred()) {
3267 p->error_indicator = 1;
3268 D(p->level--);
3269 return NULL;
3270 }
3271 goto done;
3272 }
3273 p->mark = _mark;
3274 D(fprintf(stderr, "%*c%s import_name[%d-%d]: %s failed!\n", p->level, ' ',
3275 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'import' dotted_as_names"));
3276 }
3277 _res = NULL;
3278 done:
3279 D(p->level--);
3280 return _res;
3281}
3282
3283// import_from:
3284// | 'from' (('.' | '...'))* dotted_name 'import' import_from_targets
3285// | 'from' (('.' | '...'))+ 'import' import_from_targets
3286static stmt_ty
3287import_from_rule(Parser *p)
3288{
3289 D(p->level++);
3290 if (p->error_indicator) {
3291 D(p->level--);
3292 return NULL;
3293 }
3294 stmt_ty _res = NULL;
3295 int _mark = p->mark;
3296 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3297 p->error_indicator = 1;
3298 D(p->level--);
3299 return NULL;
3300 }
3301 int _start_lineno = p->tokens[_mark]->lineno;
3302 UNUSED(_start_lineno); // Only used by EXTRA macro
3303 int _start_col_offset = p->tokens[_mark]->col_offset;
3304 UNUSED(_start_col_offset); // Only used by EXTRA macro
3305 { // 'from' (('.' | '...'))* dotted_name 'import' import_from_targets
3306 if (p->error_indicator) {
3307 D(p->level--);
3308 return NULL;
3309 }
3310 D(fprintf(stderr, "%*c> import_from[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from' (('.' | '...'))* dotted_name 'import' import_from_targets"));
3311 Token * _keyword;
3312 Token * _keyword_1;
3313 asdl_seq * a;
3314 expr_ty b;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003315 asdl_alias_seq* c;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003316 if (
3317 (_keyword = _PyPegen_expect_token(p, 514)) // token='from'
3318 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003319 (a = _loop0_31_rule(p)) // (('.' | '...'))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003320 &&
3321 (b = dotted_name_rule(p)) // dotted_name
3322 &&
3323 (_keyword_1 = _PyPegen_expect_token(p, 513)) // token='import'
3324 &&
3325 (c = import_from_targets_rule(p)) // import_from_targets
3326 )
3327 {
3328 D(fprintf(stderr, "%*c+ import_from[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'from' (('.' | '...'))* dotted_name 'import' import_from_targets"));
3329 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3330 if (_token == NULL) {
3331 D(p->level--);
3332 return NULL;
3333 }
3334 int _end_lineno = _token->end_lineno;
3335 UNUSED(_end_lineno); // Only used by EXTRA macro
3336 int _end_col_offset = _token->end_col_offset;
3337 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02003338 _res = _PyAST_ImportFrom ( b -> v . Name . id , c , _PyPegen_seq_count_dots ( a ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003339 if (_res == NULL && PyErr_Occurred()) {
3340 p->error_indicator = 1;
3341 D(p->level--);
3342 return NULL;
3343 }
3344 goto done;
3345 }
3346 p->mark = _mark;
3347 D(fprintf(stderr, "%*c%s import_from[%d-%d]: %s failed!\n", p->level, ' ',
3348 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from' (('.' | '...'))* dotted_name 'import' import_from_targets"));
3349 }
3350 { // 'from' (('.' | '...'))+ 'import' import_from_targets
3351 if (p->error_indicator) {
3352 D(p->level--);
3353 return NULL;
3354 }
3355 D(fprintf(stderr, "%*c> import_from[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from' (('.' | '...'))+ 'import' import_from_targets"));
3356 Token * _keyword;
3357 Token * _keyword_1;
3358 asdl_seq * a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003359 asdl_alias_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003360 if (
3361 (_keyword = _PyPegen_expect_token(p, 514)) // token='from'
3362 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003363 (a = _loop1_32_rule(p)) // (('.' | '...'))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003364 &&
3365 (_keyword_1 = _PyPegen_expect_token(p, 513)) // token='import'
3366 &&
3367 (b = import_from_targets_rule(p)) // import_from_targets
3368 )
3369 {
3370 D(fprintf(stderr, "%*c+ import_from[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'from' (('.' | '...'))+ 'import' import_from_targets"));
3371 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3372 if (_token == NULL) {
3373 D(p->level--);
3374 return NULL;
3375 }
3376 int _end_lineno = _token->end_lineno;
3377 UNUSED(_end_lineno); // Only used by EXTRA macro
3378 int _end_col_offset = _token->end_col_offset;
3379 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02003380 _res = _PyAST_ImportFrom ( NULL , b , _PyPegen_seq_count_dots ( a ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003381 if (_res == NULL && PyErr_Occurred()) {
3382 p->error_indicator = 1;
3383 D(p->level--);
3384 return NULL;
3385 }
3386 goto done;
3387 }
3388 p->mark = _mark;
3389 D(fprintf(stderr, "%*c%s import_from[%d-%d]: %s failed!\n", p->level, ' ',
3390 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from' (('.' | '...'))+ 'import' import_from_targets"));
3391 }
3392 _res = NULL;
3393 done:
3394 D(p->level--);
3395 return _res;
3396}
3397
3398// import_from_targets:
3399// | '(' import_from_as_names ','? ')'
3400// | import_from_as_names !','
3401// | '*'
3402// | invalid_import_from_targets
Pablo Galindoa5634c42020-09-16 19:42:00 +01003403static asdl_alias_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003404import_from_targets_rule(Parser *p)
3405{
3406 D(p->level++);
3407 if (p->error_indicator) {
3408 D(p->level--);
3409 return NULL;
3410 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01003411 asdl_alias_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003412 int _mark = p->mark;
Matthew Suozzo75a06f02021-04-10 16:56:28 -04003413 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3414 p->error_indicator = 1;
3415 D(p->level--);
3416 return NULL;
3417 }
3418 int _start_lineno = p->tokens[_mark]->lineno;
3419 UNUSED(_start_lineno); // Only used by EXTRA macro
3420 int _start_col_offset = p->tokens[_mark]->col_offset;
3421 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003422 { // '(' import_from_as_names ','? ')'
3423 if (p->error_indicator) {
3424 D(p->level--);
3425 return NULL;
3426 }
3427 D(fprintf(stderr, "%*c> import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' import_from_as_names ','? ')'"));
3428 Token * _literal;
3429 Token * _literal_1;
3430 void *_opt_var;
3431 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +01003432 asdl_alias_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003433 if (
3434 (_literal = _PyPegen_expect_token(p, 7)) // token='('
3435 &&
3436 (a = import_from_as_names_rule(p)) // import_from_as_names
3437 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02003438 (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003439 &&
3440 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
3441 )
3442 {
3443 D(fprintf(stderr, "%*c+ import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' import_from_as_names ','? ')'"));
3444 _res = a;
3445 if (_res == NULL && PyErr_Occurred()) {
3446 p->error_indicator = 1;
3447 D(p->level--);
3448 return NULL;
3449 }
3450 goto done;
3451 }
3452 p->mark = _mark;
3453 D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
3454 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' import_from_as_names ','? ')'"));
3455 }
3456 { // import_from_as_names !','
3457 if (p->error_indicator) {
3458 D(p->level--);
3459 return NULL;
3460 }
3461 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 +01003462 asdl_alias_seq* import_from_as_names_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003463 if (
3464 (import_from_as_names_var = import_from_as_names_rule(p)) // import_from_as_names
3465 &&
3466 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 12) // token=','
3467 )
3468 {
3469 D(fprintf(stderr, "%*c+ import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "import_from_as_names !','"));
3470 _res = import_from_as_names_var;
3471 goto done;
3472 }
3473 p->mark = _mark;
3474 D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
3475 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from_as_names !','"));
3476 }
3477 { // '*'
3478 if (p->error_indicator) {
3479 D(p->level--);
3480 return NULL;
3481 }
3482 D(fprintf(stderr, "%*c> import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*'"));
3483 Token * _literal;
3484 if (
3485 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
3486 )
3487 {
3488 D(fprintf(stderr, "%*c+ import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*'"));
Matthew Suozzo75a06f02021-04-10 16:56:28 -04003489 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3490 if (_token == NULL) {
3491 D(p->level--);
3492 return NULL;
3493 }
3494 int _end_lineno = _token->end_lineno;
3495 UNUSED(_end_lineno); // Only used by EXTRA macro
3496 int _end_col_offset = _token->end_col_offset;
3497 UNUSED(_end_col_offset); // Only used by EXTRA macro
3498 _res = ( asdl_alias_seq * ) _PyPegen_singleton_seq ( p , CHECK ( alias_ty , _PyPegen_alias_for_star ( p , EXTRA ) ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003499 if (_res == NULL && PyErr_Occurred()) {
3500 p->error_indicator = 1;
3501 D(p->level--);
3502 return NULL;
3503 }
3504 goto done;
3505 }
3506 p->mark = _mark;
3507 D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
3508 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*'"));
3509 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02003510 if (p->call_invalid_rules) { // invalid_import_from_targets
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003511 if (p->error_indicator) {
3512 D(p->level--);
3513 return NULL;
3514 }
3515 D(fprintf(stderr, "%*c> import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_import_from_targets"));
3516 void *invalid_import_from_targets_var;
3517 if (
3518 (invalid_import_from_targets_var = invalid_import_from_targets_rule(p)) // invalid_import_from_targets
3519 )
3520 {
3521 D(fprintf(stderr, "%*c+ import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_import_from_targets"));
3522 _res = invalid_import_from_targets_var;
3523 goto done;
3524 }
3525 p->mark = _mark;
3526 D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
3527 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_import_from_targets"));
3528 }
3529 _res = NULL;
3530 done:
3531 D(p->level--);
3532 return _res;
3533}
3534
3535// import_from_as_names: ','.import_from_as_name+
Pablo Galindoa5634c42020-09-16 19:42:00 +01003536static asdl_alias_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003537import_from_as_names_rule(Parser *p)
3538{
3539 D(p->level++);
3540 if (p->error_indicator) {
3541 D(p->level--);
3542 return NULL;
3543 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01003544 asdl_alias_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003545 int _mark = p->mark;
3546 { // ','.import_from_as_name+
3547 if (p->error_indicator) {
3548 D(p->level--);
3549 return NULL;
3550 }
3551 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 +01003552 asdl_alias_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003553 if (
Pablo Galindoa5634c42020-09-16 19:42:00 +01003554 (a = (asdl_alias_seq*)_gather_33_rule(p)) // ','.import_from_as_name+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003555 )
3556 {
3557 D(fprintf(stderr, "%*c+ import_from_as_names[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.import_from_as_name+"));
3558 _res = a;
3559 if (_res == NULL && PyErr_Occurred()) {
3560 p->error_indicator = 1;
3561 D(p->level--);
3562 return NULL;
3563 }
3564 goto done;
3565 }
3566 p->mark = _mark;
3567 D(fprintf(stderr, "%*c%s import_from_as_names[%d-%d]: %s failed!\n", p->level, ' ',
3568 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.import_from_as_name+"));
3569 }
3570 _res = NULL;
3571 done:
3572 D(p->level--);
3573 return _res;
3574}
3575
3576// import_from_as_name: NAME ['as' NAME]
3577static alias_ty
3578import_from_as_name_rule(Parser *p)
3579{
3580 D(p->level++);
3581 if (p->error_indicator) {
3582 D(p->level--);
3583 return NULL;
3584 }
3585 alias_ty _res = NULL;
3586 int _mark = p->mark;
Matthew Suozzo75a06f02021-04-10 16:56:28 -04003587 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3588 p->error_indicator = 1;
3589 D(p->level--);
3590 return NULL;
3591 }
3592 int _start_lineno = p->tokens[_mark]->lineno;
3593 UNUSED(_start_lineno); // Only used by EXTRA macro
3594 int _start_col_offset = p->tokens[_mark]->col_offset;
3595 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003596 { // NAME ['as' NAME]
3597 if (p->error_indicator) {
3598 D(p->level--);
3599 return NULL;
3600 }
3601 D(fprintf(stderr, "%*c> import_from_as_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME ['as' NAME]"));
3602 expr_ty a;
3603 void *b;
3604 if (
3605 (a = _PyPegen_name_token(p)) // NAME
3606 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02003607 (b = _tmp_35_rule(p), !p->error_indicator) // ['as' NAME]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003608 )
3609 {
3610 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 -04003611 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3612 if (_token == NULL) {
3613 D(p->level--);
3614 return NULL;
3615 }
3616 int _end_lineno = _token->end_lineno;
3617 UNUSED(_end_lineno); // Only used by EXTRA macro
3618 int _end_col_offset = _token->end_col_offset;
3619 UNUSED(_end_col_offset); // Only used by EXTRA macro
3620 _res = _PyAST_alias ( a -> v . Name . id , ( b ) ? ( ( expr_ty ) b ) -> v . Name . id : NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003621 if (_res == NULL && PyErr_Occurred()) {
3622 p->error_indicator = 1;
3623 D(p->level--);
3624 return NULL;
3625 }
3626 goto done;
3627 }
3628 p->mark = _mark;
3629 D(fprintf(stderr, "%*c%s import_from_as_name[%d-%d]: %s failed!\n", p->level, ' ',
3630 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME ['as' NAME]"));
3631 }
3632 _res = NULL;
3633 done:
3634 D(p->level--);
3635 return _res;
3636}
3637
3638// dotted_as_names: ','.dotted_as_name+
Pablo Galindoa5634c42020-09-16 19:42:00 +01003639static asdl_alias_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003640dotted_as_names_rule(Parser *p)
3641{
3642 D(p->level++);
3643 if (p->error_indicator) {
3644 D(p->level--);
3645 return NULL;
3646 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01003647 asdl_alias_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003648 int _mark = p->mark;
3649 { // ','.dotted_as_name+
3650 if (p->error_indicator) {
3651 D(p->level--);
3652 return NULL;
3653 }
3654 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 +01003655 asdl_alias_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003656 if (
Pablo Galindoa5634c42020-09-16 19:42:00 +01003657 (a = (asdl_alias_seq*)_gather_36_rule(p)) // ','.dotted_as_name+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003658 )
3659 {
3660 D(fprintf(stderr, "%*c+ dotted_as_names[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.dotted_as_name+"));
3661 _res = a;
3662 if (_res == NULL && PyErr_Occurred()) {
3663 p->error_indicator = 1;
3664 D(p->level--);
3665 return NULL;
3666 }
3667 goto done;
3668 }
3669 p->mark = _mark;
3670 D(fprintf(stderr, "%*c%s dotted_as_names[%d-%d]: %s failed!\n", p->level, ' ',
3671 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.dotted_as_name+"));
3672 }
3673 _res = NULL;
3674 done:
3675 D(p->level--);
3676 return _res;
3677}
3678
3679// dotted_as_name: dotted_name ['as' NAME]
3680static alias_ty
3681dotted_as_name_rule(Parser *p)
3682{
3683 D(p->level++);
3684 if (p->error_indicator) {
3685 D(p->level--);
3686 return NULL;
3687 }
3688 alias_ty _res = NULL;
3689 int _mark = p->mark;
Matthew Suozzo75a06f02021-04-10 16:56:28 -04003690 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3691 p->error_indicator = 1;
3692 D(p->level--);
3693 return NULL;
3694 }
3695 int _start_lineno = p->tokens[_mark]->lineno;
3696 UNUSED(_start_lineno); // Only used by EXTRA macro
3697 int _start_col_offset = p->tokens[_mark]->col_offset;
3698 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003699 { // dotted_name ['as' NAME]
3700 if (p->error_indicator) {
3701 D(p->level--);
3702 return NULL;
3703 }
3704 D(fprintf(stderr, "%*c> dotted_as_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dotted_name ['as' NAME]"));
3705 expr_ty a;
3706 void *b;
3707 if (
3708 (a = dotted_name_rule(p)) // dotted_name
3709 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02003710 (b = _tmp_38_rule(p), !p->error_indicator) // ['as' NAME]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003711 )
3712 {
3713 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 -04003714 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3715 if (_token == NULL) {
3716 D(p->level--);
3717 return NULL;
3718 }
3719 int _end_lineno = _token->end_lineno;
3720 UNUSED(_end_lineno); // Only used by EXTRA macro
3721 int _end_col_offset = _token->end_col_offset;
3722 UNUSED(_end_col_offset); // Only used by EXTRA macro
3723 _res = _PyAST_alias ( a -> v . Name . id , ( b ) ? ( ( expr_ty ) b ) -> v . Name . id : NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003724 if (_res == NULL && PyErr_Occurred()) {
3725 p->error_indicator = 1;
3726 D(p->level--);
3727 return NULL;
3728 }
3729 goto done;
3730 }
3731 p->mark = _mark;
3732 D(fprintf(stderr, "%*c%s dotted_as_name[%d-%d]: %s failed!\n", p->level, ' ',
3733 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dotted_name ['as' NAME]"));
3734 }
3735 _res = NULL;
3736 done:
3737 D(p->level--);
3738 return _res;
3739}
3740
3741// Left-recursive
3742// dotted_name: dotted_name '.' NAME | NAME
3743static expr_ty dotted_name_raw(Parser *);
3744static expr_ty
3745dotted_name_rule(Parser *p)
3746{
3747 D(p->level++);
3748 expr_ty _res = NULL;
3749 if (_PyPegen_is_memoized(p, dotted_name_type, &_res)) {
3750 D(p->level--);
3751 return _res;
3752 }
3753 int _mark = p->mark;
3754 int _resmark = p->mark;
3755 while (1) {
3756 int tmpvar_0 = _PyPegen_update_memo(p, _mark, dotted_name_type, _res);
3757 if (tmpvar_0) {
3758 D(p->level--);
3759 return _res;
3760 }
3761 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -07003762 p->in_raw_rule++;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003763 void *_raw = dotted_name_raw(p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -07003764 p->in_raw_rule--;
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +02003765 if (p->error_indicator)
3766 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003767 if (_raw == NULL || p->mark <= _resmark)
3768 break;
3769 _resmark = p->mark;
3770 _res = _raw;
3771 }
3772 p->mark = _resmark;
3773 D(p->level--);
3774 return _res;
3775}
3776static expr_ty
3777dotted_name_raw(Parser *p)
3778{
3779 D(p->level++);
3780 if (p->error_indicator) {
3781 D(p->level--);
3782 return NULL;
3783 }
3784 expr_ty _res = NULL;
3785 int _mark = p->mark;
3786 { // dotted_name '.' NAME
3787 if (p->error_indicator) {
3788 D(p->level--);
3789 return NULL;
3790 }
3791 D(fprintf(stderr, "%*c> dotted_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dotted_name '.' NAME"));
3792 Token * _literal;
3793 expr_ty a;
3794 expr_ty b;
3795 if (
3796 (a = dotted_name_rule(p)) // dotted_name
3797 &&
3798 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
3799 &&
3800 (b = _PyPegen_name_token(p)) // NAME
3801 )
3802 {
3803 D(fprintf(stderr, "%*c+ dotted_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dotted_name '.' NAME"));
3804 _res = _PyPegen_join_names_with_dot ( p , a , b );
3805 if (_res == NULL && PyErr_Occurred()) {
3806 p->error_indicator = 1;
3807 D(p->level--);
3808 return NULL;
3809 }
3810 goto done;
3811 }
3812 p->mark = _mark;
3813 D(fprintf(stderr, "%*c%s dotted_name[%d-%d]: %s failed!\n", p->level, ' ',
3814 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dotted_name '.' NAME"));
3815 }
3816 { // NAME
3817 if (p->error_indicator) {
3818 D(p->level--);
3819 return NULL;
3820 }
3821 D(fprintf(stderr, "%*c> dotted_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
3822 expr_ty name_var;
3823 if (
3824 (name_var = _PyPegen_name_token(p)) // NAME
3825 )
3826 {
3827 D(fprintf(stderr, "%*c+ dotted_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
3828 _res = name_var;
3829 goto done;
3830 }
3831 p->mark = _mark;
3832 D(fprintf(stderr, "%*c%s dotted_name[%d-%d]: %s failed!\n", p->level, ' ',
3833 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
3834 }
3835 _res = NULL;
3836 done:
3837 D(p->level--);
3838 return _res;
3839}
3840
3841// if_stmt:
Pablo Galindo56c95df2021-04-21 15:28:21 +01003842// | invalid_if_stmt
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003843// | 'if' named_expression ':' block elif_stmt
3844// | 'if' named_expression ':' block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003845static stmt_ty
3846if_stmt_rule(Parser *p)
3847{
3848 D(p->level++);
3849 if (p->error_indicator) {
3850 D(p->level--);
3851 return NULL;
3852 }
3853 stmt_ty _res = NULL;
3854 int _mark = p->mark;
3855 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3856 p->error_indicator = 1;
3857 D(p->level--);
3858 return NULL;
3859 }
3860 int _start_lineno = p->tokens[_mark]->lineno;
3861 UNUSED(_start_lineno); // Only used by EXTRA macro
3862 int _start_col_offset = p->tokens[_mark]->col_offset;
3863 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo56c95df2021-04-21 15:28:21 +01003864 if (p->call_invalid_rules) { // invalid_if_stmt
3865 if (p->error_indicator) {
3866 D(p->level--);
3867 return NULL;
3868 }
3869 D(fprintf(stderr, "%*c> if_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_if_stmt"));
3870 void *invalid_if_stmt_var;
3871 if (
3872 (invalid_if_stmt_var = invalid_if_stmt_rule(p)) // invalid_if_stmt
3873 )
3874 {
3875 D(fprintf(stderr, "%*c+ if_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_if_stmt"));
3876 _res = invalid_if_stmt_var;
3877 goto done;
3878 }
3879 p->mark = _mark;
3880 D(fprintf(stderr, "%*c%s if_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3881 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_if_stmt"));
3882 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003883 { // 'if' named_expression ':' block elif_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003884 if (p->error_indicator) {
3885 D(p->level--);
3886 return NULL;
3887 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003888 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 +01003889 Token * _keyword;
3890 Token * _literal;
3891 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003892 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003893 stmt_ty c;
3894 if (
3895 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
3896 &&
3897 (a = named_expression_rule(p)) // named_expression
3898 &&
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003899 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003900 &&
3901 (b = block_rule(p)) // block
3902 &&
3903 (c = elif_stmt_rule(p)) // elif_stmt
3904 )
3905 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003906 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 +01003907 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3908 if (_token == NULL) {
3909 D(p->level--);
3910 return NULL;
3911 }
3912 int _end_lineno = _token->end_lineno;
3913 UNUSED(_end_lineno); // Only used by EXTRA macro
3914 int _end_col_offset = _token->end_col_offset;
3915 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02003916 _res = _PyAST_If ( a , b , CHECK ( asdl_stmt_seq * , _PyPegen_singleton_seq ( p , c ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003917 if (_res == NULL && PyErr_Occurred()) {
3918 p->error_indicator = 1;
3919 D(p->level--);
3920 return NULL;
3921 }
3922 goto done;
3923 }
3924 p->mark = _mark;
3925 D(fprintf(stderr, "%*c%s if_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003926 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' named_expression ':' block elif_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003927 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003928 { // 'if' named_expression ':' block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003929 if (p->error_indicator) {
3930 D(p->level--);
3931 return NULL;
3932 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003933 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 +01003934 Token * _keyword;
3935 Token * _literal;
3936 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003937 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003938 void *c;
3939 if (
3940 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
3941 &&
3942 (a = named_expression_rule(p)) // named_expression
3943 &&
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003944 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003945 &&
3946 (b = block_rule(p)) // block
3947 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02003948 (c = else_block_rule(p), !p->error_indicator) // else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003949 )
3950 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003951 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 +01003952 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3953 if (_token == NULL) {
3954 D(p->level--);
3955 return NULL;
3956 }
3957 int _end_lineno = _token->end_lineno;
3958 UNUSED(_end_lineno); // Only used by EXTRA macro
3959 int _end_col_offset = _token->end_col_offset;
3960 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02003961 _res = _PyAST_If ( a , b , c , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003962 if (_res == NULL && PyErr_Occurred()) {
3963 p->error_indicator = 1;
3964 D(p->level--);
3965 return NULL;
3966 }
3967 goto done;
3968 }
3969 p->mark = _mark;
3970 D(fprintf(stderr, "%*c%s if_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003971 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' named_expression ':' block else_block?"));
3972 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003973 _res = NULL;
3974 done:
3975 D(p->level--);
3976 return _res;
3977}
3978
3979// elif_stmt:
Pablo Galindo56c95df2021-04-21 15:28:21 +01003980// | invalid_elif_stmt
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003981// | 'elif' named_expression ':' block elif_stmt
3982// | 'elif' named_expression ':' block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003983static stmt_ty
3984elif_stmt_rule(Parser *p)
3985{
3986 D(p->level++);
3987 if (p->error_indicator) {
3988 D(p->level--);
3989 return NULL;
3990 }
3991 stmt_ty _res = NULL;
3992 int _mark = p->mark;
3993 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3994 p->error_indicator = 1;
3995 D(p->level--);
3996 return NULL;
3997 }
3998 int _start_lineno = p->tokens[_mark]->lineno;
3999 UNUSED(_start_lineno); // Only used by EXTRA macro
4000 int _start_col_offset = p->tokens[_mark]->col_offset;
4001 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo56c95df2021-04-21 15:28:21 +01004002 if (p->call_invalid_rules) { // invalid_elif_stmt
4003 if (p->error_indicator) {
4004 D(p->level--);
4005 return NULL;
4006 }
4007 D(fprintf(stderr, "%*c> elif_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_elif_stmt"));
4008 void *invalid_elif_stmt_var;
4009 if (
4010 (invalid_elif_stmt_var = invalid_elif_stmt_rule(p)) // invalid_elif_stmt
4011 )
4012 {
4013 D(fprintf(stderr, "%*c+ elif_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_elif_stmt"));
4014 _res = invalid_elif_stmt_var;
4015 goto done;
4016 }
4017 p->mark = _mark;
4018 D(fprintf(stderr, "%*c%s elif_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4019 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_elif_stmt"));
4020 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004021 { // 'elif' named_expression ':' block elif_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004022 if (p->error_indicator) {
4023 D(p->level--);
4024 return NULL;
4025 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004026 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 +01004027 Token * _keyword;
4028 Token * _literal;
4029 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004030 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004031 stmt_ty c;
4032 if (
4033 (_keyword = _PyPegen_expect_token(p, 515)) // token='elif'
4034 &&
4035 (a = named_expression_rule(p)) // named_expression
4036 &&
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004037 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004038 &&
4039 (b = block_rule(p)) // block
4040 &&
4041 (c = elif_stmt_rule(p)) // elif_stmt
4042 )
4043 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004044 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 +01004045 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4046 if (_token == NULL) {
4047 D(p->level--);
4048 return NULL;
4049 }
4050 int _end_lineno = _token->end_lineno;
4051 UNUSED(_end_lineno); // Only used by EXTRA macro
4052 int _end_col_offset = _token->end_col_offset;
4053 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004054 _res = _PyAST_If ( a , b , CHECK ( asdl_stmt_seq * , _PyPegen_singleton_seq ( p , c ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004055 if (_res == NULL && PyErr_Occurred()) {
4056 p->error_indicator = 1;
4057 D(p->level--);
4058 return NULL;
4059 }
4060 goto done;
4061 }
4062 p->mark = _mark;
4063 D(fprintf(stderr, "%*c%s elif_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004064 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'elif' named_expression ':' block elif_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004065 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004066 { // 'elif' named_expression ':' block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004067 if (p->error_indicator) {
4068 D(p->level--);
4069 return NULL;
4070 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004071 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 +01004072 Token * _keyword;
4073 Token * _literal;
4074 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004075 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004076 void *c;
4077 if (
4078 (_keyword = _PyPegen_expect_token(p, 515)) // token='elif'
4079 &&
4080 (a = named_expression_rule(p)) // named_expression
4081 &&
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004082 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004083 &&
4084 (b = block_rule(p)) // block
4085 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02004086 (c = else_block_rule(p), !p->error_indicator) // else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004087 )
4088 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004089 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 +01004090 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4091 if (_token == NULL) {
4092 D(p->level--);
4093 return NULL;
4094 }
4095 int _end_lineno = _token->end_lineno;
4096 UNUSED(_end_lineno); // Only used by EXTRA macro
4097 int _end_col_offset = _token->end_col_offset;
4098 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004099 _res = _PyAST_If ( a , b , c , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004100 if (_res == NULL && PyErr_Occurred()) {
4101 p->error_indicator = 1;
4102 D(p->level--);
4103 return NULL;
4104 }
4105 goto done;
4106 }
4107 p->mark = _mark;
4108 D(fprintf(stderr, "%*c%s elif_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004109 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'elif' named_expression ':' block else_block?"));
4110 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004111 _res = NULL;
4112 done:
4113 D(p->level--);
4114 return _res;
4115}
4116
Pablo Galindo56c95df2021-04-21 15:28:21 +01004117// else_block: invalid_else_stmt | 'else' &&':' block
Pablo Galindoa5634c42020-09-16 19:42:00 +01004118static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004119else_block_rule(Parser *p)
4120{
4121 D(p->level++);
4122 if (p->error_indicator) {
4123 D(p->level--);
4124 return NULL;
4125 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01004126 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004127 int _mark = p->mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +01004128 if (p->call_invalid_rules) { // invalid_else_stmt
4129 if (p->error_indicator) {
4130 D(p->level--);
4131 return NULL;
4132 }
4133 D(fprintf(stderr, "%*c> else_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_else_stmt"));
4134 void *invalid_else_stmt_var;
4135 if (
4136 (invalid_else_stmt_var = invalid_else_stmt_rule(p)) // invalid_else_stmt
4137 )
4138 {
4139 D(fprintf(stderr, "%*c+ else_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_else_stmt"));
4140 _res = invalid_else_stmt_var;
4141 goto done;
4142 }
4143 p->mark = _mark;
4144 D(fprintf(stderr, "%*c%s else_block[%d-%d]: %s failed!\n", p->level, ' ',
4145 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_else_stmt"));
4146 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004147 { // 'else' &&':' block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004148 if (p->error_indicator) {
4149 D(p->level--);
4150 return NULL;
4151 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004152 D(fprintf(stderr, "%*c> else_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'else' &&':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004153 Token * _keyword;
4154 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004155 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004156 if (
4157 (_keyword = _PyPegen_expect_token(p, 516)) // token='else'
4158 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00004159 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004160 &&
4161 (b = block_rule(p)) // block
4162 )
4163 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00004164 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 +01004165 _res = b;
4166 if (_res == NULL && PyErr_Occurred()) {
4167 p->error_indicator = 1;
4168 D(p->level--);
4169 return NULL;
4170 }
4171 goto done;
4172 }
4173 p->mark = _mark;
4174 D(fprintf(stderr, "%*c%s else_block[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00004175 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'else' &&':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004176 }
4177 _res = NULL;
4178 done:
4179 D(p->level--);
4180 return _res;
4181}
4182
Pablo Galindo56c95df2021-04-21 15:28:21 +01004183// while_stmt: invalid_while_stmt | 'while' named_expression ':' block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004184static stmt_ty
4185while_stmt_rule(Parser *p)
4186{
4187 D(p->level++);
4188 if (p->error_indicator) {
4189 D(p->level--);
4190 return NULL;
4191 }
4192 stmt_ty _res = NULL;
4193 int _mark = p->mark;
4194 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4195 p->error_indicator = 1;
4196 D(p->level--);
4197 return NULL;
4198 }
4199 int _start_lineno = p->tokens[_mark]->lineno;
4200 UNUSED(_start_lineno); // Only used by EXTRA macro
4201 int _start_col_offset = p->tokens[_mark]->col_offset;
4202 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo56c95df2021-04-21 15:28:21 +01004203 if (p->call_invalid_rules) { // invalid_while_stmt
4204 if (p->error_indicator) {
4205 D(p->level--);
4206 return NULL;
4207 }
4208 D(fprintf(stderr, "%*c> while_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_while_stmt"));
4209 void *invalid_while_stmt_var;
4210 if (
4211 (invalid_while_stmt_var = invalid_while_stmt_rule(p)) // invalid_while_stmt
4212 )
4213 {
4214 D(fprintf(stderr, "%*c+ while_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_while_stmt"));
4215 _res = invalid_while_stmt_var;
4216 goto done;
4217 }
4218 p->mark = _mark;
4219 D(fprintf(stderr, "%*c%s while_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4220 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_while_stmt"));
4221 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004222 { // 'while' named_expression ':' block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004223 if (p->error_indicator) {
4224 D(p->level--);
4225 return NULL;
4226 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004227 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 +01004228 Token * _keyword;
4229 Token * _literal;
4230 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004231 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004232 void *c;
4233 if (
4234 (_keyword = _PyPegen_expect_token(p, 512)) // token='while'
4235 &&
4236 (a = named_expression_rule(p)) // named_expression
4237 &&
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004238 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004239 &&
4240 (b = block_rule(p)) // block
4241 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02004242 (c = else_block_rule(p), !p->error_indicator) // else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004243 )
4244 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004245 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 +01004246 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4247 if (_token == NULL) {
4248 D(p->level--);
4249 return NULL;
4250 }
4251 int _end_lineno = _token->end_lineno;
4252 UNUSED(_end_lineno); // Only used by EXTRA macro
4253 int _end_col_offset = _token->end_col_offset;
4254 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004255 _res = _PyAST_While ( a , b , c , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004256 if (_res == NULL && PyErr_Occurred()) {
4257 p->error_indicator = 1;
4258 D(p->level--);
4259 return NULL;
4260 }
4261 goto done;
4262 }
4263 p->mark = _mark;
4264 D(fprintf(stderr, "%*c%s while_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004265 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'while' named_expression ':' block else_block?"));
4266 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004267 _res = NULL;
4268 done:
4269 D(p->level--);
4270 return _res;
4271}
4272
4273// for_stmt:
Pablo Galindo56c95df2021-04-21 15:28:21 +01004274// | invalid_for_stmt
Pablo Galindo58fb1562021-02-02 19:54:22 +00004275// | 'for' star_targets 'in' ~ star_expressions &&':' TYPE_COMMENT? block else_block?
4276// | ASYNC 'for' star_targets 'in' ~ star_expressions &&':' TYPE_COMMENT? block else_block?
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004277// | invalid_for_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004278static stmt_ty
4279for_stmt_rule(Parser *p)
4280{
4281 D(p->level++);
4282 if (p->error_indicator) {
4283 D(p->level--);
4284 return NULL;
4285 }
4286 stmt_ty _res = NULL;
4287 int _mark = p->mark;
4288 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4289 p->error_indicator = 1;
4290 D(p->level--);
4291 return NULL;
4292 }
4293 int _start_lineno = p->tokens[_mark]->lineno;
4294 UNUSED(_start_lineno); // Only used by EXTRA macro
4295 int _start_col_offset = p->tokens[_mark]->col_offset;
4296 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo56c95df2021-04-21 15:28:21 +01004297 if (p->call_invalid_rules) { // invalid_for_stmt
4298 if (p->error_indicator) {
4299 D(p->level--);
4300 return NULL;
4301 }
4302 D(fprintf(stderr, "%*c> for_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_for_stmt"));
4303 void *invalid_for_stmt_var;
4304 if (
4305 (invalid_for_stmt_var = invalid_for_stmt_rule(p)) // invalid_for_stmt
4306 )
4307 {
4308 D(fprintf(stderr, "%*c+ for_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_for_stmt"));
4309 _res = invalid_for_stmt_var;
4310 goto done;
4311 }
4312 p->mark = _mark;
4313 D(fprintf(stderr, "%*c%s for_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4314 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_for_stmt"));
4315 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004316 { // 'for' star_targets 'in' ~ star_expressions &&':' TYPE_COMMENT? block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004317 if (p->error_indicator) {
4318 D(p->level--);
4319 return NULL;
4320 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004321 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 +03004322 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004323 Token * _keyword;
4324 Token * _keyword_1;
4325 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004326 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004327 void *el;
4328 expr_ty ex;
4329 expr_ty t;
4330 void *tc;
4331 if (
4332 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
4333 &&
4334 (t = star_targets_rule(p)) // star_targets
4335 &&
4336 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
4337 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004338 (_cut_var = 1)
4339 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004340 (ex = star_expressions_rule(p)) // star_expressions
4341 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00004342 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004343 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02004344 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), !p->error_indicator) // TYPE_COMMENT?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004345 &&
4346 (b = block_rule(p)) // block
4347 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02004348 (el = else_block_rule(p), !p->error_indicator) // else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004349 )
4350 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00004351 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 +01004352 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4353 if (_token == NULL) {
4354 D(p->level--);
4355 return NULL;
4356 }
4357 int _end_lineno = _token->end_lineno;
4358 UNUSED(_end_lineno); // Only used by EXTRA macro
4359 int _end_col_offset = _token->end_col_offset;
4360 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004361 _res = _PyAST_For ( t , ex , b , el , NEW_TYPE_COMMENT ( p , tc ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004362 if (_res == NULL && PyErr_Occurred()) {
4363 p->error_indicator = 1;
4364 D(p->level--);
4365 return NULL;
4366 }
4367 goto done;
4368 }
4369 p->mark = _mark;
4370 D(fprintf(stderr, "%*c%s for_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00004371 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 +03004372 if (_cut_var) {
4373 D(p->level--);
4374 return NULL;
4375 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004376 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004377 { // ASYNC 'for' star_targets 'in' ~ star_expressions &&':' TYPE_COMMENT? block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004378 if (p->error_indicator) {
4379 D(p->level--);
4380 return NULL;
4381 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004382 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 +03004383 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004384 Token * _keyword;
4385 Token * _keyword_1;
4386 Token * _literal;
4387 Token * async_var;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004388 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004389 void *el;
4390 expr_ty ex;
4391 expr_ty t;
4392 void *tc;
4393 if (
4394 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
4395 &&
4396 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
4397 &&
4398 (t = star_targets_rule(p)) // star_targets
4399 &&
4400 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
4401 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004402 (_cut_var = 1)
4403 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004404 (ex = star_expressions_rule(p)) // star_expressions
4405 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00004406 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004407 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02004408 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), !p->error_indicator) // TYPE_COMMENT?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004409 &&
4410 (b = block_rule(p)) // block
4411 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02004412 (el = else_block_rule(p), !p->error_indicator) // else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004413 )
4414 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00004415 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 +01004416 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4417 if (_token == NULL) {
4418 D(p->level--);
4419 return NULL;
4420 }
4421 int _end_lineno = _token->end_lineno;
4422 UNUSED(_end_lineno); // Only used by EXTRA macro
4423 int _end_col_offset = _token->end_col_offset;
4424 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004425 _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 +01004426 if (_res == NULL && PyErr_Occurred()) {
4427 p->error_indicator = 1;
4428 D(p->level--);
4429 return NULL;
4430 }
4431 goto done;
4432 }
4433 p->mark = _mark;
4434 D(fprintf(stderr, "%*c%s for_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00004435 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 +03004436 if (_cut_var) {
4437 D(p->level--);
4438 return NULL;
4439 }
4440 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02004441 if (p->call_invalid_rules) { // invalid_for_target
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004442 if (p->error_indicator) {
4443 D(p->level--);
4444 return NULL;
4445 }
4446 D(fprintf(stderr, "%*c> for_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_for_target"));
4447 void *invalid_for_target_var;
4448 if (
4449 (invalid_for_target_var = invalid_for_target_rule(p)) // invalid_for_target
4450 )
4451 {
4452 D(fprintf(stderr, "%*c+ for_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_for_target"));
4453 _res = invalid_for_target_var;
4454 goto done;
4455 }
4456 p->mark = _mark;
4457 D(fprintf(stderr, "%*c%s for_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4458 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_for_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004459 }
4460 _res = NULL;
4461 done:
4462 D(p->level--);
4463 return _res;
4464}
4465
4466// with_stmt:
Pablo Galindo56c95df2021-04-21 15:28:21 +01004467// | invalid_with_stmt_indent
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004468// | 'with' '(' ','.with_item+ ','? ')' ':' block
4469// | 'with' ','.with_item+ ':' TYPE_COMMENT? block
4470// | ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block
4471// | ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block
Pablo Galindo58fb1562021-02-02 19:54:22 +00004472// | invalid_with_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004473static stmt_ty
4474with_stmt_rule(Parser *p)
4475{
4476 D(p->level++);
4477 if (p->error_indicator) {
4478 D(p->level--);
4479 return NULL;
4480 }
4481 stmt_ty _res = NULL;
4482 int _mark = p->mark;
4483 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4484 p->error_indicator = 1;
4485 D(p->level--);
4486 return NULL;
4487 }
4488 int _start_lineno = p->tokens[_mark]->lineno;
4489 UNUSED(_start_lineno); // Only used by EXTRA macro
4490 int _start_col_offset = p->tokens[_mark]->col_offset;
4491 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo56c95df2021-04-21 15:28:21 +01004492 if (p->call_invalid_rules) { // invalid_with_stmt_indent
4493 if (p->error_indicator) {
4494 D(p->level--);
4495 return NULL;
4496 }
4497 D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_with_stmt_indent"));
4498 void *invalid_with_stmt_indent_var;
4499 if (
4500 (invalid_with_stmt_indent_var = invalid_with_stmt_indent_rule(p)) // invalid_with_stmt_indent
4501 )
4502 {
4503 D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_with_stmt_indent"));
4504 _res = invalid_with_stmt_indent_var;
4505 goto done;
4506 }
4507 p->mark = _mark;
4508 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4509 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_with_stmt_indent"));
4510 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004511 { // 'with' '(' ','.with_item+ ','? ')' ':' block
4512 if (p->error_indicator) {
4513 D(p->level--);
4514 return NULL;
4515 }
4516 D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'with' '(' ','.with_item+ ','? ')' ':' block"));
4517 Token * _keyword;
4518 Token * _literal;
4519 Token * _literal_1;
4520 Token * _literal_2;
4521 void *_opt_var;
4522 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +01004523 asdl_withitem_seq* a;
4524 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004525 if (
4526 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
4527 &&
4528 (_literal = _PyPegen_expect_token(p, 7)) // token='('
4529 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01004530 (a = (asdl_withitem_seq*)_gather_39_rule(p)) // ','.with_item+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004531 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02004532 (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004533 &&
4534 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
4535 &&
4536 (_literal_2 = _PyPegen_expect_token(p, 11)) // token=':'
4537 &&
4538 (b = block_rule(p)) // block
4539 )
4540 {
4541 D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'with' '(' ','.with_item+ ','? ')' ':' block"));
4542 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4543 if (_token == NULL) {
4544 D(p->level--);
4545 return NULL;
4546 }
4547 int _end_lineno = _token->end_lineno;
4548 UNUSED(_end_lineno); // Only used by EXTRA macro
4549 int _end_col_offset = _token->end_col_offset;
4550 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004551 _res = _PyAST_With ( a , b , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004552 if (_res == NULL && PyErr_Occurred()) {
4553 p->error_indicator = 1;
4554 D(p->level--);
4555 return NULL;
4556 }
4557 goto done;
4558 }
4559 p->mark = _mark;
4560 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4561 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'with' '(' ','.with_item+ ','? ')' ':' block"));
4562 }
4563 { // 'with' ','.with_item+ ':' TYPE_COMMENT? block
4564 if (p->error_indicator) {
4565 D(p->level--);
4566 return NULL;
4567 }
4568 D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4569 Token * _keyword;
4570 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004571 asdl_withitem_seq* a;
4572 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004573 void *tc;
4574 if (
4575 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
4576 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01004577 (a = (asdl_withitem_seq*)_gather_41_rule(p)) // ','.with_item+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004578 &&
4579 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
4580 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02004581 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), !p->error_indicator) // TYPE_COMMENT?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004582 &&
4583 (b = block_rule(p)) // block
4584 )
4585 {
4586 D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4587 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4588 if (_token == NULL) {
4589 D(p->level--);
4590 return NULL;
4591 }
4592 int _end_lineno = _token->end_lineno;
4593 UNUSED(_end_lineno); // Only used by EXTRA macro
4594 int _end_col_offset = _token->end_col_offset;
4595 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004596 _res = _PyAST_With ( a , b , NEW_TYPE_COMMENT ( p , tc ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004597 if (_res == NULL && PyErr_Occurred()) {
4598 p->error_indicator = 1;
4599 D(p->level--);
4600 return NULL;
4601 }
4602 goto done;
4603 }
4604 p->mark = _mark;
4605 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4606 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4607 }
4608 { // ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block
4609 if (p->error_indicator) {
4610 D(p->level--);
4611 return NULL;
4612 }
4613 D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block"));
4614 Token * _keyword;
4615 Token * _literal;
4616 Token * _literal_1;
4617 Token * _literal_2;
4618 void *_opt_var;
4619 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +01004620 asdl_withitem_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004621 Token * async_var;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004622 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004623 if (
4624 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
4625 &&
4626 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
4627 &&
4628 (_literal = _PyPegen_expect_token(p, 7)) // token='('
4629 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01004630 (a = (asdl_withitem_seq*)_gather_43_rule(p)) // ','.with_item+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004631 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02004632 (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004633 &&
4634 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
4635 &&
4636 (_literal_2 = _PyPegen_expect_token(p, 11)) // token=':'
4637 &&
4638 (b = block_rule(p)) // block
4639 )
4640 {
4641 D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block"));
4642 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4643 if (_token == NULL) {
4644 D(p->level--);
4645 return NULL;
4646 }
4647 int _end_lineno = _token->end_lineno;
4648 UNUSED(_end_lineno); // Only used by EXTRA macro
4649 int _end_col_offset = _token->end_col_offset;
4650 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004651 _res = CHECK_VERSION ( stmt_ty , 5 , "Async with statements are" , _PyAST_AsyncWith ( a , b , NULL , EXTRA ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004652 if (_res == NULL && PyErr_Occurred()) {
4653 p->error_indicator = 1;
4654 D(p->level--);
4655 return NULL;
4656 }
4657 goto done;
4658 }
4659 p->mark = _mark;
4660 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4661 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block"));
4662 }
4663 { // ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block
4664 if (p->error_indicator) {
4665 D(p->level--);
4666 return NULL;
4667 }
4668 D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4669 Token * _keyword;
4670 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004671 asdl_withitem_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004672 Token * async_var;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004673 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004674 void *tc;
4675 if (
4676 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
4677 &&
4678 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
4679 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01004680 (a = (asdl_withitem_seq*)_gather_45_rule(p)) // ','.with_item+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004681 &&
4682 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
4683 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02004684 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), !p->error_indicator) // TYPE_COMMENT?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004685 &&
4686 (b = block_rule(p)) // block
4687 )
4688 {
4689 D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4690 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4691 if (_token == NULL) {
4692 D(p->level--);
4693 return NULL;
4694 }
4695 int _end_lineno = _token->end_lineno;
4696 UNUSED(_end_lineno); // Only used by EXTRA macro
4697 int _end_col_offset = _token->end_col_offset;
4698 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004699 _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 +01004700 if (_res == NULL && PyErr_Occurred()) {
4701 p->error_indicator = 1;
4702 D(p->level--);
4703 return NULL;
4704 }
4705 goto done;
4706 }
4707 p->mark = _mark;
4708 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4709 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4710 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004711 if (p->call_invalid_rules) { // invalid_with_stmt
4712 if (p->error_indicator) {
4713 D(p->level--);
4714 return NULL;
4715 }
4716 D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_with_stmt"));
4717 void *invalid_with_stmt_var;
4718 if (
4719 (invalid_with_stmt_var = invalid_with_stmt_rule(p)) // invalid_with_stmt
4720 )
4721 {
4722 D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_with_stmt"));
4723 _res = invalid_with_stmt_var;
4724 goto done;
4725 }
4726 p->mark = _mark;
4727 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4728 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_with_stmt"));
4729 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004730 _res = NULL;
4731 done:
4732 D(p->level--);
4733 return _res;
4734}
4735
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004736// with_item:
4737// | expression 'as' star_target &(',' | ')' | ':')
4738// | invalid_with_item
4739// | expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004740static withitem_ty
4741with_item_rule(Parser *p)
4742{
4743 D(p->level++);
4744 if (p->error_indicator) {
4745 D(p->level--);
4746 return NULL;
4747 }
4748 withitem_ty _res = NULL;
4749 int _mark = p->mark;
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004750 { // expression 'as' star_target &(',' | ')' | ':')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004751 if (p->error_indicator) {
4752 D(p->level--);
4753 return NULL;
4754 }
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004755 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 +03004756 Token * _keyword;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004757 expr_ty e;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004758 expr_ty t;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004759 if (
4760 (e = expression_rule(p)) // expression
4761 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004762 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
4763 &&
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004764 (t = star_target_rule(p)) // star_target
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004765 &&
4766 _PyPegen_lookahead(1, _tmp_47_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004767 )
4768 {
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004769 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 +02004770 _res = _PyAST_withitem ( e , t , p -> arena );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004771 if (_res == NULL && PyErr_Occurred()) {
4772 p->error_indicator = 1;
4773 D(p->level--);
4774 return NULL;
4775 }
4776 goto done;
4777 }
4778 p->mark = _mark;
4779 D(fprintf(stderr, "%*c%s with_item[%d-%d]: %s failed!\n", p->level, ' ',
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004780 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression 'as' star_target &(',' | ')' | ':')"));
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004781 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02004782 if (p->call_invalid_rules) { // invalid_with_item
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004783 if (p->error_indicator) {
4784 D(p->level--);
4785 return NULL;
4786 }
4787 D(fprintf(stderr, "%*c> with_item[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_with_item"));
4788 void *invalid_with_item_var;
4789 if (
4790 (invalid_with_item_var = invalid_with_item_rule(p)) // invalid_with_item
4791 )
4792 {
4793 D(fprintf(stderr, "%*c+ with_item[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_with_item"));
4794 _res = invalid_with_item_var;
4795 goto done;
4796 }
4797 p->mark = _mark;
4798 D(fprintf(stderr, "%*c%s with_item[%d-%d]: %s failed!\n", p->level, ' ',
4799 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_with_item"));
4800 }
4801 { // expression
4802 if (p->error_indicator) {
4803 D(p->level--);
4804 return NULL;
4805 }
4806 D(fprintf(stderr, "%*c> with_item[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression"));
4807 expr_ty e;
4808 if (
4809 (e = expression_rule(p)) // expression
4810 )
4811 {
4812 D(fprintf(stderr, "%*c+ with_item[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression"));
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004813 _res = _PyAST_withitem ( e , NULL , p -> arena );
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004814 if (_res == NULL && PyErr_Occurred()) {
4815 p->error_indicator = 1;
4816 D(p->level--);
4817 return NULL;
4818 }
4819 goto done;
4820 }
4821 p->mark = _mark;
4822 D(fprintf(stderr, "%*c%s with_item[%d-%d]: %s failed!\n", p->level, ' ',
4823 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004824 }
4825 _res = NULL;
4826 done:
4827 D(p->level--);
4828 return _res;
4829}
4830
4831// try_stmt:
Pablo Galindo56c95df2021-04-21 15:28:21 +01004832// | invalid_try_stmt
Pablo Galindo58fb1562021-02-02 19:54:22 +00004833// | 'try' &&':' block finally_block
4834// | 'try' &&':' block except_block+ else_block? finally_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004835static stmt_ty
4836try_stmt_rule(Parser *p)
4837{
4838 D(p->level++);
4839 if (p->error_indicator) {
4840 D(p->level--);
4841 return NULL;
4842 }
4843 stmt_ty _res = NULL;
4844 int _mark = p->mark;
4845 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4846 p->error_indicator = 1;
4847 D(p->level--);
4848 return NULL;
4849 }
4850 int _start_lineno = p->tokens[_mark]->lineno;
4851 UNUSED(_start_lineno); // Only used by EXTRA macro
4852 int _start_col_offset = p->tokens[_mark]->col_offset;
4853 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo56c95df2021-04-21 15:28:21 +01004854 if (p->call_invalid_rules) { // invalid_try_stmt
4855 if (p->error_indicator) {
4856 D(p->level--);
4857 return NULL;
4858 }
4859 D(fprintf(stderr, "%*c> try_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_try_stmt"));
4860 void *invalid_try_stmt_var;
4861 if (
4862 (invalid_try_stmt_var = invalid_try_stmt_rule(p)) // invalid_try_stmt
4863 )
4864 {
4865 D(fprintf(stderr, "%*c+ try_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_try_stmt"));
4866 _res = invalid_try_stmt_var;
4867 goto done;
4868 }
4869 p->mark = _mark;
4870 D(fprintf(stderr, "%*c%s try_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4871 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_try_stmt"));
4872 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004873 { // 'try' &&':' block finally_block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004874 if (p->error_indicator) {
4875 D(p->level--);
4876 return NULL;
4877 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004878 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 +01004879 Token * _keyword;
4880 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004881 asdl_stmt_seq* b;
4882 asdl_stmt_seq* f;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004883 if (
4884 (_keyword = _PyPegen_expect_token(p, 511)) // token='try'
4885 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00004886 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004887 &&
4888 (b = block_rule(p)) // block
4889 &&
4890 (f = finally_block_rule(p)) // finally_block
4891 )
4892 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00004893 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 +01004894 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4895 if (_token == NULL) {
4896 D(p->level--);
4897 return NULL;
4898 }
4899 int _end_lineno = _token->end_lineno;
4900 UNUSED(_end_lineno); // Only used by EXTRA macro
4901 int _end_col_offset = _token->end_col_offset;
4902 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004903 _res = _PyAST_Try ( b , NULL , NULL , f , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004904 if (_res == NULL && PyErr_Occurred()) {
4905 p->error_indicator = 1;
4906 D(p->level--);
4907 return NULL;
4908 }
4909 goto done;
4910 }
4911 p->mark = _mark;
4912 D(fprintf(stderr, "%*c%s try_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00004913 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'try' &&':' block finally_block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004914 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004915 { // 'try' &&':' block except_block+ else_block? finally_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004916 if (p->error_indicator) {
4917 D(p->level--);
4918 return NULL;
4919 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004920 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 +01004921 Token * _keyword;
4922 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004923 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004924 void *el;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004925 asdl_excepthandler_seq* ex;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004926 void *f;
4927 if (
4928 (_keyword = _PyPegen_expect_token(p, 511)) // token='try'
4929 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00004930 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004931 &&
4932 (b = block_rule(p)) // block
4933 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01004934 (ex = (asdl_excepthandler_seq*)_loop1_48_rule(p)) // except_block+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004935 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02004936 (el = else_block_rule(p), !p->error_indicator) // else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004937 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02004938 (f = finally_block_rule(p), !p->error_indicator) // finally_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004939 )
4940 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00004941 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 +01004942 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4943 if (_token == NULL) {
4944 D(p->level--);
4945 return NULL;
4946 }
4947 int _end_lineno = _token->end_lineno;
4948 UNUSED(_end_lineno); // Only used by EXTRA macro
4949 int _end_col_offset = _token->end_col_offset;
4950 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004951 _res = _PyAST_Try ( b , ex , el , f , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004952 if (_res == NULL && PyErr_Occurred()) {
4953 p->error_indicator = 1;
4954 D(p->level--);
4955 return NULL;
4956 }
4957 goto done;
4958 }
4959 p->mark = _mark;
4960 D(fprintf(stderr, "%*c%s try_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00004961 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'try' &&':' block except_block+ else_block? finally_block?"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004962 }
4963 _res = NULL;
4964 done:
4965 D(p->level--);
4966 return _res;
4967}
4968
Pablo Galindo206cbda2021-02-07 18:42:21 +00004969// except_block:
Pablo Galindo56c95df2021-04-21 15:28:21 +01004970// | invalid_except_stmt_indent
Pablo Galindo206cbda2021-02-07 18:42:21 +00004971// | 'except' expression ['as' NAME] ':' block
4972// | 'except' ':' block
Pablo Galindo56c95df2021-04-21 15:28:21 +01004973// | invalid_except_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004974static excepthandler_ty
4975except_block_rule(Parser *p)
4976{
4977 D(p->level++);
4978 if (p->error_indicator) {
4979 D(p->level--);
4980 return NULL;
4981 }
4982 excepthandler_ty _res = NULL;
4983 int _mark = p->mark;
4984 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4985 p->error_indicator = 1;
4986 D(p->level--);
4987 return NULL;
4988 }
4989 int _start_lineno = p->tokens[_mark]->lineno;
4990 UNUSED(_start_lineno); // Only used by EXTRA macro
4991 int _start_col_offset = p->tokens[_mark]->col_offset;
4992 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo56c95df2021-04-21 15:28:21 +01004993 if (p->call_invalid_rules) { // invalid_except_stmt_indent
4994 if (p->error_indicator) {
4995 D(p->level--);
4996 return NULL;
4997 }
4998 D(fprintf(stderr, "%*c> except_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_except_stmt_indent"));
4999 void *invalid_except_stmt_indent_var;
5000 if (
5001 (invalid_except_stmt_indent_var = invalid_except_stmt_indent_rule(p)) // invalid_except_stmt_indent
5002 )
5003 {
5004 D(fprintf(stderr, "%*c+ except_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_except_stmt_indent"));
5005 _res = invalid_except_stmt_indent_var;
5006 goto done;
5007 }
5008 p->mark = _mark;
5009 D(fprintf(stderr, "%*c%s except_block[%d-%d]: %s failed!\n", p->level, ' ',
5010 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_except_stmt_indent"));
5011 }
Pablo Galindo206cbda2021-02-07 18:42:21 +00005012 { // 'except' expression ['as' NAME] ':' block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005013 if (p->error_indicator) {
5014 D(p->level--);
5015 return NULL;
5016 }
Pablo Galindo206cbda2021-02-07 18:42:21 +00005017 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 +01005018 Token * _keyword;
5019 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01005020 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005021 expr_ty e;
5022 void *t;
5023 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03005024 (_keyword = _PyPegen_expect_token(p, 521)) // token='except'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005025 &&
5026 (e = expression_rule(p)) // expression
5027 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02005028 (t = _tmp_49_rule(p), !p->error_indicator) // ['as' NAME]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005029 &&
Pablo Galindo206cbda2021-02-07 18:42:21 +00005030 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005031 &&
5032 (b = block_rule(p)) // block
5033 )
5034 {
Pablo Galindo206cbda2021-02-07 18:42:21 +00005035 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 +01005036 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5037 if (_token == NULL) {
5038 D(p->level--);
5039 return NULL;
5040 }
5041 int _end_lineno = _token->end_lineno;
5042 UNUSED(_end_lineno); // Only used by EXTRA macro
5043 int _end_col_offset = _token->end_col_offset;
5044 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02005045 _res = _PyAST_ExceptHandler ( e , ( t ) ? ( ( expr_ty ) t ) -> v . Name . id : NULL , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005046 if (_res == NULL && PyErr_Occurred()) {
5047 p->error_indicator = 1;
5048 D(p->level--);
5049 return NULL;
5050 }
5051 goto done;
5052 }
5053 p->mark = _mark;
5054 D(fprintf(stderr, "%*c%s except_block[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo206cbda2021-02-07 18:42:21 +00005055 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' expression ['as' NAME] ':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005056 }
Pablo Galindo206cbda2021-02-07 18:42:21 +00005057 { // 'except' ':' block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005058 if (p->error_indicator) {
5059 D(p->level--);
5060 return NULL;
5061 }
Pablo Galindo206cbda2021-02-07 18:42:21 +00005062 D(fprintf(stderr, "%*c> except_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' ':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005063 Token * _keyword;
5064 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01005065 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005066 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03005067 (_keyword = _PyPegen_expect_token(p, 521)) // token='except'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005068 &&
Pablo Galindo206cbda2021-02-07 18:42:21 +00005069 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005070 &&
5071 (b = block_rule(p)) // block
5072 )
5073 {
Pablo Galindo206cbda2021-02-07 18:42:21 +00005074 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 +01005075 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5076 if (_token == NULL) {
5077 D(p->level--);
5078 return NULL;
5079 }
5080 int _end_lineno = _token->end_lineno;
5081 UNUSED(_end_lineno); // Only used by EXTRA macro
5082 int _end_col_offset = _token->end_col_offset;
5083 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02005084 _res = _PyAST_ExceptHandler ( NULL , NULL , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005085 if (_res == NULL && PyErr_Occurred()) {
5086 p->error_indicator = 1;
5087 D(p->level--);
5088 return NULL;
5089 }
5090 goto done;
5091 }
5092 p->mark = _mark;
5093 D(fprintf(stderr, "%*c%s except_block[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo206cbda2021-02-07 18:42:21 +00005094 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' ':' block"));
5095 }
Pablo Galindo56c95df2021-04-21 15:28:21 +01005096 if (p->call_invalid_rules) { // invalid_except_stmt
Pablo Galindo206cbda2021-02-07 18:42:21 +00005097 if (p->error_indicator) {
5098 D(p->level--);
5099 return NULL;
5100 }
Pablo Galindo56c95df2021-04-21 15:28:21 +01005101 D(fprintf(stderr, "%*c> except_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_except_stmt"));
5102 void *invalid_except_stmt_var;
Pablo Galindo206cbda2021-02-07 18:42:21 +00005103 if (
Pablo Galindo56c95df2021-04-21 15:28:21 +01005104 (invalid_except_stmt_var = invalid_except_stmt_rule(p)) // invalid_except_stmt
Pablo Galindo206cbda2021-02-07 18:42:21 +00005105 )
5106 {
Pablo Galindo56c95df2021-04-21 15:28:21 +01005107 D(fprintf(stderr, "%*c+ except_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_except_stmt"));
5108 _res = invalid_except_stmt_var;
Pablo Galindo206cbda2021-02-07 18:42:21 +00005109 goto done;
5110 }
5111 p->mark = _mark;
5112 D(fprintf(stderr, "%*c%s except_block[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo56c95df2021-04-21 15:28:21 +01005113 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_except_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005114 }
5115 _res = NULL;
5116 done:
5117 D(p->level--);
5118 return _res;
5119}
5120
Pablo Galindo56c95df2021-04-21 15:28:21 +01005121// finally_block: invalid_finally_stmt | 'finally' &&':' block
Pablo Galindoa5634c42020-09-16 19:42:00 +01005122static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005123finally_block_rule(Parser *p)
5124{
5125 D(p->level++);
5126 if (p->error_indicator) {
5127 D(p->level--);
5128 return NULL;
5129 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01005130 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005131 int _mark = p->mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +01005132 if (p->call_invalid_rules) { // invalid_finally_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005133 if (p->error_indicator) {
5134 D(p->level--);
5135 return NULL;
5136 }
Pablo Galindo56c95df2021-04-21 15:28:21 +01005137 D(fprintf(stderr, "%*c> finally_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_finally_stmt"));
5138 void *invalid_finally_stmt_var;
5139 if (
5140 (invalid_finally_stmt_var = invalid_finally_stmt_rule(p)) // invalid_finally_stmt
5141 )
5142 {
5143 D(fprintf(stderr, "%*c+ finally_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_finally_stmt"));
5144 _res = invalid_finally_stmt_var;
5145 goto done;
5146 }
5147 p->mark = _mark;
5148 D(fprintf(stderr, "%*c%s finally_block[%d-%d]: %s failed!\n", p->level, ' ',
5149 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_finally_stmt"));
5150 }
5151 { // 'finally' &&':' block
5152 if (p->error_indicator) {
5153 D(p->level--);
5154 return NULL;
5155 }
5156 D(fprintf(stderr, "%*c> finally_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'finally' &&':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005157 Token * _keyword;
5158 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01005159 asdl_stmt_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005160 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03005161 (_keyword = _PyPegen_expect_token(p, 522)) // token='finally'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005162 &&
Pablo Galindo56c95df2021-04-21 15:28:21 +01005163 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005164 &&
5165 (a = block_rule(p)) // block
5166 )
5167 {
Pablo Galindo56c95df2021-04-21 15:28:21 +01005168 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 +01005169 _res = a;
5170 if (_res == NULL && PyErr_Occurred()) {
5171 p->error_indicator = 1;
5172 D(p->level--);
5173 return NULL;
5174 }
5175 goto done;
5176 }
5177 p->mark = _mark;
5178 D(fprintf(stderr, "%*c%s finally_block[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo56c95df2021-04-21 15:28:21 +01005179 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'finally' &&':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005180 }
5181 _res = NULL;
5182 done:
5183 D(p->level--);
5184 return _res;
5185}
5186
Pablo Galindo08fb8ac2021-03-18 01:03:11 +00005187// match_stmt:
5188// | "match" subject_expr ':' NEWLINE INDENT case_block+ DEDENT
5189// | invalid_match_stmt
Brandt Bucher145bf262021-02-26 14:51:55 -08005190static stmt_ty
5191match_stmt_rule(Parser *p)
5192{
5193 D(p->level++);
5194 if (p->error_indicator) {
5195 D(p->level--);
5196 return NULL;
5197 }
5198 stmt_ty _res = NULL;
5199 int _mark = p->mark;
5200 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
5201 p->error_indicator = 1;
5202 D(p->level--);
5203 return NULL;
5204 }
5205 int _start_lineno = p->tokens[_mark]->lineno;
5206 UNUSED(_start_lineno); // Only used by EXTRA macro
5207 int _start_col_offset = p->tokens[_mark]->col_offset;
5208 UNUSED(_start_col_offset); // Only used by EXTRA macro
5209 { // "match" subject_expr ':' NEWLINE INDENT case_block+ DEDENT
5210 if (p->error_indicator) {
5211 D(p->level--);
5212 return NULL;
5213 }
5214 D(fprintf(stderr, "%*c> match_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"match\" subject_expr ':' NEWLINE INDENT case_block+ DEDENT"));
5215 expr_ty _keyword;
5216 Token * _literal;
5217 asdl_match_case_seq* cases;
5218 Token * dedent_var;
5219 Token * indent_var;
5220 Token * newline_var;
5221 expr_ty subject;
5222 if (
5223 (_keyword = _PyPegen_expect_soft_keyword(p, "match")) // soft_keyword='"match"'
5224 &&
5225 (subject = subject_expr_rule(p)) // subject_expr
5226 &&
5227 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
5228 &&
5229 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
5230 &&
5231 (indent_var = _PyPegen_expect_token(p, INDENT)) // token='INDENT'
5232 &&
5233 (cases = (asdl_match_case_seq*)_loop1_50_rule(p)) // case_block+
5234 &&
5235 (dedent_var = _PyPegen_expect_token(p, DEDENT)) // token='DEDENT'
5236 )
5237 {
5238 D(fprintf(stderr, "%*c+ match_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"match\" subject_expr ':' NEWLINE INDENT case_block+ DEDENT"));
5239 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5240 if (_token == NULL) {
5241 D(p->level--);
5242 return NULL;
5243 }
5244 int _end_lineno = _token->end_lineno;
5245 UNUSED(_end_lineno); // Only used by EXTRA macro
5246 int _end_col_offset = _token->end_col_offset;
5247 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02005248 _res = CHECK_VERSION ( stmt_ty , 10 , "Pattern matching is" , _PyAST_Match ( subject , cases , EXTRA ) );
Brandt Bucher145bf262021-02-26 14:51:55 -08005249 if (_res == NULL && PyErr_Occurred()) {
5250 p->error_indicator = 1;
5251 D(p->level--);
5252 return NULL;
5253 }
5254 goto done;
5255 }
5256 p->mark = _mark;
5257 D(fprintf(stderr, "%*c%s match_stmt[%d-%d]: %s failed!\n", p->level, ' ',
5258 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"match\" subject_expr ':' NEWLINE INDENT case_block+ DEDENT"));
5259 }
Pablo Galindo08fb8ac2021-03-18 01:03:11 +00005260 if (p->call_invalid_rules) { // invalid_match_stmt
5261 if (p->error_indicator) {
5262 D(p->level--);
5263 return NULL;
5264 }
5265 D(fprintf(stderr, "%*c> match_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_match_stmt"));
5266 void *invalid_match_stmt_var;
5267 if (
5268 (invalid_match_stmt_var = invalid_match_stmt_rule(p)) // invalid_match_stmt
5269 )
5270 {
5271 D(fprintf(stderr, "%*c+ match_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_match_stmt"));
5272 _res = invalid_match_stmt_var;
5273 goto done;
5274 }
5275 p->mark = _mark;
5276 D(fprintf(stderr, "%*c%s match_stmt[%d-%d]: %s failed!\n", p->level, ' ',
5277 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_match_stmt"));
5278 }
Brandt Bucher145bf262021-02-26 14:51:55 -08005279 _res = NULL;
5280 done:
5281 D(p->level--);
5282 return _res;
5283}
5284
5285// subject_expr: star_named_expression ',' star_named_expressions? | named_expression
5286static expr_ty
5287subject_expr_rule(Parser *p)
5288{
5289 D(p->level++);
5290 if (p->error_indicator) {
5291 D(p->level--);
5292 return NULL;
5293 }
5294 expr_ty _res = NULL;
5295 int _mark = p->mark;
5296 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
5297 p->error_indicator = 1;
5298 D(p->level--);
5299 return NULL;
5300 }
5301 int _start_lineno = p->tokens[_mark]->lineno;
5302 UNUSED(_start_lineno); // Only used by EXTRA macro
5303 int _start_col_offset = p->tokens[_mark]->col_offset;
5304 UNUSED(_start_col_offset); // Only used by EXTRA macro
5305 { // star_named_expression ',' star_named_expressions?
5306 if (p->error_indicator) {
5307 D(p->level--);
5308 return NULL;
5309 }
5310 D(fprintf(stderr, "%*c> subject_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_named_expression ',' star_named_expressions?"));
5311 Token * _literal;
5312 expr_ty value;
5313 void *values;
5314 if (
5315 (value = star_named_expression_rule(p)) // star_named_expression
5316 &&
5317 (_literal = _PyPegen_expect_token(p, 12)) // token=','
5318 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02005319 (values = star_named_expressions_rule(p), !p->error_indicator) // star_named_expressions?
Brandt Bucher145bf262021-02-26 14:51:55 -08005320 )
5321 {
5322 D(fprintf(stderr, "%*c+ subject_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_named_expression ',' star_named_expressions?"));
5323 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5324 if (_token == NULL) {
5325 D(p->level--);
5326 return NULL;
5327 }
5328 int _end_lineno = _token->end_lineno;
5329 UNUSED(_end_lineno); // Only used by EXTRA macro
5330 int _end_col_offset = _token->end_col_offset;
5331 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02005332 _res = _PyAST_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , value , values ) ) , Load , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08005333 if (_res == NULL && PyErr_Occurred()) {
5334 p->error_indicator = 1;
5335 D(p->level--);
5336 return NULL;
5337 }
5338 goto done;
5339 }
5340 p->mark = _mark;
5341 D(fprintf(stderr, "%*c%s subject_expr[%d-%d]: %s failed!\n", p->level, ' ',
5342 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression ',' star_named_expressions?"));
5343 }
5344 { // named_expression
5345 if (p->error_indicator) {
5346 D(p->level--);
5347 return NULL;
5348 }
5349 D(fprintf(stderr, "%*c> subject_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression"));
5350 expr_ty named_expression_var;
5351 if (
5352 (named_expression_var = named_expression_rule(p)) // named_expression
5353 )
5354 {
5355 D(fprintf(stderr, "%*c+ subject_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "named_expression"));
5356 _res = named_expression_var;
5357 goto done;
5358 }
5359 p->mark = _mark;
5360 D(fprintf(stderr, "%*c%s subject_expr[%d-%d]: %s failed!\n", p->level, ' ',
5361 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression"));
5362 }
5363 _res = NULL;
5364 done:
5365 D(p->level--);
5366 return _res;
5367}
5368
Pablo Galindo56c95df2021-04-21 15:28:21 +01005369// case_block: invalid_case_block | "case" patterns guard? ':' block
Brandt Bucher145bf262021-02-26 14:51:55 -08005370static match_case_ty
5371case_block_rule(Parser *p)
5372{
5373 D(p->level++);
5374 if (p->error_indicator) {
5375 D(p->level--);
5376 return NULL;
5377 }
5378 match_case_ty _res = NULL;
5379 int _mark = p->mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +01005380 if (p->call_invalid_rules) { // invalid_case_block
5381 if (p->error_indicator) {
5382 D(p->level--);
5383 return NULL;
5384 }
5385 D(fprintf(stderr, "%*c> case_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_case_block"));
5386 void *invalid_case_block_var;
5387 if (
5388 (invalid_case_block_var = invalid_case_block_rule(p)) // invalid_case_block
5389 )
5390 {
5391 D(fprintf(stderr, "%*c+ case_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_case_block"));
5392 _res = invalid_case_block_var;
5393 goto done;
5394 }
5395 p->mark = _mark;
5396 D(fprintf(stderr, "%*c%s case_block[%d-%d]: %s failed!\n", p->level, ' ',
5397 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_case_block"));
5398 }
Brandt Bucher145bf262021-02-26 14:51:55 -08005399 { // "case" patterns guard? ':' block
5400 if (p->error_indicator) {
5401 D(p->level--);
5402 return NULL;
5403 }
5404 D(fprintf(stderr, "%*c> case_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"case\" patterns guard? ':' block"));
5405 expr_ty _keyword;
5406 Token * _literal;
5407 asdl_stmt_seq* body;
5408 void *guard;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005409 pattern_ty pattern;
Brandt Bucher145bf262021-02-26 14:51:55 -08005410 if (
5411 (_keyword = _PyPegen_expect_soft_keyword(p, "case")) // soft_keyword='"case"'
5412 &&
5413 (pattern = patterns_rule(p)) // patterns
5414 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02005415 (guard = guard_rule(p), !p->error_indicator) // guard?
Brandt Bucher145bf262021-02-26 14:51:55 -08005416 &&
5417 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
5418 &&
5419 (body = block_rule(p)) // block
5420 )
5421 {
5422 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 +02005423 _res = _PyAST_match_case ( pattern , guard , body , p -> arena );
Brandt Bucher145bf262021-02-26 14:51:55 -08005424 if (_res == NULL && PyErr_Occurred()) {
5425 p->error_indicator = 1;
5426 D(p->level--);
5427 return NULL;
5428 }
5429 goto done;
5430 }
5431 p->mark = _mark;
5432 D(fprintf(stderr, "%*c%s case_block[%d-%d]: %s failed!\n", p->level, ' ',
5433 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"case\" patterns guard? ':' block"));
5434 }
5435 _res = NULL;
5436 done:
5437 D(p->level--);
5438 return _res;
5439}
5440
5441// guard: 'if' named_expression
5442static expr_ty
5443guard_rule(Parser *p)
5444{
5445 D(p->level++);
5446 if (p->error_indicator) {
5447 D(p->level--);
5448 return NULL;
5449 }
5450 expr_ty _res = NULL;
5451 int _mark = p->mark;
5452 { // 'if' named_expression
5453 if (p->error_indicator) {
5454 D(p->level--);
5455 return NULL;
5456 }
5457 D(fprintf(stderr, "%*c> guard[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' named_expression"));
5458 Token * _keyword;
5459 expr_ty guard;
5460 if (
5461 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
5462 &&
5463 (guard = named_expression_rule(p)) // named_expression
5464 )
5465 {
5466 D(fprintf(stderr, "%*c+ guard[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' named_expression"));
5467 _res = guard;
5468 if (_res == NULL && PyErr_Occurred()) {
5469 p->error_indicator = 1;
5470 D(p->level--);
5471 return NULL;
5472 }
5473 goto done;
5474 }
5475 p->mark = _mark;
5476 D(fprintf(stderr, "%*c%s guard[%d-%d]: %s failed!\n", p->level, ' ',
5477 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' named_expression"));
5478 }
5479 _res = NULL;
5480 done:
5481 D(p->level--);
5482 return _res;
5483}
5484
5485// patterns: open_sequence_pattern | pattern
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005486static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08005487patterns_rule(Parser *p)
5488{
5489 D(p->level++);
5490 if (p->error_indicator) {
5491 D(p->level--);
5492 return NULL;
5493 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005494 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08005495 int _mark = p->mark;
5496 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
5497 p->error_indicator = 1;
5498 D(p->level--);
5499 return NULL;
5500 }
5501 int _start_lineno = p->tokens[_mark]->lineno;
5502 UNUSED(_start_lineno); // Only used by EXTRA macro
5503 int _start_col_offset = p->tokens[_mark]->col_offset;
5504 UNUSED(_start_col_offset); // Only used by EXTRA macro
5505 { // open_sequence_pattern
5506 if (p->error_indicator) {
5507 D(p->level--);
5508 return NULL;
5509 }
5510 D(fprintf(stderr, "%*c> patterns[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "open_sequence_pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005511 asdl_pattern_seq* patterns;
Brandt Bucher145bf262021-02-26 14:51:55 -08005512 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005513 (patterns = (asdl_pattern_seq*)open_sequence_pattern_rule(p)) // open_sequence_pattern
Brandt Bucher145bf262021-02-26 14:51:55 -08005514 )
5515 {
5516 D(fprintf(stderr, "%*c+ patterns[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "open_sequence_pattern"));
5517 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5518 if (_token == NULL) {
5519 D(p->level--);
5520 return NULL;
5521 }
5522 int _end_lineno = _token->end_lineno;
5523 UNUSED(_end_lineno); // Only used by EXTRA macro
5524 int _end_col_offset = _token->end_col_offset;
5525 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005526 _res = _PyAST_MatchSequence ( patterns , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08005527 if (_res == NULL && PyErr_Occurred()) {
5528 p->error_indicator = 1;
5529 D(p->level--);
5530 return NULL;
5531 }
5532 goto done;
5533 }
5534 p->mark = _mark;
5535 D(fprintf(stderr, "%*c%s patterns[%d-%d]: %s failed!\n", p->level, ' ',
5536 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "open_sequence_pattern"));
5537 }
5538 { // pattern
5539 if (p->error_indicator) {
5540 D(p->level--);
5541 return NULL;
5542 }
5543 D(fprintf(stderr, "%*c> patterns[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005544 pattern_ty pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08005545 if (
5546 (pattern_var = pattern_rule(p)) // pattern
5547 )
5548 {
5549 D(fprintf(stderr, "%*c+ patterns[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "pattern"));
5550 _res = pattern_var;
5551 goto done;
5552 }
5553 p->mark = _mark;
5554 D(fprintf(stderr, "%*c%s patterns[%d-%d]: %s failed!\n", p->level, ' ',
5555 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "pattern"));
5556 }
5557 _res = NULL;
5558 done:
5559 D(p->level--);
5560 return _res;
5561}
5562
5563// pattern: as_pattern | or_pattern
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005564static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08005565pattern_rule(Parser *p)
5566{
5567 D(p->level++);
5568 if (p->error_indicator) {
5569 D(p->level--);
5570 return NULL;
5571 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005572 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08005573 int _mark = p->mark;
5574 { // as_pattern
5575 if (p->error_indicator) {
5576 D(p->level--);
5577 return NULL;
5578 }
5579 D(fprintf(stderr, "%*c> pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "as_pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005580 pattern_ty as_pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08005581 if (
5582 (as_pattern_var = as_pattern_rule(p)) // as_pattern
5583 )
5584 {
5585 D(fprintf(stderr, "%*c+ pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "as_pattern"));
5586 _res = as_pattern_var;
5587 goto done;
5588 }
5589 p->mark = _mark;
5590 D(fprintf(stderr, "%*c%s pattern[%d-%d]: %s failed!\n", p->level, ' ',
5591 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "as_pattern"));
5592 }
5593 { // or_pattern
5594 if (p->error_indicator) {
5595 D(p->level--);
5596 return NULL;
5597 }
5598 D(fprintf(stderr, "%*c> pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "or_pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005599 pattern_ty or_pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08005600 if (
5601 (or_pattern_var = or_pattern_rule(p)) // or_pattern
5602 )
5603 {
5604 D(fprintf(stderr, "%*c+ pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "or_pattern"));
5605 _res = or_pattern_var;
5606 goto done;
5607 }
5608 p->mark = _mark;
5609 D(fprintf(stderr, "%*c%s pattern[%d-%d]: %s failed!\n", p->level, ' ',
5610 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "or_pattern"));
5611 }
5612 _res = NULL;
5613 done:
5614 D(p->level--);
5615 return _res;
5616}
5617
Pablo Galindoa8c418d2021-06-18 22:15:57 +01005618// as_pattern: or_pattern 'as' pattern_capture_target | invalid_as_pattern
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005619static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08005620as_pattern_rule(Parser *p)
5621{
5622 D(p->level++);
5623 if (p->error_indicator) {
5624 D(p->level--);
5625 return NULL;
5626 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005627 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08005628 int _mark = p->mark;
5629 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
5630 p->error_indicator = 1;
5631 D(p->level--);
5632 return NULL;
5633 }
5634 int _start_lineno = p->tokens[_mark]->lineno;
5635 UNUSED(_start_lineno); // Only used by EXTRA macro
5636 int _start_col_offset = p->tokens[_mark]->col_offset;
5637 UNUSED(_start_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005638 { // or_pattern 'as' pattern_capture_target
Brandt Bucher145bf262021-02-26 14:51:55 -08005639 if (p->error_indicator) {
5640 D(p->level--);
5641 return NULL;
5642 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005643 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 -08005644 Token * _keyword;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005645 pattern_ty pattern;
Brandt Bucher145bf262021-02-26 14:51:55 -08005646 expr_ty target;
5647 if (
5648 (pattern = or_pattern_rule(p)) // or_pattern
5649 &&
5650 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
5651 &&
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005652 (target = pattern_capture_target_rule(p)) // pattern_capture_target
Brandt Bucher145bf262021-02-26 14:51:55 -08005653 )
5654 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005655 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 -08005656 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5657 if (_token == NULL) {
5658 D(p->level--);
5659 return NULL;
5660 }
5661 int _end_lineno = _token->end_lineno;
5662 UNUSED(_end_lineno); // Only used by EXTRA macro
5663 int _end_col_offset = _token->end_col_offset;
5664 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02005665 _res = _PyAST_MatchAs ( pattern , target -> v . Name . id , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08005666 if (_res == NULL && PyErr_Occurred()) {
5667 p->error_indicator = 1;
5668 D(p->level--);
5669 return NULL;
5670 }
5671 goto done;
5672 }
5673 p->mark = _mark;
5674 D(fprintf(stderr, "%*c%s as_pattern[%d-%d]: %s failed!\n", p->level, ' ',
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005675 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "or_pattern 'as' pattern_capture_target"));
Brandt Bucher145bf262021-02-26 14:51:55 -08005676 }
Pablo Galindoa8c418d2021-06-18 22:15:57 +01005677 if (p->call_invalid_rules) { // invalid_as_pattern
5678 if (p->error_indicator) {
5679 D(p->level--);
5680 return NULL;
5681 }
5682 D(fprintf(stderr, "%*c> as_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_as_pattern"));
5683 void *invalid_as_pattern_var;
5684 if (
5685 (invalid_as_pattern_var = invalid_as_pattern_rule(p)) // invalid_as_pattern
5686 )
5687 {
5688 D(fprintf(stderr, "%*c+ as_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_as_pattern"));
5689 _res = invalid_as_pattern_var;
5690 goto done;
5691 }
5692 p->mark = _mark;
5693 D(fprintf(stderr, "%*c%s as_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5694 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_as_pattern"));
5695 }
Brandt Bucher145bf262021-02-26 14:51:55 -08005696 _res = NULL;
5697 done:
5698 D(p->level--);
5699 return _res;
5700}
5701
5702// or_pattern: '|'.closed_pattern+
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005703static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08005704or_pattern_rule(Parser *p)
5705{
5706 D(p->level++);
5707 if (p->error_indicator) {
5708 D(p->level--);
5709 return NULL;
5710 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005711 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08005712 int _mark = p->mark;
5713 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
5714 p->error_indicator = 1;
5715 D(p->level--);
5716 return NULL;
5717 }
5718 int _start_lineno = p->tokens[_mark]->lineno;
5719 UNUSED(_start_lineno); // Only used by EXTRA macro
5720 int _start_col_offset = p->tokens[_mark]->col_offset;
5721 UNUSED(_start_col_offset); // Only used by EXTRA macro
5722 { // '|'.closed_pattern+
5723 if (p->error_indicator) {
5724 D(p->level--);
5725 return NULL;
5726 }
5727 D(fprintf(stderr, "%*c> or_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'|'.closed_pattern+"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005728 asdl_pattern_seq* patterns;
Brandt Bucher145bf262021-02-26 14:51:55 -08005729 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005730 (patterns = (asdl_pattern_seq*)_gather_51_rule(p)) // '|'.closed_pattern+
Brandt Bucher145bf262021-02-26 14:51:55 -08005731 )
5732 {
5733 D(fprintf(stderr, "%*c+ or_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'|'.closed_pattern+"));
5734 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5735 if (_token == NULL) {
5736 D(p->level--);
5737 return NULL;
5738 }
5739 int _end_lineno = _token->end_lineno;
5740 UNUSED(_end_lineno); // Only used by EXTRA macro
5741 int _end_col_offset = _token->end_col_offset;
5742 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02005743 _res = asdl_seq_LEN ( patterns ) == 1 ? asdl_seq_GET ( patterns , 0 ) : _PyAST_MatchOr ( patterns , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08005744 if (_res == NULL && PyErr_Occurred()) {
5745 p->error_indicator = 1;
5746 D(p->level--);
5747 return NULL;
5748 }
5749 goto done;
5750 }
5751 p->mark = _mark;
5752 D(fprintf(stderr, "%*c%s or_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5753 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'|'.closed_pattern+"));
5754 }
5755 _res = NULL;
5756 done:
5757 D(p->level--);
5758 return _res;
5759}
5760
5761// closed_pattern:
5762// | literal_pattern
5763// | capture_pattern
5764// | wildcard_pattern
5765// | value_pattern
5766// | group_pattern
5767// | sequence_pattern
5768// | mapping_pattern
5769// | class_pattern
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005770static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08005771closed_pattern_rule(Parser *p)
5772{
5773 D(p->level++);
5774 if (p->error_indicator) {
5775 D(p->level--);
5776 return NULL;
5777 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005778 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08005779 int _mark = p->mark;
5780 { // literal_pattern
5781 if (p->error_indicator) {
5782 D(p->level--);
5783 return NULL;
5784 }
5785 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "literal_pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005786 pattern_ty literal_pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08005787 if (
5788 (literal_pattern_var = literal_pattern_rule(p)) // literal_pattern
5789 )
5790 {
5791 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "literal_pattern"));
5792 _res = literal_pattern_var;
5793 goto done;
5794 }
5795 p->mark = _mark;
5796 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5797 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "literal_pattern"));
5798 }
5799 { // capture_pattern
5800 if (p->error_indicator) {
5801 D(p->level--);
5802 return NULL;
5803 }
5804 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "capture_pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005805 pattern_ty capture_pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08005806 if (
5807 (capture_pattern_var = capture_pattern_rule(p)) // capture_pattern
5808 )
5809 {
5810 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "capture_pattern"));
5811 _res = capture_pattern_var;
5812 goto done;
5813 }
5814 p->mark = _mark;
5815 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5816 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "capture_pattern"));
5817 }
5818 { // wildcard_pattern
5819 if (p->error_indicator) {
5820 D(p->level--);
5821 return NULL;
5822 }
5823 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "wildcard_pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005824 pattern_ty wildcard_pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08005825 if (
5826 (wildcard_pattern_var = wildcard_pattern_rule(p)) // wildcard_pattern
5827 )
5828 {
5829 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "wildcard_pattern"));
5830 _res = wildcard_pattern_var;
5831 goto done;
5832 }
5833 p->mark = _mark;
5834 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5835 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "wildcard_pattern"));
5836 }
5837 { // value_pattern
5838 if (p->error_indicator) {
5839 D(p->level--);
5840 return NULL;
5841 }
5842 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "value_pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005843 pattern_ty value_pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08005844 if (
5845 (value_pattern_var = value_pattern_rule(p)) // value_pattern
5846 )
5847 {
5848 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "value_pattern"));
5849 _res = value_pattern_var;
5850 goto done;
5851 }
5852 p->mark = _mark;
5853 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5854 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "value_pattern"));
5855 }
5856 { // group_pattern
5857 if (p->error_indicator) {
5858 D(p->level--);
5859 return NULL;
5860 }
5861 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "group_pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005862 pattern_ty group_pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08005863 if (
5864 (group_pattern_var = group_pattern_rule(p)) // group_pattern
5865 )
5866 {
5867 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "group_pattern"));
5868 _res = group_pattern_var;
5869 goto done;
5870 }
5871 p->mark = _mark;
5872 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5873 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "group_pattern"));
5874 }
5875 { // sequence_pattern
5876 if (p->error_indicator) {
5877 D(p->level--);
5878 return NULL;
5879 }
5880 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "sequence_pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005881 pattern_ty sequence_pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08005882 if (
5883 (sequence_pattern_var = sequence_pattern_rule(p)) // sequence_pattern
5884 )
5885 {
5886 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "sequence_pattern"));
5887 _res = sequence_pattern_var;
5888 goto done;
5889 }
5890 p->mark = _mark;
5891 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5892 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "sequence_pattern"));
5893 }
5894 { // mapping_pattern
5895 if (p->error_indicator) {
5896 D(p->level--);
5897 return NULL;
5898 }
5899 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "mapping_pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005900 pattern_ty mapping_pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08005901 if (
5902 (mapping_pattern_var = mapping_pattern_rule(p)) // mapping_pattern
5903 )
5904 {
5905 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "mapping_pattern"));
5906 _res = mapping_pattern_var;
5907 goto done;
5908 }
5909 p->mark = _mark;
5910 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5911 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "mapping_pattern"));
5912 }
5913 { // class_pattern
5914 if (p->error_indicator) {
5915 D(p->level--);
5916 return NULL;
5917 }
5918 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "class_pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005919 pattern_ty class_pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08005920 if (
5921 (class_pattern_var = class_pattern_rule(p)) // class_pattern
5922 )
5923 {
5924 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "class_pattern"));
5925 _res = class_pattern_var;
5926 goto done;
5927 }
5928 p->mark = _mark;
5929 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5930 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "class_pattern"));
5931 }
5932 _res = NULL;
5933 done:
5934 D(p->level--);
5935 return _res;
5936}
5937
5938// literal_pattern:
5939// | signed_number !('+' | '-')
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005940// | complex_number
Brandt Bucher145bf262021-02-26 14:51:55 -08005941// | strings
5942// | 'None'
5943// | 'True'
5944// | 'False'
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005945static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08005946literal_pattern_rule(Parser *p)
5947{
5948 D(p->level++);
5949 if (p->error_indicator) {
5950 D(p->level--);
5951 return NULL;
5952 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005953 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08005954 int _mark = p->mark;
5955 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
5956 p->error_indicator = 1;
5957 D(p->level--);
5958 return NULL;
5959 }
5960 int _start_lineno = p->tokens[_mark]->lineno;
5961 UNUSED(_start_lineno); // Only used by EXTRA macro
5962 int _start_col_offset = p->tokens[_mark]->col_offset;
5963 UNUSED(_start_col_offset); // Only used by EXTRA macro
5964 { // signed_number !('+' | '-')
5965 if (p->error_indicator) {
5966 D(p->level--);
5967 return NULL;
5968 }
5969 D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "signed_number !('+' | '-')"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005970 expr_ty value;
Brandt Bucher145bf262021-02-26 14:51:55 -08005971 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005972 (value = signed_number_rule(p)) // signed_number
Brandt Bucher145bf262021-02-26 14:51:55 -08005973 &&
5974 _PyPegen_lookahead(0, _tmp_53_rule, p)
5975 )
5976 {
5977 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 +10005978 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5979 if (_token == NULL) {
5980 D(p->level--);
5981 return NULL;
5982 }
5983 int _end_lineno = _token->end_lineno;
5984 UNUSED(_end_lineno); // Only used by EXTRA macro
5985 int _end_col_offset = _token->end_col_offset;
5986 UNUSED(_end_col_offset); // Only used by EXTRA macro
5987 _res = _PyAST_MatchValue ( value , EXTRA );
5988 if (_res == NULL && PyErr_Occurred()) {
5989 p->error_indicator = 1;
5990 D(p->level--);
5991 return NULL;
5992 }
Brandt Bucher145bf262021-02-26 14:51:55 -08005993 goto done;
5994 }
5995 p->mark = _mark;
5996 D(fprintf(stderr, "%*c%s literal_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5997 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "signed_number !('+' | '-')"));
5998 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005999 { // complex_number
Brandt Bucher145bf262021-02-26 14:51:55 -08006000 if (p->error_indicator) {
6001 D(p->level--);
6002 return NULL;
6003 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006004 D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "complex_number"));
6005 expr_ty value;
Brandt Bucher145bf262021-02-26 14:51:55 -08006006 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006007 (value = complex_number_rule(p)) // complex_number
Brandt Bucher145bf262021-02-26 14:51:55 -08006008 )
6009 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006010 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 -08006011 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6012 if (_token == NULL) {
6013 D(p->level--);
6014 return NULL;
6015 }
6016 int _end_lineno = _token->end_lineno;
6017 UNUSED(_end_lineno); // Only used by EXTRA macro
6018 int _end_col_offset = _token->end_col_offset;
6019 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006020 _res = _PyAST_MatchValue ( value , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08006021 if (_res == NULL && PyErr_Occurred()) {
6022 p->error_indicator = 1;
6023 D(p->level--);
6024 return NULL;
6025 }
6026 goto done;
6027 }
6028 p->mark = _mark;
6029 D(fprintf(stderr, "%*c%s literal_pattern[%d-%d]: %s failed!\n", p->level, ' ',
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006030 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "complex_number"));
Brandt Bucher145bf262021-02-26 14:51:55 -08006031 }
6032 { // strings
6033 if (p->error_indicator) {
6034 D(p->level--);
6035 return NULL;
6036 }
6037 D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "strings"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006038 expr_ty value;
Brandt Bucher145bf262021-02-26 14:51:55 -08006039 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006040 (value = strings_rule(p)) // strings
Brandt Bucher145bf262021-02-26 14:51:55 -08006041 )
6042 {
6043 D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "strings"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006044 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6045 if (_token == NULL) {
6046 D(p->level--);
6047 return NULL;
6048 }
6049 int _end_lineno = _token->end_lineno;
6050 UNUSED(_end_lineno); // Only used by EXTRA macro
6051 int _end_col_offset = _token->end_col_offset;
6052 UNUSED(_end_col_offset); // Only used by EXTRA macro
6053 _res = _PyAST_MatchValue ( value , EXTRA );
6054 if (_res == NULL && PyErr_Occurred()) {
6055 p->error_indicator = 1;
6056 D(p->level--);
6057 return NULL;
6058 }
Brandt Bucher145bf262021-02-26 14:51:55 -08006059 goto done;
6060 }
6061 p->mark = _mark;
6062 D(fprintf(stderr, "%*c%s literal_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6063 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "strings"));
6064 }
6065 { // 'None'
6066 if (p->error_indicator) {
6067 D(p->level--);
6068 return NULL;
6069 }
6070 D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'None'"));
6071 Token * _keyword;
6072 if (
6073 (_keyword = _PyPegen_expect_token(p, 523)) // token='None'
6074 )
6075 {
6076 D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'"));
6077 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6078 if (_token == NULL) {
6079 D(p->level--);
6080 return NULL;
6081 }
6082 int _end_lineno = _token->end_lineno;
6083 UNUSED(_end_lineno); // Only used by EXTRA macro
6084 int _end_col_offset = _token->end_col_offset;
6085 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006086 _res = _PyAST_MatchSingleton ( Py_None , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08006087 if (_res == NULL && PyErr_Occurred()) {
6088 p->error_indicator = 1;
6089 D(p->level--);
6090 return NULL;
6091 }
6092 goto done;
6093 }
6094 p->mark = _mark;
6095 D(fprintf(stderr, "%*c%s literal_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6096 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'None'"));
6097 }
6098 { // 'True'
6099 if (p->error_indicator) {
6100 D(p->level--);
6101 return NULL;
6102 }
6103 D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'True'"));
6104 Token * _keyword;
6105 if (
6106 (_keyword = _PyPegen_expect_token(p, 524)) // token='True'
6107 )
6108 {
6109 D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'"));
6110 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6111 if (_token == NULL) {
6112 D(p->level--);
6113 return NULL;
6114 }
6115 int _end_lineno = _token->end_lineno;
6116 UNUSED(_end_lineno); // Only used by EXTRA macro
6117 int _end_col_offset = _token->end_col_offset;
6118 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006119 _res = _PyAST_MatchSingleton ( Py_True , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08006120 if (_res == NULL && PyErr_Occurred()) {
6121 p->error_indicator = 1;
6122 D(p->level--);
6123 return NULL;
6124 }
6125 goto done;
6126 }
6127 p->mark = _mark;
6128 D(fprintf(stderr, "%*c%s literal_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6129 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'True'"));
6130 }
6131 { // 'False'
6132 if (p->error_indicator) {
6133 D(p->level--);
6134 return NULL;
6135 }
6136 D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False'"));
6137 Token * _keyword;
6138 if (
6139 (_keyword = _PyPegen_expect_token(p, 525)) // token='False'
6140 )
6141 {
6142 D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'"));
6143 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6144 if (_token == NULL) {
6145 D(p->level--);
6146 return NULL;
6147 }
6148 int _end_lineno = _token->end_lineno;
6149 UNUSED(_end_lineno); // Only used by EXTRA macro
6150 int _end_col_offset = _token->end_col_offset;
6151 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006152 _res = _PyAST_MatchSingleton ( Py_False , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08006153 if (_res == NULL && PyErr_Occurred()) {
6154 p->error_indicator = 1;
6155 D(p->level--);
6156 return NULL;
6157 }
6158 goto done;
6159 }
6160 p->mark = _mark;
6161 D(fprintf(stderr, "%*c%s literal_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6162 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'False'"));
6163 }
6164 _res = NULL;
6165 done:
6166 D(p->level--);
6167 return _res;
6168}
6169
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006170// literal_expr:
6171// | signed_number !('+' | '-')
6172// | complex_number
6173// | strings
6174// | 'None'
6175// | 'True'
6176// | 'False'
6177static expr_ty
6178literal_expr_rule(Parser *p)
6179{
6180 D(p->level++);
6181 if (p->error_indicator) {
6182 D(p->level--);
6183 return NULL;
6184 }
6185 expr_ty _res = NULL;
6186 int _mark = p->mark;
6187 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6188 p->error_indicator = 1;
6189 D(p->level--);
6190 return NULL;
6191 }
6192 int _start_lineno = p->tokens[_mark]->lineno;
6193 UNUSED(_start_lineno); // Only used by EXTRA macro
6194 int _start_col_offset = p->tokens[_mark]->col_offset;
6195 UNUSED(_start_col_offset); // Only used by EXTRA macro
6196 { // signed_number !('+' | '-')
6197 if (p->error_indicator) {
6198 D(p->level--);
6199 return NULL;
6200 }
6201 D(fprintf(stderr, "%*c> literal_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "signed_number !('+' | '-')"));
6202 expr_ty signed_number_var;
6203 if (
6204 (signed_number_var = signed_number_rule(p)) // signed_number
6205 &&
6206 _PyPegen_lookahead(0, _tmp_54_rule, p)
6207 )
6208 {
6209 D(fprintf(stderr, "%*c+ literal_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "signed_number !('+' | '-')"));
6210 _res = signed_number_var;
6211 goto done;
6212 }
6213 p->mark = _mark;
6214 D(fprintf(stderr, "%*c%s literal_expr[%d-%d]: %s failed!\n", p->level, ' ',
6215 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "signed_number !('+' | '-')"));
6216 }
6217 { // complex_number
6218 if (p->error_indicator) {
6219 D(p->level--);
6220 return NULL;
6221 }
6222 D(fprintf(stderr, "%*c> literal_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "complex_number"));
6223 expr_ty complex_number_var;
6224 if (
6225 (complex_number_var = complex_number_rule(p)) // complex_number
6226 )
6227 {
6228 D(fprintf(stderr, "%*c+ literal_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "complex_number"));
6229 _res = complex_number_var;
6230 goto done;
6231 }
6232 p->mark = _mark;
6233 D(fprintf(stderr, "%*c%s literal_expr[%d-%d]: %s failed!\n", p->level, ' ',
6234 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "complex_number"));
6235 }
6236 { // strings
6237 if (p->error_indicator) {
6238 D(p->level--);
6239 return NULL;
6240 }
6241 D(fprintf(stderr, "%*c> literal_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "strings"));
6242 expr_ty strings_var;
6243 if (
6244 (strings_var = strings_rule(p)) // strings
6245 )
6246 {
6247 D(fprintf(stderr, "%*c+ literal_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "strings"));
6248 _res = strings_var;
6249 goto done;
6250 }
6251 p->mark = _mark;
6252 D(fprintf(stderr, "%*c%s literal_expr[%d-%d]: %s failed!\n", p->level, ' ',
6253 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "strings"));
6254 }
6255 { // 'None'
6256 if (p->error_indicator) {
6257 D(p->level--);
6258 return NULL;
6259 }
6260 D(fprintf(stderr, "%*c> literal_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'None'"));
6261 Token * _keyword;
6262 if (
6263 (_keyword = _PyPegen_expect_token(p, 523)) // token='None'
6264 )
6265 {
6266 D(fprintf(stderr, "%*c+ literal_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'"));
6267 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6268 if (_token == NULL) {
6269 D(p->level--);
6270 return NULL;
6271 }
6272 int _end_lineno = _token->end_lineno;
6273 UNUSED(_end_lineno); // Only used by EXTRA macro
6274 int _end_col_offset = _token->end_col_offset;
6275 UNUSED(_end_col_offset); // Only used by EXTRA macro
6276 _res = _PyAST_Constant ( Py_None , NULL , EXTRA );
6277 if (_res == NULL && PyErr_Occurred()) {
6278 p->error_indicator = 1;
6279 D(p->level--);
6280 return NULL;
6281 }
6282 goto done;
6283 }
6284 p->mark = _mark;
6285 D(fprintf(stderr, "%*c%s literal_expr[%d-%d]: %s failed!\n", p->level, ' ',
6286 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'None'"));
6287 }
6288 { // 'True'
6289 if (p->error_indicator) {
6290 D(p->level--);
6291 return NULL;
6292 }
6293 D(fprintf(stderr, "%*c> literal_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'True'"));
6294 Token * _keyword;
6295 if (
6296 (_keyword = _PyPegen_expect_token(p, 524)) // token='True'
6297 )
6298 {
6299 D(fprintf(stderr, "%*c+ literal_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'"));
6300 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6301 if (_token == NULL) {
6302 D(p->level--);
6303 return NULL;
6304 }
6305 int _end_lineno = _token->end_lineno;
6306 UNUSED(_end_lineno); // Only used by EXTRA macro
6307 int _end_col_offset = _token->end_col_offset;
6308 UNUSED(_end_col_offset); // Only used by EXTRA macro
6309 _res = _PyAST_Constant ( Py_True , NULL , EXTRA );
6310 if (_res == NULL && PyErr_Occurred()) {
6311 p->error_indicator = 1;
6312 D(p->level--);
6313 return NULL;
6314 }
6315 goto done;
6316 }
6317 p->mark = _mark;
6318 D(fprintf(stderr, "%*c%s literal_expr[%d-%d]: %s failed!\n", p->level, ' ',
6319 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'True'"));
6320 }
6321 { // 'False'
6322 if (p->error_indicator) {
6323 D(p->level--);
6324 return NULL;
6325 }
6326 D(fprintf(stderr, "%*c> literal_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False'"));
6327 Token * _keyword;
6328 if (
6329 (_keyword = _PyPegen_expect_token(p, 525)) // token='False'
6330 )
6331 {
6332 D(fprintf(stderr, "%*c+ literal_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'"));
6333 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6334 if (_token == NULL) {
6335 D(p->level--);
6336 return NULL;
6337 }
6338 int _end_lineno = _token->end_lineno;
6339 UNUSED(_end_lineno); // Only used by EXTRA macro
6340 int _end_col_offset = _token->end_col_offset;
6341 UNUSED(_end_col_offset); // Only used by EXTRA macro
6342 _res = _PyAST_Constant ( Py_False , NULL , EXTRA );
6343 if (_res == NULL && PyErr_Occurred()) {
6344 p->error_indicator = 1;
6345 D(p->level--);
6346 return NULL;
6347 }
6348 goto done;
6349 }
6350 p->mark = _mark;
6351 D(fprintf(stderr, "%*c%s literal_expr[%d-%d]: %s failed!\n", p->level, ' ',
6352 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'False'"));
6353 }
6354 _res = NULL;
6355 done:
6356 D(p->level--);
6357 return _res;
6358}
6359
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07006360// complex_number:
6361// | signed_real_number '+' imaginary_number
6362// | signed_real_number '-' imaginary_number
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006363static expr_ty
6364complex_number_rule(Parser *p)
6365{
6366 D(p->level++);
6367 if (p->error_indicator) {
6368 D(p->level--);
6369 return NULL;
6370 }
6371 expr_ty _res = NULL;
6372 int _mark = p->mark;
6373 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6374 p->error_indicator = 1;
6375 D(p->level--);
6376 return NULL;
6377 }
6378 int _start_lineno = p->tokens[_mark]->lineno;
6379 UNUSED(_start_lineno); // Only used by EXTRA macro
6380 int _start_col_offset = p->tokens[_mark]->col_offset;
6381 UNUSED(_start_col_offset); // Only used by EXTRA macro
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07006382 { // signed_real_number '+' imaginary_number
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006383 if (p->error_indicator) {
6384 D(p->level--);
6385 return NULL;
6386 }
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07006387 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 +10006388 Token * _literal;
6389 expr_ty imag;
6390 expr_ty real;
6391 if (
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07006392 (real = signed_real_number_rule(p)) // signed_real_number
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006393 &&
6394 (_literal = _PyPegen_expect_token(p, 14)) // token='+'
6395 &&
6396 (imag = imaginary_number_rule(p)) // imaginary_number
6397 )
6398 {
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07006399 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 +10006400 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6401 if (_token == NULL) {
6402 D(p->level--);
6403 return NULL;
6404 }
6405 int _end_lineno = _token->end_lineno;
6406 UNUSED(_end_lineno); // Only used by EXTRA macro
6407 int _end_col_offset = _token->end_col_offset;
6408 UNUSED(_end_col_offset); // Only used by EXTRA macro
6409 _res = _PyAST_BinOp ( real , Add , imag , EXTRA );
6410 if (_res == NULL && PyErr_Occurred()) {
6411 p->error_indicator = 1;
6412 D(p->level--);
6413 return NULL;
6414 }
6415 goto done;
6416 }
6417 p->mark = _mark;
6418 D(fprintf(stderr, "%*c%s complex_number[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07006419 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "signed_real_number '+' imaginary_number"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006420 }
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07006421 { // signed_real_number '-' imaginary_number
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006422 if (p->error_indicator) {
6423 D(p->level--);
6424 return NULL;
6425 }
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07006426 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 +10006427 Token * _literal;
6428 expr_ty imag;
6429 expr_ty real;
6430 if (
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07006431 (real = signed_real_number_rule(p)) // signed_real_number
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006432 &&
6433 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
6434 &&
6435 (imag = imaginary_number_rule(p)) // imaginary_number
6436 )
6437 {
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07006438 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 +10006439 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6440 if (_token == NULL) {
6441 D(p->level--);
6442 return NULL;
6443 }
6444 int _end_lineno = _token->end_lineno;
6445 UNUSED(_end_lineno); // Only used by EXTRA macro
6446 int _end_col_offset = _token->end_col_offset;
6447 UNUSED(_end_col_offset); // Only used by EXTRA macro
6448 _res = _PyAST_BinOp ( real , Sub , imag , EXTRA );
6449 if (_res == NULL && PyErr_Occurred()) {
6450 p->error_indicator = 1;
6451 D(p->level--);
6452 return NULL;
6453 }
6454 goto done;
6455 }
6456 p->mark = _mark;
6457 D(fprintf(stderr, "%*c%s complex_number[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07006458 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "signed_real_number '-' imaginary_number"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006459 }
6460 _res = NULL;
6461 done:
6462 D(p->level--);
6463 return _res;
6464}
6465
Brandt Bucher145bf262021-02-26 14:51:55 -08006466// signed_number: NUMBER | '-' NUMBER
6467static expr_ty
6468signed_number_rule(Parser *p)
6469{
6470 D(p->level++);
6471 if (p->error_indicator) {
6472 D(p->level--);
6473 return NULL;
6474 }
6475 expr_ty _res = NULL;
6476 int _mark = p->mark;
6477 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6478 p->error_indicator = 1;
6479 D(p->level--);
6480 return NULL;
6481 }
6482 int _start_lineno = p->tokens[_mark]->lineno;
6483 UNUSED(_start_lineno); // Only used by EXTRA macro
6484 int _start_col_offset = p->tokens[_mark]->col_offset;
6485 UNUSED(_start_col_offset); // Only used by EXTRA macro
6486 { // NUMBER
6487 if (p->error_indicator) {
6488 D(p->level--);
6489 return NULL;
6490 }
6491 D(fprintf(stderr, "%*c> signed_number[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NUMBER"));
6492 expr_ty number_var;
6493 if (
6494 (number_var = _PyPegen_number_token(p)) // NUMBER
6495 )
6496 {
6497 D(fprintf(stderr, "%*c+ signed_number[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NUMBER"));
6498 _res = number_var;
6499 goto done;
6500 }
6501 p->mark = _mark;
6502 D(fprintf(stderr, "%*c%s signed_number[%d-%d]: %s failed!\n", p->level, ' ',
6503 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NUMBER"));
6504 }
6505 { // '-' NUMBER
6506 if (p->error_indicator) {
6507 D(p->level--);
6508 return NULL;
6509 }
6510 D(fprintf(stderr, "%*c> signed_number[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-' NUMBER"));
6511 Token * _literal;
6512 expr_ty number;
6513 if (
6514 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
6515 &&
6516 (number = _PyPegen_number_token(p)) // NUMBER
6517 )
6518 {
6519 D(fprintf(stderr, "%*c+ signed_number[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-' NUMBER"));
6520 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6521 if (_token == NULL) {
6522 D(p->level--);
6523 return NULL;
6524 }
6525 int _end_lineno = _token->end_lineno;
6526 UNUSED(_end_lineno); // Only used by EXTRA macro
6527 int _end_col_offset = _token->end_col_offset;
6528 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02006529 _res = _PyAST_UnaryOp ( USub , number , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08006530 if (_res == NULL && PyErr_Occurred()) {
6531 p->error_indicator = 1;
6532 D(p->level--);
6533 return NULL;
6534 }
6535 goto done;
6536 }
6537 p->mark = _mark;
6538 D(fprintf(stderr, "%*c%s signed_number[%d-%d]: %s failed!\n", p->level, ' ',
6539 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-' NUMBER"));
6540 }
6541 _res = NULL;
6542 done:
6543 D(p->level--);
6544 return _res;
6545}
6546
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07006547// signed_real_number: real_number | '-' real_number
6548static expr_ty
6549signed_real_number_rule(Parser *p)
6550{
6551 D(p->level++);
6552 if (p->error_indicator) {
6553 D(p->level--);
6554 return NULL;
6555 }
6556 expr_ty _res = NULL;
6557 int _mark = p->mark;
6558 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6559 p->error_indicator = 1;
6560 D(p->level--);
6561 return NULL;
6562 }
6563 int _start_lineno = p->tokens[_mark]->lineno;
6564 UNUSED(_start_lineno); // Only used by EXTRA macro
6565 int _start_col_offset = p->tokens[_mark]->col_offset;
6566 UNUSED(_start_col_offset); // Only used by EXTRA macro
6567 { // real_number
6568 if (p->error_indicator) {
6569 D(p->level--);
6570 return NULL;
6571 }
6572 D(fprintf(stderr, "%*c> signed_real_number[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "real_number"));
6573 expr_ty real_number_var;
6574 if (
6575 (real_number_var = real_number_rule(p)) // real_number
6576 )
6577 {
6578 D(fprintf(stderr, "%*c+ signed_real_number[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "real_number"));
6579 _res = real_number_var;
6580 goto done;
6581 }
6582 p->mark = _mark;
6583 D(fprintf(stderr, "%*c%s signed_real_number[%d-%d]: %s failed!\n", p->level, ' ',
6584 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "real_number"));
6585 }
6586 { // '-' real_number
6587 if (p->error_indicator) {
6588 D(p->level--);
6589 return NULL;
6590 }
6591 D(fprintf(stderr, "%*c> signed_real_number[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-' real_number"));
6592 Token * _literal;
6593 expr_ty real;
6594 if (
6595 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
6596 &&
6597 (real = real_number_rule(p)) // real_number
6598 )
6599 {
6600 D(fprintf(stderr, "%*c+ signed_real_number[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-' real_number"));
6601 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6602 if (_token == NULL) {
6603 D(p->level--);
6604 return NULL;
6605 }
6606 int _end_lineno = _token->end_lineno;
6607 UNUSED(_end_lineno); // Only used by EXTRA macro
6608 int _end_col_offset = _token->end_col_offset;
6609 UNUSED(_end_col_offset); // Only used by EXTRA macro
6610 _res = _PyAST_UnaryOp ( USub , real , EXTRA );
6611 if (_res == NULL && PyErr_Occurred()) {
6612 p->error_indicator = 1;
6613 D(p->level--);
6614 return NULL;
6615 }
6616 goto done;
6617 }
6618 p->mark = _mark;
6619 D(fprintf(stderr, "%*c%s signed_real_number[%d-%d]: %s failed!\n", p->level, ' ',
6620 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-' real_number"));
6621 }
6622 _res = NULL;
6623 done:
6624 D(p->level--);
6625 return _res;
6626}
6627
6628// real_number: NUMBER
6629static expr_ty
6630real_number_rule(Parser *p)
6631{
6632 D(p->level++);
6633 if (p->error_indicator) {
6634 D(p->level--);
6635 return NULL;
6636 }
6637 expr_ty _res = NULL;
6638 int _mark = p->mark;
6639 { // NUMBER
6640 if (p->error_indicator) {
6641 D(p->level--);
6642 return NULL;
6643 }
6644 D(fprintf(stderr, "%*c> real_number[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NUMBER"));
6645 expr_ty real;
6646 if (
6647 (real = _PyPegen_number_token(p)) // NUMBER
6648 )
6649 {
6650 D(fprintf(stderr, "%*c+ real_number[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NUMBER"));
6651 _res = _PyPegen_ensure_real ( p , real );
6652 if (_res == NULL && PyErr_Occurred()) {
6653 p->error_indicator = 1;
6654 D(p->level--);
6655 return NULL;
6656 }
6657 goto done;
6658 }
6659 p->mark = _mark;
6660 D(fprintf(stderr, "%*c%s real_number[%d-%d]: %s failed!\n", p->level, ' ',
6661 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NUMBER"));
6662 }
6663 _res = NULL;
6664 done:
6665 D(p->level--);
6666 return _res;
6667}
6668
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006669// imaginary_number: NUMBER
Brandt Bucher145bf262021-02-26 14:51:55 -08006670static expr_ty
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006671imaginary_number_rule(Parser *p)
6672{
6673 D(p->level++);
6674 if (p->error_indicator) {
6675 D(p->level--);
6676 return NULL;
6677 }
6678 expr_ty _res = NULL;
6679 int _mark = p->mark;
6680 { // NUMBER
6681 if (p->error_indicator) {
6682 D(p->level--);
6683 return NULL;
6684 }
6685 D(fprintf(stderr, "%*c> imaginary_number[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NUMBER"));
6686 expr_ty imag;
6687 if (
6688 (imag = _PyPegen_number_token(p)) // NUMBER
6689 )
6690 {
6691 D(fprintf(stderr, "%*c+ imaginary_number[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NUMBER"));
6692 _res = _PyPegen_ensure_imaginary ( p , imag );
6693 if (_res == NULL && PyErr_Occurred()) {
6694 p->error_indicator = 1;
6695 D(p->level--);
6696 return NULL;
6697 }
6698 goto done;
6699 }
6700 p->mark = _mark;
6701 D(fprintf(stderr, "%*c%s imaginary_number[%d-%d]: %s failed!\n", p->level, ' ',
6702 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NUMBER"));
6703 }
6704 _res = NULL;
6705 done:
6706 D(p->level--);
6707 return _res;
6708}
6709
6710// capture_pattern: pattern_capture_target
6711static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08006712capture_pattern_rule(Parser *p)
6713{
6714 D(p->level++);
6715 if (p->error_indicator) {
6716 D(p->level--);
6717 return NULL;
6718 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006719 pattern_ty _res = NULL;
6720 int _mark = p->mark;
6721 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6722 p->error_indicator = 1;
6723 D(p->level--);
6724 return NULL;
6725 }
6726 int _start_lineno = p->tokens[_mark]->lineno;
6727 UNUSED(_start_lineno); // Only used by EXTRA macro
6728 int _start_col_offset = p->tokens[_mark]->col_offset;
6729 UNUSED(_start_col_offset); // Only used by EXTRA macro
6730 { // pattern_capture_target
6731 if (p->error_indicator) {
6732 D(p->level--);
6733 return NULL;
6734 }
6735 D(fprintf(stderr, "%*c> capture_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "pattern_capture_target"));
6736 expr_ty target;
6737 if (
6738 (target = pattern_capture_target_rule(p)) // pattern_capture_target
6739 )
6740 {
6741 D(fprintf(stderr, "%*c+ capture_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "pattern_capture_target"));
6742 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6743 if (_token == NULL) {
6744 D(p->level--);
6745 return NULL;
6746 }
6747 int _end_lineno = _token->end_lineno;
6748 UNUSED(_end_lineno); // Only used by EXTRA macro
6749 int _end_col_offset = _token->end_col_offset;
6750 UNUSED(_end_col_offset); // Only used by EXTRA macro
6751 _res = _PyAST_MatchAs ( NULL , target -> v . Name . id , EXTRA );
6752 if (_res == NULL && PyErr_Occurred()) {
6753 p->error_indicator = 1;
6754 D(p->level--);
6755 return NULL;
6756 }
6757 goto done;
6758 }
6759 p->mark = _mark;
6760 D(fprintf(stderr, "%*c%s capture_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6761 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "pattern_capture_target"));
6762 }
6763 _res = NULL;
6764 done:
6765 D(p->level--);
6766 return _res;
6767}
6768
6769// pattern_capture_target: !"_" NAME !('.' | '(' | '=')
6770static expr_ty
6771pattern_capture_target_rule(Parser *p)
6772{
6773 D(p->level++);
6774 if (p->error_indicator) {
6775 D(p->level--);
6776 return NULL;
6777 }
Brandt Bucher145bf262021-02-26 14:51:55 -08006778 expr_ty _res = NULL;
6779 int _mark = p->mark;
6780 { // !"_" NAME !('.' | '(' | '=')
6781 if (p->error_indicator) {
6782 D(p->level--);
6783 return NULL;
6784 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006785 D(fprintf(stderr, "%*c> pattern_capture_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "!\"_\" NAME !('.' | '(' | '=')"));
Brandt Bucher145bf262021-02-26 14:51:55 -08006786 expr_ty name;
6787 if (
6788 _PyPegen_lookahead_with_string(0, _PyPegen_expect_soft_keyword, p, "_")
6789 &&
6790 (name = _PyPegen_name_token(p)) // NAME
6791 &&
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006792 _PyPegen_lookahead(0, _tmp_55_rule, p)
Brandt Bucher145bf262021-02-26 14:51:55 -08006793 )
6794 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006795 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 -08006796 _res = _PyPegen_set_expr_context ( p , name , Store );
6797 if (_res == NULL && PyErr_Occurred()) {
6798 p->error_indicator = 1;
6799 D(p->level--);
6800 return NULL;
6801 }
6802 goto done;
6803 }
6804 p->mark = _mark;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006805 D(fprintf(stderr, "%*c%s pattern_capture_target[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -08006806 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "!\"_\" NAME !('.' | '(' | '=')"));
6807 }
6808 _res = NULL;
6809 done:
6810 D(p->level--);
6811 return _res;
6812}
6813
6814// wildcard_pattern: "_"
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006815static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08006816wildcard_pattern_rule(Parser *p)
6817{
6818 D(p->level++);
6819 if (p->error_indicator) {
6820 D(p->level--);
6821 return NULL;
6822 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006823 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08006824 int _mark = p->mark;
6825 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6826 p->error_indicator = 1;
6827 D(p->level--);
6828 return NULL;
6829 }
6830 int _start_lineno = p->tokens[_mark]->lineno;
6831 UNUSED(_start_lineno); // Only used by EXTRA macro
6832 int _start_col_offset = p->tokens[_mark]->col_offset;
6833 UNUSED(_start_col_offset); // Only used by EXTRA macro
6834 { // "_"
6835 if (p->error_indicator) {
6836 D(p->level--);
6837 return NULL;
6838 }
6839 D(fprintf(stderr, "%*c> wildcard_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"_\""));
6840 expr_ty _keyword;
6841 if (
6842 (_keyword = _PyPegen_expect_soft_keyword(p, "_")) // soft_keyword='"_"'
6843 )
6844 {
6845 D(fprintf(stderr, "%*c+ wildcard_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"_\""));
6846 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6847 if (_token == NULL) {
6848 D(p->level--);
6849 return NULL;
6850 }
6851 int _end_lineno = _token->end_lineno;
6852 UNUSED(_end_lineno); // Only used by EXTRA macro
6853 int _end_col_offset = _token->end_col_offset;
6854 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006855 _res = _PyAST_MatchAs ( NULL , NULL , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08006856 if (_res == NULL && PyErr_Occurred()) {
6857 p->error_indicator = 1;
6858 D(p->level--);
6859 return NULL;
6860 }
6861 goto done;
6862 }
6863 p->mark = _mark;
6864 D(fprintf(stderr, "%*c%s wildcard_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6865 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"_\""));
6866 }
6867 _res = NULL;
6868 done:
6869 D(p->level--);
6870 return _res;
6871}
6872
6873// value_pattern: attr !('.' | '(' | '=')
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006874static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08006875value_pattern_rule(Parser *p)
6876{
6877 D(p->level++);
6878 if (p->error_indicator) {
6879 D(p->level--);
6880 return NULL;
6881 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006882 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08006883 int _mark = p->mark;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006884 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6885 p->error_indicator = 1;
6886 D(p->level--);
6887 return NULL;
6888 }
6889 int _start_lineno = p->tokens[_mark]->lineno;
6890 UNUSED(_start_lineno); // Only used by EXTRA macro
6891 int _start_col_offset = p->tokens[_mark]->col_offset;
6892 UNUSED(_start_col_offset); // Only used by EXTRA macro
Brandt Bucher145bf262021-02-26 14:51:55 -08006893 { // attr !('.' | '(' | '=')
6894 if (p->error_indicator) {
6895 D(p->level--);
6896 return NULL;
6897 }
6898 D(fprintf(stderr, "%*c> value_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "attr !('.' | '(' | '=')"));
6899 expr_ty attr;
6900 if (
6901 (attr = attr_rule(p)) // attr
6902 &&
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006903 _PyPegen_lookahead(0, _tmp_56_rule, p)
Brandt Bucher145bf262021-02-26 14:51:55 -08006904 )
6905 {
6906 D(fprintf(stderr, "%*c+ value_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "attr !('.' | '(' | '=')"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006907 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6908 if (_token == NULL) {
6909 D(p->level--);
6910 return NULL;
6911 }
6912 int _end_lineno = _token->end_lineno;
6913 UNUSED(_end_lineno); // Only used by EXTRA macro
6914 int _end_col_offset = _token->end_col_offset;
6915 UNUSED(_end_col_offset); // Only used by EXTRA macro
6916 _res = _PyAST_MatchValue ( attr , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08006917 if (_res == NULL && PyErr_Occurred()) {
6918 p->error_indicator = 1;
6919 D(p->level--);
6920 return NULL;
6921 }
6922 goto done;
6923 }
6924 p->mark = _mark;
6925 D(fprintf(stderr, "%*c%s value_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6926 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "attr !('.' | '(' | '=')"));
6927 }
6928 _res = NULL;
6929 done:
6930 D(p->level--);
6931 return _res;
6932}
6933
6934// Left-recursive
6935// attr: name_or_attr '.' NAME
6936static expr_ty attr_raw(Parser *);
6937static expr_ty
6938attr_rule(Parser *p)
6939{
6940 D(p->level++);
6941 expr_ty _res = NULL;
6942 if (_PyPegen_is_memoized(p, attr_type, &_res)) {
6943 D(p->level--);
6944 return _res;
6945 }
6946 int _mark = p->mark;
6947 int _resmark = p->mark;
6948 while (1) {
6949 int tmpvar_1 = _PyPegen_update_memo(p, _mark, attr_type, _res);
6950 if (tmpvar_1) {
6951 D(p->level--);
6952 return _res;
6953 }
6954 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -07006955 p->in_raw_rule++;
Brandt Bucher145bf262021-02-26 14:51:55 -08006956 void *_raw = attr_raw(p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -07006957 p->in_raw_rule--;
Brandt Bucher145bf262021-02-26 14:51:55 -08006958 if (p->error_indicator)
6959 return NULL;
6960 if (_raw == NULL || p->mark <= _resmark)
6961 break;
6962 _resmark = p->mark;
6963 _res = _raw;
6964 }
6965 p->mark = _resmark;
6966 D(p->level--);
6967 return _res;
6968}
6969static expr_ty
6970attr_raw(Parser *p)
6971{
6972 D(p->level++);
6973 if (p->error_indicator) {
6974 D(p->level--);
6975 return NULL;
6976 }
6977 expr_ty _res = NULL;
6978 int _mark = p->mark;
6979 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6980 p->error_indicator = 1;
6981 D(p->level--);
6982 return NULL;
6983 }
6984 int _start_lineno = p->tokens[_mark]->lineno;
6985 UNUSED(_start_lineno); // Only used by EXTRA macro
6986 int _start_col_offset = p->tokens[_mark]->col_offset;
6987 UNUSED(_start_col_offset); // Only used by EXTRA macro
6988 { // name_or_attr '.' NAME
6989 if (p->error_indicator) {
6990 D(p->level--);
6991 return NULL;
6992 }
6993 D(fprintf(stderr, "%*c> attr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "name_or_attr '.' NAME"));
6994 Token * _literal;
6995 expr_ty attr;
6996 expr_ty value;
6997 if (
6998 (value = name_or_attr_rule(p)) // name_or_attr
6999 &&
7000 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
7001 &&
7002 (attr = _PyPegen_name_token(p)) // NAME
7003 )
7004 {
7005 D(fprintf(stderr, "%*c+ attr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "name_or_attr '.' NAME"));
7006 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7007 if (_token == NULL) {
7008 D(p->level--);
7009 return NULL;
7010 }
7011 int _end_lineno = _token->end_lineno;
7012 UNUSED(_end_lineno); // Only used by EXTRA macro
7013 int _end_col_offset = _token->end_col_offset;
7014 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02007015 _res = _PyAST_Attribute ( value , attr -> v . Name . id , Load , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08007016 if (_res == NULL && PyErr_Occurred()) {
7017 p->error_indicator = 1;
7018 D(p->level--);
7019 return NULL;
7020 }
7021 goto done;
7022 }
7023 p->mark = _mark;
7024 D(fprintf(stderr, "%*c%s attr[%d-%d]: %s failed!\n", p->level, ' ',
7025 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "name_or_attr '.' NAME"));
7026 }
7027 _res = NULL;
7028 done:
7029 D(p->level--);
7030 return _res;
7031}
7032
7033// Left-recursive
7034// name_or_attr: attr | NAME
7035static expr_ty
7036name_or_attr_rule(Parser *p)
7037{
7038 D(p->level++);
7039 if (p->error_indicator) {
7040 D(p->level--);
7041 return NULL;
7042 }
7043 expr_ty _res = NULL;
7044 int _mark = p->mark;
7045 { // attr
7046 if (p->error_indicator) {
7047 D(p->level--);
7048 return NULL;
7049 }
7050 D(fprintf(stderr, "%*c> name_or_attr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "attr"));
7051 expr_ty attr_var;
7052 if (
7053 (attr_var = attr_rule(p)) // attr
7054 )
7055 {
7056 D(fprintf(stderr, "%*c+ name_or_attr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "attr"));
7057 _res = attr_var;
7058 goto done;
7059 }
7060 p->mark = _mark;
7061 D(fprintf(stderr, "%*c%s name_or_attr[%d-%d]: %s failed!\n", p->level, ' ',
7062 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "attr"));
7063 }
7064 { // NAME
7065 if (p->error_indicator) {
7066 D(p->level--);
7067 return NULL;
7068 }
7069 D(fprintf(stderr, "%*c> name_or_attr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
7070 expr_ty name_var;
7071 if (
7072 (name_var = _PyPegen_name_token(p)) // NAME
7073 )
7074 {
7075 D(fprintf(stderr, "%*c+ name_or_attr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
7076 _res = name_var;
7077 goto done;
7078 }
7079 p->mark = _mark;
7080 D(fprintf(stderr, "%*c%s name_or_attr[%d-%d]: %s failed!\n", p->level, ' ',
7081 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
7082 }
7083 _res = NULL;
7084 done:
7085 D(p->level--);
7086 return _res;
7087}
7088
7089// group_pattern: '(' pattern ')'
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007090static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08007091group_pattern_rule(Parser *p)
7092{
7093 D(p->level++);
7094 if (p->error_indicator) {
7095 D(p->level--);
7096 return NULL;
7097 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007098 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08007099 int _mark = p->mark;
7100 { // '(' pattern ')'
7101 if (p->error_indicator) {
7102 D(p->level--);
7103 return NULL;
7104 }
7105 D(fprintf(stderr, "%*c> group_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' pattern ')'"));
7106 Token * _literal;
7107 Token * _literal_1;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007108 pattern_ty pattern;
Brandt Bucher145bf262021-02-26 14:51:55 -08007109 if (
7110 (_literal = _PyPegen_expect_token(p, 7)) // token='('
7111 &&
7112 (pattern = pattern_rule(p)) // pattern
7113 &&
7114 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
7115 )
7116 {
7117 D(fprintf(stderr, "%*c+ group_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' pattern ')'"));
7118 _res = pattern;
7119 if (_res == NULL && PyErr_Occurred()) {
7120 p->error_indicator = 1;
7121 D(p->level--);
7122 return NULL;
7123 }
7124 goto done;
7125 }
7126 p->mark = _mark;
7127 D(fprintf(stderr, "%*c%s group_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7128 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' pattern ')'"));
7129 }
7130 _res = NULL;
7131 done:
7132 D(p->level--);
7133 return _res;
7134}
7135
7136// sequence_pattern: '[' maybe_sequence_pattern? ']' | '(' open_sequence_pattern? ')'
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007137static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08007138sequence_pattern_rule(Parser *p)
7139{
7140 D(p->level++);
7141 if (p->error_indicator) {
7142 D(p->level--);
7143 return NULL;
7144 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007145 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08007146 int _mark = p->mark;
7147 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
7148 p->error_indicator = 1;
7149 D(p->level--);
7150 return NULL;
7151 }
7152 int _start_lineno = p->tokens[_mark]->lineno;
7153 UNUSED(_start_lineno); // Only used by EXTRA macro
7154 int _start_col_offset = p->tokens[_mark]->col_offset;
7155 UNUSED(_start_col_offset); // Only used by EXTRA macro
7156 { // '[' maybe_sequence_pattern? ']'
7157 if (p->error_indicator) {
7158 D(p->level--);
7159 return NULL;
7160 }
7161 D(fprintf(stderr, "%*c> sequence_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' maybe_sequence_pattern? ']'"));
7162 Token * _literal;
7163 Token * _literal_1;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007164 void *patterns;
Brandt Bucher145bf262021-02-26 14:51:55 -08007165 if (
7166 (_literal = _PyPegen_expect_token(p, 9)) // token='['
7167 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02007168 (patterns = maybe_sequence_pattern_rule(p), !p->error_indicator) // maybe_sequence_pattern?
Brandt Bucher145bf262021-02-26 14:51:55 -08007169 &&
7170 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
7171 )
7172 {
7173 D(fprintf(stderr, "%*c+ sequence_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'[' maybe_sequence_pattern? ']'"));
7174 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7175 if (_token == NULL) {
7176 D(p->level--);
7177 return NULL;
7178 }
7179 int _end_lineno = _token->end_lineno;
7180 UNUSED(_end_lineno); // Only used by EXTRA macro
7181 int _end_col_offset = _token->end_col_offset;
7182 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007183 _res = _PyAST_MatchSequence ( patterns , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08007184 if (_res == NULL && PyErr_Occurred()) {
7185 p->error_indicator = 1;
7186 D(p->level--);
7187 return NULL;
7188 }
7189 goto done;
7190 }
7191 p->mark = _mark;
7192 D(fprintf(stderr, "%*c%s sequence_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7193 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' maybe_sequence_pattern? ']'"));
7194 }
7195 { // '(' open_sequence_pattern? ')'
7196 if (p->error_indicator) {
7197 D(p->level--);
7198 return NULL;
7199 }
7200 D(fprintf(stderr, "%*c> sequence_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' open_sequence_pattern? ')'"));
7201 Token * _literal;
7202 Token * _literal_1;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007203 void *patterns;
Brandt Bucher145bf262021-02-26 14:51:55 -08007204 if (
7205 (_literal = _PyPegen_expect_token(p, 7)) // token='('
7206 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02007207 (patterns = open_sequence_pattern_rule(p), !p->error_indicator) // open_sequence_pattern?
Brandt Bucher145bf262021-02-26 14:51:55 -08007208 &&
7209 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
7210 )
7211 {
7212 D(fprintf(stderr, "%*c+ sequence_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' open_sequence_pattern? ')'"));
7213 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7214 if (_token == NULL) {
7215 D(p->level--);
7216 return NULL;
7217 }
7218 int _end_lineno = _token->end_lineno;
7219 UNUSED(_end_lineno); // Only used by EXTRA macro
7220 int _end_col_offset = _token->end_col_offset;
7221 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007222 _res = _PyAST_MatchSequence ( patterns , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08007223 if (_res == NULL && PyErr_Occurred()) {
7224 p->error_indicator = 1;
7225 D(p->level--);
7226 return NULL;
7227 }
7228 goto done;
7229 }
7230 p->mark = _mark;
7231 D(fprintf(stderr, "%*c%s sequence_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7232 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' open_sequence_pattern? ')'"));
7233 }
7234 _res = NULL;
7235 done:
7236 D(p->level--);
7237 return _res;
7238}
7239
7240// open_sequence_pattern: maybe_star_pattern ',' maybe_sequence_pattern?
7241static asdl_seq*
7242open_sequence_pattern_rule(Parser *p)
7243{
7244 D(p->level++);
7245 if (p->error_indicator) {
7246 D(p->level--);
7247 return NULL;
7248 }
7249 asdl_seq* _res = NULL;
7250 int _mark = p->mark;
7251 { // maybe_star_pattern ',' maybe_sequence_pattern?
7252 if (p->error_indicator) {
7253 D(p->level--);
7254 return NULL;
7255 }
7256 D(fprintf(stderr, "%*c> open_sequence_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "maybe_star_pattern ',' maybe_sequence_pattern?"));
7257 Token * _literal;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007258 pattern_ty pattern;
7259 void *patterns;
Brandt Bucher145bf262021-02-26 14:51:55 -08007260 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007261 (pattern = maybe_star_pattern_rule(p)) // maybe_star_pattern
Brandt Bucher145bf262021-02-26 14:51:55 -08007262 &&
7263 (_literal = _PyPegen_expect_token(p, 12)) // token=','
7264 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02007265 (patterns = maybe_sequence_pattern_rule(p), !p->error_indicator) // maybe_sequence_pattern?
Brandt Bucher145bf262021-02-26 14:51:55 -08007266 )
7267 {
7268 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 +10007269 _res = _PyPegen_seq_insert_in_front ( p , pattern , patterns );
Brandt Bucher145bf262021-02-26 14:51:55 -08007270 if (_res == NULL && PyErr_Occurred()) {
7271 p->error_indicator = 1;
7272 D(p->level--);
7273 return NULL;
7274 }
7275 goto done;
7276 }
7277 p->mark = _mark;
7278 D(fprintf(stderr, "%*c%s open_sequence_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7279 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "maybe_star_pattern ',' maybe_sequence_pattern?"));
7280 }
7281 _res = NULL;
7282 done:
7283 D(p->level--);
7284 return _res;
7285}
7286
7287// maybe_sequence_pattern: ','.maybe_star_pattern+ ','?
7288static asdl_seq*
7289maybe_sequence_pattern_rule(Parser *p)
7290{
7291 D(p->level++);
7292 if (p->error_indicator) {
7293 D(p->level--);
7294 return NULL;
7295 }
7296 asdl_seq* _res = NULL;
7297 int _mark = p->mark;
7298 { // ','.maybe_star_pattern+ ','?
7299 if (p->error_indicator) {
7300 D(p->level--);
7301 return NULL;
7302 }
7303 D(fprintf(stderr, "%*c> maybe_sequence_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.maybe_star_pattern+ ','?"));
7304 void *_opt_var;
7305 UNUSED(_opt_var); // Silence compiler warnings
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007306 asdl_seq * patterns;
Brandt Bucher145bf262021-02-26 14:51:55 -08007307 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007308 (patterns = _gather_57_rule(p)) // ','.maybe_star_pattern+
Brandt Bucher145bf262021-02-26 14:51:55 -08007309 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02007310 (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','?
Brandt Bucher145bf262021-02-26 14:51:55 -08007311 )
7312 {
7313 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 +10007314 _res = patterns;
Brandt Bucher145bf262021-02-26 14:51:55 -08007315 if (_res == NULL && PyErr_Occurred()) {
7316 p->error_indicator = 1;
7317 D(p->level--);
7318 return NULL;
7319 }
7320 goto done;
7321 }
7322 p->mark = _mark;
7323 D(fprintf(stderr, "%*c%s maybe_sequence_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7324 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.maybe_star_pattern+ ','?"));
7325 }
7326 _res = NULL;
7327 done:
7328 D(p->level--);
7329 return _res;
7330}
7331
7332// maybe_star_pattern: star_pattern | pattern
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007333static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08007334maybe_star_pattern_rule(Parser *p)
7335{
7336 D(p->level++);
7337 if (p->error_indicator) {
7338 D(p->level--);
7339 return NULL;
7340 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007341 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08007342 int _mark = p->mark;
7343 { // star_pattern
7344 if (p->error_indicator) {
7345 D(p->level--);
7346 return NULL;
7347 }
7348 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 +10007349 pattern_ty star_pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08007350 if (
7351 (star_pattern_var = star_pattern_rule(p)) // star_pattern
7352 )
7353 {
7354 D(fprintf(stderr, "%*c+ maybe_star_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_pattern"));
7355 _res = star_pattern_var;
7356 goto done;
7357 }
7358 p->mark = _mark;
7359 D(fprintf(stderr, "%*c%s maybe_star_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7360 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_pattern"));
7361 }
7362 { // pattern
7363 if (p->error_indicator) {
7364 D(p->level--);
7365 return NULL;
7366 }
7367 D(fprintf(stderr, "%*c> maybe_star_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007368 pattern_ty pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08007369 if (
7370 (pattern_var = pattern_rule(p)) // pattern
7371 )
7372 {
7373 D(fprintf(stderr, "%*c+ maybe_star_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "pattern"));
7374 _res = pattern_var;
7375 goto done;
7376 }
7377 p->mark = _mark;
7378 D(fprintf(stderr, "%*c%s maybe_star_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7379 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "pattern"));
7380 }
7381 _res = NULL;
7382 done:
7383 D(p->level--);
7384 return _res;
7385}
7386
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007387// star_pattern: '*' pattern_capture_target | '*' wildcard_pattern
7388static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08007389star_pattern_rule(Parser *p)
7390{
7391 D(p->level++);
7392 if (p->error_indicator) {
7393 D(p->level--);
7394 return NULL;
7395 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007396 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08007397 int _mark = p->mark;
7398 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
7399 p->error_indicator = 1;
7400 D(p->level--);
7401 return NULL;
7402 }
7403 int _start_lineno = p->tokens[_mark]->lineno;
7404 UNUSED(_start_lineno); // Only used by EXTRA macro
7405 int _start_col_offset = p->tokens[_mark]->col_offset;
7406 UNUSED(_start_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007407 { // '*' pattern_capture_target
Brandt Bucher145bf262021-02-26 14:51:55 -08007408 if (p->error_indicator) {
7409 D(p->level--);
7410 return NULL;
7411 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007412 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 -08007413 Token * _literal;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007414 expr_ty target;
Brandt Bucher145bf262021-02-26 14:51:55 -08007415 if (
7416 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
7417 &&
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007418 (target = pattern_capture_target_rule(p)) // pattern_capture_target
Brandt Bucher145bf262021-02-26 14:51:55 -08007419 )
7420 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007421 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 -08007422 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7423 if (_token == NULL) {
7424 D(p->level--);
7425 return NULL;
7426 }
7427 int _end_lineno = _token->end_lineno;
7428 UNUSED(_end_lineno); // Only used by EXTRA macro
7429 int _end_col_offset = _token->end_col_offset;
7430 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007431 _res = _PyAST_MatchStar ( target -> v . Name . id , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08007432 if (_res == NULL && PyErr_Occurred()) {
7433 p->error_indicator = 1;
7434 D(p->level--);
7435 return NULL;
7436 }
7437 goto done;
7438 }
7439 p->mark = _mark;
7440 D(fprintf(stderr, "%*c%s star_pattern[%d-%d]: %s failed!\n", p->level, ' ',
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007441 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' pattern_capture_target"));
7442 }
7443 { // '*' wildcard_pattern
7444 if (p->error_indicator) {
7445 D(p->level--);
7446 return NULL;
7447 }
7448 D(fprintf(stderr, "%*c> star_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' wildcard_pattern"));
7449 Token * _literal;
7450 pattern_ty wildcard_pattern_var;
7451 if (
7452 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
7453 &&
7454 (wildcard_pattern_var = wildcard_pattern_rule(p)) // wildcard_pattern
7455 )
7456 {
7457 D(fprintf(stderr, "%*c+ star_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' wildcard_pattern"));
7458 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7459 if (_token == NULL) {
7460 D(p->level--);
7461 return NULL;
7462 }
7463 int _end_lineno = _token->end_lineno;
7464 UNUSED(_end_lineno); // Only used by EXTRA macro
7465 int _end_col_offset = _token->end_col_offset;
7466 UNUSED(_end_col_offset); // Only used by EXTRA macro
7467 _res = _PyAST_MatchStar ( NULL , EXTRA );
7468 if (_res == NULL && PyErr_Occurred()) {
7469 p->error_indicator = 1;
7470 D(p->level--);
7471 return NULL;
7472 }
7473 goto done;
7474 }
7475 p->mark = _mark;
7476 D(fprintf(stderr, "%*c%s star_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7477 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' wildcard_pattern"));
Brandt Bucher145bf262021-02-26 14:51:55 -08007478 }
7479 _res = NULL;
7480 done:
7481 D(p->level--);
7482 return _res;
7483}
7484
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007485// mapping_pattern:
7486// | '{' '}'
7487// | '{' double_star_pattern ','? '}'
7488// | '{' items_pattern ',' double_star_pattern ','? '}'
7489// | '{' items_pattern ','? '}'
7490static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08007491mapping_pattern_rule(Parser *p)
7492{
7493 D(p->level++);
7494 if (p->error_indicator) {
7495 D(p->level--);
7496 return NULL;
7497 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007498 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08007499 int _mark = p->mark;
7500 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
7501 p->error_indicator = 1;
7502 D(p->level--);
7503 return NULL;
7504 }
7505 int _start_lineno = p->tokens[_mark]->lineno;
7506 UNUSED(_start_lineno); // Only used by EXTRA macro
7507 int _start_col_offset = p->tokens[_mark]->col_offset;
7508 UNUSED(_start_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007509 { // '{' '}'
Brandt Bucher145bf262021-02-26 14:51:55 -08007510 if (p->error_indicator) {
7511 D(p->level--);
7512 return NULL;
7513 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007514 D(fprintf(stderr, "%*c> mapping_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' '}'"));
Brandt Bucher145bf262021-02-26 14:51:55 -08007515 Token * _literal;
7516 Token * _literal_1;
Brandt Bucher145bf262021-02-26 14:51:55 -08007517 if (
7518 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
7519 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08007520 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
7521 )
7522 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007523 D(fprintf(stderr, "%*c+ mapping_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' '}'"));
Brandt Bucher145bf262021-02-26 14:51:55 -08007524 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7525 if (_token == NULL) {
7526 D(p->level--);
7527 return NULL;
7528 }
7529 int _end_lineno = _token->end_lineno;
7530 UNUSED(_end_lineno); // Only used by EXTRA macro
7531 int _end_col_offset = _token->end_col_offset;
7532 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007533 _res = _PyAST_MatchMapping ( NULL , NULL , NULL , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08007534 if (_res == NULL && PyErr_Occurred()) {
7535 p->error_indicator = 1;
7536 D(p->level--);
7537 return NULL;
7538 }
7539 goto done;
7540 }
7541 p->mark = _mark;
7542 D(fprintf(stderr, "%*c%s mapping_pattern[%d-%d]: %s failed!\n", p->level, ' ',
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007543 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' '}'"));
7544 }
7545 { // '{' double_star_pattern ','? '}'
7546 if (p->error_indicator) {
7547 D(p->level--);
7548 return NULL;
7549 }
7550 D(fprintf(stderr, "%*c> mapping_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' double_star_pattern ','? '}'"));
7551 Token * _literal;
7552 Token * _literal_1;
7553 void *_opt_var;
7554 UNUSED(_opt_var); // Silence compiler warnings
7555 expr_ty rest;
7556 if (
7557 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
7558 &&
7559 (rest = double_star_pattern_rule(p)) // double_star_pattern
7560 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02007561 (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','?
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007562 &&
7563 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
7564 )
7565 {
7566 D(fprintf(stderr, "%*c+ mapping_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' double_star_pattern ','? '}'"));
7567 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7568 if (_token == NULL) {
7569 D(p->level--);
7570 return NULL;
7571 }
7572 int _end_lineno = _token->end_lineno;
7573 UNUSED(_end_lineno); // Only used by EXTRA macro
7574 int _end_col_offset = _token->end_col_offset;
7575 UNUSED(_end_col_offset); // Only used by EXTRA macro
7576 _res = _PyAST_MatchMapping ( NULL , NULL , rest -> v . Name . id , EXTRA );
7577 if (_res == NULL && PyErr_Occurred()) {
7578 p->error_indicator = 1;
7579 D(p->level--);
7580 return NULL;
7581 }
7582 goto done;
7583 }
7584 p->mark = _mark;
7585 D(fprintf(stderr, "%*c%s mapping_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7586 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' double_star_pattern ','? '}'"));
7587 }
7588 { // '{' items_pattern ',' double_star_pattern ','? '}'
7589 if (p->error_indicator) {
7590 D(p->level--);
7591 return NULL;
7592 }
7593 D(fprintf(stderr, "%*c> mapping_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' items_pattern ',' double_star_pattern ','? '}'"));
7594 Token * _literal;
7595 Token * _literal_1;
7596 Token * _literal_2;
7597 void *_opt_var;
7598 UNUSED(_opt_var); // Silence compiler warnings
7599 asdl_seq* items;
7600 expr_ty rest;
7601 if (
7602 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
7603 &&
7604 (items = items_pattern_rule(p)) // items_pattern
7605 &&
7606 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
7607 &&
7608 (rest = double_star_pattern_rule(p)) // double_star_pattern
7609 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02007610 (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','?
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007611 &&
7612 (_literal_2 = _PyPegen_expect_token(p, 26)) // token='}'
7613 )
7614 {
7615 D(fprintf(stderr, "%*c+ mapping_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' items_pattern ',' double_star_pattern ','? '}'"));
7616 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7617 if (_token == NULL) {
7618 D(p->level--);
7619 return NULL;
7620 }
7621 int _end_lineno = _token->end_lineno;
7622 UNUSED(_end_lineno); // Only used by EXTRA macro
7623 int _end_col_offset = _token->end_col_offset;
7624 UNUSED(_end_col_offset); // Only used by EXTRA macro
7625 _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 );
7626 if (_res == NULL && PyErr_Occurred()) {
7627 p->error_indicator = 1;
7628 D(p->level--);
7629 return NULL;
7630 }
7631 goto done;
7632 }
7633 p->mark = _mark;
7634 D(fprintf(stderr, "%*c%s mapping_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7635 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' items_pattern ',' double_star_pattern ','? '}'"));
7636 }
7637 { // '{' items_pattern ','? '}'
7638 if (p->error_indicator) {
7639 D(p->level--);
7640 return NULL;
7641 }
7642 D(fprintf(stderr, "%*c> mapping_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' items_pattern ','? '}'"));
7643 Token * _literal;
7644 Token * _literal_1;
7645 void *_opt_var;
7646 UNUSED(_opt_var); // Silence compiler warnings
7647 asdl_seq* items;
7648 if (
7649 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
7650 &&
7651 (items = items_pattern_rule(p)) // items_pattern
7652 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02007653 (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','?
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007654 &&
7655 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
7656 )
7657 {
7658 D(fprintf(stderr, "%*c+ mapping_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' items_pattern ','? '}'"));
7659 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7660 if (_token == NULL) {
7661 D(p->level--);
7662 return NULL;
7663 }
7664 int _end_lineno = _token->end_lineno;
7665 UNUSED(_end_lineno); // Only used by EXTRA macro
7666 int _end_col_offset = _token->end_col_offset;
7667 UNUSED(_end_col_offset); // Only used by EXTRA macro
7668 _res = _PyAST_MatchMapping ( CHECK ( asdl_expr_seq * , _PyPegen_get_pattern_keys ( p , items ) ) , CHECK ( asdl_pattern_seq * , _PyPegen_get_patterns ( p , items ) ) , NULL , EXTRA );
7669 if (_res == NULL && PyErr_Occurred()) {
7670 p->error_indicator = 1;
7671 D(p->level--);
7672 return NULL;
7673 }
7674 goto done;
7675 }
7676 p->mark = _mark;
7677 D(fprintf(stderr, "%*c%s mapping_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7678 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' items_pattern ','? '}'"));
Brandt Bucher145bf262021-02-26 14:51:55 -08007679 }
7680 _res = NULL;
7681 done:
7682 D(p->level--);
7683 return _res;
7684}
7685
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007686// items_pattern: ','.key_value_pattern+
Brandt Bucher145bf262021-02-26 14:51:55 -08007687static asdl_seq*
7688items_pattern_rule(Parser *p)
7689{
7690 D(p->level++);
7691 if (p->error_indicator) {
7692 D(p->level--);
7693 return NULL;
7694 }
7695 asdl_seq* _res = NULL;
7696 int _mark = p->mark;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007697 { // ','.key_value_pattern+
Brandt Bucher145bf262021-02-26 14:51:55 -08007698 if (p->error_indicator) {
7699 D(p->level--);
7700 return NULL;
7701 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007702 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 -07007703 asdl_seq * _gather_59_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08007704 if (
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07007705 (_gather_59_var = _gather_59_rule(p)) // ','.key_value_pattern+
Brandt Bucher145bf262021-02-26 14:51:55 -08007706 )
7707 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007708 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 -07007709 _res = _gather_59_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08007710 goto done;
7711 }
7712 p->mark = _mark;
7713 D(fprintf(stderr, "%*c%s items_pattern[%d-%d]: %s failed!\n", p->level, ' ',
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007714 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.key_value_pattern+"));
Brandt Bucher145bf262021-02-26 14:51:55 -08007715 }
7716 _res = NULL;
7717 done:
7718 D(p->level--);
7719 return _res;
7720}
7721
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007722// key_value_pattern: (literal_expr | attr) ':' pattern
7723static KeyPatternPair*
Brandt Bucher145bf262021-02-26 14:51:55 -08007724key_value_pattern_rule(Parser *p)
7725{
7726 D(p->level++);
7727 if (p->error_indicator) {
7728 D(p->level--);
7729 return NULL;
7730 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007731 KeyPatternPair* _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08007732 int _mark = p->mark;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007733 { // (literal_expr | attr) ':' pattern
Brandt Bucher145bf262021-02-26 14:51:55 -08007734 if (p->error_indicator) {
7735 D(p->level--);
7736 return NULL;
7737 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007738 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 -08007739 Token * _literal;
7740 void *key;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007741 pattern_ty pattern;
Brandt Bucher145bf262021-02-26 14:51:55 -08007742 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007743 (key = _tmp_61_rule(p)) // literal_expr | attr
Brandt Bucher145bf262021-02-26 14:51:55 -08007744 &&
7745 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
7746 &&
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007747 (pattern = pattern_rule(p)) // pattern
Brandt Bucher145bf262021-02-26 14:51:55 -08007748 )
7749 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007750 D(fprintf(stderr, "%*c+ key_value_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(literal_expr | attr) ':' pattern"));
7751 _res = _PyPegen_key_pattern_pair ( p , key , pattern );
Brandt Bucher145bf262021-02-26 14:51:55 -08007752 if (_res == NULL && PyErr_Occurred()) {
7753 p->error_indicator = 1;
7754 D(p->level--);
7755 return NULL;
7756 }
7757 goto done;
7758 }
7759 p->mark = _mark;
7760 D(fprintf(stderr, "%*c%s key_value_pattern[%d-%d]: %s failed!\n", p->level, ' ',
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007761 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(literal_expr | attr) ':' pattern"));
Brandt Bucher145bf262021-02-26 14:51:55 -08007762 }
7763 _res = NULL;
7764 done:
7765 D(p->level--);
7766 return _res;
7767}
7768
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007769// double_star_pattern: '**' pattern_capture_target
7770static expr_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08007771double_star_pattern_rule(Parser *p)
7772{
7773 D(p->level++);
7774 if (p->error_indicator) {
7775 D(p->level--);
7776 return NULL;
7777 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007778 expr_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08007779 int _mark = p->mark;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007780 { // '**' pattern_capture_target
Brandt Bucher145bf262021-02-26 14:51:55 -08007781 if (p->error_indicator) {
7782 D(p->level--);
7783 return NULL;
7784 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007785 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 -08007786 Token * _literal;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007787 expr_ty target;
Brandt Bucher145bf262021-02-26 14:51:55 -08007788 if (
7789 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
7790 &&
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007791 (target = pattern_capture_target_rule(p)) // pattern_capture_target
Brandt Bucher145bf262021-02-26 14:51:55 -08007792 )
7793 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007794 D(fprintf(stderr, "%*c+ double_star_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' pattern_capture_target"));
7795 _res = target;
Brandt Bucher145bf262021-02-26 14:51:55 -08007796 if (_res == NULL && PyErr_Occurred()) {
7797 p->error_indicator = 1;
7798 D(p->level--);
7799 return NULL;
7800 }
7801 goto done;
7802 }
7803 p->mark = _mark;
7804 D(fprintf(stderr, "%*c%s double_star_pattern[%d-%d]: %s failed!\n", p->level, ' ',
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007805 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' pattern_capture_target"));
Brandt Bucher145bf262021-02-26 14:51:55 -08007806 }
7807 _res = NULL;
7808 done:
7809 D(p->level--);
7810 return _res;
7811}
7812
7813// class_pattern:
7814// | name_or_attr '(' ')'
7815// | name_or_attr '(' positional_patterns ','? ')'
7816// | name_or_attr '(' keyword_patterns ','? ')'
7817// | name_or_attr '(' positional_patterns ',' keyword_patterns ','? ')'
Miss Islington (bot)11f1a302021-06-24 08:34:28 -07007818// | invalid_class_pattern
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007819static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08007820class_pattern_rule(Parser *p)
7821{
7822 D(p->level++);
7823 if (p->error_indicator) {
7824 D(p->level--);
7825 return NULL;
7826 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007827 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08007828 int _mark = p->mark;
7829 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
7830 p->error_indicator = 1;
7831 D(p->level--);
7832 return NULL;
7833 }
7834 int _start_lineno = p->tokens[_mark]->lineno;
7835 UNUSED(_start_lineno); // Only used by EXTRA macro
7836 int _start_col_offset = p->tokens[_mark]->col_offset;
7837 UNUSED(_start_col_offset); // Only used by EXTRA macro
7838 { // name_or_attr '(' ')'
7839 if (p->error_indicator) {
7840 D(p->level--);
7841 return NULL;
7842 }
7843 D(fprintf(stderr, "%*c> class_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' ')'"));
7844 Token * _literal;
7845 Token * _literal_1;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007846 expr_ty cls;
Brandt Bucher145bf262021-02-26 14:51:55 -08007847 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007848 (cls = name_or_attr_rule(p)) // name_or_attr
Brandt Bucher145bf262021-02-26 14:51:55 -08007849 &&
7850 (_literal = _PyPegen_expect_token(p, 7)) // token='('
7851 &&
7852 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
7853 )
7854 {
7855 D(fprintf(stderr, "%*c+ class_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' ')'"));
7856 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7857 if (_token == NULL) {
7858 D(p->level--);
7859 return NULL;
7860 }
7861 int _end_lineno = _token->end_lineno;
7862 UNUSED(_end_lineno); // Only used by EXTRA macro
7863 int _end_col_offset = _token->end_col_offset;
7864 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007865 _res = _PyAST_MatchClass ( cls , NULL , NULL , NULL , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08007866 if (_res == NULL && PyErr_Occurred()) {
7867 p->error_indicator = 1;
7868 D(p->level--);
7869 return NULL;
7870 }
7871 goto done;
7872 }
7873 p->mark = _mark;
7874 D(fprintf(stderr, "%*c%s class_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7875 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "name_or_attr '(' ')'"));
7876 }
7877 { // name_or_attr '(' positional_patterns ','? ')'
7878 if (p->error_indicator) {
7879 D(p->level--);
7880 return NULL;
7881 }
7882 D(fprintf(stderr, "%*c> class_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' positional_patterns ','? ')'"));
7883 Token * _literal;
7884 Token * _literal_1;
7885 void *_opt_var;
7886 UNUSED(_opt_var); // Silence compiler warnings
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007887 expr_ty cls;
7888 asdl_pattern_seq* patterns;
Brandt Bucher145bf262021-02-26 14:51:55 -08007889 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007890 (cls = name_or_attr_rule(p)) // name_or_attr
Brandt Bucher145bf262021-02-26 14:51:55 -08007891 &&
7892 (_literal = _PyPegen_expect_token(p, 7)) // token='('
7893 &&
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007894 (patterns = positional_patterns_rule(p)) // positional_patterns
Brandt Bucher145bf262021-02-26 14:51:55 -08007895 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02007896 (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','?
Brandt Bucher145bf262021-02-26 14:51:55 -08007897 &&
7898 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
7899 )
7900 {
7901 D(fprintf(stderr, "%*c+ class_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' positional_patterns ','? ')'"));
7902 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7903 if (_token == NULL) {
7904 D(p->level--);
7905 return NULL;
7906 }
7907 int _end_lineno = _token->end_lineno;
7908 UNUSED(_end_lineno); // Only used by EXTRA macro
7909 int _end_col_offset = _token->end_col_offset;
7910 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007911 _res = _PyAST_MatchClass ( cls , patterns , NULL , NULL , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08007912 if (_res == NULL && PyErr_Occurred()) {
7913 p->error_indicator = 1;
7914 D(p->level--);
7915 return NULL;
7916 }
7917 goto done;
7918 }
7919 p->mark = _mark;
7920 D(fprintf(stderr, "%*c%s class_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7921 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "name_or_attr '(' positional_patterns ','? ')'"));
7922 }
7923 { // name_or_attr '(' keyword_patterns ','? ')'
7924 if (p->error_indicator) {
7925 D(p->level--);
7926 return NULL;
7927 }
7928 D(fprintf(stderr, "%*c> class_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' keyword_patterns ','? ')'"));
7929 Token * _literal;
7930 Token * _literal_1;
7931 void *_opt_var;
7932 UNUSED(_opt_var); // Silence compiler warnings
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007933 expr_ty cls;
7934 asdl_seq* keywords;
Brandt Bucher145bf262021-02-26 14:51:55 -08007935 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007936 (cls = name_or_attr_rule(p)) // name_or_attr
Brandt Bucher145bf262021-02-26 14:51:55 -08007937 &&
7938 (_literal = _PyPegen_expect_token(p, 7)) // token='('
7939 &&
7940 (keywords = keyword_patterns_rule(p)) // keyword_patterns
7941 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02007942 (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','?
Brandt Bucher145bf262021-02-26 14:51:55 -08007943 &&
7944 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
7945 )
7946 {
7947 D(fprintf(stderr, "%*c+ class_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' keyword_patterns ','? ')'"));
7948 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7949 if (_token == NULL) {
7950 D(p->level--);
7951 return NULL;
7952 }
7953 int _end_lineno = _token->end_lineno;
7954 UNUSED(_end_lineno); // Only used by EXTRA macro
7955 int _end_col_offset = _token->end_col_offset;
7956 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007957 _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 -08007958 if (_res == NULL && PyErr_Occurred()) {
7959 p->error_indicator = 1;
7960 D(p->level--);
7961 return NULL;
7962 }
7963 goto done;
7964 }
7965 p->mark = _mark;
7966 D(fprintf(stderr, "%*c%s class_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7967 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "name_or_attr '(' keyword_patterns ','? ')'"));
7968 }
7969 { // name_or_attr '(' positional_patterns ',' keyword_patterns ','? ')'
7970 if (p->error_indicator) {
7971 D(p->level--);
7972 return NULL;
7973 }
7974 D(fprintf(stderr, "%*c> class_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' positional_patterns ',' keyword_patterns ','? ')'"));
7975 Token * _literal;
7976 Token * _literal_1;
7977 Token * _literal_2;
7978 void *_opt_var;
7979 UNUSED(_opt_var); // Silence compiler warnings
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007980 expr_ty cls;
7981 asdl_seq* keywords;
7982 asdl_pattern_seq* patterns;
Brandt Bucher145bf262021-02-26 14:51:55 -08007983 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007984 (cls = name_or_attr_rule(p)) // name_or_attr
Brandt Bucher145bf262021-02-26 14:51:55 -08007985 &&
7986 (_literal = _PyPegen_expect_token(p, 7)) // token='('
7987 &&
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007988 (patterns = positional_patterns_rule(p)) // positional_patterns
Brandt Bucher145bf262021-02-26 14:51:55 -08007989 &&
7990 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
7991 &&
7992 (keywords = keyword_patterns_rule(p)) // keyword_patterns
7993 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02007994 (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','?
Brandt Bucher145bf262021-02-26 14:51:55 -08007995 &&
7996 (_literal_2 = _PyPegen_expect_token(p, 8)) // token=')'
7997 )
7998 {
7999 D(fprintf(stderr, "%*c+ class_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' positional_patterns ',' keyword_patterns ','? ')'"));
8000 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8001 if (_token == NULL) {
8002 D(p->level--);
8003 return NULL;
8004 }
8005 int _end_lineno = _token->end_lineno;
8006 UNUSED(_end_lineno); // Only used by EXTRA macro
8007 int _end_col_offset = _token->end_col_offset;
8008 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10008009 _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 -08008010 if (_res == NULL && PyErr_Occurred()) {
8011 p->error_indicator = 1;
8012 D(p->level--);
8013 return NULL;
8014 }
8015 goto done;
8016 }
8017 p->mark = _mark;
8018 D(fprintf(stderr, "%*c%s class_pattern[%d-%d]: %s failed!\n", p->level, ' ',
8019 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "name_or_attr '(' positional_patterns ',' keyword_patterns ','? ')'"));
8020 }
Miss Islington (bot)11f1a302021-06-24 08:34:28 -07008021 if (p->call_invalid_rules) { // invalid_class_pattern
8022 if (p->error_indicator) {
8023 D(p->level--);
8024 return NULL;
8025 }
8026 D(fprintf(stderr, "%*c> class_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_class_pattern"));
8027 void *invalid_class_pattern_var;
8028 if (
8029 (invalid_class_pattern_var = invalid_class_pattern_rule(p)) // invalid_class_pattern
8030 )
8031 {
8032 D(fprintf(stderr, "%*c+ class_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_class_pattern"));
8033 _res = invalid_class_pattern_var;
8034 goto done;
8035 }
8036 p->mark = _mark;
8037 D(fprintf(stderr, "%*c%s class_pattern[%d-%d]: %s failed!\n", p->level, ' ',
8038 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_class_pattern"));
8039 }
Brandt Bucher145bf262021-02-26 14:51:55 -08008040 _res = NULL;
8041 done:
8042 D(p->level--);
8043 return _res;
8044}
8045
8046// positional_patterns: ','.pattern+
Nick Coghlan1e7b8582021-04-29 15:58:44 +10008047static asdl_pattern_seq*
Brandt Bucher145bf262021-02-26 14:51:55 -08008048positional_patterns_rule(Parser *p)
8049{
8050 D(p->level++);
8051 if (p->error_indicator) {
8052 D(p->level--);
8053 return NULL;
8054 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10008055 asdl_pattern_seq* _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08008056 int _mark = p->mark;
8057 { // ','.pattern+
8058 if (p->error_indicator) {
8059 D(p->level--);
8060 return NULL;
8061 }
8062 D(fprintf(stderr, "%*c> positional_patterns[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.pattern+"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10008063 asdl_pattern_seq* args;
Brandt Bucher145bf262021-02-26 14:51:55 -08008064 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10008065 (args = (asdl_pattern_seq*)_gather_62_rule(p)) // ','.pattern+
Brandt Bucher145bf262021-02-26 14:51:55 -08008066 )
8067 {
8068 D(fprintf(stderr, "%*c+ positional_patterns[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.pattern+"));
8069 _res = args;
8070 if (_res == NULL && PyErr_Occurred()) {
8071 p->error_indicator = 1;
8072 D(p->level--);
8073 return NULL;
8074 }
8075 goto done;
8076 }
8077 p->mark = _mark;
8078 D(fprintf(stderr, "%*c%s positional_patterns[%d-%d]: %s failed!\n", p->level, ' ',
8079 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.pattern+"));
8080 }
8081 _res = NULL;
8082 done:
8083 D(p->level--);
8084 return _res;
8085}
8086
8087// keyword_patterns: ','.keyword_pattern+
Nick Coghlan1e7b8582021-04-29 15:58:44 +10008088static asdl_seq*
Brandt Bucher145bf262021-02-26 14:51:55 -08008089keyword_patterns_rule(Parser *p)
8090{
8091 D(p->level++);
8092 if (p->error_indicator) {
8093 D(p->level--);
8094 return NULL;
8095 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10008096 asdl_seq* _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08008097 int _mark = p->mark;
8098 { // ','.keyword_pattern+
8099 if (p->error_indicator) {
8100 D(p->level--);
8101 return NULL;
8102 }
8103 D(fprintf(stderr, "%*c> keyword_patterns[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.keyword_pattern+"));
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07008104 asdl_seq * _gather_64_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08008105 if (
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07008106 (_gather_64_var = _gather_64_rule(p)) // ','.keyword_pattern+
Brandt Bucher145bf262021-02-26 14:51:55 -08008107 )
8108 {
8109 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 -07008110 _res = _gather_64_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08008111 goto done;
8112 }
8113 p->mark = _mark;
8114 D(fprintf(stderr, "%*c%s keyword_patterns[%d-%d]: %s failed!\n", p->level, ' ',
8115 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.keyword_pattern+"));
8116 }
8117 _res = NULL;
8118 done:
8119 D(p->level--);
8120 return _res;
8121}
8122
8123// keyword_pattern: NAME '=' pattern
Nick Coghlan1e7b8582021-04-29 15:58:44 +10008124static KeyPatternPair*
Brandt Bucher145bf262021-02-26 14:51:55 -08008125keyword_pattern_rule(Parser *p)
8126{
8127 D(p->level++);
8128 if (p->error_indicator) {
8129 D(p->level--);
8130 return NULL;
8131 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10008132 KeyPatternPair* _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08008133 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -08008134 { // NAME '=' pattern
8135 if (p->error_indicator) {
8136 D(p->level--);
8137 return NULL;
8138 }
8139 D(fprintf(stderr, "%*c> keyword_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME '=' pattern"));
8140 Token * _literal;
8141 expr_ty arg;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10008142 pattern_ty value;
Brandt Bucher145bf262021-02-26 14:51:55 -08008143 if (
8144 (arg = _PyPegen_name_token(p)) // NAME
8145 &&
8146 (_literal = _PyPegen_expect_token(p, 22)) // token='='
8147 &&
8148 (value = pattern_rule(p)) // pattern
8149 )
8150 {
8151 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 +10008152 _res = _PyPegen_key_pattern_pair ( p , arg , value );
Brandt Bucher145bf262021-02-26 14:51:55 -08008153 if (_res == NULL && PyErr_Occurred()) {
8154 p->error_indicator = 1;
8155 D(p->level--);
8156 return NULL;
8157 }
8158 goto done;
8159 }
8160 p->mark = _mark;
8161 D(fprintf(stderr, "%*c%s keyword_pattern[%d-%d]: %s failed!\n", p->level, ' ',
8162 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' pattern"));
8163 }
8164 _res = NULL;
8165 done:
8166 D(p->level--);
8167 return _res;
8168}
8169
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008170// return_stmt: 'return' star_expressions?
8171static stmt_ty
8172return_stmt_rule(Parser *p)
8173{
8174 D(p->level++);
8175 if (p->error_indicator) {
8176 D(p->level--);
8177 return NULL;
8178 }
8179 stmt_ty _res = NULL;
8180 int _mark = p->mark;
8181 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
8182 p->error_indicator = 1;
8183 D(p->level--);
8184 return NULL;
8185 }
8186 int _start_lineno = p->tokens[_mark]->lineno;
8187 UNUSED(_start_lineno); // Only used by EXTRA macro
8188 int _start_col_offset = p->tokens[_mark]->col_offset;
8189 UNUSED(_start_col_offset); // Only used by EXTRA macro
8190 { // 'return' star_expressions?
8191 if (p->error_indicator) {
8192 D(p->level--);
8193 return NULL;
8194 }
8195 D(fprintf(stderr, "%*c> return_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'return' star_expressions?"));
8196 Token * _keyword;
8197 void *a;
8198 if (
8199 (_keyword = _PyPegen_expect_token(p, 500)) // token='return'
8200 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02008201 (a = star_expressions_rule(p), !p->error_indicator) // star_expressions?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008202 )
8203 {
8204 D(fprintf(stderr, "%*c+ return_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'return' star_expressions?"));
8205 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8206 if (_token == NULL) {
8207 D(p->level--);
8208 return NULL;
8209 }
8210 int _end_lineno = _token->end_lineno;
8211 UNUSED(_end_lineno); // Only used by EXTRA macro
8212 int _end_col_offset = _token->end_col_offset;
8213 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02008214 _res = _PyAST_Return ( a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008215 if (_res == NULL && PyErr_Occurred()) {
8216 p->error_indicator = 1;
8217 D(p->level--);
8218 return NULL;
8219 }
8220 goto done;
8221 }
8222 p->mark = _mark;
8223 D(fprintf(stderr, "%*c%s return_stmt[%d-%d]: %s failed!\n", p->level, ' ',
8224 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'return' star_expressions?"));
8225 }
8226 _res = NULL;
8227 done:
8228 D(p->level--);
8229 return _res;
8230}
8231
8232// raise_stmt: 'raise' expression ['from' expression] | 'raise'
8233static stmt_ty
8234raise_stmt_rule(Parser *p)
8235{
8236 D(p->level++);
8237 if (p->error_indicator) {
8238 D(p->level--);
8239 return NULL;
8240 }
8241 stmt_ty _res = NULL;
8242 int _mark = p->mark;
8243 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
8244 p->error_indicator = 1;
8245 D(p->level--);
8246 return NULL;
8247 }
8248 int _start_lineno = p->tokens[_mark]->lineno;
8249 UNUSED(_start_lineno); // Only used by EXTRA macro
8250 int _start_col_offset = p->tokens[_mark]->col_offset;
8251 UNUSED(_start_col_offset); // Only used by EXTRA macro
8252 { // 'raise' expression ['from' expression]
8253 if (p->error_indicator) {
8254 D(p->level--);
8255 return NULL;
8256 }
8257 D(fprintf(stderr, "%*c> raise_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'raise' expression ['from' expression]"));
8258 Token * _keyword;
8259 expr_ty a;
8260 void *b;
8261 if (
8262 (_keyword = _PyPegen_expect_token(p, 501)) // token='raise'
8263 &&
8264 (a = expression_rule(p)) // expression
8265 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02008266 (b = _tmp_66_rule(p), !p->error_indicator) // ['from' expression]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008267 )
8268 {
8269 D(fprintf(stderr, "%*c+ raise_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'raise' expression ['from' expression]"));
8270 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8271 if (_token == NULL) {
8272 D(p->level--);
8273 return NULL;
8274 }
8275 int _end_lineno = _token->end_lineno;
8276 UNUSED(_end_lineno); // Only used by EXTRA macro
8277 int _end_col_offset = _token->end_col_offset;
8278 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02008279 _res = _PyAST_Raise ( a , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008280 if (_res == NULL && PyErr_Occurred()) {
8281 p->error_indicator = 1;
8282 D(p->level--);
8283 return NULL;
8284 }
8285 goto done;
8286 }
8287 p->mark = _mark;
8288 D(fprintf(stderr, "%*c%s raise_stmt[%d-%d]: %s failed!\n", p->level, ' ',
8289 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'raise' expression ['from' expression]"));
8290 }
8291 { // 'raise'
8292 if (p->error_indicator) {
8293 D(p->level--);
8294 return NULL;
8295 }
8296 D(fprintf(stderr, "%*c> raise_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'raise'"));
8297 Token * _keyword;
8298 if (
8299 (_keyword = _PyPegen_expect_token(p, 501)) // token='raise'
8300 )
8301 {
8302 D(fprintf(stderr, "%*c+ raise_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'raise'"));
8303 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8304 if (_token == NULL) {
8305 D(p->level--);
8306 return NULL;
8307 }
8308 int _end_lineno = _token->end_lineno;
8309 UNUSED(_end_lineno); // Only used by EXTRA macro
8310 int _end_col_offset = _token->end_col_offset;
8311 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02008312 _res = _PyAST_Raise ( NULL , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008313 if (_res == NULL && PyErr_Occurred()) {
8314 p->error_indicator = 1;
8315 D(p->level--);
8316 return NULL;
8317 }
8318 goto done;
8319 }
8320 p->mark = _mark;
8321 D(fprintf(stderr, "%*c%s raise_stmt[%d-%d]: %s failed!\n", p->level, ' ',
8322 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'raise'"));
8323 }
8324 _res = NULL;
8325 done:
8326 D(p->level--);
8327 return _res;
8328}
8329
8330// function_def: decorators function_def_raw | function_def_raw
8331static stmt_ty
8332function_def_rule(Parser *p)
8333{
8334 D(p->level++);
8335 if (p->error_indicator) {
8336 D(p->level--);
8337 return NULL;
8338 }
8339 stmt_ty _res = NULL;
8340 int _mark = p->mark;
8341 { // decorators function_def_raw
8342 if (p->error_indicator) {
8343 D(p->level--);
8344 return NULL;
8345 }
8346 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 +01008347 asdl_expr_seq* d;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008348 stmt_ty f;
8349 if (
8350 (d = decorators_rule(p)) // decorators
8351 &&
8352 (f = function_def_raw_rule(p)) // function_def_raw
8353 )
8354 {
8355 D(fprintf(stderr, "%*c+ function_def[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "decorators function_def_raw"));
8356 _res = _PyPegen_function_def_decorators ( p , d , f );
8357 if (_res == NULL && PyErr_Occurred()) {
8358 p->error_indicator = 1;
8359 D(p->level--);
8360 return NULL;
8361 }
8362 goto done;
8363 }
8364 p->mark = _mark;
8365 D(fprintf(stderr, "%*c%s function_def[%d-%d]: %s failed!\n", p->level, ' ',
8366 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "decorators function_def_raw"));
8367 }
8368 { // function_def_raw
8369 if (p->error_indicator) {
8370 D(p->level--);
8371 return NULL;
8372 }
8373 D(fprintf(stderr, "%*c> function_def[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "function_def_raw"));
8374 stmt_ty function_def_raw_var;
8375 if (
8376 (function_def_raw_var = function_def_raw_rule(p)) // function_def_raw
8377 )
8378 {
8379 D(fprintf(stderr, "%*c+ function_def[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "function_def_raw"));
8380 _res = function_def_raw_var;
8381 goto done;
8382 }
8383 p->mark = _mark;
8384 D(fprintf(stderr, "%*c%s function_def[%d-%d]: %s failed!\n", p->level, ' ',
8385 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "function_def_raw"));
8386 }
8387 _res = NULL;
8388 done:
8389 D(p->level--);
8390 return _res;
8391}
8392
8393// function_def_raw:
Pablo Galindo56c95df2021-04-21 15:28:21 +01008394// | invalid_def_raw
Pablo Galindo58fb1562021-02-02 19:54:22 +00008395// | 'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block
8396// | ASYNC 'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008397static stmt_ty
8398function_def_raw_rule(Parser *p)
8399{
8400 D(p->level++);
8401 if (p->error_indicator) {
8402 D(p->level--);
8403 return NULL;
8404 }
8405 stmt_ty _res = NULL;
8406 int _mark = p->mark;
8407 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
8408 p->error_indicator = 1;
8409 D(p->level--);
8410 return NULL;
8411 }
8412 int _start_lineno = p->tokens[_mark]->lineno;
8413 UNUSED(_start_lineno); // Only used by EXTRA macro
8414 int _start_col_offset = p->tokens[_mark]->col_offset;
8415 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo56c95df2021-04-21 15:28:21 +01008416 if (p->call_invalid_rules) { // invalid_def_raw
8417 if (p->error_indicator) {
8418 D(p->level--);
8419 return NULL;
8420 }
8421 D(fprintf(stderr, "%*c> function_def_raw[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_def_raw"));
8422 void *invalid_def_raw_var;
8423 if (
8424 (invalid_def_raw_var = invalid_def_raw_rule(p)) // invalid_def_raw
8425 )
8426 {
8427 D(fprintf(stderr, "%*c+ function_def_raw[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_def_raw"));
8428 _res = invalid_def_raw_var;
8429 goto done;
8430 }
8431 p->mark = _mark;
8432 D(fprintf(stderr, "%*c%s function_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
8433 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_def_raw"));
8434 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00008435 { // 'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008436 if (p->error_indicator) {
8437 D(p->level--);
8438 return NULL;
8439 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00008440 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 +01008441 Token * _keyword;
8442 Token * _literal;
8443 Token * _literal_1;
8444 Token * _literal_2;
8445 void *a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01008446 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008447 expr_ty n;
8448 void *params;
8449 void *tc;
8450 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08008451 (_keyword = _PyPegen_expect_token(p, 526)) // token='def'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008452 &&
8453 (n = _PyPegen_name_token(p)) // NAME
8454 &&
8455 (_literal = _PyPegen_expect_token(p, 7)) // token='('
8456 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02008457 (params = params_rule(p), !p->error_indicator) // params?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008458 &&
8459 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
8460 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02008461 (a = _tmp_67_rule(p), !p->error_indicator) // ['->' expression]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008462 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00008463 (_literal_2 = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008464 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02008465 (tc = func_type_comment_rule(p), !p->error_indicator) // func_type_comment?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008466 &&
8467 (b = block_rule(p)) // block
8468 )
8469 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00008470 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 +01008471 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8472 if (_token == NULL) {
8473 D(p->level--);
8474 return NULL;
8475 }
8476 int _end_lineno = _token->end_lineno;
8477 UNUSED(_end_lineno); // Only used by EXTRA macro
8478 int _end_col_offset = _token->end_col_offset;
8479 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02008480 _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 +01008481 if (_res == NULL && PyErr_Occurred()) {
8482 p->error_indicator = 1;
8483 D(p->level--);
8484 return NULL;
8485 }
8486 goto done;
8487 }
8488 p->mark = _mark;
8489 D(fprintf(stderr, "%*c%s function_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00008490 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008491 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00008492 { // ASYNC 'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008493 if (p->error_indicator) {
8494 D(p->level--);
8495 return NULL;
8496 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00008497 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 +01008498 Token * _keyword;
8499 Token * _literal;
8500 Token * _literal_1;
8501 Token * _literal_2;
8502 void *a;
8503 Token * async_var;
Pablo Galindoa5634c42020-09-16 19:42:00 +01008504 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008505 expr_ty n;
8506 void *params;
8507 void *tc;
8508 if (
8509 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
8510 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008511 (_keyword = _PyPegen_expect_token(p, 526)) // token='def'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008512 &&
8513 (n = _PyPegen_name_token(p)) // NAME
8514 &&
8515 (_literal = _PyPegen_expect_token(p, 7)) // token='('
8516 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02008517 (params = params_rule(p), !p->error_indicator) // params?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008518 &&
8519 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
8520 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02008521 (a = _tmp_68_rule(p), !p->error_indicator) // ['->' expression]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008522 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00008523 (_literal_2 = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008524 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02008525 (tc = func_type_comment_rule(p), !p->error_indicator) // func_type_comment?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008526 &&
8527 (b = block_rule(p)) // block
8528 )
8529 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00008530 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 +01008531 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8532 if (_token == NULL) {
8533 D(p->level--);
8534 return NULL;
8535 }
8536 int _end_lineno = _token->end_lineno;
8537 UNUSED(_end_lineno); // Only used by EXTRA macro
8538 int _end_col_offset = _token->end_col_offset;
8539 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02008540 _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 +01008541 if (_res == NULL && PyErr_Occurred()) {
8542 p->error_indicator = 1;
8543 D(p->level--);
8544 return NULL;
8545 }
8546 goto done;
8547 }
8548 p->mark = _mark;
8549 D(fprintf(stderr, "%*c%s function_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00008550 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008551 }
8552 _res = NULL;
8553 done:
8554 D(p->level--);
8555 return _res;
8556}
8557
8558// func_type_comment:
8559// | NEWLINE TYPE_COMMENT &(NEWLINE INDENT)
8560// | invalid_double_type_comments
8561// | TYPE_COMMENT
8562static Token*
8563func_type_comment_rule(Parser *p)
8564{
8565 D(p->level++);
8566 if (p->error_indicator) {
8567 D(p->level--);
8568 return NULL;
8569 }
8570 Token* _res = NULL;
8571 int _mark = p->mark;
8572 { // NEWLINE TYPE_COMMENT &(NEWLINE INDENT)
8573 if (p->error_indicator) {
8574 D(p->level--);
8575 return NULL;
8576 }
8577 D(fprintf(stderr, "%*c> func_type_comment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE TYPE_COMMENT &(NEWLINE INDENT)"));
8578 Token * newline_var;
8579 Token * t;
8580 if (
8581 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
8582 &&
8583 (t = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
8584 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008585 _PyPegen_lookahead(1, _tmp_69_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008586 )
8587 {
8588 D(fprintf(stderr, "%*c+ func_type_comment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE TYPE_COMMENT &(NEWLINE INDENT)"));
8589 _res = t;
8590 if (_res == NULL && PyErr_Occurred()) {
8591 p->error_indicator = 1;
8592 D(p->level--);
8593 return NULL;
8594 }
8595 goto done;
8596 }
8597 p->mark = _mark;
8598 D(fprintf(stderr, "%*c%s func_type_comment[%d-%d]: %s failed!\n", p->level, ' ',
8599 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE TYPE_COMMENT &(NEWLINE INDENT)"));
8600 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02008601 if (p->call_invalid_rules) { // invalid_double_type_comments
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008602 if (p->error_indicator) {
8603 D(p->level--);
8604 return NULL;
8605 }
8606 D(fprintf(stderr, "%*c> func_type_comment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_double_type_comments"));
8607 void *invalid_double_type_comments_var;
8608 if (
8609 (invalid_double_type_comments_var = invalid_double_type_comments_rule(p)) // invalid_double_type_comments
8610 )
8611 {
8612 D(fprintf(stderr, "%*c+ func_type_comment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_double_type_comments"));
8613 _res = invalid_double_type_comments_var;
8614 goto done;
8615 }
8616 p->mark = _mark;
8617 D(fprintf(stderr, "%*c%s func_type_comment[%d-%d]: %s failed!\n", p->level, ' ',
8618 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_double_type_comments"));
8619 }
8620 { // TYPE_COMMENT
8621 if (p->error_indicator) {
8622 D(p->level--);
8623 return NULL;
8624 }
8625 D(fprintf(stderr, "%*c> func_type_comment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "TYPE_COMMENT"));
8626 Token * type_comment_var;
8627 if (
8628 (type_comment_var = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
8629 )
8630 {
8631 D(fprintf(stderr, "%*c+ func_type_comment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "TYPE_COMMENT"));
8632 _res = type_comment_var;
8633 goto done;
8634 }
8635 p->mark = _mark;
8636 D(fprintf(stderr, "%*c%s func_type_comment[%d-%d]: %s failed!\n", p->level, ' ',
8637 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "TYPE_COMMENT"));
8638 }
8639 _res = NULL;
8640 done:
8641 D(p->level--);
8642 return _res;
8643}
8644
8645// params: invalid_parameters | parameters
8646static arguments_ty
8647params_rule(Parser *p)
8648{
8649 D(p->level++);
8650 if (p->error_indicator) {
8651 D(p->level--);
8652 return NULL;
8653 }
8654 arguments_ty _res = NULL;
8655 int _mark = p->mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02008656 if (p->call_invalid_rules) { // invalid_parameters
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008657 if (p->error_indicator) {
8658 D(p->level--);
8659 return NULL;
8660 }
8661 D(fprintf(stderr, "%*c> params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_parameters"));
8662 void *invalid_parameters_var;
8663 if (
8664 (invalid_parameters_var = invalid_parameters_rule(p)) // invalid_parameters
8665 )
8666 {
8667 D(fprintf(stderr, "%*c+ params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_parameters"));
8668 _res = invalid_parameters_var;
8669 goto done;
8670 }
8671 p->mark = _mark;
8672 D(fprintf(stderr, "%*c%s params[%d-%d]: %s failed!\n", p->level, ' ',
8673 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_parameters"));
8674 }
8675 { // parameters
8676 if (p->error_indicator) {
8677 D(p->level--);
8678 return NULL;
8679 }
8680 D(fprintf(stderr, "%*c> params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "parameters"));
8681 arguments_ty parameters_var;
8682 if (
8683 (parameters_var = parameters_rule(p)) // parameters
8684 )
8685 {
8686 D(fprintf(stderr, "%*c+ params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "parameters"));
8687 _res = parameters_var;
8688 goto done;
8689 }
8690 p->mark = _mark;
8691 D(fprintf(stderr, "%*c%s params[%d-%d]: %s failed!\n", p->level, ' ',
8692 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "parameters"));
8693 }
8694 _res = NULL;
8695 done:
8696 D(p->level--);
8697 return _res;
8698}
8699
8700// parameters:
8701// | slash_no_default param_no_default* param_with_default* star_etc?
8702// | slash_with_default param_with_default* star_etc?
8703// | param_no_default+ param_with_default* star_etc?
8704// | param_with_default+ star_etc?
8705// | star_etc
8706static arguments_ty
8707parameters_rule(Parser *p)
8708{
8709 D(p->level++);
8710 if (p->error_indicator) {
8711 D(p->level--);
8712 return NULL;
8713 }
8714 arguments_ty _res = NULL;
8715 int _mark = p->mark;
8716 { // slash_no_default param_no_default* param_with_default* star_etc?
8717 if (p->error_indicator) {
8718 D(p->level--);
8719 return NULL;
8720 }
8721 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 +01008722 asdl_arg_seq* a;
8723 asdl_arg_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008724 asdl_seq * c;
8725 void *d;
8726 if (
8727 (a = slash_no_default_rule(p)) // slash_no_default
8728 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008729 (b = (asdl_arg_seq*)_loop0_70_rule(p)) // param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008730 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008731 (c = _loop0_71_rule(p)) // param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008732 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02008733 (d = star_etc_rule(p), !p->error_indicator) // star_etc?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008734 )
8735 {
8736 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?"));
8737 _res = _PyPegen_make_arguments ( p , a , NULL , b , c , d );
8738 if (_res == NULL && PyErr_Occurred()) {
8739 p->error_indicator = 1;
8740 D(p->level--);
8741 return NULL;
8742 }
8743 goto done;
8744 }
8745 p->mark = _mark;
8746 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
8747 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slash_no_default param_no_default* param_with_default* star_etc?"));
8748 }
8749 { // slash_with_default param_with_default* star_etc?
8750 if (p->error_indicator) {
8751 D(p->level--);
8752 return NULL;
8753 }
8754 D(fprintf(stderr, "%*c> parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slash_with_default param_with_default* star_etc?"));
8755 SlashWithDefault* a;
8756 asdl_seq * b;
8757 void *c;
8758 if (
8759 (a = slash_with_default_rule(p)) // slash_with_default
8760 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008761 (b = _loop0_72_rule(p)) // param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008762 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02008763 (c = star_etc_rule(p), !p->error_indicator) // star_etc?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008764 )
8765 {
8766 D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slash_with_default param_with_default* star_etc?"));
8767 _res = _PyPegen_make_arguments ( p , NULL , a , NULL , b , c );
8768 if (_res == NULL && PyErr_Occurred()) {
8769 p->error_indicator = 1;
8770 D(p->level--);
8771 return NULL;
8772 }
8773 goto done;
8774 }
8775 p->mark = _mark;
8776 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
8777 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slash_with_default param_with_default* star_etc?"));
8778 }
8779 { // param_no_default+ param_with_default* star_etc?
8780 if (p->error_indicator) {
8781 D(p->level--);
8782 return NULL;
8783 }
8784 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 +01008785 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008786 asdl_seq * b;
8787 void *c;
8788 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08008789 (a = (asdl_arg_seq*)_loop1_73_rule(p)) // param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008790 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008791 (b = _loop0_74_rule(p)) // param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008792 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02008793 (c = star_etc_rule(p), !p->error_indicator) // star_etc?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008794 )
8795 {
8796 D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default+ param_with_default* star_etc?"));
8797 _res = _PyPegen_make_arguments ( p , NULL , NULL , a , b , c );
8798 if (_res == NULL && PyErr_Occurred()) {
8799 p->error_indicator = 1;
8800 D(p->level--);
8801 return NULL;
8802 }
8803 goto done;
8804 }
8805 p->mark = _mark;
8806 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
8807 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default+ param_with_default* star_etc?"));
8808 }
8809 { // param_with_default+ star_etc?
8810 if (p->error_indicator) {
8811 D(p->level--);
8812 return NULL;
8813 }
8814 D(fprintf(stderr, "%*c> parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default+ star_etc?"));
8815 asdl_seq * a;
8816 void *b;
8817 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08008818 (a = _loop1_75_rule(p)) // param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008819 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02008820 (b = star_etc_rule(p), !p->error_indicator) // star_etc?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008821 )
8822 {
8823 D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_with_default+ star_etc?"));
8824 _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , a , b );
8825 if (_res == NULL && PyErr_Occurred()) {
8826 p->error_indicator = 1;
8827 D(p->level--);
8828 return NULL;
8829 }
8830 goto done;
8831 }
8832 p->mark = _mark;
8833 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
8834 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default+ star_etc?"));
8835 }
8836 { // star_etc
8837 if (p->error_indicator) {
8838 D(p->level--);
8839 return NULL;
8840 }
8841 D(fprintf(stderr, "%*c> parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_etc"));
8842 StarEtc* a;
8843 if (
8844 (a = star_etc_rule(p)) // star_etc
8845 )
8846 {
8847 D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_etc"));
8848 _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , NULL , a );
8849 if (_res == NULL && PyErr_Occurred()) {
8850 p->error_indicator = 1;
8851 D(p->level--);
8852 return NULL;
8853 }
8854 goto done;
8855 }
8856 p->mark = _mark;
8857 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
8858 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_etc"));
8859 }
8860 _res = NULL;
8861 done:
8862 D(p->level--);
8863 return _res;
8864}
8865
8866// slash_no_default: param_no_default+ '/' ',' | param_no_default+ '/' &')'
Pablo Galindoa5634c42020-09-16 19:42:00 +01008867static asdl_arg_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008868slash_no_default_rule(Parser *p)
8869{
8870 D(p->level++);
8871 if (p->error_indicator) {
8872 D(p->level--);
8873 return NULL;
8874 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01008875 asdl_arg_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008876 int _mark = p->mark;
8877 { // param_no_default+ '/' ','
8878 if (p->error_indicator) {
8879 D(p->level--);
8880 return NULL;
8881 }
8882 D(fprintf(stderr, "%*c> slash_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default+ '/' ','"));
8883 Token * _literal;
8884 Token * _literal_1;
Pablo Galindoa5634c42020-09-16 19:42:00 +01008885 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008886 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08008887 (a = (asdl_arg_seq*)_loop1_76_rule(p)) // param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008888 &&
8889 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
8890 &&
8891 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
8892 )
8893 {
8894 D(fprintf(stderr, "%*c+ slash_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default+ '/' ','"));
8895 _res = a;
8896 if (_res == NULL && PyErr_Occurred()) {
8897 p->error_indicator = 1;
8898 D(p->level--);
8899 return NULL;
8900 }
8901 goto done;
8902 }
8903 p->mark = _mark;
8904 D(fprintf(stderr, "%*c%s slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
8905 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default+ '/' ','"));
8906 }
8907 { // param_no_default+ '/' &')'
8908 if (p->error_indicator) {
8909 D(p->level--);
8910 return NULL;
8911 }
8912 D(fprintf(stderr, "%*c> slash_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default+ '/' &')'"));
8913 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01008914 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008915 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08008916 (a = (asdl_arg_seq*)_loop1_77_rule(p)) // param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008917 &&
8918 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
8919 &&
8920 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
8921 )
8922 {
8923 D(fprintf(stderr, "%*c+ slash_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default+ '/' &')'"));
8924 _res = a;
8925 if (_res == NULL && PyErr_Occurred()) {
8926 p->error_indicator = 1;
8927 D(p->level--);
8928 return NULL;
8929 }
8930 goto done;
8931 }
8932 p->mark = _mark;
8933 D(fprintf(stderr, "%*c%s slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
8934 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default+ '/' &')'"));
8935 }
8936 _res = NULL;
8937 done:
8938 D(p->level--);
8939 return _res;
8940}
8941
8942// slash_with_default:
8943// | param_no_default* param_with_default+ '/' ','
8944// | param_no_default* param_with_default+ '/' &')'
8945static SlashWithDefault*
8946slash_with_default_rule(Parser *p)
8947{
8948 D(p->level++);
8949 if (p->error_indicator) {
8950 D(p->level--);
8951 return NULL;
8952 }
8953 SlashWithDefault* _res = NULL;
8954 int _mark = p->mark;
8955 { // param_no_default* param_with_default+ '/' ','
8956 if (p->error_indicator) {
8957 D(p->level--);
8958 return NULL;
8959 }
8960 D(fprintf(stderr, "%*c> slash_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default* param_with_default+ '/' ','"));
8961 Token * _literal;
8962 Token * _literal_1;
8963 asdl_seq * a;
8964 asdl_seq * b;
8965 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08008966 (a = _loop0_78_rule(p)) // param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008967 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008968 (b = _loop1_79_rule(p)) // param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008969 &&
8970 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
8971 &&
8972 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
8973 )
8974 {
8975 D(fprintf(stderr, "%*c+ slash_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default* param_with_default+ '/' ','"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01008976 _res = _PyPegen_slash_with_default ( p , ( asdl_arg_seq * ) a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008977 if (_res == NULL && PyErr_Occurred()) {
8978 p->error_indicator = 1;
8979 D(p->level--);
8980 return NULL;
8981 }
8982 goto done;
8983 }
8984 p->mark = _mark;
8985 D(fprintf(stderr, "%*c%s slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
8986 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default* param_with_default+ '/' ','"));
8987 }
8988 { // param_no_default* param_with_default+ '/' &')'
8989 if (p->error_indicator) {
8990 D(p->level--);
8991 return NULL;
8992 }
8993 D(fprintf(stderr, "%*c> slash_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default* param_with_default+ '/' &')'"));
8994 Token * _literal;
8995 asdl_seq * a;
8996 asdl_seq * b;
8997 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08008998 (a = _loop0_80_rule(p)) // param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008999 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08009000 (b = _loop1_81_rule(p)) // param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009001 &&
9002 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
9003 &&
9004 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
9005 )
9006 {
9007 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 +01009008 _res = _PyPegen_slash_with_default ( p , ( asdl_arg_seq * ) a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009009 if (_res == NULL && PyErr_Occurred()) {
9010 p->error_indicator = 1;
9011 D(p->level--);
9012 return NULL;
9013 }
9014 goto done;
9015 }
9016 p->mark = _mark;
9017 D(fprintf(stderr, "%*c%s slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
9018 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default* param_with_default+ '/' &')'"));
9019 }
9020 _res = NULL;
9021 done:
9022 D(p->level--);
9023 return _res;
9024}
9025
9026// star_etc:
9027// | '*' param_no_default param_maybe_default* kwds?
9028// | '*' ',' param_maybe_default+ kwds?
9029// | kwds
9030// | invalid_star_etc
9031static StarEtc*
9032star_etc_rule(Parser *p)
9033{
9034 D(p->level++);
9035 if (p->error_indicator) {
9036 D(p->level--);
9037 return NULL;
9038 }
9039 StarEtc* _res = NULL;
9040 int _mark = p->mark;
9041 { // '*' param_no_default param_maybe_default* kwds?
9042 if (p->error_indicator) {
9043 D(p->level--);
9044 return NULL;
9045 }
9046 D(fprintf(stderr, "%*c> star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' param_no_default param_maybe_default* kwds?"));
9047 Token * _literal;
9048 arg_ty a;
9049 asdl_seq * b;
9050 void *c;
9051 if (
9052 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
9053 &&
9054 (a = param_no_default_rule(p)) // param_no_default
9055 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08009056 (b = _loop0_82_rule(p)) // param_maybe_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009057 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02009058 (c = kwds_rule(p), !p->error_indicator) // kwds?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009059 )
9060 {
9061 D(fprintf(stderr, "%*c+ star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' param_no_default param_maybe_default* kwds?"));
9062 _res = _PyPegen_star_etc ( p , a , b , c );
9063 if (_res == NULL && PyErr_Occurred()) {
9064 p->error_indicator = 1;
9065 D(p->level--);
9066 return NULL;
9067 }
9068 goto done;
9069 }
9070 p->mark = _mark;
9071 D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
9072 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' param_no_default param_maybe_default* kwds?"));
9073 }
9074 { // '*' ',' param_maybe_default+ kwds?
9075 if (p->error_indicator) {
9076 D(p->level--);
9077 return NULL;
9078 }
9079 D(fprintf(stderr, "%*c> star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' ',' param_maybe_default+ kwds?"));
9080 Token * _literal;
9081 Token * _literal_1;
9082 asdl_seq * b;
9083 void *c;
9084 if (
9085 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
9086 &&
9087 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
9088 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08009089 (b = _loop1_83_rule(p)) // param_maybe_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009090 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02009091 (c = kwds_rule(p), !p->error_indicator) // kwds?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009092 )
9093 {
9094 D(fprintf(stderr, "%*c+ star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' ',' param_maybe_default+ kwds?"));
9095 _res = _PyPegen_star_etc ( p , NULL , b , c );
9096 if (_res == NULL && PyErr_Occurred()) {
9097 p->error_indicator = 1;
9098 D(p->level--);
9099 return NULL;
9100 }
9101 goto done;
9102 }
9103 p->mark = _mark;
9104 D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
9105 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' ',' param_maybe_default+ kwds?"));
9106 }
9107 { // kwds
9108 if (p->error_indicator) {
9109 D(p->level--);
9110 return NULL;
9111 }
9112 D(fprintf(stderr, "%*c> star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwds"));
9113 arg_ty a;
9114 if (
9115 (a = kwds_rule(p)) // kwds
9116 )
9117 {
9118 D(fprintf(stderr, "%*c+ star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwds"));
9119 _res = _PyPegen_star_etc ( p , NULL , NULL , a );
9120 if (_res == NULL && PyErr_Occurred()) {
9121 p->error_indicator = 1;
9122 D(p->level--);
9123 return NULL;
9124 }
9125 goto done;
9126 }
9127 p->mark = _mark;
9128 D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
9129 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwds"));
9130 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02009131 if (p->call_invalid_rules) { // invalid_star_etc
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009132 if (p->error_indicator) {
9133 D(p->level--);
9134 return NULL;
9135 }
9136 D(fprintf(stderr, "%*c> star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_star_etc"));
9137 void *invalid_star_etc_var;
9138 if (
9139 (invalid_star_etc_var = invalid_star_etc_rule(p)) // invalid_star_etc
9140 )
9141 {
9142 D(fprintf(stderr, "%*c+ star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_star_etc"));
9143 _res = invalid_star_etc_var;
9144 goto done;
9145 }
9146 p->mark = _mark;
9147 D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
9148 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_star_etc"));
9149 }
9150 _res = NULL;
9151 done:
9152 D(p->level--);
9153 return _res;
9154}
9155
9156// kwds: '**' param_no_default
9157static arg_ty
9158kwds_rule(Parser *p)
9159{
9160 D(p->level++);
9161 if (p->error_indicator) {
9162 D(p->level--);
9163 return NULL;
9164 }
9165 arg_ty _res = NULL;
9166 int _mark = p->mark;
9167 { // '**' param_no_default
9168 if (p->error_indicator) {
9169 D(p->level--);
9170 return NULL;
9171 }
9172 D(fprintf(stderr, "%*c> kwds[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' param_no_default"));
9173 Token * _literal;
9174 arg_ty a;
9175 if (
9176 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
9177 &&
9178 (a = param_no_default_rule(p)) // param_no_default
9179 )
9180 {
9181 D(fprintf(stderr, "%*c+ kwds[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' param_no_default"));
9182 _res = a;
9183 if (_res == NULL && PyErr_Occurred()) {
9184 p->error_indicator = 1;
9185 D(p->level--);
9186 return NULL;
9187 }
9188 goto done;
9189 }
9190 p->mark = _mark;
9191 D(fprintf(stderr, "%*c%s kwds[%d-%d]: %s failed!\n", p->level, ' ',
9192 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' param_no_default"));
9193 }
9194 _res = NULL;
9195 done:
9196 D(p->level--);
9197 return _res;
9198}
9199
9200// param_no_default: param ',' TYPE_COMMENT? | param TYPE_COMMENT? &')'
9201static arg_ty
9202param_no_default_rule(Parser *p)
9203{
9204 D(p->level++);
9205 if (p->error_indicator) {
9206 D(p->level--);
9207 return NULL;
9208 }
9209 arg_ty _res = NULL;
9210 int _mark = p->mark;
9211 { // param ',' TYPE_COMMENT?
9212 if (p->error_indicator) {
9213 D(p->level--);
9214 return NULL;
9215 }
9216 D(fprintf(stderr, "%*c> param_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param ',' TYPE_COMMENT?"));
9217 Token * _literal;
9218 arg_ty a;
9219 void *tc;
9220 if (
9221 (a = param_rule(p)) // param
9222 &&
9223 (_literal = _PyPegen_expect_token(p, 12)) // token=','
9224 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02009225 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), !p->error_indicator) // TYPE_COMMENT?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009226 )
9227 {
9228 D(fprintf(stderr, "%*c+ param_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param ',' TYPE_COMMENT?"));
9229 _res = _PyPegen_add_type_comment_to_arg ( p , a , tc );
9230 if (_res == NULL && PyErr_Occurred()) {
9231 p->error_indicator = 1;
9232 D(p->level--);
9233 return NULL;
9234 }
9235 goto done;
9236 }
9237 p->mark = _mark;
9238 D(fprintf(stderr, "%*c%s param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
9239 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param ',' TYPE_COMMENT?"));
9240 }
9241 { // param TYPE_COMMENT? &')'
9242 if (p->error_indicator) {
9243 D(p->level--);
9244 return NULL;
9245 }
9246 D(fprintf(stderr, "%*c> param_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param TYPE_COMMENT? &')'"));
9247 arg_ty a;
9248 void *tc;
9249 if (
9250 (a = param_rule(p)) // param
9251 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02009252 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), !p->error_indicator) // TYPE_COMMENT?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009253 &&
9254 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
9255 )
9256 {
9257 D(fprintf(stderr, "%*c+ param_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param TYPE_COMMENT? &')'"));
9258 _res = _PyPegen_add_type_comment_to_arg ( p , a , tc );
9259 if (_res == NULL && PyErr_Occurred()) {
9260 p->error_indicator = 1;
9261 D(p->level--);
9262 return NULL;
9263 }
9264 goto done;
9265 }
9266 p->mark = _mark;
9267 D(fprintf(stderr, "%*c%s param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
9268 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param TYPE_COMMENT? &')'"));
9269 }
9270 _res = NULL;
9271 done:
9272 D(p->level--);
9273 return _res;
9274}
9275
9276// param_with_default: param default ',' TYPE_COMMENT? | param default TYPE_COMMENT? &')'
9277static NameDefaultPair*
9278param_with_default_rule(Parser *p)
9279{
9280 D(p->level++);
9281 if (p->error_indicator) {
9282 D(p->level--);
9283 return NULL;
9284 }
9285 NameDefaultPair* _res = NULL;
9286 int _mark = p->mark;
9287 { // param default ',' TYPE_COMMENT?
9288 if (p->error_indicator) {
9289 D(p->level--);
9290 return NULL;
9291 }
9292 D(fprintf(stderr, "%*c> param_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param default ',' TYPE_COMMENT?"));
9293 Token * _literal;
9294 arg_ty a;
9295 expr_ty c;
9296 void *tc;
9297 if (
9298 (a = param_rule(p)) // param
9299 &&
9300 (c = default_rule(p)) // default
9301 &&
9302 (_literal = _PyPegen_expect_token(p, 12)) // token=','
9303 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02009304 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), !p->error_indicator) // TYPE_COMMENT?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009305 )
9306 {
9307 D(fprintf(stderr, "%*c+ param_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param default ',' TYPE_COMMENT?"));
9308 _res = _PyPegen_name_default_pair ( p , a , c , tc );
9309 if (_res == NULL && PyErr_Occurred()) {
9310 p->error_indicator = 1;
9311 D(p->level--);
9312 return NULL;
9313 }
9314 goto done;
9315 }
9316 p->mark = _mark;
9317 D(fprintf(stderr, "%*c%s param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
9318 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default ',' TYPE_COMMENT?"));
9319 }
9320 { // param default TYPE_COMMENT? &')'
9321 if (p->error_indicator) {
9322 D(p->level--);
9323 return NULL;
9324 }
9325 D(fprintf(stderr, "%*c> param_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param default TYPE_COMMENT? &')'"));
9326 arg_ty a;
9327 expr_ty c;
9328 void *tc;
9329 if (
9330 (a = param_rule(p)) // param
9331 &&
9332 (c = default_rule(p)) // default
9333 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02009334 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), !p->error_indicator) // TYPE_COMMENT?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009335 &&
9336 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
9337 )
9338 {
9339 D(fprintf(stderr, "%*c+ param_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param default TYPE_COMMENT? &')'"));
9340 _res = _PyPegen_name_default_pair ( p , a , c , tc );
9341 if (_res == NULL && PyErr_Occurred()) {
9342 p->error_indicator = 1;
9343 D(p->level--);
9344 return NULL;
9345 }
9346 goto done;
9347 }
9348 p->mark = _mark;
9349 D(fprintf(stderr, "%*c%s param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
9350 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default TYPE_COMMENT? &')'"));
9351 }
9352 _res = NULL;
9353 done:
9354 D(p->level--);
9355 return _res;
9356}
9357
9358// param_maybe_default:
9359// | param default? ',' TYPE_COMMENT?
9360// | param default? TYPE_COMMENT? &')'
9361static NameDefaultPair*
9362param_maybe_default_rule(Parser *p)
9363{
9364 D(p->level++);
9365 if (p->error_indicator) {
9366 D(p->level--);
9367 return NULL;
9368 }
9369 NameDefaultPair* _res = NULL;
9370 int _mark = p->mark;
9371 { // param default? ',' TYPE_COMMENT?
9372 if (p->error_indicator) {
9373 D(p->level--);
9374 return NULL;
9375 }
9376 D(fprintf(stderr, "%*c> param_maybe_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param default? ',' TYPE_COMMENT?"));
9377 Token * _literal;
9378 arg_ty a;
9379 void *c;
9380 void *tc;
9381 if (
9382 (a = param_rule(p)) // param
9383 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02009384 (c = default_rule(p), !p->error_indicator) // default?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009385 &&
9386 (_literal = _PyPegen_expect_token(p, 12)) // token=','
9387 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02009388 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), !p->error_indicator) // TYPE_COMMENT?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009389 )
9390 {
9391 D(fprintf(stderr, "%*c+ param_maybe_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param default? ',' TYPE_COMMENT?"));
9392 _res = _PyPegen_name_default_pair ( p , a , c , tc );
9393 if (_res == NULL && PyErr_Occurred()) {
9394 p->error_indicator = 1;
9395 D(p->level--);
9396 return NULL;
9397 }
9398 goto done;
9399 }
9400 p->mark = _mark;
9401 D(fprintf(stderr, "%*c%s param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
9402 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default? ',' TYPE_COMMENT?"));
9403 }
9404 { // param default? TYPE_COMMENT? &')'
9405 if (p->error_indicator) {
9406 D(p->level--);
9407 return NULL;
9408 }
9409 D(fprintf(stderr, "%*c> param_maybe_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param default? TYPE_COMMENT? &')'"));
9410 arg_ty a;
9411 void *c;
9412 void *tc;
9413 if (
9414 (a = param_rule(p)) // param
9415 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02009416 (c = default_rule(p), !p->error_indicator) // default?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009417 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02009418 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), !p->error_indicator) // TYPE_COMMENT?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009419 &&
9420 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
9421 )
9422 {
9423 D(fprintf(stderr, "%*c+ param_maybe_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param default? TYPE_COMMENT? &')'"));
9424 _res = _PyPegen_name_default_pair ( p , a , c , tc );
9425 if (_res == NULL && PyErr_Occurred()) {
9426 p->error_indicator = 1;
9427 D(p->level--);
9428 return NULL;
9429 }
9430 goto done;
9431 }
9432 p->mark = _mark;
9433 D(fprintf(stderr, "%*c%s param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
9434 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default? TYPE_COMMENT? &')'"));
9435 }
9436 _res = NULL;
9437 done:
9438 D(p->level--);
9439 return _res;
9440}
9441
9442// param: NAME annotation?
9443static arg_ty
9444param_rule(Parser *p)
9445{
9446 D(p->level++);
9447 if (p->error_indicator) {
9448 D(p->level--);
9449 return NULL;
9450 }
9451 arg_ty _res = NULL;
9452 int _mark = p->mark;
9453 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9454 p->error_indicator = 1;
9455 D(p->level--);
9456 return NULL;
9457 }
9458 int _start_lineno = p->tokens[_mark]->lineno;
9459 UNUSED(_start_lineno); // Only used by EXTRA macro
9460 int _start_col_offset = p->tokens[_mark]->col_offset;
9461 UNUSED(_start_col_offset); // Only used by EXTRA macro
9462 { // NAME annotation?
9463 if (p->error_indicator) {
9464 D(p->level--);
9465 return NULL;
9466 }
9467 D(fprintf(stderr, "%*c> param[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME annotation?"));
9468 expr_ty a;
9469 void *b;
9470 if (
9471 (a = _PyPegen_name_token(p)) // NAME
9472 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02009473 (b = annotation_rule(p), !p->error_indicator) // annotation?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009474 )
9475 {
9476 D(fprintf(stderr, "%*c+ param[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME annotation?"));
9477 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9478 if (_token == NULL) {
9479 D(p->level--);
9480 return NULL;
9481 }
9482 int _end_lineno = _token->end_lineno;
9483 UNUSED(_end_lineno); // Only used by EXTRA macro
9484 int _end_col_offset = _token->end_col_offset;
9485 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02009486 _res = _PyAST_arg ( a -> v . Name . id , b , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009487 if (_res == NULL && PyErr_Occurred()) {
9488 p->error_indicator = 1;
9489 D(p->level--);
9490 return NULL;
9491 }
9492 goto done;
9493 }
9494 p->mark = _mark;
9495 D(fprintf(stderr, "%*c%s param[%d-%d]: %s failed!\n", p->level, ' ',
9496 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME annotation?"));
9497 }
9498 _res = NULL;
9499 done:
9500 D(p->level--);
9501 return _res;
9502}
9503
9504// annotation: ':' expression
9505static expr_ty
9506annotation_rule(Parser *p)
9507{
9508 D(p->level++);
9509 if (p->error_indicator) {
9510 D(p->level--);
9511 return NULL;
9512 }
9513 expr_ty _res = NULL;
9514 int _mark = p->mark;
9515 { // ':' expression
9516 if (p->error_indicator) {
9517 D(p->level--);
9518 return NULL;
9519 }
9520 D(fprintf(stderr, "%*c> annotation[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':' expression"));
9521 Token * _literal;
9522 expr_ty a;
9523 if (
9524 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
9525 &&
9526 (a = expression_rule(p)) // expression
9527 )
9528 {
9529 D(fprintf(stderr, "%*c+ annotation[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':' expression"));
9530 _res = a;
9531 if (_res == NULL && PyErr_Occurred()) {
9532 p->error_indicator = 1;
9533 D(p->level--);
9534 return NULL;
9535 }
9536 goto done;
9537 }
9538 p->mark = _mark;
9539 D(fprintf(stderr, "%*c%s annotation[%d-%d]: %s failed!\n", p->level, ' ',
9540 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':' expression"));
9541 }
9542 _res = NULL;
9543 done:
9544 D(p->level--);
9545 return _res;
9546}
9547
9548// default: '=' expression
9549static expr_ty
9550default_rule(Parser *p)
9551{
9552 D(p->level++);
9553 if (p->error_indicator) {
9554 D(p->level--);
9555 return NULL;
9556 }
9557 expr_ty _res = NULL;
9558 int _mark = p->mark;
9559 { // '=' expression
9560 if (p->error_indicator) {
9561 D(p->level--);
9562 return NULL;
9563 }
9564 D(fprintf(stderr, "%*c> default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'=' expression"));
9565 Token * _literal;
9566 expr_ty a;
9567 if (
9568 (_literal = _PyPegen_expect_token(p, 22)) // token='='
9569 &&
9570 (a = expression_rule(p)) // expression
9571 )
9572 {
9573 D(fprintf(stderr, "%*c+ default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'=' expression"));
9574 _res = a;
9575 if (_res == NULL && PyErr_Occurred()) {
9576 p->error_indicator = 1;
9577 D(p->level--);
9578 return NULL;
9579 }
9580 goto done;
9581 }
9582 p->mark = _mark;
9583 D(fprintf(stderr, "%*c%s default[%d-%d]: %s failed!\n", p->level, ' ',
9584 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'=' expression"));
9585 }
9586 _res = NULL;
9587 done:
9588 D(p->level--);
9589 return _res;
9590}
9591
9592// decorators: (('@' named_expression NEWLINE))+
Pablo Galindoa5634c42020-09-16 19:42:00 +01009593static asdl_expr_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009594decorators_rule(Parser *p)
9595{
9596 D(p->level++);
9597 if (p->error_indicator) {
9598 D(p->level--);
9599 return NULL;
9600 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01009601 asdl_expr_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009602 int _mark = p->mark;
9603 { // (('@' named_expression NEWLINE))+
9604 if (p->error_indicator) {
9605 D(p->level--);
9606 return NULL;
9607 }
9608 D(fprintf(stderr, "%*c> decorators[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(('@' named_expression NEWLINE))+"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01009609 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009610 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08009611 (a = (asdl_expr_seq*)_loop1_84_rule(p)) // (('@' named_expression NEWLINE))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009612 )
9613 {
9614 D(fprintf(stderr, "%*c+ decorators[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(('@' named_expression NEWLINE))+"));
9615 _res = a;
9616 if (_res == NULL && PyErr_Occurred()) {
9617 p->error_indicator = 1;
9618 D(p->level--);
9619 return NULL;
9620 }
9621 goto done;
9622 }
9623 p->mark = _mark;
9624 D(fprintf(stderr, "%*c%s decorators[%d-%d]: %s failed!\n", p->level, ' ',
9625 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(('@' named_expression NEWLINE))+"));
9626 }
9627 _res = NULL;
9628 done:
9629 D(p->level--);
9630 return _res;
9631}
9632
9633// class_def: decorators class_def_raw | class_def_raw
9634static stmt_ty
9635class_def_rule(Parser *p)
9636{
9637 D(p->level++);
9638 if (p->error_indicator) {
9639 D(p->level--);
9640 return NULL;
9641 }
9642 stmt_ty _res = NULL;
9643 int _mark = p->mark;
9644 { // decorators class_def_raw
9645 if (p->error_indicator) {
9646 D(p->level--);
9647 return NULL;
9648 }
9649 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 +01009650 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009651 stmt_ty b;
9652 if (
9653 (a = decorators_rule(p)) // decorators
9654 &&
9655 (b = class_def_raw_rule(p)) // class_def_raw
9656 )
9657 {
9658 D(fprintf(stderr, "%*c+ class_def[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "decorators class_def_raw"));
9659 _res = _PyPegen_class_def_decorators ( p , a , b );
9660 if (_res == NULL && PyErr_Occurred()) {
9661 p->error_indicator = 1;
9662 D(p->level--);
9663 return NULL;
9664 }
9665 goto done;
9666 }
9667 p->mark = _mark;
9668 D(fprintf(stderr, "%*c%s class_def[%d-%d]: %s failed!\n", p->level, ' ',
9669 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "decorators class_def_raw"));
9670 }
9671 { // class_def_raw
9672 if (p->error_indicator) {
9673 D(p->level--);
9674 return NULL;
9675 }
9676 D(fprintf(stderr, "%*c> class_def[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "class_def_raw"));
9677 stmt_ty class_def_raw_var;
9678 if (
9679 (class_def_raw_var = class_def_raw_rule(p)) // class_def_raw
9680 )
9681 {
9682 D(fprintf(stderr, "%*c+ class_def[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "class_def_raw"));
9683 _res = class_def_raw_var;
9684 goto done;
9685 }
9686 p->mark = _mark;
9687 D(fprintf(stderr, "%*c%s class_def[%d-%d]: %s failed!\n", p->level, ' ',
9688 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "class_def_raw"));
9689 }
9690 _res = NULL;
9691 done:
9692 D(p->level--);
9693 return _res;
9694}
9695
Pablo Galindo56c95df2021-04-21 15:28:21 +01009696// class_def_raw: invalid_class_def_raw | 'class' NAME ['(' arguments? ')'] &&':' block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009697static stmt_ty
9698class_def_raw_rule(Parser *p)
9699{
9700 D(p->level++);
9701 if (p->error_indicator) {
9702 D(p->level--);
9703 return NULL;
9704 }
9705 stmt_ty _res = NULL;
9706 int _mark = p->mark;
9707 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9708 p->error_indicator = 1;
9709 D(p->level--);
9710 return NULL;
9711 }
9712 int _start_lineno = p->tokens[_mark]->lineno;
9713 UNUSED(_start_lineno); // Only used by EXTRA macro
9714 int _start_col_offset = p->tokens[_mark]->col_offset;
9715 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo56c95df2021-04-21 15:28:21 +01009716 if (p->call_invalid_rules) { // invalid_class_def_raw
9717 if (p->error_indicator) {
9718 D(p->level--);
9719 return NULL;
9720 }
9721 D(fprintf(stderr, "%*c> class_def_raw[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_class_def_raw"));
9722 void *invalid_class_def_raw_var;
9723 if (
9724 (invalid_class_def_raw_var = invalid_class_def_raw_rule(p)) // invalid_class_def_raw
9725 )
9726 {
9727 D(fprintf(stderr, "%*c+ class_def_raw[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_class_def_raw"));
9728 _res = invalid_class_def_raw_var;
9729 goto done;
9730 }
9731 p->mark = _mark;
9732 D(fprintf(stderr, "%*c%s class_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
9733 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_class_def_raw"));
9734 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00009735 { // 'class' NAME ['(' arguments? ')'] &&':' block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009736 if (p->error_indicator) {
9737 D(p->level--);
9738 return NULL;
9739 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00009740 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 +01009741 Token * _keyword;
9742 Token * _literal;
9743 expr_ty a;
9744 void *b;
Pablo Galindoa5634c42020-09-16 19:42:00 +01009745 asdl_stmt_seq* c;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009746 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08009747 (_keyword = _PyPegen_expect_token(p, 527)) // token='class'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009748 &&
9749 (a = _PyPegen_name_token(p)) // NAME
9750 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02009751 (b = _tmp_85_rule(p), !p->error_indicator) // ['(' arguments? ')']
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009752 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00009753 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009754 &&
9755 (c = block_rule(p)) // block
9756 )
9757 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00009758 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 +01009759 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9760 if (_token == NULL) {
9761 D(p->level--);
9762 return NULL;
9763 }
9764 int _end_lineno = _token->end_lineno;
9765 UNUSED(_end_lineno); // Only used by EXTRA macro
9766 int _end_col_offset = _token->end_col_offset;
9767 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02009768 _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 +01009769 if (_res == NULL && PyErr_Occurred()) {
9770 p->error_indicator = 1;
9771 D(p->level--);
9772 return NULL;
9773 }
9774 goto done;
9775 }
9776 p->mark = _mark;
9777 D(fprintf(stderr, "%*c%s class_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00009778 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'class' NAME ['(' arguments? ')'] &&':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009779 }
9780 _res = NULL;
9781 done:
9782 D(p->level--);
9783 return _res;
9784}
9785
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00009786// block: NEWLINE INDENT statements DEDENT | simple_stmts | invalid_block
Pablo Galindoa5634c42020-09-16 19:42:00 +01009787static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009788block_rule(Parser *p)
9789{
9790 D(p->level++);
9791 if (p->error_indicator) {
9792 D(p->level--);
9793 return NULL;
9794 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01009795 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009796 if (_PyPegen_is_memoized(p, block_type, &_res)) {
9797 D(p->level--);
9798 return _res;
9799 }
9800 int _mark = p->mark;
9801 { // NEWLINE INDENT statements DEDENT
9802 if (p->error_indicator) {
9803 D(p->level--);
9804 return NULL;
9805 }
9806 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 +01009807 asdl_stmt_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009808 Token * dedent_var;
9809 Token * indent_var;
9810 Token * newline_var;
9811 if (
9812 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
9813 &&
9814 (indent_var = _PyPegen_expect_token(p, INDENT)) // token='INDENT'
9815 &&
9816 (a = statements_rule(p)) // statements
9817 &&
9818 (dedent_var = _PyPegen_expect_token(p, DEDENT)) // token='DEDENT'
9819 )
9820 {
9821 D(fprintf(stderr, "%*c+ block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE INDENT statements DEDENT"));
9822 _res = a;
9823 if (_res == NULL && PyErr_Occurred()) {
9824 p->error_indicator = 1;
9825 D(p->level--);
9826 return NULL;
9827 }
9828 goto done;
9829 }
9830 p->mark = _mark;
9831 D(fprintf(stderr, "%*c%s block[%d-%d]: %s failed!\n", p->level, ' ',
9832 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE INDENT statements DEDENT"));
9833 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00009834 { // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009835 if (p->error_indicator) {
9836 D(p->level--);
9837 return NULL;
9838 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00009839 D(fprintf(stderr, "%*c> block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
9840 asdl_stmt_seq* simple_stmts_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009841 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00009842 (simple_stmts_var = simple_stmts_rule(p)) // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009843 )
9844 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00009845 D(fprintf(stderr, "%*c+ block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
9846 _res = simple_stmts_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009847 goto done;
9848 }
9849 p->mark = _mark;
9850 D(fprintf(stderr, "%*c%s block[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00009851 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmts"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009852 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02009853 if (p->call_invalid_rules) { // invalid_block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009854 if (p->error_indicator) {
9855 D(p->level--);
9856 return NULL;
9857 }
9858 D(fprintf(stderr, "%*c> block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_block"));
9859 void *invalid_block_var;
9860 if (
9861 (invalid_block_var = invalid_block_rule(p)) // invalid_block
9862 )
9863 {
9864 D(fprintf(stderr, "%*c+ block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_block"));
9865 _res = invalid_block_var;
9866 goto done;
9867 }
9868 p->mark = _mark;
9869 D(fprintf(stderr, "%*c%s block[%d-%d]: %s failed!\n", p->level, ' ',
9870 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_block"));
9871 }
9872 _res = NULL;
9873 done:
9874 _PyPegen_insert_memo(p, _mark, block_type, _res);
9875 D(p->level--);
9876 return _res;
9877}
9878
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009879// star_expressions:
9880// | star_expression ((',' star_expression))+ ','?
9881// | star_expression ','
9882// | star_expression
9883static expr_ty
9884star_expressions_rule(Parser *p)
9885{
9886 D(p->level++);
9887 if (p->error_indicator) {
9888 D(p->level--);
9889 return NULL;
9890 }
9891 expr_ty _res = NULL;
9892 int _mark = p->mark;
9893 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9894 p->error_indicator = 1;
9895 D(p->level--);
9896 return NULL;
9897 }
9898 int _start_lineno = p->tokens[_mark]->lineno;
9899 UNUSED(_start_lineno); // Only used by EXTRA macro
9900 int _start_col_offset = p->tokens[_mark]->col_offset;
9901 UNUSED(_start_col_offset); // Only used by EXTRA macro
9902 { // star_expression ((',' star_expression))+ ','?
9903 if (p->error_indicator) {
9904 D(p->level--);
9905 return NULL;
9906 }
9907 D(fprintf(stderr, "%*c> star_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expression ((',' star_expression))+ ','?"));
9908 void *_opt_var;
9909 UNUSED(_opt_var); // Silence compiler warnings
9910 expr_ty a;
9911 asdl_seq * b;
9912 if (
9913 (a = star_expression_rule(p)) // star_expression
9914 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08009915 (b = _loop1_86_rule(p)) // ((',' star_expression))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009916 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02009917 (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009918 )
9919 {
9920 D(fprintf(stderr, "%*c+ star_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expression ((',' star_expression))+ ','?"));
9921 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9922 if (_token == NULL) {
9923 D(p->level--);
9924 return NULL;
9925 }
9926 int _end_lineno = _token->end_lineno;
9927 UNUSED(_end_lineno); // Only used by EXTRA macro
9928 int _end_col_offset = _token->end_col_offset;
9929 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02009930 _res = _PyAST_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , a , b ) ) , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009931 if (_res == NULL && PyErr_Occurred()) {
9932 p->error_indicator = 1;
9933 D(p->level--);
9934 return NULL;
9935 }
9936 goto done;
9937 }
9938 p->mark = _mark;
9939 D(fprintf(stderr, "%*c%s star_expressions[%d-%d]: %s failed!\n", p->level, ' ',
9940 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expression ((',' star_expression))+ ','?"));
9941 }
9942 { // star_expression ','
9943 if (p->error_indicator) {
9944 D(p->level--);
9945 return NULL;
9946 }
9947 D(fprintf(stderr, "%*c> star_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expression ','"));
9948 Token * _literal;
9949 expr_ty a;
9950 if (
9951 (a = star_expression_rule(p)) // star_expression
9952 &&
9953 (_literal = _PyPegen_expect_token(p, 12)) // token=','
9954 )
9955 {
9956 D(fprintf(stderr, "%*c+ star_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expression ','"));
9957 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9958 if (_token == NULL) {
9959 D(p->level--);
9960 return NULL;
9961 }
9962 int _end_lineno = _token->end_lineno;
9963 UNUSED(_end_lineno); // Only used by EXTRA macro
9964 int _end_col_offset = _token->end_col_offset;
9965 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02009966 _res = _PyAST_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_singleton_seq ( p , a ) ) , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009967 if (_res == NULL && PyErr_Occurred()) {
9968 p->error_indicator = 1;
9969 D(p->level--);
9970 return NULL;
9971 }
9972 goto done;
9973 }
9974 p->mark = _mark;
9975 D(fprintf(stderr, "%*c%s star_expressions[%d-%d]: %s failed!\n", p->level, ' ',
9976 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expression ','"));
9977 }
9978 { // star_expression
9979 if (p->error_indicator) {
9980 D(p->level--);
9981 return NULL;
9982 }
9983 D(fprintf(stderr, "%*c> star_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expression"));
9984 expr_ty star_expression_var;
9985 if (
9986 (star_expression_var = star_expression_rule(p)) // star_expression
9987 )
9988 {
9989 D(fprintf(stderr, "%*c+ star_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expression"));
9990 _res = star_expression_var;
9991 goto done;
9992 }
9993 p->mark = _mark;
9994 D(fprintf(stderr, "%*c%s star_expressions[%d-%d]: %s failed!\n", p->level, ' ',
9995 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expression"));
9996 }
9997 _res = NULL;
9998 done:
9999 D(p->level--);
10000 return _res;
10001}
10002
10003// star_expression: '*' bitwise_or | expression
10004static expr_ty
10005star_expression_rule(Parser *p)
10006{
10007 D(p->level++);
10008 if (p->error_indicator) {
10009 D(p->level--);
10010 return NULL;
10011 }
10012 expr_ty _res = NULL;
10013 if (_PyPegen_is_memoized(p, star_expression_type, &_res)) {
10014 D(p->level--);
10015 return _res;
10016 }
10017 int _mark = p->mark;
10018 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10019 p->error_indicator = 1;
10020 D(p->level--);
10021 return NULL;
10022 }
10023 int _start_lineno = p->tokens[_mark]->lineno;
10024 UNUSED(_start_lineno); // Only used by EXTRA macro
10025 int _start_col_offset = p->tokens[_mark]->col_offset;
10026 UNUSED(_start_col_offset); // Only used by EXTRA macro
10027 { // '*' bitwise_or
10028 if (p->error_indicator) {
10029 D(p->level--);
10030 return NULL;
10031 }
10032 D(fprintf(stderr, "%*c> star_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' bitwise_or"));
10033 Token * _literal;
10034 expr_ty a;
10035 if (
10036 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
10037 &&
10038 (a = bitwise_or_rule(p)) // bitwise_or
10039 )
10040 {
10041 D(fprintf(stderr, "%*c+ star_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' bitwise_or"));
10042 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10043 if (_token == NULL) {
10044 D(p->level--);
10045 return NULL;
10046 }
10047 int _end_lineno = _token->end_lineno;
10048 UNUSED(_end_lineno); // Only used by EXTRA macro
10049 int _end_col_offset = _token->end_col_offset;
10050 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020010051 _res = _PyAST_Starred ( a , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010052 if (_res == NULL && PyErr_Occurred()) {
10053 p->error_indicator = 1;
10054 D(p->level--);
10055 return NULL;
10056 }
10057 goto done;
10058 }
10059 p->mark = _mark;
10060 D(fprintf(stderr, "%*c%s star_expression[%d-%d]: %s failed!\n", p->level, ' ',
10061 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' bitwise_or"));
10062 }
10063 { // expression
10064 if (p->error_indicator) {
10065 D(p->level--);
10066 return NULL;
10067 }
10068 D(fprintf(stderr, "%*c> star_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression"));
10069 expr_ty expression_var;
10070 if (
10071 (expression_var = expression_rule(p)) // expression
10072 )
10073 {
10074 D(fprintf(stderr, "%*c+ star_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression"));
10075 _res = expression_var;
10076 goto done;
10077 }
10078 p->mark = _mark;
10079 D(fprintf(stderr, "%*c%s star_expression[%d-%d]: %s failed!\n", p->level, ' ',
10080 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression"));
10081 }
10082 _res = NULL;
10083 done:
10084 _PyPegen_insert_memo(p, _mark, star_expression_type, _res);
10085 D(p->level--);
10086 return _res;
10087}
10088
10089// star_named_expressions: ','.star_named_expression+ ','?
Pablo Galindoa5634c42020-09-16 19:42:00 +010010090static asdl_expr_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010091star_named_expressions_rule(Parser *p)
10092{
10093 D(p->level++);
10094 if (p->error_indicator) {
10095 D(p->level--);
10096 return NULL;
10097 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010010098 asdl_expr_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010099 int _mark = p->mark;
10100 { // ','.star_named_expression+ ','?
10101 if (p->error_indicator) {
10102 D(p->level--);
10103 return NULL;
10104 }
10105 D(fprintf(stderr, "%*c> star_named_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.star_named_expression+ ','?"));
10106 void *_opt_var;
10107 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +010010108 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010109 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080010110 (a = (asdl_expr_seq*)_gather_87_rule(p)) // ','.star_named_expression+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010111 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +020010112 (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010113 )
10114 {
10115 D(fprintf(stderr, "%*c+ star_named_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.star_named_expression+ ','?"));
10116 _res = a;
10117 if (_res == NULL && PyErr_Occurred()) {
10118 p->error_indicator = 1;
10119 D(p->level--);
10120 return NULL;
10121 }
10122 goto done;
10123 }
10124 p->mark = _mark;
10125 D(fprintf(stderr, "%*c%s star_named_expressions[%d-%d]: %s failed!\n", p->level, ' ',
10126 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.star_named_expression+ ','?"));
10127 }
10128 _res = NULL;
10129 done:
10130 D(p->level--);
10131 return _res;
10132}
10133
10134// star_named_expression: '*' bitwise_or | named_expression
10135static expr_ty
10136star_named_expression_rule(Parser *p)
10137{
10138 D(p->level++);
10139 if (p->error_indicator) {
10140 D(p->level--);
10141 return NULL;
10142 }
10143 expr_ty _res = NULL;
10144 int _mark = p->mark;
10145 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10146 p->error_indicator = 1;
10147 D(p->level--);
10148 return NULL;
10149 }
10150 int _start_lineno = p->tokens[_mark]->lineno;
10151 UNUSED(_start_lineno); // Only used by EXTRA macro
10152 int _start_col_offset = p->tokens[_mark]->col_offset;
10153 UNUSED(_start_col_offset); // Only used by EXTRA macro
10154 { // '*' bitwise_or
10155 if (p->error_indicator) {
10156 D(p->level--);
10157 return NULL;
10158 }
10159 D(fprintf(stderr, "%*c> star_named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' bitwise_or"));
10160 Token * _literal;
10161 expr_ty a;
10162 if (
10163 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
10164 &&
10165 (a = bitwise_or_rule(p)) // bitwise_or
10166 )
10167 {
10168 D(fprintf(stderr, "%*c+ star_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' bitwise_or"));
10169 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10170 if (_token == NULL) {
10171 D(p->level--);
10172 return NULL;
10173 }
10174 int _end_lineno = _token->end_lineno;
10175 UNUSED(_end_lineno); // Only used by EXTRA macro
10176 int _end_col_offset = _token->end_col_offset;
10177 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020010178 _res = _PyAST_Starred ( a , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010179 if (_res == NULL && PyErr_Occurred()) {
10180 p->error_indicator = 1;
10181 D(p->level--);
10182 return NULL;
10183 }
10184 goto done;
10185 }
10186 p->mark = _mark;
10187 D(fprintf(stderr, "%*c%s star_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
10188 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' bitwise_or"));
10189 }
10190 { // named_expression
10191 if (p->error_indicator) {
10192 D(p->level--);
10193 return NULL;
10194 }
10195 D(fprintf(stderr, "%*c> star_named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression"));
10196 expr_ty named_expression_var;
10197 if (
10198 (named_expression_var = named_expression_rule(p)) // named_expression
10199 )
10200 {
10201 D(fprintf(stderr, "%*c+ star_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "named_expression"));
10202 _res = named_expression_var;
10203 goto done;
10204 }
10205 p->mark = _mark;
10206 D(fprintf(stderr, "%*c%s star_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
10207 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression"));
10208 }
10209 _res = NULL;
10210 done:
10211 D(p->level--);
10212 return _res;
10213}
10214
Pablo Galindo Salgado0e34a592021-11-04 23:19:27 +000010215// assignment_expression: NAME ':=' ~ expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010216static expr_ty
Pablo Galindo Salgado0e34a592021-11-04 23:19:27 +000010217assignment_expression_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010218{
10219 D(p->level++);
10220 if (p->error_indicator) {
10221 D(p->level--);
10222 return NULL;
10223 }
10224 expr_ty _res = NULL;
10225 int _mark = p->mark;
10226 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10227 p->error_indicator = 1;
10228 D(p->level--);
10229 return NULL;
10230 }
10231 int _start_lineno = p->tokens[_mark]->lineno;
10232 UNUSED(_start_lineno); // Only used by EXTRA macro
10233 int _start_col_offset = p->tokens[_mark]->col_offset;
10234 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030010235 { // NAME ':=' ~ expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010236 if (p->error_indicator) {
10237 D(p->level--);
10238 return NULL;
10239 }
Pablo Galindo Salgado0e34a592021-11-04 23:19:27 +000010240 D(fprintf(stderr, "%*c> assignment_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME ':=' ~ expression"));
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030010241 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010242 Token * _literal;
10243 expr_ty a;
10244 expr_ty b;
10245 if (
10246 (a = _PyPegen_name_token(p)) // NAME
10247 &&
10248 (_literal = _PyPegen_expect_token(p, 53)) // token=':='
10249 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030010250 (_cut_var = 1)
10251 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010252 (b = expression_rule(p)) // expression
10253 )
10254 {
Pablo Galindo Salgado0e34a592021-11-04 23:19:27 +000010255 D(fprintf(stderr, "%*c+ assignment_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME ':=' ~ expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010256 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10257 if (_token == NULL) {
10258 D(p->level--);
10259 return NULL;
10260 }
10261 int _end_lineno = _token->end_lineno;
10262 UNUSED(_end_lineno); // Only used by EXTRA macro
10263 int _end_col_offset = _token->end_col_offset;
10264 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020010265 _res = _PyAST_NamedExpr ( CHECK ( expr_ty , _PyPegen_set_expr_context ( p , a , Store ) ) , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010266 if (_res == NULL && PyErr_Occurred()) {
10267 p->error_indicator = 1;
10268 D(p->level--);
10269 return NULL;
10270 }
10271 goto done;
10272 }
10273 p->mark = _mark;
Pablo Galindo Salgado0e34a592021-11-04 23:19:27 +000010274 D(fprintf(stderr, "%*c%s assignment_expression[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030010275 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME ':=' ~ expression"));
10276 if (_cut_var) {
10277 D(p->level--);
10278 return NULL;
10279 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010280 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070010281 _res = NULL;
10282 done:
10283 D(p->level--);
10284 return _res;
10285}
10286
Pablo Galindo Salgado0e34a592021-11-04 23:19:27 +000010287// named_expression: assignment_expression | invalid_named_expression | expression !':='
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070010288static expr_ty
10289named_expression_rule(Parser *p)
10290{
10291 D(p->level++);
10292 if (p->error_indicator) {
10293 D(p->level--);
10294 return NULL;
10295 }
10296 expr_ty _res = NULL;
10297 int _mark = p->mark;
Pablo Galindo Salgado0e34a592021-11-04 23:19:27 +000010298 { // assignment_expression
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070010299 if (p->error_indicator) {
10300 D(p->level--);
10301 return NULL;
10302 }
Pablo Galindo Salgado0e34a592021-11-04 23:19:27 +000010303 D(fprintf(stderr, "%*c> named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "assignment_expression"));
10304 expr_ty assignment_expression_var;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070010305 if (
Pablo Galindo Salgado0e34a592021-11-04 23:19:27 +000010306 (assignment_expression_var = assignment_expression_rule(p)) // assignment_expression
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070010307 )
10308 {
Pablo Galindo Salgado0e34a592021-11-04 23:19:27 +000010309 D(fprintf(stderr, "%*c+ named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "assignment_expression"));
10310 _res = assignment_expression_var;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070010311 goto done;
10312 }
10313 p->mark = _mark;
10314 D(fprintf(stderr, "%*c%s named_expression[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo Salgado0e34a592021-11-04 23:19:27 +000010315 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "assignment_expression"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070010316 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010010317 if (p->call_invalid_rules) { // invalid_named_expression
10318 if (p->error_indicator) {
10319 D(p->level--);
10320 return NULL;
10321 }
10322 D(fprintf(stderr, "%*c> named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_named_expression"));
10323 void *invalid_named_expression_var;
10324 if (
10325 (invalid_named_expression_var = invalid_named_expression_rule(p)) // invalid_named_expression
10326 )
10327 {
10328 D(fprintf(stderr, "%*c+ named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_named_expression"));
10329 _res = invalid_named_expression_var;
10330 goto done;
10331 }
10332 p->mark = _mark;
10333 D(fprintf(stderr, "%*c%s named_expression[%d-%d]: %s failed!\n", p->level, ' ',
10334 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_named_expression"));
10335 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010336 { // expression !':='
10337 if (p->error_indicator) {
10338 D(p->level--);
10339 return NULL;
10340 }
10341 D(fprintf(stderr, "%*c> named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression !':='"));
10342 expr_ty expression_var;
10343 if (
10344 (expression_var = expression_rule(p)) // expression
10345 &&
10346 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 53) // token=':='
10347 )
10348 {
10349 D(fprintf(stderr, "%*c+ named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression !':='"));
10350 _res = expression_var;
10351 goto done;
10352 }
10353 p->mark = _mark;
10354 D(fprintf(stderr, "%*c%s named_expression[%d-%d]: %s failed!\n", p->level, ' ',
10355 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression !':='"));
10356 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010357 _res = NULL;
10358 done:
10359 D(p->level--);
10360 return _res;
10361}
10362
10363// annotated_rhs: yield_expr | star_expressions
10364static expr_ty
10365annotated_rhs_rule(Parser *p)
10366{
10367 D(p->level++);
10368 if (p->error_indicator) {
10369 D(p->level--);
10370 return NULL;
10371 }
10372 expr_ty _res = NULL;
10373 int _mark = p->mark;
10374 { // yield_expr
10375 if (p->error_indicator) {
10376 D(p->level--);
10377 return NULL;
10378 }
10379 D(fprintf(stderr, "%*c> annotated_rhs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
10380 expr_ty yield_expr_var;
10381 if (
10382 (yield_expr_var = yield_expr_rule(p)) // yield_expr
10383 )
10384 {
10385 D(fprintf(stderr, "%*c+ annotated_rhs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
10386 _res = yield_expr_var;
10387 goto done;
10388 }
10389 p->mark = _mark;
10390 D(fprintf(stderr, "%*c%s annotated_rhs[%d-%d]: %s failed!\n", p->level, ' ',
10391 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
10392 }
10393 { // star_expressions
10394 if (p->error_indicator) {
10395 D(p->level--);
10396 return NULL;
10397 }
10398 D(fprintf(stderr, "%*c> annotated_rhs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
10399 expr_ty star_expressions_var;
10400 if (
10401 (star_expressions_var = star_expressions_rule(p)) // star_expressions
10402 )
10403 {
10404 D(fprintf(stderr, "%*c+ annotated_rhs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
10405 _res = star_expressions_var;
10406 goto done;
10407 }
10408 p->mark = _mark;
10409 D(fprintf(stderr, "%*c%s annotated_rhs[%d-%d]: %s failed!\n", p->level, ' ',
10410 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
10411 }
10412 _res = NULL;
10413 done:
10414 D(p->level--);
10415 return _res;
10416}
10417
10418// expressions: expression ((',' expression))+ ','? | expression ',' | expression
10419static expr_ty
10420expressions_rule(Parser *p)
10421{
10422 D(p->level++);
10423 if (p->error_indicator) {
10424 D(p->level--);
10425 return NULL;
10426 }
10427 expr_ty _res = NULL;
10428 int _mark = p->mark;
10429 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10430 p->error_indicator = 1;
10431 D(p->level--);
10432 return NULL;
10433 }
10434 int _start_lineno = p->tokens[_mark]->lineno;
10435 UNUSED(_start_lineno); // Only used by EXTRA macro
10436 int _start_col_offset = p->tokens[_mark]->col_offset;
10437 UNUSED(_start_col_offset); // Only used by EXTRA macro
10438 { // expression ((',' expression))+ ','?
10439 if (p->error_indicator) {
10440 D(p->level--);
10441 return NULL;
10442 }
10443 D(fprintf(stderr, "%*c> expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ((',' expression))+ ','?"));
10444 void *_opt_var;
10445 UNUSED(_opt_var); // Silence compiler warnings
10446 expr_ty a;
10447 asdl_seq * b;
10448 if (
10449 (a = expression_rule(p)) // expression
10450 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080010451 (b = _loop1_89_rule(p)) // ((',' expression))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010452 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +020010453 (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010454 )
10455 {
10456 D(fprintf(stderr, "%*c+ expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ((',' expression))+ ','?"));
10457 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10458 if (_token == NULL) {
10459 D(p->level--);
10460 return NULL;
10461 }
10462 int _end_lineno = _token->end_lineno;
10463 UNUSED(_end_lineno); // Only used by EXTRA macro
10464 int _end_col_offset = _token->end_col_offset;
10465 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020010466 _res = _PyAST_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , a , b ) ) , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010467 if (_res == NULL && PyErr_Occurred()) {
10468 p->error_indicator = 1;
10469 D(p->level--);
10470 return NULL;
10471 }
10472 goto done;
10473 }
10474 p->mark = _mark;
10475 D(fprintf(stderr, "%*c%s expressions[%d-%d]: %s failed!\n", p->level, ' ',
10476 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ((',' expression))+ ','?"));
10477 }
10478 { // expression ','
10479 if (p->error_indicator) {
10480 D(p->level--);
10481 return NULL;
10482 }
10483 D(fprintf(stderr, "%*c> expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ','"));
10484 Token * _literal;
10485 expr_ty a;
10486 if (
10487 (a = expression_rule(p)) // expression
10488 &&
10489 (_literal = _PyPegen_expect_token(p, 12)) // token=','
10490 )
10491 {
10492 D(fprintf(stderr, "%*c+ expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ','"));
10493 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10494 if (_token == NULL) {
10495 D(p->level--);
10496 return NULL;
10497 }
10498 int _end_lineno = _token->end_lineno;
10499 UNUSED(_end_lineno); // Only used by EXTRA macro
10500 int _end_col_offset = _token->end_col_offset;
10501 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020010502 _res = _PyAST_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_singleton_seq ( p , a ) ) , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010503 if (_res == NULL && PyErr_Occurred()) {
10504 p->error_indicator = 1;
10505 D(p->level--);
10506 return NULL;
10507 }
10508 goto done;
10509 }
10510 p->mark = _mark;
10511 D(fprintf(stderr, "%*c%s expressions[%d-%d]: %s failed!\n", p->level, ' ',
10512 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ','"));
10513 }
10514 { // expression
10515 if (p->error_indicator) {
10516 D(p->level--);
10517 return NULL;
10518 }
10519 D(fprintf(stderr, "%*c> expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression"));
10520 expr_ty expression_var;
10521 if (
10522 (expression_var = expression_rule(p)) // expression
10523 )
10524 {
10525 D(fprintf(stderr, "%*c+ expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression"));
10526 _res = expression_var;
10527 goto done;
10528 }
10529 p->mark = _mark;
10530 D(fprintf(stderr, "%*c%s expressions[%d-%d]: %s failed!\n", p->level, ' ',
10531 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression"));
10532 }
10533 _res = NULL;
10534 done:
10535 D(p->level--);
10536 return _res;
10537}
10538
Pablo Galindob2802482021-04-15 21:38:45 +010010539// expression:
10540// | invalid_expression
10541// | disjunction 'if' disjunction 'else' expression
10542// | disjunction
10543// | lambdef
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010544static expr_ty
10545expression_rule(Parser *p)
10546{
10547 D(p->level++);
10548 if (p->error_indicator) {
10549 D(p->level--);
10550 return NULL;
10551 }
10552 expr_ty _res = NULL;
10553 if (_PyPegen_is_memoized(p, expression_type, &_res)) {
10554 D(p->level--);
10555 return _res;
10556 }
10557 int _mark = p->mark;
10558 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10559 p->error_indicator = 1;
10560 D(p->level--);
10561 return NULL;
10562 }
10563 int _start_lineno = p->tokens[_mark]->lineno;
10564 UNUSED(_start_lineno); // Only used by EXTRA macro
10565 int _start_col_offset = p->tokens[_mark]->col_offset;
10566 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindob2802482021-04-15 21:38:45 +010010567 if (p->call_invalid_rules) { // invalid_expression
10568 if (p->error_indicator) {
10569 D(p->level--);
10570 return NULL;
10571 }
10572 D(fprintf(stderr, "%*c> expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_expression"));
10573 void *invalid_expression_var;
10574 if (
10575 (invalid_expression_var = invalid_expression_rule(p)) // invalid_expression
10576 )
10577 {
10578 D(fprintf(stderr, "%*c+ expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_expression"));
10579 _res = invalid_expression_var;
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, "invalid_expression"));
10585 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010586 { // disjunction 'if' disjunction 'else' expression
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 'if' disjunction 'else' expression"));
10592 Token * _keyword;
10593 Token * _keyword_1;
10594 expr_ty a;
10595 expr_ty b;
10596 expr_ty c;
10597 if (
10598 (a = disjunction_rule(p)) // disjunction
10599 &&
10600 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
10601 &&
10602 (b = disjunction_rule(p)) // disjunction
10603 &&
10604 (_keyword_1 = _PyPegen_expect_token(p, 516)) // token='else'
10605 &&
10606 (c = expression_rule(p)) // expression
10607 )
10608 {
10609 D(fprintf(stderr, "%*c+ expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "disjunction 'if' disjunction 'else' expression"));
10610 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10611 if (_token == NULL) {
10612 D(p->level--);
10613 return NULL;
10614 }
10615 int _end_lineno = _token->end_lineno;
10616 UNUSED(_end_lineno); // Only used by EXTRA macro
10617 int _end_col_offset = _token->end_col_offset;
10618 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020010619 _res = _PyAST_IfExp ( b , a , c , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010620 if (_res == NULL && PyErr_Occurred()) {
10621 p->error_indicator = 1;
10622 D(p->level--);
10623 return NULL;
10624 }
10625 goto done;
10626 }
10627 p->mark = _mark;
10628 D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ',
10629 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "disjunction 'if' disjunction 'else' expression"));
10630 }
10631 { // disjunction
10632 if (p->error_indicator) {
10633 D(p->level--);
10634 return NULL;
10635 }
10636 D(fprintf(stderr, "%*c> expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "disjunction"));
10637 expr_ty disjunction_var;
10638 if (
10639 (disjunction_var = disjunction_rule(p)) // disjunction
10640 )
10641 {
10642 D(fprintf(stderr, "%*c+ expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "disjunction"));
10643 _res = disjunction_var;
10644 goto done;
10645 }
10646 p->mark = _mark;
10647 D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ',
10648 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "disjunction"));
10649 }
10650 { // lambdef
10651 if (p->error_indicator) {
10652 D(p->level--);
10653 return NULL;
10654 }
10655 D(fprintf(stderr, "%*c> expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambdef"));
10656 expr_ty lambdef_var;
10657 if (
10658 (lambdef_var = lambdef_rule(p)) // lambdef
10659 )
10660 {
10661 D(fprintf(stderr, "%*c+ expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambdef"));
10662 _res = lambdef_var;
10663 goto done;
10664 }
10665 p->mark = _mark;
10666 D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ',
10667 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambdef"));
10668 }
10669 _res = NULL;
10670 done:
10671 _PyPegen_insert_memo(p, _mark, expression_type, _res);
10672 D(p->level--);
10673 return _res;
10674}
10675
10676// lambdef: 'lambda' lambda_params? ':' expression
10677static expr_ty
10678lambdef_rule(Parser *p)
10679{
10680 D(p->level++);
10681 if (p->error_indicator) {
10682 D(p->level--);
10683 return NULL;
10684 }
10685 expr_ty _res = NULL;
10686 int _mark = p->mark;
10687 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10688 p->error_indicator = 1;
10689 D(p->level--);
10690 return NULL;
10691 }
10692 int _start_lineno = p->tokens[_mark]->lineno;
10693 UNUSED(_start_lineno); // Only used by EXTRA macro
10694 int _start_col_offset = p->tokens[_mark]->col_offset;
10695 UNUSED(_start_col_offset); // Only used by EXTRA macro
10696 { // 'lambda' lambda_params? ':' expression
10697 if (p->error_indicator) {
10698 D(p->level--);
10699 return NULL;
10700 }
10701 D(fprintf(stderr, "%*c> lambdef[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'lambda' lambda_params? ':' expression"));
10702 Token * _keyword;
10703 Token * _literal;
10704 void *a;
10705 expr_ty b;
10706 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080010707 (_keyword = _PyPegen_expect_token(p, 528)) // token='lambda'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010708 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +020010709 (a = lambda_params_rule(p), !p->error_indicator) // lambda_params?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010710 &&
10711 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
10712 &&
10713 (b = expression_rule(p)) // expression
10714 )
10715 {
10716 D(fprintf(stderr, "%*c+ lambdef[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'lambda' lambda_params? ':' expression"));
10717 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10718 if (_token == NULL) {
10719 D(p->level--);
10720 return NULL;
10721 }
10722 int _end_lineno = _token->end_lineno;
10723 UNUSED(_end_lineno); // Only used by EXTRA macro
10724 int _end_col_offset = _token->end_col_offset;
10725 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020010726 _res = _PyAST_Lambda ( ( a ) ? a : CHECK ( arguments_ty , _PyPegen_empty_arguments ( p ) ) , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010727 if (_res == NULL && PyErr_Occurred()) {
10728 p->error_indicator = 1;
10729 D(p->level--);
10730 return NULL;
10731 }
10732 goto done;
10733 }
10734 p->mark = _mark;
10735 D(fprintf(stderr, "%*c%s lambdef[%d-%d]: %s failed!\n", p->level, ' ',
10736 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'lambda' lambda_params? ':' expression"));
10737 }
10738 _res = NULL;
10739 done:
10740 D(p->level--);
10741 return _res;
10742}
10743
10744// lambda_params: invalid_lambda_parameters | lambda_parameters
10745static arguments_ty
10746lambda_params_rule(Parser *p)
10747{
10748 D(p->level++);
10749 if (p->error_indicator) {
10750 D(p->level--);
10751 return NULL;
10752 }
10753 arguments_ty _res = NULL;
10754 int _mark = p->mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020010755 if (p->call_invalid_rules) { // invalid_lambda_parameters
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010756 if (p->error_indicator) {
10757 D(p->level--);
10758 return NULL;
10759 }
10760 D(fprintf(stderr, "%*c> lambda_params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_lambda_parameters"));
10761 void *invalid_lambda_parameters_var;
10762 if (
10763 (invalid_lambda_parameters_var = invalid_lambda_parameters_rule(p)) // invalid_lambda_parameters
10764 )
10765 {
10766 D(fprintf(stderr, "%*c+ lambda_params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_lambda_parameters"));
10767 _res = invalid_lambda_parameters_var;
10768 goto done;
10769 }
10770 p->mark = _mark;
10771 D(fprintf(stderr, "%*c%s lambda_params[%d-%d]: %s failed!\n", p->level, ' ',
10772 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_lambda_parameters"));
10773 }
10774 { // lambda_parameters
10775 if (p->error_indicator) {
10776 D(p->level--);
10777 return NULL;
10778 }
10779 D(fprintf(stderr, "%*c> lambda_params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_parameters"));
10780 arguments_ty lambda_parameters_var;
10781 if (
10782 (lambda_parameters_var = lambda_parameters_rule(p)) // lambda_parameters
10783 )
10784 {
10785 D(fprintf(stderr, "%*c+ lambda_params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_parameters"));
10786 _res = lambda_parameters_var;
10787 goto done;
10788 }
10789 p->mark = _mark;
10790 D(fprintf(stderr, "%*c%s lambda_params[%d-%d]: %s failed!\n", p->level, ' ',
10791 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_parameters"));
10792 }
10793 _res = NULL;
10794 done:
10795 D(p->level--);
10796 return _res;
10797}
10798
10799// lambda_parameters:
10800// | lambda_slash_no_default lambda_param_no_default* lambda_param_with_default* lambda_star_etc?
10801// | lambda_slash_with_default lambda_param_with_default* lambda_star_etc?
10802// | lambda_param_no_default+ lambda_param_with_default* lambda_star_etc?
10803// | lambda_param_with_default+ lambda_star_etc?
10804// | lambda_star_etc
10805static arguments_ty
10806lambda_parameters_rule(Parser *p)
10807{
10808 D(p->level++);
10809 if (p->error_indicator) {
10810 D(p->level--);
10811 return NULL;
10812 }
10813 arguments_ty _res = NULL;
10814 int _mark = p->mark;
10815 { // lambda_slash_no_default lambda_param_no_default* lambda_param_with_default* lambda_star_etc?
10816 if (p->error_indicator) {
10817 D(p->level--);
10818 return NULL;
10819 }
10820 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 +010010821 asdl_arg_seq* a;
10822 asdl_arg_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010823 asdl_seq * c;
10824 void *d;
10825 if (
10826 (a = lambda_slash_no_default_rule(p)) // lambda_slash_no_default
10827 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080010828 (b = (asdl_arg_seq*)_loop0_90_rule(p)) // lambda_param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010829 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080010830 (c = _loop0_91_rule(p)) // lambda_param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010831 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +020010832 (d = lambda_star_etc_rule(p), !p->error_indicator) // lambda_star_etc?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010833 )
10834 {
10835 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?"));
10836 _res = _PyPegen_make_arguments ( p , a , NULL , b , c , d );
10837 if (_res == NULL && PyErr_Occurred()) {
10838 p->error_indicator = 1;
10839 D(p->level--);
10840 return NULL;
10841 }
10842 goto done;
10843 }
10844 p->mark = _mark;
10845 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
10846 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_slash_no_default lambda_param_no_default* lambda_param_with_default* lambda_star_etc?"));
10847 }
10848 { // lambda_slash_with_default lambda_param_with_default* lambda_star_etc?
10849 if (p->error_indicator) {
10850 D(p->level--);
10851 return NULL;
10852 }
10853 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?"));
10854 SlashWithDefault* a;
10855 asdl_seq * b;
10856 void *c;
10857 if (
10858 (a = lambda_slash_with_default_rule(p)) // lambda_slash_with_default
10859 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080010860 (b = _loop0_92_rule(p)) // lambda_param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010861 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +020010862 (c = lambda_star_etc_rule(p), !p->error_indicator) // lambda_star_etc?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010863 )
10864 {
10865 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?"));
10866 _res = _PyPegen_make_arguments ( p , NULL , a , NULL , b , c );
10867 if (_res == NULL && PyErr_Occurred()) {
10868 p->error_indicator = 1;
10869 D(p->level--);
10870 return NULL;
10871 }
10872 goto done;
10873 }
10874 p->mark = _mark;
10875 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
10876 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_slash_with_default lambda_param_with_default* lambda_star_etc?"));
10877 }
10878 { // lambda_param_no_default+ lambda_param_with_default* lambda_star_etc?
10879 if (p->error_indicator) {
10880 D(p->level--);
10881 return NULL;
10882 }
10883 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 +010010884 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010885 asdl_seq * b;
10886 void *c;
10887 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080010888 (a = (asdl_arg_seq*)_loop1_93_rule(p)) // lambda_param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010889 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080010890 (b = _loop0_94_rule(p)) // lambda_param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010891 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +020010892 (c = lambda_star_etc_rule(p), !p->error_indicator) // lambda_star_etc?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010893 )
10894 {
10895 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?"));
10896 _res = _PyPegen_make_arguments ( p , NULL , NULL , a , b , c );
10897 if (_res == NULL && PyErr_Occurred()) {
10898 p->error_indicator = 1;
10899 D(p->level--);
10900 return NULL;
10901 }
10902 goto done;
10903 }
10904 p->mark = _mark;
10905 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
10906 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default+ lambda_param_with_default* lambda_star_etc?"));
10907 }
10908 { // lambda_param_with_default+ lambda_star_etc?
10909 if (p->error_indicator) {
10910 D(p->level--);
10911 return NULL;
10912 }
10913 D(fprintf(stderr, "%*c> lambda_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default+ lambda_star_etc?"));
10914 asdl_seq * a;
10915 void *b;
10916 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080010917 (a = _loop1_95_rule(p)) // lambda_param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010918 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +020010919 (b = lambda_star_etc_rule(p), !p->error_indicator) // lambda_star_etc?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010920 )
10921 {
10922 D(fprintf(stderr, "%*c+ lambda_parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default+ lambda_star_etc?"));
10923 _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , a , b );
10924 if (_res == NULL && PyErr_Occurred()) {
10925 p->error_indicator = 1;
10926 D(p->level--);
10927 return NULL;
10928 }
10929 goto done;
10930 }
10931 p->mark = _mark;
10932 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
10933 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default+ lambda_star_etc?"));
10934 }
10935 { // lambda_star_etc
10936 if (p->error_indicator) {
10937 D(p->level--);
10938 return NULL;
10939 }
10940 D(fprintf(stderr, "%*c> lambda_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_star_etc"));
10941 StarEtc* a;
10942 if (
10943 (a = lambda_star_etc_rule(p)) // lambda_star_etc
10944 )
10945 {
10946 D(fprintf(stderr, "%*c+ lambda_parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_star_etc"));
10947 _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , NULL , a );
10948 if (_res == NULL && PyErr_Occurred()) {
10949 p->error_indicator = 1;
10950 D(p->level--);
10951 return NULL;
10952 }
10953 goto done;
10954 }
10955 p->mark = _mark;
10956 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
10957 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_star_etc"));
10958 }
10959 _res = NULL;
10960 done:
10961 D(p->level--);
10962 return _res;
10963}
10964
10965// lambda_slash_no_default:
10966// | lambda_param_no_default+ '/' ','
10967// | lambda_param_no_default+ '/' &':'
Pablo Galindoa5634c42020-09-16 19:42:00 +010010968static asdl_arg_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010969lambda_slash_no_default_rule(Parser *p)
10970{
10971 D(p->level++);
10972 if (p->error_indicator) {
10973 D(p->level--);
10974 return NULL;
10975 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010010976 asdl_arg_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010977 int _mark = p->mark;
10978 { // lambda_param_no_default+ '/' ','
10979 if (p->error_indicator) {
10980 D(p->level--);
10981 return NULL;
10982 }
10983 D(fprintf(stderr, "%*c> lambda_slash_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default+ '/' ','"));
10984 Token * _literal;
10985 Token * _literal_1;
Pablo Galindoa5634c42020-09-16 19:42:00 +010010986 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010987 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080010988 (a = (asdl_arg_seq*)_loop1_96_rule(p)) // lambda_param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010989 &&
10990 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
10991 &&
10992 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
10993 )
10994 {
10995 D(fprintf(stderr, "%*c+ lambda_slash_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default+ '/' ','"));
10996 _res = a;
10997 if (_res == NULL && PyErr_Occurred()) {
10998 p->error_indicator = 1;
10999 D(p->level--);
11000 return NULL;
11001 }
11002 goto done;
11003 }
11004 p->mark = _mark;
11005 D(fprintf(stderr, "%*c%s lambda_slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
11006 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default+ '/' ','"));
11007 }
11008 { // lambda_param_no_default+ '/' &':'
11009 if (p->error_indicator) {
11010 D(p->level--);
11011 return NULL;
11012 }
11013 D(fprintf(stderr, "%*c> lambda_slash_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default+ '/' &':'"));
11014 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +010011015 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011016 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080011017 (a = (asdl_arg_seq*)_loop1_97_rule(p)) // lambda_param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011018 &&
11019 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
11020 &&
11021 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
11022 )
11023 {
11024 D(fprintf(stderr, "%*c+ lambda_slash_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default+ '/' &':'"));
11025 _res = a;
11026 if (_res == NULL && PyErr_Occurred()) {
11027 p->error_indicator = 1;
11028 D(p->level--);
11029 return NULL;
11030 }
11031 goto done;
11032 }
11033 p->mark = _mark;
11034 D(fprintf(stderr, "%*c%s lambda_slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
11035 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default+ '/' &':'"));
11036 }
11037 _res = NULL;
11038 done:
11039 D(p->level--);
11040 return _res;
11041}
11042
11043// lambda_slash_with_default:
11044// | lambda_param_no_default* lambda_param_with_default+ '/' ','
11045// | lambda_param_no_default* lambda_param_with_default+ '/' &':'
11046static SlashWithDefault*
11047lambda_slash_with_default_rule(Parser *p)
11048{
11049 D(p->level++);
11050 if (p->error_indicator) {
11051 D(p->level--);
11052 return NULL;
11053 }
11054 SlashWithDefault* _res = NULL;
11055 int _mark = p->mark;
11056 { // lambda_param_no_default* lambda_param_with_default+ '/' ','
11057 if (p->error_indicator) {
11058 D(p->level--);
11059 return NULL;
11060 }
11061 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+ '/' ','"));
11062 Token * _literal;
11063 Token * _literal_1;
11064 asdl_seq * a;
11065 asdl_seq * b;
11066 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080011067 (a = _loop0_98_rule(p)) // lambda_param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011068 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080011069 (b = _loop1_99_rule(p)) // lambda_param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011070 &&
11071 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
11072 &&
11073 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
11074 )
11075 {
11076 D(fprintf(stderr, "%*c+ lambda_slash_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default* lambda_param_with_default+ '/' ','"));
Pablo Galindoa5634c42020-09-16 19:42:00 +010011077 _res = _PyPegen_slash_with_default ( p , ( asdl_arg_seq * ) a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011078 if (_res == NULL && PyErr_Occurred()) {
11079 p->error_indicator = 1;
11080 D(p->level--);
11081 return NULL;
11082 }
11083 goto done;
11084 }
11085 p->mark = _mark;
11086 D(fprintf(stderr, "%*c%s lambda_slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
11087 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default* lambda_param_with_default+ '/' ','"));
11088 }
11089 { // lambda_param_no_default* lambda_param_with_default+ '/' &':'
11090 if (p->error_indicator) {
11091 D(p->level--);
11092 return NULL;
11093 }
11094 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+ '/' &':'"));
11095 Token * _literal;
11096 asdl_seq * a;
11097 asdl_seq * b;
11098 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080011099 (a = _loop0_100_rule(p)) // lambda_param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011100 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080011101 (b = _loop1_101_rule(p)) // lambda_param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011102 &&
11103 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
11104 &&
11105 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
11106 )
11107 {
11108 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 +010011109 _res = _PyPegen_slash_with_default ( p , ( asdl_arg_seq * ) a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011110 if (_res == NULL && PyErr_Occurred()) {
11111 p->error_indicator = 1;
11112 D(p->level--);
11113 return NULL;
11114 }
11115 goto done;
11116 }
11117 p->mark = _mark;
11118 D(fprintf(stderr, "%*c%s lambda_slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
11119 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default* lambda_param_with_default+ '/' &':'"));
11120 }
11121 _res = NULL;
11122 done:
11123 D(p->level--);
11124 return _res;
11125}
11126
11127// lambda_star_etc:
11128// | '*' lambda_param_no_default lambda_param_maybe_default* lambda_kwds?
11129// | '*' ',' lambda_param_maybe_default+ lambda_kwds?
11130// | lambda_kwds
11131// | invalid_lambda_star_etc
11132static StarEtc*
11133lambda_star_etc_rule(Parser *p)
11134{
11135 D(p->level++);
11136 if (p->error_indicator) {
11137 D(p->level--);
11138 return NULL;
11139 }
11140 StarEtc* _res = NULL;
11141 int _mark = p->mark;
11142 { // '*' lambda_param_no_default lambda_param_maybe_default* lambda_kwds?
11143 if (p->error_indicator) {
11144 D(p->level--);
11145 return NULL;
11146 }
11147 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?"));
11148 Token * _literal;
11149 arg_ty a;
11150 asdl_seq * b;
11151 void *c;
11152 if (
11153 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
11154 &&
11155 (a = lambda_param_no_default_rule(p)) // lambda_param_no_default
11156 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080011157 (b = _loop0_102_rule(p)) // lambda_param_maybe_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011158 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +020011159 (c = lambda_kwds_rule(p), !p->error_indicator) // lambda_kwds?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011160 )
11161 {
11162 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?"));
11163 _res = _PyPegen_star_etc ( p , a , b , c );
11164 if (_res == NULL && PyErr_Occurred()) {
11165 p->error_indicator = 1;
11166 D(p->level--);
11167 return NULL;
11168 }
11169 goto done;
11170 }
11171 p->mark = _mark;
11172 D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
11173 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' lambda_param_no_default lambda_param_maybe_default* lambda_kwds?"));
11174 }
11175 { // '*' ',' lambda_param_maybe_default+ lambda_kwds?
11176 if (p->error_indicator) {
11177 D(p->level--);
11178 return NULL;
11179 }
11180 D(fprintf(stderr, "%*c> lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' ',' lambda_param_maybe_default+ lambda_kwds?"));
11181 Token * _literal;
11182 Token * _literal_1;
11183 asdl_seq * b;
11184 void *c;
11185 if (
11186 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
11187 &&
11188 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
11189 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080011190 (b = _loop1_103_rule(p)) // lambda_param_maybe_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011191 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +020011192 (c = lambda_kwds_rule(p), !p->error_indicator) // lambda_kwds?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011193 )
11194 {
11195 D(fprintf(stderr, "%*c+ lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' ',' lambda_param_maybe_default+ lambda_kwds?"));
11196 _res = _PyPegen_star_etc ( p , NULL , b , c );
11197 if (_res == NULL && PyErr_Occurred()) {
11198 p->error_indicator = 1;
11199 D(p->level--);
11200 return NULL;
11201 }
11202 goto done;
11203 }
11204 p->mark = _mark;
11205 D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
11206 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' ',' lambda_param_maybe_default+ lambda_kwds?"));
11207 }
11208 { // lambda_kwds
11209 if (p->error_indicator) {
11210 D(p->level--);
11211 return NULL;
11212 }
11213 D(fprintf(stderr, "%*c> lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_kwds"));
11214 arg_ty a;
11215 if (
11216 (a = lambda_kwds_rule(p)) // lambda_kwds
11217 )
11218 {
11219 D(fprintf(stderr, "%*c+ lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_kwds"));
11220 _res = _PyPegen_star_etc ( p , NULL , NULL , a );
11221 if (_res == NULL && PyErr_Occurred()) {
11222 p->error_indicator = 1;
11223 D(p->level--);
11224 return NULL;
11225 }
11226 goto done;
11227 }
11228 p->mark = _mark;
11229 D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
11230 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_kwds"));
11231 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020011232 if (p->call_invalid_rules) { // invalid_lambda_star_etc
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011233 if (p->error_indicator) {
11234 D(p->level--);
11235 return NULL;
11236 }
11237 D(fprintf(stderr, "%*c> lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_lambda_star_etc"));
11238 void *invalid_lambda_star_etc_var;
11239 if (
11240 (invalid_lambda_star_etc_var = invalid_lambda_star_etc_rule(p)) // invalid_lambda_star_etc
11241 )
11242 {
11243 D(fprintf(stderr, "%*c+ lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_lambda_star_etc"));
11244 _res = invalid_lambda_star_etc_var;
11245 goto done;
11246 }
11247 p->mark = _mark;
11248 D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
11249 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_lambda_star_etc"));
11250 }
11251 _res = NULL;
11252 done:
11253 D(p->level--);
11254 return _res;
11255}
11256
11257// lambda_kwds: '**' lambda_param_no_default
11258static arg_ty
11259lambda_kwds_rule(Parser *p)
11260{
11261 D(p->level++);
11262 if (p->error_indicator) {
11263 D(p->level--);
11264 return NULL;
11265 }
11266 arg_ty _res = NULL;
11267 int _mark = p->mark;
11268 { // '**' lambda_param_no_default
11269 if (p->error_indicator) {
11270 D(p->level--);
11271 return NULL;
11272 }
11273 D(fprintf(stderr, "%*c> lambda_kwds[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' lambda_param_no_default"));
11274 Token * _literal;
11275 arg_ty a;
11276 if (
11277 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
11278 &&
11279 (a = lambda_param_no_default_rule(p)) // lambda_param_no_default
11280 )
11281 {
11282 D(fprintf(stderr, "%*c+ lambda_kwds[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' lambda_param_no_default"));
11283 _res = a;
11284 if (_res == NULL && PyErr_Occurred()) {
11285 p->error_indicator = 1;
11286 D(p->level--);
11287 return NULL;
11288 }
11289 goto done;
11290 }
11291 p->mark = _mark;
11292 D(fprintf(stderr, "%*c%s lambda_kwds[%d-%d]: %s failed!\n", p->level, ' ',
11293 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' lambda_param_no_default"));
11294 }
11295 _res = NULL;
11296 done:
11297 D(p->level--);
11298 return _res;
11299}
11300
11301// lambda_param_no_default: lambda_param ',' | lambda_param &':'
11302static arg_ty
11303lambda_param_no_default_rule(Parser *p)
11304{
11305 D(p->level++);
11306 if (p->error_indicator) {
11307 D(p->level--);
11308 return NULL;
11309 }
11310 arg_ty _res = NULL;
11311 int _mark = p->mark;
11312 { // lambda_param ','
11313 if (p->error_indicator) {
11314 D(p->level--);
11315 return NULL;
11316 }
11317 D(fprintf(stderr, "%*c> lambda_param_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param ','"));
11318 Token * _literal;
11319 arg_ty a;
11320 if (
11321 (a = lambda_param_rule(p)) // lambda_param
11322 &&
11323 (_literal = _PyPegen_expect_token(p, 12)) // token=','
11324 )
11325 {
11326 D(fprintf(stderr, "%*c+ lambda_param_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param ','"));
11327 _res = a;
11328 if (_res == NULL && PyErr_Occurred()) {
11329 p->error_indicator = 1;
11330 D(p->level--);
11331 return NULL;
11332 }
11333 goto done;
11334 }
11335 p->mark = _mark;
11336 D(fprintf(stderr, "%*c%s lambda_param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
11337 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param ','"));
11338 }
11339 { // lambda_param &':'
11340 if (p->error_indicator) {
11341 D(p->level--);
11342 return NULL;
11343 }
11344 D(fprintf(stderr, "%*c> lambda_param_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param &':'"));
11345 arg_ty a;
11346 if (
11347 (a = lambda_param_rule(p)) // lambda_param
11348 &&
11349 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
11350 )
11351 {
11352 D(fprintf(stderr, "%*c+ lambda_param_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param &':'"));
11353 _res = a;
11354 if (_res == NULL && PyErr_Occurred()) {
11355 p->error_indicator = 1;
11356 D(p->level--);
11357 return NULL;
11358 }
11359 goto done;
11360 }
11361 p->mark = _mark;
11362 D(fprintf(stderr, "%*c%s lambda_param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
11363 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param &':'"));
11364 }
11365 _res = NULL;
11366 done:
11367 D(p->level--);
11368 return _res;
11369}
11370
11371// lambda_param_with_default: lambda_param default ',' | lambda_param default &':'
11372static NameDefaultPair*
11373lambda_param_with_default_rule(Parser *p)
11374{
11375 D(p->level++);
11376 if (p->error_indicator) {
11377 D(p->level--);
11378 return NULL;
11379 }
11380 NameDefaultPair* _res = NULL;
11381 int _mark = p->mark;
11382 { // lambda_param default ','
11383 if (p->error_indicator) {
11384 D(p->level--);
11385 return NULL;
11386 }
11387 D(fprintf(stderr, "%*c> lambda_param_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param default ','"));
11388 Token * _literal;
11389 arg_ty a;
11390 expr_ty c;
11391 if (
11392 (a = lambda_param_rule(p)) // lambda_param
11393 &&
11394 (c = default_rule(p)) // default
11395 &&
11396 (_literal = _PyPegen_expect_token(p, 12)) // token=','
11397 )
11398 {
11399 D(fprintf(stderr, "%*c+ lambda_param_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param default ','"));
11400 _res = _PyPegen_name_default_pair ( p , a , c , NULL );
11401 if (_res == NULL && PyErr_Occurred()) {
11402 p->error_indicator = 1;
11403 D(p->level--);
11404 return NULL;
11405 }
11406 goto done;
11407 }
11408 p->mark = _mark;
11409 D(fprintf(stderr, "%*c%s lambda_param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
11410 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default ','"));
11411 }
11412 { // lambda_param default &':'
11413 if (p->error_indicator) {
11414 D(p->level--);
11415 return NULL;
11416 }
11417 D(fprintf(stderr, "%*c> lambda_param_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param default &':'"));
11418 arg_ty a;
11419 expr_ty c;
11420 if (
11421 (a = lambda_param_rule(p)) // lambda_param
11422 &&
11423 (c = default_rule(p)) // default
11424 &&
11425 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
11426 )
11427 {
11428 D(fprintf(stderr, "%*c+ lambda_param_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param default &':'"));
11429 _res = _PyPegen_name_default_pair ( p , a , c , NULL );
11430 if (_res == NULL && PyErr_Occurred()) {
11431 p->error_indicator = 1;
11432 D(p->level--);
11433 return NULL;
11434 }
11435 goto done;
11436 }
11437 p->mark = _mark;
11438 D(fprintf(stderr, "%*c%s lambda_param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
11439 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default &':'"));
11440 }
11441 _res = NULL;
11442 done:
11443 D(p->level--);
11444 return _res;
11445}
11446
11447// lambda_param_maybe_default: lambda_param default? ',' | lambda_param default? &':'
11448static NameDefaultPair*
11449lambda_param_maybe_default_rule(Parser *p)
11450{
11451 D(p->level++);
11452 if (p->error_indicator) {
11453 D(p->level--);
11454 return NULL;
11455 }
11456 NameDefaultPair* _res = NULL;
11457 int _mark = p->mark;
11458 { // lambda_param default? ','
11459 if (p->error_indicator) {
11460 D(p->level--);
11461 return NULL;
11462 }
11463 D(fprintf(stderr, "%*c> lambda_param_maybe_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param default? ','"));
11464 Token * _literal;
11465 arg_ty a;
11466 void *c;
11467 if (
11468 (a = lambda_param_rule(p)) // lambda_param
11469 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +020011470 (c = default_rule(p), !p->error_indicator) // default?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011471 &&
11472 (_literal = _PyPegen_expect_token(p, 12)) // token=','
11473 )
11474 {
11475 D(fprintf(stderr, "%*c+ lambda_param_maybe_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param default? ','"));
11476 _res = _PyPegen_name_default_pair ( p , a , c , NULL );
11477 if (_res == NULL && PyErr_Occurred()) {
11478 p->error_indicator = 1;
11479 D(p->level--);
11480 return NULL;
11481 }
11482 goto done;
11483 }
11484 p->mark = _mark;
11485 D(fprintf(stderr, "%*c%s lambda_param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
11486 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default? ','"));
11487 }
11488 { // lambda_param default? &':'
11489 if (p->error_indicator) {
11490 D(p->level--);
11491 return NULL;
11492 }
11493 D(fprintf(stderr, "%*c> lambda_param_maybe_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param default? &':'"));
11494 arg_ty a;
11495 void *c;
11496 if (
11497 (a = lambda_param_rule(p)) // lambda_param
11498 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +020011499 (c = default_rule(p), !p->error_indicator) // default?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011500 &&
11501 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
11502 )
11503 {
11504 D(fprintf(stderr, "%*c+ lambda_param_maybe_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param default? &':'"));
11505 _res = _PyPegen_name_default_pair ( p , a , c , NULL );
11506 if (_res == NULL && PyErr_Occurred()) {
11507 p->error_indicator = 1;
11508 D(p->level--);
11509 return NULL;
11510 }
11511 goto done;
11512 }
11513 p->mark = _mark;
11514 D(fprintf(stderr, "%*c%s lambda_param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
11515 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default? &':'"));
11516 }
11517 _res = NULL;
11518 done:
11519 D(p->level--);
11520 return _res;
11521}
11522
11523// lambda_param: NAME
11524static arg_ty
11525lambda_param_rule(Parser *p)
11526{
11527 D(p->level++);
11528 if (p->error_indicator) {
11529 D(p->level--);
11530 return NULL;
11531 }
11532 arg_ty _res = NULL;
11533 int _mark = p->mark;
11534 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11535 p->error_indicator = 1;
11536 D(p->level--);
11537 return NULL;
11538 }
11539 int _start_lineno = p->tokens[_mark]->lineno;
11540 UNUSED(_start_lineno); // Only used by EXTRA macro
11541 int _start_col_offset = p->tokens[_mark]->col_offset;
11542 UNUSED(_start_col_offset); // Only used by EXTRA macro
11543 { // NAME
11544 if (p->error_indicator) {
11545 D(p->level--);
11546 return NULL;
11547 }
11548 D(fprintf(stderr, "%*c> lambda_param[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
11549 expr_ty a;
11550 if (
11551 (a = _PyPegen_name_token(p)) // NAME
11552 )
11553 {
11554 D(fprintf(stderr, "%*c+ lambda_param[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
11555 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11556 if (_token == NULL) {
11557 D(p->level--);
11558 return NULL;
11559 }
11560 int _end_lineno = _token->end_lineno;
11561 UNUSED(_end_lineno); // Only used by EXTRA macro
11562 int _end_col_offset = _token->end_col_offset;
11563 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020011564 _res = _PyAST_arg ( a -> v . Name . id , NULL , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011565 if (_res == NULL && PyErr_Occurred()) {
11566 p->error_indicator = 1;
11567 D(p->level--);
11568 return NULL;
11569 }
11570 goto done;
11571 }
11572 p->mark = _mark;
11573 D(fprintf(stderr, "%*c%s lambda_param[%d-%d]: %s failed!\n", p->level, ' ',
11574 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
11575 }
11576 _res = NULL;
11577 done:
11578 D(p->level--);
11579 return _res;
11580}
11581
11582// disjunction: conjunction (('or' conjunction))+ | conjunction
11583static expr_ty
11584disjunction_rule(Parser *p)
11585{
11586 D(p->level++);
11587 if (p->error_indicator) {
11588 D(p->level--);
11589 return NULL;
11590 }
11591 expr_ty _res = NULL;
11592 if (_PyPegen_is_memoized(p, disjunction_type, &_res)) {
11593 D(p->level--);
11594 return _res;
11595 }
11596 int _mark = p->mark;
11597 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11598 p->error_indicator = 1;
11599 D(p->level--);
11600 return NULL;
11601 }
11602 int _start_lineno = p->tokens[_mark]->lineno;
11603 UNUSED(_start_lineno); // Only used by EXTRA macro
11604 int _start_col_offset = p->tokens[_mark]->col_offset;
11605 UNUSED(_start_col_offset); // Only used by EXTRA macro
11606 { // conjunction (('or' conjunction))+
11607 if (p->error_indicator) {
11608 D(p->level--);
11609 return NULL;
11610 }
11611 D(fprintf(stderr, "%*c> disjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "conjunction (('or' conjunction))+"));
11612 expr_ty a;
11613 asdl_seq * b;
11614 if (
11615 (a = conjunction_rule(p)) // conjunction
11616 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080011617 (b = _loop1_104_rule(p)) // (('or' conjunction))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011618 )
11619 {
11620 D(fprintf(stderr, "%*c+ disjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "conjunction (('or' conjunction))+"));
11621 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11622 if (_token == NULL) {
11623 D(p->level--);
11624 return NULL;
11625 }
11626 int _end_lineno = _token->end_lineno;
11627 UNUSED(_end_lineno); // Only used by EXTRA macro
11628 int _end_col_offset = _token->end_col_offset;
11629 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020011630 _res = _PyAST_BoolOp ( Or , CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , a , b ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011631 if (_res == NULL && PyErr_Occurred()) {
11632 p->error_indicator = 1;
11633 D(p->level--);
11634 return NULL;
11635 }
11636 goto done;
11637 }
11638 p->mark = _mark;
11639 D(fprintf(stderr, "%*c%s disjunction[%d-%d]: %s failed!\n", p->level, ' ',
11640 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "conjunction (('or' conjunction))+"));
11641 }
11642 { // conjunction
11643 if (p->error_indicator) {
11644 D(p->level--);
11645 return NULL;
11646 }
11647 D(fprintf(stderr, "%*c> disjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "conjunction"));
11648 expr_ty conjunction_var;
11649 if (
11650 (conjunction_var = conjunction_rule(p)) // conjunction
11651 )
11652 {
11653 D(fprintf(stderr, "%*c+ disjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "conjunction"));
11654 _res = conjunction_var;
11655 goto done;
11656 }
11657 p->mark = _mark;
11658 D(fprintf(stderr, "%*c%s disjunction[%d-%d]: %s failed!\n", p->level, ' ',
11659 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "conjunction"));
11660 }
11661 _res = NULL;
11662 done:
11663 _PyPegen_insert_memo(p, _mark, disjunction_type, _res);
11664 D(p->level--);
11665 return _res;
11666}
11667
11668// conjunction: inversion (('and' inversion))+ | inversion
11669static expr_ty
11670conjunction_rule(Parser *p)
11671{
11672 D(p->level++);
11673 if (p->error_indicator) {
11674 D(p->level--);
11675 return NULL;
11676 }
11677 expr_ty _res = NULL;
11678 if (_PyPegen_is_memoized(p, conjunction_type, &_res)) {
11679 D(p->level--);
11680 return _res;
11681 }
11682 int _mark = p->mark;
11683 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11684 p->error_indicator = 1;
11685 D(p->level--);
11686 return NULL;
11687 }
11688 int _start_lineno = p->tokens[_mark]->lineno;
11689 UNUSED(_start_lineno); // Only used by EXTRA macro
11690 int _start_col_offset = p->tokens[_mark]->col_offset;
11691 UNUSED(_start_col_offset); // Only used by EXTRA macro
11692 { // inversion (('and' inversion))+
11693 if (p->error_indicator) {
11694 D(p->level--);
11695 return NULL;
11696 }
11697 D(fprintf(stderr, "%*c> conjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "inversion (('and' inversion))+"));
11698 expr_ty a;
11699 asdl_seq * b;
11700 if (
11701 (a = inversion_rule(p)) // inversion
11702 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080011703 (b = _loop1_105_rule(p)) // (('and' inversion))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011704 )
11705 {
11706 D(fprintf(stderr, "%*c+ conjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "inversion (('and' inversion))+"));
11707 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11708 if (_token == NULL) {
11709 D(p->level--);
11710 return NULL;
11711 }
11712 int _end_lineno = _token->end_lineno;
11713 UNUSED(_end_lineno); // Only used by EXTRA macro
11714 int _end_col_offset = _token->end_col_offset;
11715 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020011716 _res = _PyAST_BoolOp ( And , CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , a , b ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011717 if (_res == NULL && PyErr_Occurred()) {
11718 p->error_indicator = 1;
11719 D(p->level--);
11720 return NULL;
11721 }
11722 goto done;
11723 }
11724 p->mark = _mark;
11725 D(fprintf(stderr, "%*c%s conjunction[%d-%d]: %s failed!\n", p->level, ' ',
11726 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "inversion (('and' inversion))+"));
11727 }
11728 { // inversion
11729 if (p->error_indicator) {
11730 D(p->level--);
11731 return NULL;
11732 }
11733 D(fprintf(stderr, "%*c> conjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "inversion"));
11734 expr_ty inversion_var;
11735 if (
11736 (inversion_var = inversion_rule(p)) // inversion
11737 )
11738 {
11739 D(fprintf(stderr, "%*c+ conjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "inversion"));
11740 _res = inversion_var;
11741 goto done;
11742 }
11743 p->mark = _mark;
11744 D(fprintf(stderr, "%*c%s conjunction[%d-%d]: %s failed!\n", p->level, ' ',
11745 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "inversion"));
11746 }
11747 _res = NULL;
11748 done:
11749 _PyPegen_insert_memo(p, _mark, conjunction_type, _res);
11750 D(p->level--);
11751 return _res;
11752}
11753
11754// inversion: 'not' inversion | comparison
11755static expr_ty
11756inversion_rule(Parser *p)
11757{
11758 D(p->level++);
11759 if (p->error_indicator) {
11760 D(p->level--);
11761 return NULL;
11762 }
11763 expr_ty _res = NULL;
11764 if (_PyPegen_is_memoized(p, inversion_type, &_res)) {
11765 D(p->level--);
11766 return _res;
11767 }
11768 int _mark = p->mark;
11769 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11770 p->error_indicator = 1;
11771 D(p->level--);
11772 return NULL;
11773 }
11774 int _start_lineno = p->tokens[_mark]->lineno;
11775 UNUSED(_start_lineno); // Only used by EXTRA macro
11776 int _start_col_offset = p->tokens[_mark]->col_offset;
11777 UNUSED(_start_col_offset); // Only used by EXTRA macro
11778 { // 'not' inversion
11779 if (p->error_indicator) {
11780 D(p->level--);
11781 return NULL;
11782 }
11783 D(fprintf(stderr, "%*c> inversion[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'not' inversion"));
11784 Token * _keyword;
11785 expr_ty a;
11786 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080011787 (_keyword = _PyPegen_expect_token(p, 529)) // token='not'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011788 &&
11789 (a = inversion_rule(p)) // inversion
11790 )
11791 {
11792 D(fprintf(stderr, "%*c+ inversion[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'not' inversion"));
11793 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11794 if (_token == NULL) {
11795 D(p->level--);
11796 return NULL;
11797 }
11798 int _end_lineno = _token->end_lineno;
11799 UNUSED(_end_lineno); // Only used by EXTRA macro
11800 int _end_col_offset = _token->end_col_offset;
11801 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020011802 _res = _PyAST_UnaryOp ( Not , a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011803 if (_res == NULL && PyErr_Occurred()) {
11804 p->error_indicator = 1;
11805 D(p->level--);
11806 return NULL;
11807 }
11808 goto done;
11809 }
11810 p->mark = _mark;
11811 D(fprintf(stderr, "%*c%s inversion[%d-%d]: %s failed!\n", p->level, ' ',
11812 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'not' inversion"));
11813 }
11814 { // comparison
11815 if (p->error_indicator) {
11816 D(p->level--);
11817 return NULL;
11818 }
11819 D(fprintf(stderr, "%*c> inversion[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "comparison"));
11820 expr_ty comparison_var;
11821 if (
11822 (comparison_var = comparison_rule(p)) // comparison
11823 )
11824 {
11825 D(fprintf(stderr, "%*c+ inversion[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "comparison"));
11826 _res = comparison_var;
11827 goto done;
11828 }
11829 p->mark = _mark;
11830 D(fprintf(stderr, "%*c%s inversion[%d-%d]: %s failed!\n", p->level, ' ',
11831 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "comparison"));
11832 }
11833 _res = NULL;
11834 done:
11835 _PyPegen_insert_memo(p, _mark, inversion_type, _res);
11836 D(p->level--);
11837 return _res;
11838}
11839
11840// comparison: bitwise_or compare_op_bitwise_or_pair+ | bitwise_or
11841static expr_ty
11842comparison_rule(Parser *p)
11843{
11844 D(p->level++);
11845 if (p->error_indicator) {
11846 D(p->level--);
11847 return NULL;
11848 }
11849 expr_ty _res = NULL;
11850 int _mark = p->mark;
11851 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11852 p->error_indicator = 1;
11853 D(p->level--);
11854 return NULL;
11855 }
11856 int _start_lineno = p->tokens[_mark]->lineno;
11857 UNUSED(_start_lineno); // Only used by EXTRA macro
11858 int _start_col_offset = p->tokens[_mark]->col_offset;
11859 UNUSED(_start_col_offset); // Only used by EXTRA macro
11860 { // bitwise_or compare_op_bitwise_or_pair+
11861 if (p->error_indicator) {
11862 D(p->level--);
11863 return NULL;
11864 }
11865 D(fprintf(stderr, "%*c> comparison[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_or compare_op_bitwise_or_pair+"));
11866 expr_ty a;
11867 asdl_seq * b;
11868 if (
11869 (a = bitwise_or_rule(p)) // bitwise_or
11870 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080011871 (b = _loop1_106_rule(p)) // compare_op_bitwise_or_pair+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011872 )
11873 {
11874 D(fprintf(stderr, "%*c+ comparison[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_or compare_op_bitwise_or_pair+"));
11875 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11876 if (_token == NULL) {
11877 D(p->level--);
11878 return NULL;
11879 }
11880 int _end_lineno = _token->end_lineno;
11881 UNUSED(_end_lineno); // Only used by EXTRA macro
11882 int _end_col_offset = _token->end_col_offset;
11883 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020011884 _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 +010011885 if (_res == NULL && PyErr_Occurred()) {
11886 p->error_indicator = 1;
11887 D(p->level--);
11888 return NULL;
11889 }
11890 goto done;
11891 }
11892 p->mark = _mark;
11893 D(fprintf(stderr, "%*c%s comparison[%d-%d]: %s failed!\n", p->level, ' ',
11894 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_or compare_op_bitwise_or_pair+"));
11895 }
11896 { // bitwise_or
11897 if (p->error_indicator) {
11898 D(p->level--);
11899 return NULL;
11900 }
11901 D(fprintf(stderr, "%*c> comparison[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_or"));
11902 expr_ty bitwise_or_var;
11903 if (
11904 (bitwise_or_var = bitwise_or_rule(p)) // bitwise_or
11905 )
11906 {
11907 D(fprintf(stderr, "%*c+ comparison[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_or"));
11908 _res = bitwise_or_var;
11909 goto done;
11910 }
11911 p->mark = _mark;
11912 D(fprintf(stderr, "%*c%s comparison[%d-%d]: %s failed!\n", p->level, ' ',
11913 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_or"));
11914 }
11915 _res = NULL;
11916 done:
11917 D(p->level--);
11918 return _res;
11919}
11920
11921// compare_op_bitwise_or_pair:
11922// | eq_bitwise_or
11923// | noteq_bitwise_or
11924// | lte_bitwise_or
11925// | lt_bitwise_or
11926// | gte_bitwise_or
11927// | gt_bitwise_or
11928// | notin_bitwise_or
11929// | in_bitwise_or
11930// | isnot_bitwise_or
11931// | is_bitwise_or
11932static CmpopExprPair*
11933compare_op_bitwise_or_pair_rule(Parser *p)
11934{
11935 D(p->level++);
11936 if (p->error_indicator) {
11937 D(p->level--);
11938 return NULL;
11939 }
11940 CmpopExprPair* _res = NULL;
11941 int _mark = p->mark;
11942 { // eq_bitwise_or
11943 if (p->error_indicator) {
11944 D(p->level--);
11945 return NULL;
11946 }
11947 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "eq_bitwise_or"));
11948 CmpopExprPair* eq_bitwise_or_var;
11949 if (
11950 (eq_bitwise_or_var = eq_bitwise_or_rule(p)) // eq_bitwise_or
11951 )
11952 {
11953 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "eq_bitwise_or"));
11954 _res = eq_bitwise_or_var;
11955 goto done;
11956 }
11957 p->mark = _mark;
11958 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
11959 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "eq_bitwise_or"));
11960 }
11961 { // noteq_bitwise_or
11962 if (p->error_indicator) {
11963 D(p->level--);
11964 return NULL;
11965 }
11966 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "noteq_bitwise_or"));
11967 CmpopExprPair* noteq_bitwise_or_var;
11968 if (
11969 (noteq_bitwise_or_var = noteq_bitwise_or_rule(p)) // noteq_bitwise_or
11970 )
11971 {
11972 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "noteq_bitwise_or"));
11973 _res = noteq_bitwise_or_var;
11974 goto done;
11975 }
11976 p->mark = _mark;
11977 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
11978 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "noteq_bitwise_or"));
11979 }
11980 { // lte_bitwise_or
11981 if (p->error_indicator) {
11982 D(p->level--);
11983 return NULL;
11984 }
11985 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lte_bitwise_or"));
11986 CmpopExprPair* lte_bitwise_or_var;
11987 if (
11988 (lte_bitwise_or_var = lte_bitwise_or_rule(p)) // lte_bitwise_or
11989 )
11990 {
11991 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lte_bitwise_or"));
11992 _res = lte_bitwise_or_var;
11993 goto done;
11994 }
11995 p->mark = _mark;
11996 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
11997 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lte_bitwise_or"));
11998 }
11999 { // lt_bitwise_or
12000 if (p->error_indicator) {
12001 D(p->level--);
12002 return NULL;
12003 }
12004 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lt_bitwise_or"));
12005 CmpopExprPair* lt_bitwise_or_var;
12006 if (
12007 (lt_bitwise_or_var = lt_bitwise_or_rule(p)) // lt_bitwise_or
12008 )
12009 {
12010 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lt_bitwise_or"));
12011 _res = lt_bitwise_or_var;
12012 goto done;
12013 }
12014 p->mark = _mark;
12015 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
12016 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lt_bitwise_or"));
12017 }
12018 { // gte_bitwise_or
12019 if (p->error_indicator) {
12020 D(p->level--);
12021 return NULL;
12022 }
12023 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "gte_bitwise_or"));
12024 CmpopExprPair* gte_bitwise_or_var;
12025 if (
12026 (gte_bitwise_or_var = gte_bitwise_or_rule(p)) // gte_bitwise_or
12027 )
12028 {
12029 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "gte_bitwise_or"));
12030 _res = gte_bitwise_or_var;
12031 goto done;
12032 }
12033 p->mark = _mark;
12034 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
12035 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "gte_bitwise_or"));
12036 }
12037 { // gt_bitwise_or
12038 if (p->error_indicator) {
12039 D(p->level--);
12040 return NULL;
12041 }
12042 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "gt_bitwise_or"));
12043 CmpopExprPair* gt_bitwise_or_var;
12044 if (
12045 (gt_bitwise_or_var = gt_bitwise_or_rule(p)) // gt_bitwise_or
12046 )
12047 {
12048 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "gt_bitwise_or"));
12049 _res = gt_bitwise_or_var;
12050 goto done;
12051 }
12052 p->mark = _mark;
12053 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
12054 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "gt_bitwise_or"));
12055 }
12056 { // notin_bitwise_or
12057 if (p->error_indicator) {
12058 D(p->level--);
12059 return NULL;
12060 }
12061 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "notin_bitwise_or"));
12062 CmpopExprPair* notin_bitwise_or_var;
12063 if (
12064 (notin_bitwise_or_var = notin_bitwise_or_rule(p)) // notin_bitwise_or
12065 )
12066 {
12067 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "notin_bitwise_or"));
12068 _res = notin_bitwise_or_var;
12069 goto done;
12070 }
12071 p->mark = _mark;
12072 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
12073 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "notin_bitwise_or"));
12074 }
12075 { // in_bitwise_or
12076 if (p->error_indicator) {
12077 D(p->level--);
12078 return NULL;
12079 }
12080 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "in_bitwise_or"));
12081 CmpopExprPair* in_bitwise_or_var;
12082 if (
12083 (in_bitwise_or_var = in_bitwise_or_rule(p)) // in_bitwise_or
12084 )
12085 {
12086 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "in_bitwise_or"));
12087 _res = in_bitwise_or_var;
12088 goto done;
12089 }
12090 p->mark = _mark;
12091 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
12092 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "in_bitwise_or"));
12093 }
12094 { // isnot_bitwise_or
12095 if (p->error_indicator) {
12096 D(p->level--);
12097 return NULL;
12098 }
12099 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "isnot_bitwise_or"));
12100 CmpopExprPair* isnot_bitwise_or_var;
12101 if (
12102 (isnot_bitwise_or_var = isnot_bitwise_or_rule(p)) // isnot_bitwise_or
12103 )
12104 {
12105 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "isnot_bitwise_or"));
12106 _res = isnot_bitwise_or_var;
12107 goto done;
12108 }
12109 p->mark = _mark;
12110 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
12111 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "isnot_bitwise_or"));
12112 }
12113 { // is_bitwise_or
12114 if (p->error_indicator) {
12115 D(p->level--);
12116 return NULL;
12117 }
12118 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "is_bitwise_or"));
12119 CmpopExprPair* is_bitwise_or_var;
12120 if (
12121 (is_bitwise_or_var = is_bitwise_or_rule(p)) // is_bitwise_or
12122 )
12123 {
12124 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "is_bitwise_or"));
12125 _res = is_bitwise_or_var;
12126 goto done;
12127 }
12128 p->mark = _mark;
12129 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
12130 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "is_bitwise_or"));
12131 }
12132 _res = NULL;
12133 done:
12134 D(p->level--);
12135 return _res;
12136}
12137
12138// eq_bitwise_or: '==' bitwise_or
12139static CmpopExprPair*
12140eq_bitwise_or_rule(Parser *p)
12141{
12142 D(p->level++);
12143 if (p->error_indicator) {
12144 D(p->level--);
12145 return NULL;
12146 }
12147 CmpopExprPair* _res = NULL;
12148 int _mark = p->mark;
12149 { // '==' bitwise_or
12150 if (p->error_indicator) {
12151 D(p->level--);
12152 return NULL;
12153 }
12154 D(fprintf(stderr, "%*c> eq_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'==' bitwise_or"));
12155 Token * _literal;
12156 expr_ty a;
12157 if (
12158 (_literal = _PyPegen_expect_token(p, 27)) // token='=='
12159 &&
12160 (a = bitwise_or_rule(p)) // bitwise_or
12161 )
12162 {
12163 D(fprintf(stderr, "%*c+ eq_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'==' bitwise_or"));
12164 _res = _PyPegen_cmpop_expr_pair ( p , Eq , a );
12165 if (_res == NULL && PyErr_Occurred()) {
12166 p->error_indicator = 1;
12167 D(p->level--);
12168 return NULL;
12169 }
12170 goto done;
12171 }
12172 p->mark = _mark;
12173 D(fprintf(stderr, "%*c%s eq_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12174 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'==' bitwise_or"));
12175 }
12176 _res = NULL;
12177 done:
12178 D(p->level--);
12179 return _res;
12180}
12181
12182// noteq_bitwise_or: ('!=') bitwise_or
12183static CmpopExprPair*
12184noteq_bitwise_or_rule(Parser *p)
12185{
12186 D(p->level++);
12187 if (p->error_indicator) {
12188 D(p->level--);
12189 return NULL;
12190 }
12191 CmpopExprPair* _res = NULL;
12192 int _mark = p->mark;
12193 { // ('!=') bitwise_or
12194 if (p->error_indicator) {
12195 D(p->level--);
12196 return NULL;
12197 }
12198 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 -080012199 void *_tmp_107_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012200 expr_ty a;
12201 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080012202 (_tmp_107_var = _tmp_107_rule(p)) // '!='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012203 &&
12204 (a = bitwise_or_rule(p)) // bitwise_or
12205 )
12206 {
12207 D(fprintf(stderr, "%*c+ noteq_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "('!=') bitwise_or"));
12208 _res = _PyPegen_cmpop_expr_pair ( p , NotEq , a );
12209 if (_res == NULL && PyErr_Occurred()) {
12210 p->error_indicator = 1;
12211 D(p->level--);
12212 return NULL;
12213 }
12214 goto done;
12215 }
12216 p->mark = _mark;
12217 D(fprintf(stderr, "%*c%s noteq_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12218 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('!=') bitwise_or"));
12219 }
12220 _res = NULL;
12221 done:
12222 D(p->level--);
12223 return _res;
12224}
12225
12226// lte_bitwise_or: '<=' bitwise_or
12227static CmpopExprPair*
12228lte_bitwise_or_rule(Parser *p)
12229{
12230 D(p->level++);
12231 if (p->error_indicator) {
12232 D(p->level--);
12233 return NULL;
12234 }
12235 CmpopExprPair* _res = NULL;
12236 int _mark = p->mark;
12237 { // '<=' bitwise_or
12238 if (p->error_indicator) {
12239 D(p->level--);
12240 return NULL;
12241 }
12242 D(fprintf(stderr, "%*c> lte_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'<=' bitwise_or"));
12243 Token * _literal;
12244 expr_ty a;
12245 if (
12246 (_literal = _PyPegen_expect_token(p, 29)) // token='<='
12247 &&
12248 (a = bitwise_or_rule(p)) // bitwise_or
12249 )
12250 {
12251 D(fprintf(stderr, "%*c+ lte_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'<=' bitwise_or"));
12252 _res = _PyPegen_cmpop_expr_pair ( p , LtE , a );
12253 if (_res == NULL && PyErr_Occurred()) {
12254 p->error_indicator = 1;
12255 D(p->level--);
12256 return NULL;
12257 }
12258 goto done;
12259 }
12260 p->mark = _mark;
12261 D(fprintf(stderr, "%*c%s lte_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12262 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'<=' bitwise_or"));
12263 }
12264 _res = NULL;
12265 done:
12266 D(p->level--);
12267 return _res;
12268}
12269
12270// lt_bitwise_or: '<' bitwise_or
12271static CmpopExprPair*
12272lt_bitwise_or_rule(Parser *p)
12273{
12274 D(p->level++);
12275 if (p->error_indicator) {
12276 D(p->level--);
12277 return NULL;
12278 }
12279 CmpopExprPair* _res = NULL;
12280 int _mark = p->mark;
12281 { // '<' bitwise_or
12282 if (p->error_indicator) {
12283 D(p->level--);
12284 return NULL;
12285 }
12286 D(fprintf(stderr, "%*c> lt_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'<' bitwise_or"));
12287 Token * _literal;
12288 expr_ty a;
12289 if (
12290 (_literal = _PyPegen_expect_token(p, 20)) // token='<'
12291 &&
12292 (a = bitwise_or_rule(p)) // bitwise_or
12293 )
12294 {
12295 D(fprintf(stderr, "%*c+ lt_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'<' bitwise_or"));
12296 _res = _PyPegen_cmpop_expr_pair ( p , Lt , a );
12297 if (_res == NULL && PyErr_Occurred()) {
12298 p->error_indicator = 1;
12299 D(p->level--);
12300 return NULL;
12301 }
12302 goto done;
12303 }
12304 p->mark = _mark;
12305 D(fprintf(stderr, "%*c%s lt_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12306 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'<' bitwise_or"));
12307 }
12308 _res = NULL;
12309 done:
12310 D(p->level--);
12311 return _res;
12312}
12313
12314// gte_bitwise_or: '>=' bitwise_or
12315static CmpopExprPair*
12316gte_bitwise_or_rule(Parser *p)
12317{
12318 D(p->level++);
12319 if (p->error_indicator) {
12320 D(p->level--);
12321 return NULL;
12322 }
12323 CmpopExprPair* _res = NULL;
12324 int _mark = p->mark;
12325 { // '>=' bitwise_or
12326 if (p->error_indicator) {
12327 D(p->level--);
12328 return NULL;
12329 }
12330 D(fprintf(stderr, "%*c> gte_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'>=' bitwise_or"));
12331 Token * _literal;
12332 expr_ty a;
12333 if (
12334 (_literal = _PyPegen_expect_token(p, 30)) // token='>='
12335 &&
12336 (a = bitwise_or_rule(p)) // bitwise_or
12337 )
12338 {
12339 D(fprintf(stderr, "%*c+ gte_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'>=' bitwise_or"));
12340 _res = _PyPegen_cmpop_expr_pair ( p , GtE , a );
12341 if (_res == NULL && PyErr_Occurred()) {
12342 p->error_indicator = 1;
12343 D(p->level--);
12344 return NULL;
12345 }
12346 goto done;
12347 }
12348 p->mark = _mark;
12349 D(fprintf(stderr, "%*c%s gte_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12350 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'>=' bitwise_or"));
12351 }
12352 _res = NULL;
12353 done:
12354 D(p->level--);
12355 return _res;
12356}
12357
12358// gt_bitwise_or: '>' bitwise_or
12359static CmpopExprPair*
12360gt_bitwise_or_rule(Parser *p)
12361{
12362 D(p->level++);
12363 if (p->error_indicator) {
12364 D(p->level--);
12365 return NULL;
12366 }
12367 CmpopExprPair* _res = NULL;
12368 int _mark = p->mark;
12369 { // '>' bitwise_or
12370 if (p->error_indicator) {
12371 D(p->level--);
12372 return NULL;
12373 }
12374 D(fprintf(stderr, "%*c> gt_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'>' bitwise_or"));
12375 Token * _literal;
12376 expr_ty a;
12377 if (
12378 (_literal = _PyPegen_expect_token(p, 21)) // token='>'
12379 &&
12380 (a = bitwise_or_rule(p)) // bitwise_or
12381 )
12382 {
12383 D(fprintf(stderr, "%*c+ gt_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'>' bitwise_or"));
12384 _res = _PyPegen_cmpop_expr_pair ( p , Gt , a );
12385 if (_res == NULL && PyErr_Occurred()) {
12386 p->error_indicator = 1;
12387 D(p->level--);
12388 return NULL;
12389 }
12390 goto done;
12391 }
12392 p->mark = _mark;
12393 D(fprintf(stderr, "%*c%s gt_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12394 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'>' bitwise_or"));
12395 }
12396 _res = NULL;
12397 done:
12398 D(p->level--);
12399 return _res;
12400}
12401
12402// notin_bitwise_or: 'not' 'in' bitwise_or
12403static CmpopExprPair*
12404notin_bitwise_or_rule(Parser *p)
12405{
12406 D(p->level++);
12407 if (p->error_indicator) {
12408 D(p->level--);
12409 return NULL;
12410 }
12411 CmpopExprPair* _res = NULL;
12412 int _mark = p->mark;
12413 { // 'not' 'in' bitwise_or
12414 if (p->error_indicator) {
12415 D(p->level--);
12416 return NULL;
12417 }
12418 D(fprintf(stderr, "%*c> notin_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'not' 'in' bitwise_or"));
12419 Token * _keyword;
12420 Token * _keyword_1;
12421 expr_ty a;
12422 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080012423 (_keyword = _PyPegen_expect_token(p, 529)) // token='not'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012424 &&
12425 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
12426 &&
12427 (a = bitwise_or_rule(p)) // bitwise_or
12428 )
12429 {
12430 D(fprintf(stderr, "%*c+ notin_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'not' 'in' bitwise_or"));
12431 _res = _PyPegen_cmpop_expr_pair ( p , NotIn , a );
12432 if (_res == NULL && PyErr_Occurred()) {
12433 p->error_indicator = 1;
12434 D(p->level--);
12435 return NULL;
12436 }
12437 goto done;
12438 }
12439 p->mark = _mark;
12440 D(fprintf(stderr, "%*c%s notin_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12441 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'not' 'in' bitwise_or"));
12442 }
12443 _res = NULL;
12444 done:
12445 D(p->level--);
12446 return _res;
12447}
12448
12449// in_bitwise_or: 'in' bitwise_or
12450static CmpopExprPair*
12451in_bitwise_or_rule(Parser *p)
12452{
12453 D(p->level++);
12454 if (p->error_indicator) {
12455 D(p->level--);
12456 return NULL;
12457 }
12458 CmpopExprPair* _res = NULL;
12459 int _mark = p->mark;
12460 { // 'in' bitwise_or
12461 if (p->error_indicator) {
12462 D(p->level--);
12463 return NULL;
12464 }
12465 D(fprintf(stderr, "%*c> in_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'in' bitwise_or"));
12466 Token * _keyword;
12467 expr_ty a;
12468 if (
12469 (_keyword = _PyPegen_expect_token(p, 518)) // token='in'
12470 &&
12471 (a = bitwise_or_rule(p)) // bitwise_or
12472 )
12473 {
12474 D(fprintf(stderr, "%*c+ in_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'in' bitwise_or"));
12475 _res = _PyPegen_cmpop_expr_pair ( p , In , a );
12476 if (_res == NULL && PyErr_Occurred()) {
12477 p->error_indicator = 1;
12478 D(p->level--);
12479 return NULL;
12480 }
12481 goto done;
12482 }
12483 p->mark = _mark;
12484 D(fprintf(stderr, "%*c%s in_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12485 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'in' bitwise_or"));
12486 }
12487 _res = NULL;
12488 done:
12489 D(p->level--);
12490 return _res;
12491}
12492
12493// isnot_bitwise_or: 'is' 'not' bitwise_or
12494static CmpopExprPair*
12495isnot_bitwise_or_rule(Parser *p)
12496{
12497 D(p->level++);
12498 if (p->error_indicator) {
12499 D(p->level--);
12500 return NULL;
12501 }
12502 CmpopExprPair* _res = NULL;
12503 int _mark = p->mark;
12504 { // 'is' 'not' bitwise_or
12505 if (p->error_indicator) {
12506 D(p->level--);
12507 return NULL;
12508 }
12509 D(fprintf(stderr, "%*c> isnot_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'is' 'not' bitwise_or"));
12510 Token * _keyword;
12511 Token * _keyword_1;
12512 expr_ty a;
12513 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080012514 (_keyword = _PyPegen_expect_token(p, 530)) // token='is'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012515 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080012516 (_keyword_1 = _PyPegen_expect_token(p, 529)) // token='not'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012517 &&
12518 (a = bitwise_or_rule(p)) // bitwise_or
12519 )
12520 {
12521 D(fprintf(stderr, "%*c+ isnot_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'is' 'not' bitwise_or"));
12522 _res = _PyPegen_cmpop_expr_pair ( p , IsNot , a );
12523 if (_res == NULL && PyErr_Occurred()) {
12524 p->error_indicator = 1;
12525 D(p->level--);
12526 return NULL;
12527 }
12528 goto done;
12529 }
12530 p->mark = _mark;
12531 D(fprintf(stderr, "%*c%s isnot_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12532 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'is' 'not' bitwise_or"));
12533 }
12534 _res = NULL;
12535 done:
12536 D(p->level--);
12537 return _res;
12538}
12539
12540// is_bitwise_or: 'is' bitwise_or
12541static CmpopExprPair*
12542is_bitwise_or_rule(Parser *p)
12543{
12544 D(p->level++);
12545 if (p->error_indicator) {
12546 D(p->level--);
12547 return NULL;
12548 }
12549 CmpopExprPair* _res = NULL;
12550 int _mark = p->mark;
12551 { // 'is' bitwise_or
12552 if (p->error_indicator) {
12553 D(p->level--);
12554 return NULL;
12555 }
12556 D(fprintf(stderr, "%*c> is_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'is' bitwise_or"));
12557 Token * _keyword;
12558 expr_ty a;
12559 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080012560 (_keyword = _PyPegen_expect_token(p, 530)) // token='is'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012561 &&
12562 (a = bitwise_or_rule(p)) // bitwise_or
12563 )
12564 {
12565 D(fprintf(stderr, "%*c+ is_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'is' bitwise_or"));
12566 _res = _PyPegen_cmpop_expr_pair ( p , Is , a );
12567 if (_res == NULL && PyErr_Occurred()) {
12568 p->error_indicator = 1;
12569 D(p->level--);
12570 return NULL;
12571 }
12572 goto done;
12573 }
12574 p->mark = _mark;
12575 D(fprintf(stderr, "%*c%s is_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12576 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'is' bitwise_or"));
12577 }
12578 _res = NULL;
12579 done:
12580 D(p->level--);
12581 return _res;
12582}
12583
12584// Left-recursive
12585// bitwise_or: bitwise_or '|' bitwise_xor | bitwise_xor
12586static expr_ty bitwise_or_raw(Parser *);
12587static expr_ty
12588bitwise_or_rule(Parser *p)
12589{
12590 D(p->level++);
12591 expr_ty _res = NULL;
12592 if (_PyPegen_is_memoized(p, bitwise_or_type, &_res)) {
12593 D(p->level--);
12594 return _res;
12595 }
12596 int _mark = p->mark;
12597 int _resmark = p->mark;
12598 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080012599 int tmpvar_2 = _PyPegen_update_memo(p, _mark, bitwise_or_type, _res);
12600 if (tmpvar_2) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012601 D(p->level--);
12602 return _res;
12603 }
12604 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070012605 p->in_raw_rule++;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012606 void *_raw = bitwise_or_raw(p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070012607 p->in_raw_rule--;
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020012608 if (p->error_indicator)
12609 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012610 if (_raw == NULL || p->mark <= _resmark)
12611 break;
12612 _resmark = p->mark;
12613 _res = _raw;
12614 }
12615 p->mark = _resmark;
12616 D(p->level--);
12617 return _res;
12618}
12619static expr_ty
12620bitwise_or_raw(Parser *p)
12621{
12622 D(p->level++);
12623 if (p->error_indicator) {
12624 D(p->level--);
12625 return NULL;
12626 }
12627 expr_ty _res = NULL;
12628 int _mark = p->mark;
12629 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12630 p->error_indicator = 1;
12631 D(p->level--);
12632 return NULL;
12633 }
12634 int _start_lineno = p->tokens[_mark]->lineno;
12635 UNUSED(_start_lineno); // Only used by EXTRA macro
12636 int _start_col_offset = p->tokens[_mark]->col_offset;
12637 UNUSED(_start_col_offset); // Only used by EXTRA macro
12638 { // bitwise_or '|' bitwise_xor
12639 if (p->error_indicator) {
12640 D(p->level--);
12641 return NULL;
12642 }
12643 D(fprintf(stderr, "%*c> bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_or '|' bitwise_xor"));
12644 Token * _literal;
12645 expr_ty a;
12646 expr_ty b;
12647 if (
12648 (a = bitwise_or_rule(p)) // bitwise_or
12649 &&
12650 (_literal = _PyPegen_expect_token(p, 18)) // token='|'
12651 &&
12652 (b = bitwise_xor_rule(p)) // bitwise_xor
12653 )
12654 {
12655 D(fprintf(stderr, "%*c+ bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_or '|' bitwise_xor"));
12656 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12657 if (_token == NULL) {
12658 D(p->level--);
12659 return NULL;
12660 }
12661 int _end_lineno = _token->end_lineno;
12662 UNUSED(_end_lineno); // Only used by EXTRA macro
12663 int _end_col_offset = _token->end_col_offset;
12664 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020012665 _res = _PyAST_BinOp ( a , BitOr , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012666 if (_res == NULL && PyErr_Occurred()) {
12667 p->error_indicator = 1;
12668 D(p->level--);
12669 return NULL;
12670 }
12671 goto done;
12672 }
12673 p->mark = _mark;
12674 D(fprintf(stderr, "%*c%s bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12675 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_or '|' bitwise_xor"));
12676 }
12677 { // bitwise_xor
12678 if (p->error_indicator) {
12679 D(p->level--);
12680 return NULL;
12681 }
12682 D(fprintf(stderr, "%*c> bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_xor"));
12683 expr_ty bitwise_xor_var;
12684 if (
12685 (bitwise_xor_var = bitwise_xor_rule(p)) // bitwise_xor
12686 )
12687 {
12688 D(fprintf(stderr, "%*c+ bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_xor"));
12689 _res = bitwise_xor_var;
12690 goto done;
12691 }
12692 p->mark = _mark;
12693 D(fprintf(stderr, "%*c%s bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12694 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_xor"));
12695 }
12696 _res = NULL;
12697 done:
12698 D(p->level--);
12699 return _res;
12700}
12701
12702// Left-recursive
12703// bitwise_xor: bitwise_xor '^' bitwise_and | bitwise_and
12704static expr_ty bitwise_xor_raw(Parser *);
12705static expr_ty
12706bitwise_xor_rule(Parser *p)
12707{
12708 D(p->level++);
12709 expr_ty _res = NULL;
12710 if (_PyPegen_is_memoized(p, bitwise_xor_type, &_res)) {
12711 D(p->level--);
12712 return _res;
12713 }
12714 int _mark = p->mark;
12715 int _resmark = p->mark;
12716 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080012717 int tmpvar_3 = _PyPegen_update_memo(p, _mark, bitwise_xor_type, _res);
12718 if (tmpvar_3) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012719 D(p->level--);
12720 return _res;
12721 }
12722 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070012723 p->in_raw_rule++;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012724 void *_raw = bitwise_xor_raw(p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070012725 p->in_raw_rule--;
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020012726 if (p->error_indicator)
12727 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012728 if (_raw == NULL || p->mark <= _resmark)
12729 break;
12730 _resmark = p->mark;
12731 _res = _raw;
12732 }
12733 p->mark = _resmark;
12734 D(p->level--);
12735 return _res;
12736}
12737static expr_ty
12738bitwise_xor_raw(Parser *p)
12739{
12740 D(p->level++);
12741 if (p->error_indicator) {
12742 D(p->level--);
12743 return NULL;
12744 }
12745 expr_ty _res = NULL;
12746 int _mark = p->mark;
12747 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12748 p->error_indicator = 1;
12749 D(p->level--);
12750 return NULL;
12751 }
12752 int _start_lineno = p->tokens[_mark]->lineno;
12753 UNUSED(_start_lineno); // Only used by EXTRA macro
12754 int _start_col_offset = p->tokens[_mark]->col_offset;
12755 UNUSED(_start_col_offset); // Only used by EXTRA macro
12756 { // bitwise_xor '^' bitwise_and
12757 if (p->error_indicator) {
12758 D(p->level--);
12759 return NULL;
12760 }
12761 D(fprintf(stderr, "%*c> bitwise_xor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_xor '^' bitwise_and"));
12762 Token * _literal;
12763 expr_ty a;
12764 expr_ty b;
12765 if (
12766 (a = bitwise_xor_rule(p)) // bitwise_xor
12767 &&
12768 (_literal = _PyPegen_expect_token(p, 32)) // token='^'
12769 &&
12770 (b = bitwise_and_rule(p)) // bitwise_and
12771 )
12772 {
12773 D(fprintf(stderr, "%*c+ bitwise_xor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_xor '^' bitwise_and"));
12774 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12775 if (_token == NULL) {
12776 D(p->level--);
12777 return NULL;
12778 }
12779 int _end_lineno = _token->end_lineno;
12780 UNUSED(_end_lineno); // Only used by EXTRA macro
12781 int _end_col_offset = _token->end_col_offset;
12782 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020012783 _res = _PyAST_BinOp ( a , BitXor , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012784 if (_res == NULL && PyErr_Occurred()) {
12785 p->error_indicator = 1;
12786 D(p->level--);
12787 return NULL;
12788 }
12789 goto done;
12790 }
12791 p->mark = _mark;
12792 D(fprintf(stderr, "%*c%s bitwise_xor[%d-%d]: %s failed!\n", p->level, ' ',
12793 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_xor '^' bitwise_and"));
12794 }
12795 { // bitwise_and
12796 if (p->error_indicator) {
12797 D(p->level--);
12798 return NULL;
12799 }
12800 D(fprintf(stderr, "%*c> bitwise_xor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_and"));
12801 expr_ty bitwise_and_var;
12802 if (
12803 (bitwise_and_var = bitwise_and_rule(p)) // bitwise_and
12804 )
12805 {
12806 D(fprintf(stderr, "%*c+ bitwise_xor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_and"));
12807 _res = bitwise_and_var;
12808 goto done;
12809 }
12810 p->mark = _mark;
12811 D(fprintf(stderr, "%*c%s bitwise_xor[%d-%d]: %s failed!\n", p->level, ' ',
12812 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_and"));
12813 }
12814 _res = NULL;
12815 done:
12816 D(p->level--);
12817 return _res;
12818}
12819
12820// Left-recursive
12821// bitwise_and: bitwise_and '&' shift_expr | shift_expr
12822static expr_ty bitwise_and_raw(Parser *);
12823static expr_ty
12824bitwise_and_rule(Parser *p)
12825{
12826 D(p->level++);
12827 expr_ty _res = NULL;
12828 if (_PyPegen_is_memoized(p, bitwise_and_type, &_res)) {
12829 D(p->level--);
12830 return _res;
12831 }
12832 int _mark = p->mark;
12833 int _resmark = p->mark;
12834 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080012835 int tmpvar_4 = _PyPegen_update_memo(p, _mark, bitwise_and_type, _res);
12836 if (tmpvar_4) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012837 D(p->level--);
12838 return _res;
12839 }
12840 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070012841 p->in_raw_rule++;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012842 void *_raw = bitwise_and_raw(p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070012843 p->in_raw_rule--;
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020012844 if (p->error_indicator)
12845 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012846 if (_raw == NULL || p->mark <= _resmark)
12847 break;
12848 _resmark = p->mark;
12849 _res = _raw;
12850 }
12851 p->mark = _resmark;
12852 D(p->level--);
12853 return _res;
12854}
12855static expr_ty
12856bitwise_and_raw(Parser *p)
12857{
12858 D(p->level++);
12859 if (p->error_indicator) {
12860 D(p->level--);
12861 return NULL;
12862 }
12863 expr_ty _res = NULL;
12864 int _mark = p->mark;
12865 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12866 p->error_indicator = 1;
12867 D(p->level--);
12868 return NULL;
12869 }
12870 int _start_lineno = p->tokens[_mark]->lineno;
12871 UNUSED(_start_lineno); // Only used by EXTRA macro
12872 int _start_col_offset = p->tokens[_mark]->col_offset;
12873 UNUSED(_start_col_offset); // Only used by EXTRA macro
12874 { // bitwise_and '&' shift_expr
12875 if (p->error_indicator) {
12876 D(p->level--);
12877 return NULL;
12878 }
12879 D(fprintf(stderr, "%*c> bitwise_and[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_and '&' shift_expr"));
12880 Token * _literal;
12881 expr_ty a;
12882 expr_ty b;
12883 if (
12884 (a = bitwise_and_rule(p)) // bitwise_and
12885 &&
12886 (_literal = _PyPegen_expect_token(p, 19)) // token='&'
12887 &&
12888 (b = shift_expr_rule(p)) // shift_expr
12889 )
12890 {
12891 D(fprintf(stderr, "%*c+ bitwise_and[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_and '&' shift_expr"));
12892 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12893 if (_token == NULL) {
12894 D(p->level--);
12895 return NULL;
12896 }
12897 int _end_lineno = _token->end_lineno;
12898 UNUSED(_end_lineno); // Only used by EXTRA macro
12899 int _end_col_offset = _token->end_col_offset;
12900 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020012901 _res = _PyAST_BinOp ( a , BitAnd , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012902 if (_res == NULL && PyErr_Occurred()) {
12903 p->error_indicator = 1;
12904 D(p->level--);
12905 return NULL;
12906 }
12907 goto done;
12908 }
12909 p->mark = _mark;
12910 D(fprintf(stderr, "%*c%s bitwise_and[%d-%d]: %s failed!\n", p->level, ' ',
12911 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_and '&' shift_expr"));
12912 }
12913 { // shift_expr
12914 if (p->error_indicator) {
12915 D(p->level--);
12916 return NULL;
12917 }
12918 D(fprintf(stderr, "%*c> bitwise_and[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "shift_expr"));
12919 expr_ty shift_expr_var;
12920 if (
12921 (shift_expr_var = shift_expr_rule(p)) // shift_expr
12922 )
12923 {
12924 D(fprintf(stderr, "%*c+ bitwise_and[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "shift_expr"));
12925 _res = shift_expr_var;
12926 goto done;
12927 }
12928 p->mark = _mark;
12929 D(fprintf(stderr, "%*c%s bitwise_and[%d-%d]: %s failed!\n", p->level, ' ',
12930 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "shift_expr"));
12931 }
12932 _res = NULL;
12933 done:
12934 D(p->level--);
12935 return _res;
12936}
12937
12938// Left-recursive
12939// shift_expr: shift_expr '<<' sum | shift_expr '>>' sum | sum
12940static expr_ty shift_expr_raw(Parser *);
12941static expr_ty
12942shift_expr_rule(Parser *p)
12943{
12944 D(p->level++);
12945 expr_ty _res = NULL;
12946 if (_PyPegen_is_memoized(p, shift_expr_type, &_res)) {
12947 D(p->level--);
12948 return _res;
12949 }
12950 int _mark = p->mark;
12951 int _resmark = p->mark;
12952 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080012953 int tmpvar_5 = _PyPegen_update_memo(p, _mark, shift_expr_type, _res);
12954 if (tmpvar_5) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012955 D(p->level--);
12956 return _res;
12957 }
12958 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070012959 p->in_raw_rule++;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012960 void *_raw = shift_expr_raw(p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070012961 p->in_raw_rule--;
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020012962 if (p->error_indicator)
12963 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012964 if (_raw == NULL || p->mark <= _resmark)
12965 break;
12966 _resmark = p->mark;
12967 _res = _raw;
12968 }
12969 p->mark = _resmark;
12970 D(p->level--);
12971 return _res;
12972}
12973static expr_ty
12974shift_expr_raw(Parser *p)
12975{
12976 D(p->level++);
12977 if (p->error_indicator) {
12978 D(p->level--);
12979 return NULL;
12980 }
12981 expr_ty _res = NULL;
12982 int _mark = p->mark;
12983 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12984 p->error_indicator = 1;
12985 D(p->level--);
12986 return NULL;
12987 }
12988 int _start_lineno = p->tokens[_mark]->lineno;
12989 UNUSED(_start_lineno); // Only used by EXTRA macro
12990 int _start_col_offset = p->tokens[_mark]->col_offset;
12991 UNUSED(_start_col_offset); // Only used by EXTRA macro
12992 { // shift_expr '<<' sum
12993 if (p->error_indicator) {
12994 D(p->level--);
12995 return NULL;
12996 }
12997 D(fprintf(stderr, "%*c> shift_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "shift_expr '<<' sum"));
12998 Token * _literal;
12999 expr_ty a;
13000 expr_ty b;
13001 if (
13002 (a = shift_expr_rule(p)) // shift_expr
13003 &&
13004 (_literal = _PyPegen_expect_token(p, 33)) // token='<<'
13005 &&
13006 (b = sum_rule(p)) // sum
13007 )
13008 {
13009 D(fprintf(stderr, "%*c+ shift_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "shift_expr '<<' sum"));
13010 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13011 if (_token == NULL) {
13012 D(p->level--);
13013 return NULL;
13014 }
13015 int _end_lineno = _token->end_lineno;
13016 UNUSED(_end_lineno); // Only used by EXTRA macro
13017 int _end_col_offset = _token->end_col_offset;
13018 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013019 _res = _PyAST_BinOp ( a , LShift , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013020 if (_res == NULL && PyErr_Occurred()) {
13021 p->error_indicator = 1;
13022 D(p->level--);
13023 return NULL;
13024 }
13025 goto done;
13026 }
13027 p->mark = _mark;
13028 D(fprintf(stderr, "%*c%s shift_expr[%d-%d]: %s failed!\n", p->level, ' ',
13029 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "shift_expr '<<' sum"));
13030 }
13031 { // shift_expr '>>' sum
13032 if (p->error_indicator) {
13033 D(p->level--);
13034 return NULL;
13035 }
13036 D(fprintf(stderr, "%*c> shift_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "shift_expr '>>' sum"));
13037 Token * _literal;
13038 expr_ty a;
13039 expr_ty b;
13040 if (
13041 (a = shift_expr_rule(p)) // shift_expr
13042 &&
13043 (_literal = _PyPegen_expect_token(p, 34)) // token='>>'
13044 &&
13045 (b = sum_rule(p)) // sum
13046 )
13047 {
13048 D(fprintf(stderr, "%*c+ shift_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "shift_expr '>>' sum"));
13049 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13050 if (_token == NULL) {
13051 D(p->level--);
13052 return NULL;
13053 }
13054 int _end_lineno = _token->end_lineno;
13055 UNUSED(_end_lineno); // Only used by EXTRA macro
13056 int _end_col_offset = _token->end_col_offset;
13057 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013058 _res = _PyAST_BinOp ( a , RShift , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013059 if (_res == NULL && PyErr_Occurred()) {
13060 p->error_indicator = 1;
13061 D(p->level--);
13062 return NULL;
13063 }
13064 goto done;
13065 }
13066 p->mark = _mark;
13067 D(fprintf(stderr, "%*c%s shift_expr[%d-%d]: %s failed!\n", p->level, ' ',
13068 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "shift_expr '>>' sum"));
13069 }
13070 { // sum
13071 if (p->error_indicator) {
13072 D(p->level--);
13073 return NULL;
13074 }
13075 D(fprintf(stderr, "%*c> shift_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "sum"));
13076 expr_ty sum_var;
13077 if (
13078 (sum_var = sum_rule(p)) // sum
13079 )
13080 {
13081 D(fprintf(stderr, "%*c+ shift_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "sum"));
13082 _res = sum_var;
13083 goto done;
13084 }
13085 p->mark = _mark;
13086 D(fprintf(stderr, "%*c%s shift_expr[%d-%d]: %s failed!\n", p->level, ' ',
13087 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "sum"));
13088 }
13089 _res = NULL;
13090 done:
13091 D(p->level--);
13092 return _res;
13093}
13094
13095// Left-recursive
13096// sum: sum '+' term | sum '-' term | term
13097static expr_ty sum_raw(Parser *);
13098static expr_ty
13099sum_rule(Parser *p)
13100{
13101 D(p->level++);
13102 expr_ty _res = NULL;
13103 if (_PyPegen_is_memoized(p, sum_type, &_res)) {
13104 D(p->level--);
13105 return _res;
13106 }
13107 int _mark = p->mark;
13108 int _resmark = p->mark;
13109 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080013110 int tmpvar_6 = _PyPegen_update_memo(p, _mark, sum_type, _res);
13111 if (tmpvar_6) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013112 D(p->level--);
13113 return _res;
13114 }
13115 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070013116 p->in_raw_rule++;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013117 void *_raw = sum_raw(p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070013118 p->in_raw_rule--;
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020013119 if (p->error_indicator)
13120 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013121 if (_raw == NULL || p->mark <= _resmark)
13122 break;
13123 _resmark = p->mark;
13124 _res = _raw;
13125 }
13126 p->mark = _resmark;
13127 D(p->level--);
13128 return _res;
13129}
13130static expr_ty
13131sum_raw(Parser *p)
13132{
13133 D(p->level++);
13134 if (p->error_indicator) {
13135 D(p->level--);
13136 return NULL;
13137 }
13138 expr_ty _res = NULL;
13139 int _mark = p->mark;
13140 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13141 p->error_indicator = 1;
13142 D(p->level--);
13143 return NULL;
13144 }
13145 int _start_lineno = p->tokens[_mark]->lineno;
13146 UNUSED(_start_lineno); // Only used by EXTRA macro
13147 int _start_col_offset = p->tokens[_mark]->col_offset;
13148 UNUSED(_start_col_offset); // Only used by EXTRA macro
13149 { // sum '+' term
13150 if (p->error_indicator) {
13151 D(p->level--);
13152 return NULL;
13153 }
13154 D(fprintf(stderr, "%*c> sum[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "sum '+' term"));
13155 Token * _literal;
13156 expr_ty a;
13157 expr_ty b;
13158 if (
13159 (a = sum_rule(p)) // sum
13160 &&
13161 (_literal = _PyPegen_expect_token(p, 14)) // token='+'
13162 &&
13163 (b = term_rule(p)) // term
13164 )
13165 {
13166 D(fprintf(stderr, "%*c+ sum[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "sum '+' term"));
13167 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13168 if (_token == NULL) {
13169 D(p->level--);
13170 return NULL;
13171 }
13172 int _end_lineno = _token->end_lineno;
13173 UNUSED(_end_lineno); // Only used by EXTRA macro
13174 int _end_col_offset = _token->end_col_offset;
13175 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013176 _res = _PyAST_BinOp ( a , Add , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013177 if (_res == NULL && PyErr_Occurred()) {
13178 p->error_indicator = 1;
13179 D(p->level--);
13180 return NULL;
13181 }
13182 goto done;
13183 }
13184 p->mark = _mark;
13185 D(fprintf(stderr, "%*c%s sum[%d-%d]: %s failed!\n", p->level, ' ',
13186 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "sum '+' term"));
13187 }
13188 { // sum '-' term
13189 if (p->error_indicator) {
13190 D(p->level--);
13191 return NULL;
13192 }
13193 D(fprintf(stderr, "%*c> sum[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "sum '-' term"));
13194 Token * _literal;
13195 expr_ty a;
13196 expr_ty b;
13197 if (
13198 (a = sum_rule(p)) // sum
13199 &&
13200 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
13201 &&
13202 (b = term_rule(p)) // term
13203 )
13204 {
13205 D(fprintf(stderr, "%*c+ sum[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "sum '-' term"));
13206 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13207 if (_token == NULL) {
13208 D(p->level--);
13209 return NULL;
13210 }
13211 int _end_lineno = _token->end_lineno;
13212 UNUSED(_end_lineno); // Only used by EXTRA macro
13213 int _end_col_offset = _token->end_col_offset;
13214 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013215 _res = _PyAST_BinOp ( a , Sub , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013216 if (_res == NULL && PyErr_Occurred()) {
13217 p->error_indicator = 1;
13218 D(p->level--);
13219 return NULL;
13220 }
13221 goto done;
13222 }
13223 p->mark = _mark;
13224 D(fprintf(stderr, "%*c%s sum[%d-%d]: %s failed!\n", p->level, ' ',
13225 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "sum '-' term"));
13226 }
13227 { // term
13228 if (p->error_indicator) {
13229 D(p->level--);
13230 return NULL;
13231 }
13232 D(fprintf(stderr, "%*c> sum[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term"));
13233 expr_ty term_var;
13234 if (
13235 (term_var = term_rule(p)) // term
13236 )
13237 {
13238 D(fprintf(stderr, "%*c+ sum[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term"));
13239 _res = term_var;
13240 goto done;
13241 }
13242 p->mark = _mark;
13243 D(fprintf(stderr, "%*c%s sum[%d-%d]: %s failed!\n", p->level, ' ',
13244 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term"));
13245 }
13246 _res = NULL;
13247 done:
13248 D(p->level--);
13249 return _res;
13250}
13251
13252// Left-recursive
13253// term:
13254// | term '*' factor
13255// | term '/' factor
13256// | term '//' factor
13257// | term '%' factor
13258// | term '@' factor
13259// | factor
13260static expr_ty term_raw(Parser *);
13261static expr_ty
13262term_rule(Parser *p)
13263{
13264 D(p->level++);
13265 expr_ty _res = NULL;
13266 if (_PyPegen_is_memoized(p, term_type, &_res)) {
13267 D(p->level--);
13268 return _res;
13269 }
13270 int _mark = p->mark;
13271 int _resmark = p->mark;
13272 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080013273 int tmpvar_7 = _PyPegen_update_memo(p, _mark, term_type, _res);
13274 if (tmpvar_7) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013275 D(p->level--);
13276 return _res;
13277 }
13278 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070013279 p->in_raw_rule++;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013280 void *_raw = term_raw(p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070013281 p->in_raw_rule--;
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020013282 if (p->error_indicator)
13283 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013284 if (_raw == NULL || p->mark <= _resmark)
13285 break;
13286 _resmark = p->mark;
13287 _res = _raw;
13288 }
13289 p->mark = _resmark;
13290 D(p->level--);
13291 return _res;
13292}
13293static expr_ty
13294term_raw(Parser *p)
13295{
13296 D(p->level++);
13297 if (p->error_indicator) {
13298 D(p->level--);
13299 return NULL;
13300 }
13301 expr_ty _res = NULL;
13302 int _mark = p->mark;
13303 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13304 p->error_indicator = 1;
13305 D(p->level--);
13306 return NULL;
13307 }
13308 int _start_lineno = p->tokens[_mark]->lineno;
13309 UNUSED(_start_lineno); // Only used by EXTRA macro
13310 int _start_col_offset = p->tokens[_mark]->col_offset;
13311 UNUSED(_start_col_offset); // Only used by EXTRA macro
13312 { // term '*' factor
13313 if (p->error_indicator) {
13314 D(p->level--);
13315 return NULL;
13316 }
13317 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '*' factor"));
13318 Token * _literal;
13319 expr_ty a;
13320 expr_ty b;
13321 if (
13322 (a = term_rule(p)) // term
13323 &&
13324 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
13325 &&
13326 (b = factor_rule(p)) // factor
13327 )
13328 {
13329 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '*' factor"));
13330 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13331 if (_token == NULL) {
13332 D(p->level--);
13333 return NULL;
13334 }
13335 int _end_lineno = _token->end_lineno;
13336 UNUSED(_end_lineno); // Only used by EXTRA macro
13337 int _end_col_offset = _token->end_col_offset;
13338 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013339 _res = _PyAST_BinOp ( a , Mult , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013340 if (_res == NULL && PyErr_Occurred()) {
13341 p->error_indicator = 1;
13342 D(p->level--);
13343 return NULL;
13344 }
13345 goto done;
13346 }
13347 p->mark = _mark;
13348 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
13349 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '*' factor"));
13350 }
13351 { // term '/' factor
13352 if (p->error_indicator) {
13353 D(p->level--);
13354 return NULL;
13355 }
13356 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '/' factor"));
13357 Token * _literal;
13358 expr_ty a;
13359 expr_ty b;
13360 if (
13361 (a = term_rule(p)) // term
13362 &&
13363 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
13364 &&
13365 (b = factor_rule(p)) // factor
13366 )
13367 {
13368 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '/' factor"));
13369 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13370 if (_token == NULL) {
13371 D(p->level--);
13372 return NULL;
13373 }
13374 int _end_lineno = _token->end_lineno;
13375 UNUSED(_end_lineno); // Only used by EXTRA macro
13376 int _end_col_offset = _token->end_col_offset;
13377 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013378 _res = _PyAST_BinOp ( a , Div , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013379 if (_res == NULL && PyErr_Occurred()) {
13380 p->error_indicator = 1;
13381 D(p->level--);
13382 return NULL;
13383 }
13384 goto done;
13385 }
13386 p->mark = _mark;
13387 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
13388 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '/' factor"));
13389 }
13390 { // term '//' factor
13391 if (p->error_indicator) {
13392 D(p->level--);
13393 return NULL;
13394 }
13395 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '//' factor"));
13396 Token * _literal;
13397 expr_ty a;
13398 expr_ty b;
13399 if (
13400 (a = term_rule(p)) // term
13401 &&
13402 (_literal = _PyPegen_expect_token(p, 47)) // token='//'
13403 &&
13404 (b = factor_rule(p)) // factor
13405 )
13406 {
13407 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '//' factor"));
13408 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13409 if (_token == NULL) {
13410 D(p->level--);
13411 return NULL;
13412 }
13413 int _end_lineno = _token->end_lineno;
13414 UNUSED(_end_lineno); // Only used by EXTRA macro
13415 int _end_col_offset = _token->end_col_offset;
13416 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013417 _res = _PyAST_BinOp ( a , FloorDiv , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013418 if (_res == NULL && PyErr_Occurred()) {
13419 p->error_indicator = 1;
13420 D(p->level--);
13421 return NULL;
13422 }
13423 goto done;
13424 }
13425 p->mark = _mark;
13426 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
13427 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '//' factor"));
13428 }
13429 { // term '%' factor
13430 if (p->error_indicator) {
13431 D(p->level--);
13432 return NULL;
13433 }
13434 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '%' factor"));
13435 Token * _literal;
13436 expr_ty a;
13437 expr_ty b;
13438 if (
13439 (a = term_rule(p)) // term
13440 &&
13441 (_literal = _PyPegen_expect_token(p, 24)) // token='%'
13442 &&
13443 (b = factor_rule(p)) // factor
13444 )
13445 {
13446 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '%' factor"));
13447 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13448 if (_token == NULL) {
13449 D(p->level--);
13450 return NULL;
13451 }
13452 int _end_lineno = _token->end_lineno;
13453 UNUSED(_end_lineno); // Only used by EXTRA macro
13454 int _end_col_offset = _token->end_col_offset;
13455 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013456 _res = _PyAST_BinOp ( a , Mod , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013457 if (_res == NULL && PyErr_Occurred()) {
13458 p->error_indicator = 1;
13459 D(p->level--);
13460 return NULL;
13461 }
13462 goto done;
13463 }
13464 p->mark = _mark;
13465 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
13466 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '%' factor"));
13467 }
13468 { // term '@' factor
13469 if (p->error_indicator) {
13470 D(p->level--);
13471 return NULL;
13472 }
13473 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '@' factor"));
13474 Token * _literal;
13475 expr_ty a;
13476 expr_ty b;
13477 if (
13478 (a = term_rule(p)) // term
13479 &&
13480 (_literal = _PyPegen_expect_token(p, 49)) // token='@'
13481 &&
13482 (b = factor_rule(p)) // factor
13483 )
13484 {
13485 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '@' factor"));
13486 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13487 if (_token == NULL) {
13488 D(p->level--);
13489 return NULL;
13490 }
13491 int _end_lineno = _token->end_lineno;
13492 UNUSED(_end_lineno); // Only used by EXTRA macro
13493 int _end_col_offset = _token->end_col_offset;
13494 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013495 _res = CHECK_VERSION ( expr_ty , 5 , "The '@' operator is" , _PyAST_BinOp ( a , MatMult , b , EXTRA ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013496 if (_res == NULL && PyErr_Occurred()) {
13497 p->error_indicator = 1;
13498 D(p->level--);
13499 return NULL;
13500 }
13501 goto done;
13502 }
13503 p->mark = _mark;
13504 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
13505 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '@' factor"));
13506 }
13507 { // factor
13508 if (p->error_indicator) {
13509 D(p->level--);
13510 return NULL;
13511 }
13512 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "factor"));
13513 expr_ty factor_var;
13514 if (
13515 (factor_var = factor_rule(p)) // factor
13516 )
13517 {
13518 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "factor"));
13519 _res = factor_var;
13520 goto done;
13521 }
13522 p->mark = _mark;
13523 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
13524 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "factor"));
13525 }
13526 _res = NULL;
13527 done:
13528 D(p->level--);
13529 return _res;
13530}
13531
13532// factor: '+' factor | '-' factor | '~' factor | power
13533static expr_ty
13534factor_rule(Parser *p)
13535{
13536 D(p->level++);
13537 if (p->error_indicator) {
13538 D(p->level--);
13539 return NULL;
13540 }
13541 expr_ty _res = NULL;
13542 if (_PyPegen_is_memoized(p, factor_type, &_res)) {
13543 D(p->level--);
13544 return _res;
13545 }
13546 int _mark = p->mark;
13547 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13548 p->error_indicator = 1;
13549 D(p->level--);
13550 return NULL;
13551 }
13552 int _start_lineno = p->tokens[_mark]->lineno;
13553 UNUSED(_start_lineno); // Only used by EXTRA macro
13554 int _start_col_offset = p->tokens[_mark]->col_offset;
13555 UNUSED(_start_col_offset); // Only used by EXTRA macro
13556 { // '+' factor
13557 if (p->error_indicator) {
13558 D(p->level--);
13559 return NULL;
13560 }
13561 D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'+' factor"));
13562 Token * _literal;
13563 expr_ty a;
13564 if (
13565 (_literal = _PyPegen_expect_token(p, 14)) // token='+'
13566 &&
13567 (a = factor_rule(p)) // factor
13568 )
13569 {
13570 D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'+' factor"));
13571 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13572 if (_token == NULL) {
13573 D(p->level--);
13574 return NULL;
13575 }
13576 int _end_lineno = _token->end_lineno;
13577 UNUSED(_end_lineno); // Only used by EXTRA macro
13578 int _end_col_offset = _token->end_col_offset;
13579 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013580 _res = _PyAST_UnaryOp ( UAdd , a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013581 if (_res == NULL && PyErr_Occurred()) {
13582 p->error_indicator = 1;
13583 D(p->level--);
13584 return NULL;
13585 }
13586 goto done;
13587 }
13588 p->mark = _mark;
13589 D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
13590 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'+' factor"));
13591 }
13592 { // '-' factor
13593 if (p->error_indicator) {
13594 D(p->level--);
13595 return NULL;
13596 }
13597 D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-' factor"));
13598 Token * _literal;
13599 expr_ty a;
13600 if (
13601 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
13602 &&
13603 (a = factor_rule(p)) // factor
13604 )
13605 {
13606 D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-' factor"));
13607 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13608 if (_token == NULL) {
13609 D(p->level--);
13610 return NULL;
13611 }
13612 int _end_lineno = _token->end_lineno;
13613 UNUSED(_end_lineno); // Only used by EXTRA macro
13614 int _end_col_offset = _token->end_col_offset;
13615 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013616 _res = _PyAST_UnaryOp ( USub , a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013617 if (_res == NULL && PyErr_Occurred()) {
13618 p->error_indicator = 1;
13619 D(p->level--);
13620 return NULL;
13621 }
13622 goto done;
13623 }
13624 p->mark = _mark;
13625 D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
13626 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-' factor"));
13627 }
13628 { // '~' factor
13629 if (p->error_indicator) {
13630 D(p->level--);
13631 return NULL;
13632 }
13633 D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'~' factor"));
13634 Token * _literal;
13635 expr_ty a;
13636 if (
13637 (_literal = _PyPegen_expect_token(p, 31)) // token='~'
13638 &&
13639 (a = factor_rule(p)) // factor
13640 )
13641 {
13642 D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'~' factor"));
13643 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13644 if (_token == NULL) {
13645 D(p->level--);
13646 return NULL;
13647 }
13648 int _end_lineno = _token->end_lineno;
13649 UNUSED(_end_lineno); // Only used by EXTRA macro
13650 int _end_col_offset = _token->end_col_offset;
13651 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013652 _res = _PyAST_UnaryOp ( Invert , a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013653 if (_res == NULL && PyErr_Occurred()) {
13654 p->error_indicator = 1;
13655 D(p->level--);
13656 return NULL;
13657 }
13658 goto done;
13659 }
13660 p->mark = _mark;
13661 D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
13662 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'~' factor"));
13663 }
13664 { // power
13665 if (p->error_indicator) {
13666 D(p->level--);
13667 return NULL;
13668 }
13669 D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "power"));
13670 expr_ty power_var;
13671 if (
13672 (power_var = power_rule(p)) // power
13673 )
13674 {
13675 D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "power"));
13676 _res = power_var;
13677 goto done;
13678 }
13679 p->mark = _mark;
13680 D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
13681 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "power"));
13682 }
13683 _res = NULL;
13684 done:
13685 _PyPegen_insert_memo(p, _mark, factor_type, _res);
13686 D(p->level--);
13687 return _res;
13688}
13689
13690// power: await_primary '**' factor | await_primary
13691static expr_ty
13692power_rule(Parser *p)
13693{
13694 D(p->level++);
13695 if (p->error_indicator) {
13696 D(p->level--);
13697 return NULL;
13698 }
13699 expr_ty _res = NULL;
13700 int _mark = p->mark;
13701 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13702 p->error_indicator = 1;
13703 D(p->level--);
13704 return NULL;
13705 }
13706 int _start_lineno = p->tokens[_mark]->lineno;
13707 UNUSED(_start_lineno); // Only used by EXTRA macro
13708 int _start_col_offset = p->tokens[_mark]->col_offset;
13709 UNUSED(_start_col_offset); // Only used by EXTRA macro
13710 { // await_primary '**' factor
13711 if (p->error_indicator) {
13712 D(p->level--);
13713 return NULL;
13714 }
13715 D(fprintf(stderr, "%*c> power[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "await_primary '**' factor"));
13716 Token * _literal;
13717 expr_ty a;
13718 expr_ty b;
13719 if (
13720 (a = await_primary_rule(p)) // await_primary
13721 &&
13722 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
13723 &&
13724 (b = factor_rule(p)) // factor
13725 )
13726 {
13727 D(fprintf(stderr, "%*c+ power[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "await_primary '**' factor"));
13728 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13729 if (_token == NULL) {
13730 D(p->level--);
13731 return NULL;
13732 }
13733 int _end_lineno = _token->end_lineno;
13734 UNUSED(_end_lineno); // Only used by EXTRA macro
13735 int _end_col_offset = _token->end_col_offset;
13736 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013737 _res = _PyAST_BinOp ( a , Pow , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013738 if (_res == NULL && PyErr_Occurred()) {
13739 p->error_indicator = 1;
13740 D(p->level--);
13741 return NULL;
13742 }
13743 goto done;
13744 }
13745 p->mark = _mark;
13746 D(fprintf(stderr, "%*c%s power[%d-%d]: %s failed!\n", p->level, ' ',
13747 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "await_primary '**' factor"));
13748 }
13749 { // await_primary
13750 if (p->error_indicator) {
13751 D(p->level--);
13752 return NULL;
13753 }
13754 D(fprintf(stderr, "%*c> power[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "await_primary"));
13755 expr_ty await_primary_var;
13756 if (
13757 (await_primary_var = await_primary_rule(p)) // await_primary
13758 )
13759 {
13760 D(fprintf(stderr, "%*c+ power[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "await_primary"));
13761 _res = await_primary_var;
13762 goto done;
13763 }
13764 p->mark = _mark;
13765 D(fprintf(stderr, "%*c%s power[%d-%d]: %s failed!\n", p->level, ' ',
13766 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "await_primary"));
13767 }
13768 _res = NULL;
13769 done:
13770 D(p->level--);
13771 return _res;
13772}
13773
13774// await_primary: AWAIT primary | primary
13775static expr_ty
13776await_primary_rule(Parser *p)
13777{
13778 D(p->level++);
13779 if (p->error_indicator) {
13780 D(p->level--);
13781 return NULL;
13782 }
13783 expr_ty _res = NULL;
13784 if (_PyPegen_is_memoized(p, await_primary_type, &_res)) {
13785 D(p->level--);
13786 return _res;
13787 }
13788 int _mark = p->mark;
13789 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13790 p->error_indicator = 1;
13791 D(p->level--);
13792 return NULL;
13793 }
13794 int _start_lineno = p->tokens[_mark]->lineno;
13795 UNUSED(_start_lineno); // Only used by EXTRA macro
13796 int _start_col_offset = p->tokens[_mark]->col_offset;
13797 UNUSED(_start_col_offset); // Only used by EXTRA macro
13798 { // AWAIT primary
13799 if (p->error_indicator) {
13800 D(p->level--);
13801 return NULL;
13802 }
13803 D(fprintf(stderr, "%*c> await_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "AWAIT primary"));
13804 expr_ty a;
13805 Token * await_var;
13806 if (
13807 (await_var = _PyPegen_expect_token(p, AWAIT)) // token='AWAIT'
13808 &&
13809 (a = primary_rule(p)) // primary
13810 )
13811 {
13812 D(fprintf(stderr, "%*c+ await_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "AWAIT primary"));
13813 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13814 if (_token == NULL) {
13815 D(p->level--);
13816 return NULL;
13817 }
13818 int _end_lineno = _token->end_lineno;
13819 UNUSED(_end_lineno); // Only used by EXTRA macro
13820 int _end_col_offset = _token->end_col_offset;
13821 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013822 _res = CHECK_VERSION ( expr_ty , 5 , "Await expressions are" , _PyAST_Await ( a , EXTRA ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013823 if (_res == NULL && PyErr_Occurred()) {
13824 p->error_indicator = 1;
13825 D(p->level--);
13826 return NULL;
13827 }
13828 goto done;
13829 }
13830 p->mark = _mark;
13831 D(fprintf(stderr, "%*c%s await_primary[%d-%d]: %s failed!\n", p->level, ' ',
13832 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "AWAIT primary"));
13833 }
13834 { // primary
13835 if (p->error_indicator) {
13836 D(p->level--);
13837 return NULL;
13838 }
13839 D(fprintf(stderr, "%*c> await_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary"));
13840 expr_ty primary_var;
13841 if (
13842 (primary_var = primary_rule(p)) // primary
13843 )
13844 {
13845 D(fprintf(stderr, "%*c+ await_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary"));
13846 _res = primary_var;
13847 goto done;
13848 }
13849 p->mark = _mark;
13850 D(fprintf(stderr, "%*c%s await_primary[%d-%d]: %s failed!\n", p->level, ' ',
13851 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary"));
13852 }
13853 _res = NULL;
13854 done:
13855 _PyPegen_insert_memo(p, _mark, await_primary_type, _res);
13856 D(p->level--);
13857 return _res;
13858}
13859
13860// Left-recursive
13861// primary:
Lysandros Nikolaou15acc4e2020-10-27 20:54:20 +020013862// | invalid_primary
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013863// | primary '.' NAME
13864// | primary genexp
13865// | primary '(' arguments? ')'
13866// | primary '[' slices ']'
13867// | atom
13868static expr_ty primary_raw(Parser *);
13869static expr_ty
13870primary_rule(Parser *p)
13871{
13872 D(p->level++);
13873 expr_ty _res = NULL;
13874 if (_PyPegen_is_memoized(p, primary_type, &_res)) {
13875 D(p->level--);
13876 return _res;
13877 }
13878 int _mark = p->mark;
13879 int _resmark = p->mark;
13880 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080013881 int tmpvar_8 = _PyPegen_update_memo(p, _mark, primary_type, _res);
13882 if (tmpvar_8) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013883 D(p->level--);
13884 return _res;
13885 }
13886 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070013887 p->in_raw_rule++;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013888 void *_raw = primary_raw(p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070013889 p->in_raw_rule--;
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020013890 if (p->error_indicator)
13891 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013892 if (_raw == NULL || p->mark <= _resmark)
13893 break;
13894 _resmark = p->mark;
13895 _res = _raw;
13896 }
13897 p->mark = _resmark;
13898 D(p->level--);
13899 return _res;
13900}
13901static expr_ty
13902primary_raw(Parser *p)
13903{
13904 D(p->level++);
13905 if (p->error_indicator) {
13906 D(p->level--);
13907 return NULL;
13908 }
13909 expr_ty _res = NULL;
13910 int _mark = p->mark;
13911 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13912 p->error_indicator = 1;
13913 D(p->level--);
13914 return NULL;
13915 }
13916 int _start_lineno = p->tokens[_mark]->lineno;
13917 UNUSED(_start_lineno); // Only used by EXTRA macro
13918 int _start_col_offset = p->tokens[_mark]->col_offset;
13919 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou15acc4e2020-10-27 20:54:20 +020013920 if (p->call_invalid_rules) { // invalid_primary
13921 if (p->error_indicator) {
13922 D(p->level--);
13923 return NULL;
13924 }
13925 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_primary"));
13926 void *invalid_primary_var;
13927 if (
13928 (invalid_primary_var = invalid_primary_rule(p)) // invalid_primary
13929 )
13930 {
13931 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_primary"));
13932 _res = invalid_primary_var;
13933 goto done;
13934 }
13935 p->mark = _mark;
13936 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
13937 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_primary"));
13938 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013939 { // primary '.' NAME
13940 if (p->error_indicator) {
13941 D(p->level--);
13942 return NULL;
13943 }
13944 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '.' NAME"));
13945 Token * _literal;
13946 expr_ty a;
13947 expr_ty b;
13948 if (
13949 (a = primary_rule(p)) // primary
13950 &&
13951 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
13952 &&
13953 (b = _PyPegen_name_token(p)) // NAME
13954 )
13955 {
13956 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '.' NAME"));
13957 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13958 if (_token == NULL) {
13959 D(p->level--);
13960 return NULL;
13961 }
13962 int _end_lineno = _token->end_lineno;
13963 UNUSED(_end_lineno); // Only used by EXTRA macro
13964 int _end_col_offset = _token->end_col_offset;
13965 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013966 _res = _PyAST_Attribute ( a , b -> v . Name . id , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013967 if (_res == NULL && PyErr_Occurred()) {
13968 p->error_indicator = 1;
13969 D(p->level--);
13970 return NULL;
13971 }
13972 goto done;
13973 }
13974 p->mark = _mark;
13975 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
13976 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '.' NAME"));
13977 }
13978 { // primary genexp
13979 if (p->error_indicator) {
13980 D(p->level--);
13981 return NULL;
13982 }
13983 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary genexp"));
13984 expr_ty a;
13985 expr_ty b;
13986 if (
13987 (a = primary_rule(p)) // primary
13988 &&
13989 (b = genexp_rule(p)) // genexp
13990 )
13991 {
13992 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary genexp"));
13993 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13994 if (_token == NULL) {
13995 D(p->level--);
13996 return NULL;
13997 }
13998 int _end_lineno = _token->end_lineno;
13999 UNUSED(_end_lineno); // Only used by EXTRA macro
14000 int _end_col_offset = _token->end_col_offset;
14001 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014002 _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 +010014003 if (_res == NULL && PyErr_Occurred()) {
14004 p->error_indicator = 1;
14005 D(p->level--);
14006 return NULL;
14007 }
14008 goto done;
14009 }
14010 p->mark = _mark;
14011 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
14012 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary genexp"));
14013 }
14014 { // primary '(' arguments? ')'
14015 if (p->error_indicator) {
14016 D(p->level--);
14017 return NULL;
14018 }
14019 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '(' arguments? ')'"));
14020 Token * _literal;
14021 Token * _literal_1;
14022 expr_ty a;
14023 void *b;
14024 if (
14025 (a = primary_rule(p)) // primary
14026 &&
14027 (_literal = _PyPegen_expect_token(p, 7)) // token='('
14028 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +020014029 (b = arguments_rule(p), !p->error_indicator) // arguments?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014030 &&
14031 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
14032 )
14033 {
14034 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '(' arguments? ')'"));
14035 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14036 if (_token == NULL) {
14037 D(p->level--);
14038 return NULL;
14039 }
14040 int _end_lineno = _token->end_lineno;
14041 UNUSED(_end_lineno); // Only used by EXTRA macro
14042 int _end_col_offset = _token->end_col_offset;
14043 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014044 _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 +010014045 if (_res == NULL && PyErr_Occurred()) {
14046 p->error_indicator = 1;
14047 D(p->level--);
14048 return NULL;
14049 }
14050 goto done;
14051 }
14052 p->mark = _mark;
14053 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
14054 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '(' arguments? ')'"));
14055 }
14056 { // primary '[' slices ']'
14057 if (p->error_indicator) {
14058 D(p->level--);
14059 return NULL;
14060 }
14061 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '[' slices ']'"));
14062 Token * _literal;
14063 Token * _literal_1;
14064 expr_ty a;
14065 expr_ty b;
14066 if (
14067 (a = primary_rule(p)) // primary
14068 &&
14069 (_literal = _PyPegen_expect_token(p, 9)) // token='['
14070 &&
14071 (b = slices_rule(p)) // slices
14072 &&
14073 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
14074 )
14075 {
14076 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '[' slices ']'"));
14077 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14078 if (_token == NULL) {
14079 D(p->level--);
14080 return NULL;
14081 }
14082 int _end_lineno = _token->end_lineno;
14083 UNUSED(_end_lineno); // Only used by EXTRA macro
14084 int _end_col_offset = _token->end_col_offset;
14085 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014086 _res = _PyAST_Subscript ( a , b , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014087 if (_res == NULL && PyErr_Occurred()) {
14088 p->error_indicator = 1;
14089 D(p->level--);
14090 return NULL;
14091 }
14092 goto done;
14093 }
14094 p->mark = _mark;
14095 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
14096 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '[' slices ']'"));
14097 }
14098 { // atom
14099 if (p->error_indicator) {
14100 D(p->level--);
14101 return NULL;
14102 }
14103 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "atom"));
14104 expr_ty atom_var;
14105 if (
14106 (atom_var = atom_rule(p)) // atom
14107 )
14108 {
14109 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "atom"));
14110 _res = atom_var;
14111 goto done;
14112 }
14113 p->mark = _mark;
14114 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
14115 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "atom"));
14116 }
14117 _res = NULL;
14118 done:
14119 D(p->level--);
14120 return _res;
14121}
14122
14123// slices: slice !',' | ','.slice+ ','?
14124static expr_ty
14125slices_rule(Parser *p)
14126{
14127 D(p->level++);
14128 if (p->error_indicator) {
14129 D(p->level--);
14130 return NULL;
14131 }
14132 expr_ty _res = NULL;
14133 int _mark = p->mark;
14134 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14135 p->error_indicator = 1;
14136 D(p->level--);
14137 return NULL;
14138 }
14139 int _start_lineno = p->tokens[_mark]->lineno;
14140 UNUSED(_start_lineno); // Only used by EXTRA macro
14141 int _start_col_offset = p->tokens[_mark]->col_offset;
14142 UNUSED(_start_col_offset); // Only used by EXTRA macro
14143 { // slice !','
14144 if (p->error_indicator) {
14145 D(p->level--);
14146 return NULL;
14147 }
14148 D(fprintf(stderr, "%*c> slices[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slice !','"));
14149 expr_ty a;
14150 if (
14151 (a = slice_rule(p)) // slice
14152 &&
14153 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 12) // token=','
14154 )
14155 {
14156 D(fprintf(stderr, "%*c+ slices[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slice !','"));
14157 _res = a;
14158 if (_res == NULL && PyErr_Occurred()) {
14159 p->error_indicator = 1;
14160 D(p->level--);
14161 return NULL;
14162 }
14163 goto done;
14164 }
14165 p->mark = _mark;
14166 D(fprintf(stderr, "%*c%s slices[%d-%d]: %s failed!\n", p->level, ' ',
14167 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slice !','"));
14168 }
14169 { // ','.slice+ ','?
14170 if (p->error_indicator) {
14171 D(p->level--);
14172 return NULL;
14173 }
14174 D(fprintf(stderr, "%*c> slices[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.slice+ ','?"));
14175 void *_opt_var;
14176 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +010014177 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014178 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080014179 (a = (asdl_expr_seq*)_gather_108_rule(p)) // ','.slice+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014180 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +020014181 (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014182 )
14183 {
14184 D(fprintf(stderr, "%*c+ slices[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.slice+ ','?"));
14185 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14186 if (_token == NULL) {
14187 D(p->level--);
14188 return NULL;
14189 }
14190 int _end_lineno = _token->end_lineno;
14191 UNUSED(_end_lineno); // Only used by EXTRA macro
14192 int _end_col_offset = _token->end_col_offset;
14193 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014194 _res = _PyAST_Tuple ( a , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014195 if (_res == NULL && PyErr_Occurred()) {
14196 p->error_indicator = 1;
14197 D(p->level--);
14198 return NULL;
14199 }
14200 goto done;
14201 }
14202 p->mark = _mark;
14203 D(fprintf(stderr, "%*c%s slices[%d-%d]: %s failed!\n", p->level, ' ',
14204 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.slice+ ','?"));
14205 }
14206 _res = NULL;
14207 done:
14208 D(p->level--);
14209 return _res;
14210}
14211
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020014212// slice: expression? ':' expression? [':' expression?] | named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014213static expr_ty
14214slice_rule(Parser *p)
14215{
14216 D(p->level++);
14217 if (p->error_indicator) {
14218 D(p->level--);
14219 return NULL;
14220 }
14221 expr_ty _res = NULL;
14222 int _mark = p->mark;
14223 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14224 p->error_indicator = 1;
14225 D(p->level--);
14226 return NULL;
14227 }
14228 int _start_lineno = p->tokens[_mark]->lineno;
14229 UNUSED(_start_lineno); // Only used by EXTRA macro
14230 int _start_col_offset = p->tokens[_mark]->col_offset;
14231 UNUSED(_start_col_offset); // Only used by EXTRA macro
14232 { // expression? ':' expression? [':' expression?]
14233 if (p->error_indicator) {
14234 D(p->level--);
14235 return NULL;
14236 }
14237 D(fprintf(stderr, "%*c> slice[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression? ':' expression? [':' expression?]"));
14238 Token * _literal;
14239 void *a;
14240 void *b;
14241 void *c;
14242 if (
Łukasz Langa5c9cab52021-10-19 22:31:18 +020014243 (a = expression_rule(p), !p->error_indicator) // expression?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014244 &&
14245 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
14246 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +020014247 (b = expression_rule(p), !p->error_indicator) // expression?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014248 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +020014249 (c = _tmp_110_rule(p), !p->error_indicator) // [':' expression?]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014250 )
14251 {
14252 D(fprintf(stderr, "%*c+ slice[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression? ':' expression? [':' expression?]"));
14253 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14254 if (_token == NULL) {
14255 D(p->level--);
14256 return NULL;
14257 }
14258 int _end_lineno = _token->end_lineno;
14259 UNUSED(_end_lineno); // Only used by EXTRA macro
14260 int _end_col_offset = _token->end_col_offset;
14261 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014262 _res = _PyAST_Slice ( a , b , c , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014263 if (_res == NULL && PyErr_Occurred()) {
14264 p->error_indicator = 1;
14265 D(p->level--);
14266 return NULL;
14267 }
14268 goto done;
14269 }
14270 p->mark = _mark;
14271 D(fprintf(stderr, "%*c%s slice[%d-%d]: %s failed!\n", p->level, ' ',
14272 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression? ':' expression? [':' expression?]"));
14273 }
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020014274 { // named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014275 if (p->error_indicator) {
14276 D(p->level--);
14277 return NULL;
14278 }
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020014279 D(fprintf(stderr, "%*c> slice[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014280 expr_ty a;
14281 if (
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020014282 (a = named_expression_rule(p)) // named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014283 )
14284 {
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020014285 D(fprintf(stderr, "%*c+ slice[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "named_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014286 _res = a;
14287 if (_res == NULL && PyErr_Occurred()) {
14288 p->error_indicator = 1;
14289 D(p->level--);
14290 return NULL;
14291 }
14292 goto done;
14293 }
14294 p->mark = _mark;
14295 D(fprintf(stderr, "%*c%s slice[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020014296 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014297 }
14298 _res = NULL;
14299 done:
14300 D(p->level--);
14301 return _res;
14302}
14303
14304// atom:
14305// | NAME
14306// | 'True'
14307// | 'False'
14308// | 'None'
14309// | &STRING strings
14310// | NUMBER
14311// | &'(' (tuple | group | genexp)
14312// | &'[' (list | listcomp)
14313// | &'{' (dict | set | dictcomp | setcomp)
14314// | '...'
14315static expr_ty
14316atom_rule(Parser *p)
14317{
14318 D(p->level++);
14319 if (p->error_indicator) {
14320 D(p->level--);
14321 return NULL;
14322 }
14323 expr_ty _res = NULL;
14324 int _mark = p->mark;
14325 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14326 p->error_indicator = 1;
14327 D(p->level--);
14328 return NULL;
14329 }
14330 int _start_lineno = p->tokens[_mark]->lineno;
14331 UNUSED(_start_lineno); // Only used by EXTRA macro
14332 int _start_col_offset = p->tokens[_mark]->col_offset;
14333 UNUSED(_start_col_offset); // Only used by EXTRA macro
14334 { // NAME
14335 if (p->error_indicator) {
14336 D(p->level--);
14337 return NULL;
14338 }
14339 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
14340 expr_ty name_var;
14341 if (
14342 (name_var = _PyPegen_name_token(p)) // NAME
14343 )
14344 {
14345 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
14346 _res = name_var;
14347 goto done;
14348 }
14349 p->mark = _mark;
14350 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
14351 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
14352 }
14353 { // 'True'
14354 if (p->error_indicator) {
14355 D(p->level--);
14356 return NULL;
14357 }
14358 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'True'"));
14359 Token * _keyword;
14360 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080014361 (_keyword = _PyPegen_expect_token(p, 524)) // token='True'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014362 )
14363 {
14364 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'"));
14365 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14366 if (_token == NULL) {
14367 D(p->level--);
14368 return NULL;
14369 }
14370 int _end_lineno = _token->end_lineno;
14371 UNUSED(_end_lineno); // Only used by EXTRA macro
14372 int _end_col_offset = _token->end_col_offset;
14373 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014374 _res = _PyAST_Constant ( Py_True , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014375 if (_res == NULL && PyErr_Occurred()) {
14376 p->error_indicator = 1;
14377 D(p->level--);
14378 return NULL;
14379 }
14380 goto done;
14381 }
14382 p->mark = _mark;
14383 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
14384 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'True'"));
14385 }
14386 { // 'False'
14387 if (p->error_indicator) {
14388 D(p->level--);
14389 return NULL;
14390 }
14391 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False'"));
14392 Token * _keyword;
14393 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080014394 (_keyword = _PyPegen_expect_token(p, 525)) // token='False'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014395 )
14396 {
14397 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'"));
14398 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14399 if (_token == NULL) {
14400 D(p->level--);
14401 return NULL;
14402 }
14403 int _end_lineno = _token->end_lineno;
14404 UNUSED(_end_lineno); // Only used by EXTRA macro
14405 int _end_col_offset = _token->end_col_offset;
14406 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014407 _res = _PyAST_Constant ( Py_False , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014408 if (_res == NULL && PyErr_Occurred()) {
14409 p->error_indicator = 1;
14410 D(p->level--);
14411 return NULL;
14412 }
14413 goto done;
14414 }
14415 p->mark = _mark;
14416 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
14417 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'False'"));
14418 }
14419 { // 'None'
14420 if (p->error_indicator) {
14421 D(p->level--);
14422 return NULL;
14423 }
14424 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'None'"));
14425 Token * _keyword;
14426 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080014427 (_keyword = _PyPegen_expect_token(p, 523)) // token='None'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014428 )
14429 {
14430 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'"));
14431 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14432 if (_token == NULL) {
14433 D(p->level--);
14434 return NULL;
14435 }
14436 int _end_lineno = _token->end_lineno;
14437 UNUSED(_end_lineno); // Only used by EXTRA macro
14438 int _end_col_offset = _token->end_col_offset;
14439 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014440 _res = _PyAST_Constant ( Py_None , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014441 if (_res == NULL && PyErr_Occurred()) {
14442 p->error_indicator = 1;
14443 D(p->level--);
14444 return NULL;
14445 }
14446 goto done;
14447 }
14448 p->mark = _mark;
14449 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
14450 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'None'"));
14451 }
14452 { // &STRING strings
14453 if (p->error_indicator) {
14454 D(p->level--);
14455 return NULL;
14456 }
14457 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&STRING strings"));
14458 expr_ty strings_var;
14459 if (
14460 _PyPegen_lookahead(1, _PyPegen_string_token, p)
14461 &&
14462 (strings_var = strings_rule(p)) // strings
14463 )
14464 {
14465 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&STRING strings"));
14466 _res = strings_var;
14467 goto done;
14468 }
14469 p->mark = _mark;
14470 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
14471 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&STRING strings"));
14472 }
14473 { // NUMBER
14474 if (p->error_indicator) {
14475 D(p->level--);
14476 return NULL;
14477 }
14478 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NUMBER"));
14479 expr_ty number_var;
14480 if (
14481 (number_var = _PyPegen_number_token(p)) // NUMBER
14482 )
14483 {
14484 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NUMBER"));
14485 _res = number_var;
14486 goto done;
14487 }
14488 p->mark = _mark;
14489 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
14490 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NUMBER"));
14491 }
14492 { // &'(' (tuple | group | genexp)
14493 if (p->error_indicator) {
14494 D(p->level--);
14495 return NULL;
14496 }
14497 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'(' (tuple | group | genexp)"));
Brandt Bucher145bf262021-02-26 14:51:55 -080014498 void *_tmp_111_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014499 if (
14500 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 7) // token='('
14501 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080014502 (_tmp_111_var = _tmp_111_rule(p)) // tuple | group | genexp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014503 )
14504 {
14505 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 -080014506 _res = _tmp_111_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014507 goto done;
14508 }
14509 p->mark = _mark;
14510 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
14511 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'(' (tuple | group | genexp)"));
14512 }
14513 { // &'[' (list | listcomp)
14514 if (p->error_indicator) {
14515 D(p->level--);
14516 return NULL;
14517 }
14518 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'[' (list | listcomp)"));
Brandt Bucher145bf262021-02-26 14:51:55 -080014519 void *_tmp_112_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014520 if (
14521 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 9) // token='['
14522 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080014523 (_tmp_112_var = _tmp_112_rule(p)) // list | listcomp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014524 )
14525 {
14526 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'[' (list | listcomp)"));
Brandt Bucher145bf262021-02-26 14:51:55 -080014527 _res = _tmp_112_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014528 goto done;
14529 }
14530 p->mark = _mark;
14531 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
14532 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'[' (list | listcomp)"));
14533 }
14534 { // &'{' (dict | set | dictcomp | setcomp)
14535 if (p->error_indicator) {
14536 D(p->level--);
14537 return NULL;
14538 }
14539 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 -080014540 void *_tmp_113_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014541 if (
14542 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 25) // token='{'
14543 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080014544 (_tmp_113_var = _tmp_113_rule(p)) // dict | set | dictcomp | setcomp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014545 )
14546 {
14547 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 -080014548 _res = _tmp_113_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014549 goto done;
14550 }
14551 p->mark = _mark;
14552 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
14553 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'{' (dict | set | dictcomp | setcomp)"));
14554 }
14555 { // '...'
14556 if (p->error_indicator) {
14557 D(p->level--);
14558 return NULL;
14559 }
14560 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'"));
14561 Token * _literal;
14562 if (
14563 (_literal = _PyPegen_expect_token(p, 52)) // token='...'
14564 )
14565 {
14566 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'"));
14567 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14568 if (_token == NULL) {
14569 D(p->level--);
14570 return NULL;
14571 }
14572 int _end_lineno = _token->end_lineno;
14573 UNUSED(_end_lineno); // Only used by EXTRA macro
14574 int _end_col_offset = _token->end_col_offset;
14575 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014576 _res = _PyAST_Constant ( Py_Ellipsis , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014577 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 atom[%d-%d]: %s failed!\n", p->level, ' ',
14586 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'...'"));
14587 }
14588 _res = NULL;
14589 done:
14590 D(p->level--);
14591 return _res;
14592}
14593
14594// strings: STRING+
14595static expr_ty
14596strings_rule(Parser *p)
14597{
14598 D(p->level++);
14599 if (p->error_indicator) {
14600 D(p->level--);
14601 return NULL;
14602 }
14603 expr_ty _res = NULL;
14604 if (_PyPegen_is_memoized(p, strings_type, &_res)) {
14605 D(p->level--);
14606 return _res;
14607 }
14608 int _mark = p->mark;
14609 { // STRING+
14610 if (p->error_indicator) {
14611 D(p->level--);
14612 return NULL;
14613 }
14614 D(fprintf(stderr, "%*c> strings[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "STRING+"));
14615 asdl_seq * a;
14616 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080014617 (a = _loop1_114_rule(p)) // STRING+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014618 )
14619 {
14620 D(fprintf(stderr, "%*c+ strings[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "STRING+"));
14621 _res = _PyPegen_concatenate_strings ( p , a );
14622 if (_res == NULL && PyErr_Occurred()) {
14623 p->error_indicator = 1;
14624 D(p->level--);
14625 return NULL;
14626 }
14627 goto done;
14628 }
14629 p->mark = _mark;
14630 D(fprintf(stderr, "%*c%s strings[%d-%d]: %s failed!\n", p->level, ' ',
14631 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "STRING+"));
14632 }
14633 _res = NULL;
14634 done:
14635 _PyPegen_insert_memo(p, _mark, strings_type, _res);
14636 D(p->level--);
14637 return _res;
14638}
14639
14640// list: '[' star_named_expressions? ']'
14641static expr_ty
14642list_rule(Parser *p)
14643{
14644 D(p->level++);
14645 if (p->error_indicator) {
14646 D(p->level--);
14647 return NULL;
14648 }
14649 expr_ty _res = NULL;
14650 int _mark = p->mark;
14651 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14652 p->error_indicator = 1;
14653 D(p->level--);
14654 return NULL;
14655 }
14656 int _start_lineno = p->tokens[_mark]->lineno;
14657 UNUSED(_start_lineno); // Only used by EXTRA macro
14658 int _start_col_offset = p->tokens[_mark]->col_offset;
14659 UNUSED(_start_col_offset); // Only used by EXTRA macro
14660 { // '[' star_named_expressions? ']'
14661 if (p->error_indicator) {
14662 D(p->level--);
14663 return NULL;
14664 }
14665 D(fprintf(stderr, "%*c> list[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' star_named_expressions? ']'"));
14666 Token * _literal;
14667 Token * _literal_1;
14668 void *a;
14669 if (
14670 (_literal = _PyPegen_expect_token(p, 9)) // token='['
14671 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +020014672 (a = star_named_expressions_rule(p), !p->error_indicator) // star_named_expressions?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014673 &&
14674 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
14675 )
14676 {
14677 D(fprintf(stderr, "%*c+ list[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'[' star_named_expressions? ']'"));
14678 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14679 if (_token == NULL) {
14680 D(p->level--);
14681 return NULL;
14682 }
14683 int _end_lineno = _token->end_lineno;
14684 UNUSED(_end_lineno); // Only used by EXTRA macro
14685 int _end_col_offset = _token->end_col_offset;
14686 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014687 _res = _PyAST_List ( a , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014688 if (_res == NULL && PyErr_Occurred()) {
14689 p->error_indicator = 1;
14690 D(p->level--);
14691 return NULL;
14692 }
14693 goto done;
14694 }
14695 p->mark = _mark;
14696 D(fprintf(stderr, "%*c%s list[%d-%d]: %s failed!\n", p->level, ' ',
14697 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' star_named_expressions? ']'"));
14698 }
14699 _res = NULL;
14700 done:
14701 D(p->level--);
14702 return _res;
14703}
14704
Pablo Galindo835f14f2021-01-31 22:52:56 +000014705// listcomp: '[' named_expression for_if_clauses ']' | invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014706static expr_ty
14707listcomp_rule(Parser *p)
14708{
14709 D(p->level++);
14710 if (p->error_indicator) {
14711 D(p->level--);
14712 return NULL;
14713 }
14714 expr_ty _res = NULL;
14715 int _mark = p->mark;
14716 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14717 p->error_indicator = 1;
14718 D(p->level--);
14719 return NULL;
14720 }
14721 int _start_lineno = p->tokens[_mark]->lineno;
14722 UNUSED(_start_lineno); // Only used by EXTRA macro
14723 int _start_col_offset = p->tokens[_mark]->col_offset;
14724 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo835f14f2021-01-31 22:52:56 +000014725 { // '[' named_expression for_if_clauses ']'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014726 if (p->error_indicator) {
14727 D(p->level--);
14728 return NULL;
14729 }
Pablo Galindo835f14f2021-01-31 22:52:56 +000014730 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 +010014731 Token * _literal;
14732 Token * _literal_1;
14733 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010014734 asdl_comprehension_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014735 if (
14736 (_literal = _PyPegen_expect_token(p, 9)) // token='['
14737 &&
14738 (a = named_expression_rule(p)) // named_expression
14739 &&
14740 (b = for_if_clauses_rule(p)) // for_if_clauses
14741 &&
14742 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
14743 )
14744 {
Pablo Galindo835f14f2021-01-31 22:52:56 +000014745 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 +010014746 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14747 if (_token == NULL) {
14748 D(p->level--);
14749 return NULL;
14750 }
14751 int _end_lineno = _token->end_lineno;
14752 UNUSED(_end_lineno); // Only used by EXTRA macro
14753 int _end_col_offset = _token->end_col_offset;
14754 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014755 _res = _PyAST_ListComp ( a , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014756 if (_res == NULL && PyErr_Occurred()) {
14757 p->error_indicator = 1;
14758 D(p->level--);
14759 return NULL;
14760 }
14761 goto done;
14762 }
14763 p->mark = _mark;
14764 D(fprintf(stderr, "%*c%s listcomp[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo835f14f2021-01-31 22:52:56 +000014765 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' named_expression for_if_clauses ']'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014766 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014767 if (p->call_invalid_rules) { // invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014768 if (p->error_indicator) {
14769 D(p->level--);
14770 return NULL;
14771 }
14772 D(fprintf(stderr, "%*c> listcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
14773 void *invalid_comprehension_var;
14774 if (
14775 (invalid_comprehension_var = invalid_comprehension_rule(p)) // invalid_comprehension
14776 )
14777 {
14778 D(fprintf(stderr, "%*c+ listcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
14779 _res = invalid_comprehension_var;
14780 goto done;
14781 }
14782 p->mark = _mark;
14783 D(fprintf(stderr, "%*c%s listcomp[%d-%d]: %s failed!\n", p->level, ' ',
14784 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_comprehension"));
14785 }
14786 _res = NULL;
14787 done:
14788 D(p->level--);
14789 return _res;
14790}
14791
14792// tuple: '(' [star_named_expression ',' star_named_expressions?] ')'
14793static expr_ty
14794tuple_rule(Parser *p)
14795{
14796 D(p->level++);
14797 if (p->error_indicator) {
14798 D(p->level--);
14799 return NULL;
14800 }
14801 expr_ty _res = NULL;
14802 int _mark = p->mark;
14803 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14804 p->error_indicator = 1;
14805 D(p->level--);
14806 return NULL;
14807 }
14808 int _start_lineno = p->tokens[_mark]->lineno;
14809 UNUSED(_start_lineno); // Only used by EXTRA macro
14810 int _start_col_offset = p->tokens[_mark]->col_offset;
14811 UNUSED(_start_col_offset); // Only used by EXTRA macro
14812 { // '(' [star_named_expression ',' star_named_expressions?] ')'
14813 if (p->error_indicator) {
14814 D(p->level--);
14815 return NULL;
14816 }
14817 D(fprintf(stderr, "%*c> tuple[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' [star_named_expression ',' star_named_expressions?] ')'"));
14818 Token * _literal;
14819 Token * _literal_1;
14820 void *a;
14821 if (
14822 (_literal = _PyPegen_expect_token(p, 7)) // token='('
14823 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +020014824 (a = _tmp_115_rule(p), !p->error_indicator) // [star_named_expression ',' star_named_expressions?]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014825 &&
14826 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
14827 )
14828 {
14829 D(fprintf(stderr, "%*c+ tuple[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' [star_named_expression ',' star_named_expressions?] ')'"));
14830 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14831 if (_token == NULL) {
14832 D(p->level--);
14833 return NULL;
14834 }
14835 int _end_lineno = _token->end_lineno;
14836 UNUSED(_end_lineno); // Only used by EXTRA macro
14837 int _end_col_offset = _token->end_col_offset;
14838 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014839 _res = _PyAST_Tuple ( a , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014840 if (_res == NULL && PyErr_Occurred()) {
14841 p->error_indicator = 1;
14842 D(p->level--);
14843 return NULL;
14844 }
14845 goto done;
14846 }
14847 p->mark = _mark;
14848 D(fprintf(stderr, "%*c%s tuple[%d-%d]: %s failed!\n", p->level, ' ',
14849 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' [star_named_expression ',' star_named_expressions?] ')'"));
14850 }
14851 _res = NULL;
14852 done:
14853 D(p->level--);
14854 return _res;
14855}
14856
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030014857// group: '(' (yield_expr | named_expression) ')' | invalid_group
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014858static expr_ty
14859group_rule(Parser *p)
14860{
14861 D(p->level++);
14862 if (p->error_indicator) {
14863 D(p->level--);
14864 return NULL;
14865 }
14866 expr_ty _res = NULL;
14867 int _mark = p->mark;
14868 { // '(' (yield_expr | named_expression) ')'
14869 if (p->error_indicator) {
14870 D(p->level--);
14871 return NULL;
14872 }
14873 D(fprintf(stderr, "%*c> group[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' (yield_expr | named_expression) ')'"));
14874 Token * _literal;
14875 Token * _literal_1;
14876 void *a;
14877 if (
14878 (_literal = _PyPegen_expect_token(p, 7)) // token='('
14879 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080014880 (a = _tmp_116_rule(p)) // yield_expr | named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014881 &&
14882 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
14883 )
14884 {
14885 D(fprintf(stderr, "%*c+ group[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' (yield_expr | named_expression) ')'"));
14886 _res = a;
14887 if (_res == NULL && PyErr_Occurred()) {
14888 p->error_indicator = 1;
14889 D(p->level--);
14890 return NULL;
14891 }
14892 goto done;
14893 }
14894 p->mark = _mark;
14895 D(fprintf(stderr, "%*c%s group[%d-%d]: %s failed!\n", p->level, ' ',
14896 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' (yield_expr | named_expression) ')'"));
14897 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014898 if (p->call_invalid_rules) { // invalid_group
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030014899 if (p->error_indicator) {
14900 D(p->level--);
14901 return NULL;
14902 }
14903 D(fprintf(stderr, "%*c> group[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_group"));
14904 void *invalid_group_var;
14905 if (
14906 (invalid_group_var = invalid_group_rule(p)) // invalid_group
14907 )
14908 {
14909 D(fprintf(stderr, "%*c+ group[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_group"));
14910 _res = invalid_group_var;
14911 goto done;
14912 }
14913 p->mark = _mark;
14914 D(fprintf(stderr, "%*c%s group[%d-%d]: %s failed!\n", p->level, ' ',
14915 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_group"));
14916 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014917 _res = NULL;
14918 done:
14919 D(p->level--);
14920 return _res;
14921}
14922
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070014923// genexp:
Pablo Galindo Salgado0e34a592021-11-04 23:19:27 +000014924// | '(' (assignment_expression | expression !':=') for_if_clauses ')'
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070014925// | invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014926static expr_ty
14927genexp_rule(Parser *p)
14928{
14929 D(p->level++);
14930 if (p->error_indicator) {
14931 D(p->level--);
14932 return NULL;
14933 }
14934 expr_ty _res = NULL;
14935 int _mark = p->mark;
14936 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14937 p->error_indicator = 1;
14938 D(p->level--);
14939 return NULL;
14940 }
14941 int _start_lineno = p->tokens[_mark]->lineno;
14942 UNUSED(_start_lineno); // Only used by EXTRA macro
14943 int _start_col_offset = p->tokens[_mark]->col_offset;
14944 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo Salgado0e34a592021-11-04 23:19:27 +000014945 { // '(' (assignment_expression | expression !':=') for_if_clauses ')'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014946 if (p->error_indicator) {
14947 D(p->level--);
14948 return NULL;
14949 }
Pablo Galindo Salgado0e34a592021-11-04 23:19:27 +000014950 D(fprintf(stderr, "%*c> genexp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' (assignment_expression | expression !':=') for_if_clauses ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014951 Token * _literal;
14952 Token * _literal_1;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070014953 void *a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010014954 asdl_comprehension_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014955 if (
14956 (_literal = _PyPegen_expect_token(p, 7)) // token='('
14957 &&
Pablo Galindo Salgado0e34a592021-11-04 23:19:27 +000014958 (a = _tmp_117_rule(p)) // assignment_expression | expression !':='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014959 &&
14960 (b = for_if_clauses_rule(p)) // for_if_clauses
14961 &&
14962 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
14963 )
14964 {
Pablo Galindo Salgado0e34a592021-11-04 23:19:27 +000014965 D(fprintf(stderr, "%*c+ genexp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' (assignment_expression | expression !':=') for_if_clauses ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014966 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14967 if (_token == NULL) {
14968 D(p->level--);
14969 return NULL;
14970 }
14971 int _end_lineno = _token->end_lineno;
14972 UNUSED(_end_lineno); // Only used by EXTRA macro
14973 int _end_col_offset = _token->end_col_offset;
14974 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014975 _res = _PyAST_GeneratorExp ( a , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014976 if (_res == NULL && PyErr_Occurred()) {
14977 p->error_indicator = 1;
14978 D(p->level--);
14979 return NULL;
14980 }
14981 goto done;
14982 }
14983 p->mark = _mark;
14984 D(fprintf(stderr, "%*c%s genexp[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo Salgado0e34a592021-11-04 23:19:27 +000014985 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' (assignment_expression | expression !':=') for_if_clauses ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014986 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014987 if (p->call_invalid_rules) { // invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014988 if (p->error_indicator) {
14989 D(p->level--);
14990 return NULL;
14991 }
14992 D(fprintf(stderr, "%*c> genexp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
14993 void *invalid_comprehension_var;
14994 if (
14995 (invalid_comprehension_var = invalid_comprehension_rule(p)) // invalid_comprehension
14996 )
14997 {
14998 D(fprintf(stderr, "%*c+ genexp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
14999 _res = invalid_comprehension_var;
15000 goto done;
15001 }
15002 p->mark = _mark;
15003 D(fprintf(stderr, "%*c%s genexp[%d-%d]: %s failed!\n", p->level, ' ',
15004 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_comprehension"));
15005 }
15006 _res = NULL;
15007 done:
15008 D(p->level--);
15009 return _res;
15010}
15011
Pablo Galindob0aba1f2020-11-17 01:17:12 +000015012// set: '{' star_named_expressions '}'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015013static expr_ty
15014set_rule(Parser *p)
15015{
15016 D(p->level++);
15017 if (p->error_indicator) {
15018 D(p->level--);
15019 return NULL;
15020 }
15021 expr_ty _res = NULL;
15022 int _mark = p->mark;
15023 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
15024 p->error_indicator = 1;
15025 D(p->level--);
15026 return NULL;
15027 }
15028 int _start_lineno = p->tokens[_mark]->lineno;
15029 UNUSED(_start_lineno); // Only used by EXTRA macro
15030 int _start_col_offset = p->tokens[_mark]->col_offset;
15031 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindob0aba1f2020-11-17 01:17:12 +000015032 { // '{' star_named_expressions '}'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015033 if (p->error_indicator) {
15034 D(p->level--);
15035 return NULL;
15036 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000015037 D(fprintf(stderr, "%*c> set[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' star_named_expressions '}'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015038 Token * _literal;
15039 Token * _literal_1;
Pablo Galindoa5634c42020-09-16 19:42:00 +010015040 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015041 if (
15042 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
15043 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000015044 (a = star_named_expressions_rule(p)) // star_named_expressions
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015045 &&
15046 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
15047 )
15048 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000015049 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 +010015050 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15051 if (_token == NULL) {
15052 D(p->level--);
15053 return NULL;
15054 }
15055 int _end_lineno = _token->end_lineno;
15056 UNUSED(_end_lineno); // Only used by EXTRA macro
15057 int _end_col_offset = _token->end_col_offset;
15058 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015059 _res = _PyAST_Set ( a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015060 if (_res == NULL && PyErr_Occurred()) {
15061 p->error_indicator = 1;
15062 D(p->level--);
15063 return NULL;
15064 }
15065 goto done;
15066 }
15067 p->mark = _mark;
15068 D(fprintf(stderr, "%*c%s set[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000015069 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' star_named_expressions '}'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015070 }
15071 _res = NULL;
15072 done:
15073 D(p->level--);
15074 return _res;
15075}
15076
Pablo Galindo835f14f2021-01-31 22:52:56 +000015077// setcomp: '{' named_expression for_if_clauses '}' | invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015078static expr_ty
15079setcomp_rule(Parser *p)
15080{
15081 D(p->level++);
15082 if (p->error_indicator) {
15083 D(p->level--);
15084 return NULL;
15085 }
15086 expr_ty _res = NULL;
15087 int _mark = p->mark;
15088 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
15089 p->error_indicator = 1;
15090 D(p->level--);
15091 return NULL;
15092 }
15093 int _start_lineno = p->tokens[_mark]->lineno;
15094 UNUSED(_start_lineno); // Only used by EXTRA macro
15095 int _start_col_offset = p->tokens[_mark]->col_offset;
15096 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo835f14f2021-01-31 22:52:56 +000015097 { // '{' named_expression for_if_clauses '}'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015098 if (p->error_indicator) {
15099 D(p->level--);
15100 return NULL;
15101 }
Pablo Galindo835f14f2021-01-31 22:52:56 +000015102 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 +010015103 Token * _literal;
15104 Token * _literal_1;
15105 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010015106 asdl_comprehension_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015107 if (
15108 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
15109 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000015110 (a = named_expression_rule(p)) // named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015111 &&
15112 (b = for_if_clauses_rule(p)) // for_if_clauses
15113 &&
15114 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
15115 )
15116 {
Pablo Galindo835f14f2021-01-31 22:52:56 +000015117 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 +010015118 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15119 if (_token == NULL) {
15120 D(p->level--);
15121 return NULL;
15122 }
15123 int _end_lineno = _token->end_lineno;
15124 UNUSED(_end_lineno); // Only used by EXTRA macro
15125 int _end_col_offset = _token->end_col_offset;
15126 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015127 _res = _PyAST_SetComp ( a , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015128 if (_res == NULL && PyErr_Occurred()) {
15129 p->error_indicator = 1;
15130 D(p->level--);
15131 return NULL;
15132 }
15133 goto done;
15134 }
15135 p->mark = _mark;
15136 D(fprintf(stderr, "%*c%s setcomp[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo835f14f2021-01-31 22:52:56 +000015137 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' named_expression for_if_clauses '}'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015138 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020015139 if (p->call_invalid_rules) { // invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015140 if (p->error_indicator) {
15141 D(p->level--);
15142 return NULL;
15143 }
15144 D(fprintf(stderr, "%*c> setcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
15145 void *invalid_comprehension_var;
15146 if (
15147 (invalid_comprehension_var = invalid_comprehension_rule(p)) // invalid_comprehension
15148 )
15149 {
15150 D(fprintf(stderr, "%*c+ setcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
15151 _res = invalid_comprehension_var;
15152 goto done;
15153 }
15154 p->mark = _mark;
15155 D(fprintf(stderr, "%*c%s setcomp[%d-%d]: %s failed!\n", p->level, ' ',
15156 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_comprehension"));
15157 }
15158 _res = NULL;
15159 done:
15160 D(p->level--);
15161 return _res;
15162}
15163
Pablo Galindoda743502021-04-15 14:06:39 +010015164// dict: '{' double_starred_kvpairs? '}' | '{' invalid_double_starred_kvpairs '}'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015165static expr_ty
15166dict_rule(Parser *p)
15167{
15168 D(p->level++);
15169 if (p->error_indicator) {
15170 D(p->level--);
15171 return NULL;
15172 }
15173 expr_ty _res = NULL;
15174 int _mark = p->mark;
15175 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
15176 p->error_indicator = 1;
15177 D(p->level--);
15178 return NULL;
15179 }
15180 int _start_lineno = p->tokens[_mark]->lineno;
15181 UNUSED(_start_lineno); // Only used by EXTRA macro
15182 int _start_col_offset = p->tokens[_mark]->col_offset;
15183 UNUSED(_start_col_offset); // Only used by EXTRA macro
15184 { // '{' double_starred_kvpairs? '}'
15185 if (p->error_indicator) {
15186 D(p->level--);
15187 return NULL;
15188 }
15189 D(fprintf(stderr, "%*c> dict[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' double_starred_kvpairs? '}'"));
15190 Token * _literal;
15191 Token * _literal_1;
15192 void *a;
15193 if (
15194 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
15195 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +020015196 (a = double_starred_kvpairs_rule(p), !p->error_indicator) // double_starred_kvpairs?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015197 &&
15198 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
15199 )
15200 {
15201 D(fprintf(stderr, "%*c+ dict[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' double_starred_kvpairs? '}'"));
15202 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15203 if (_token == NULL) {
15204 D(p->level--);
15205 return NULL;
15206 }
15207 int _end_lineno = _token->end_lineno;
15208 UNUSED(_end_lineno); // Only used by EXTRA macro
15209 int _end_col_offset = _token->end_col_offset;
15210 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015211 _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 +010015212 if (_res == NULL && PyErr_Occurred()) {
15213 p->error_indicator = 1;
15214 D(p->level--);
15215 return NULL;
15216 }
15217 goto done;
15218 }
15219 p->mark = _mark;
15220 D(fprintf(stderr, "%*c%s dict[%d-%d]: %s failed!\n", p->level, ' ',
15221 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' double_starred_kvpairs? '}'"));
15222 }
Pablo Galindoda743502021-04-15 14:06:39 +010015223 { // '{' invalid_double_starred_kvpairs '}'
15224 if (p->error_indicator) {
15225 D(p->level--);
15226 return NULL;
15227 }
15228 D(fprintf(stderr, "%*c> dict[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' invalid_double_starred_kvpairs '}'"));
15229 Token * _literal;
15230 Token * _literal_1;
15231 void *invalid_double_starred_kvpairs_var;
15232 if (
15233 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
15234 &&
15235 (invalid_double_starred_kvpairs_var = invalid_double_starred_kvpairs_rule(p)) // invalid_double_starred_kvpairs
15236 &&
15237 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
15238 )
15239 {
15240 D(fprintf(stderr, "%*c+ dict[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' invalid_double_starred_kvpairs '}'"));
15241 _res = _PyPegen_dummy_name(p, _literal, invalid_double_starred_kvpairs_var, _literal_1);
15242 goto done;
15243 }
15244 p->mark = _mark;
15245 D(fprintf(stderr, "%*c%s dict[%d-%d]: %s failed!\n", p->level, ' ',
15246 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' invalid_double_starred_kvpairs '}'"));
15247 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015248 _res = NULL;
15249 done:
15250 D(p->level--);
15251 return _res;
15252}
15253
15254// dictcomp: '{' kvpair for_if_clauses '}' | invalid_dict_comprehension
15255static expr_ty
15256dictcomp_rule(Parser *p)
15257{
15258 D(p->level++);
15259 if (p->error_indicator) {
15260 D(p->level--);
15261 return NULL;
15262 }
15263 expr_ty _res = NULL;
15264 int _mark = p->mark;
15265 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
15266 p->error_indicator = 1;
15267 D(p->level--);
15268 return NULL;
15269 }
15270 int _start_lineno = p->tokens[_mark]->lineno;
15271 UNUSED(_start_lineno); // Only used by EXTRA macro
15272 int _start_col_offset = p->tokens[_mark]->col_offset;
15273 UNUSED(_start_col_offset); // Only used by EXTRA macro
15274 { // '{' kvpair for_if_clauses '}'
15275 if (p->error_indicator) {
15276 D(p->level--);
15277 return NULL;
15278 }
15279 D(fprintf(stderr, "%*c> dictcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' kvpair for_if_clauses '}'"));
15280 Token * _literal;
15281 Token * _literal_1;
15282 KeyValuePair* a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010015283 asdl_comprehension_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015284 if (
15285 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
15286 &&
15287 (a = kvpair_rule(p)) // kvpair
15288 &&
15289 (b = for_if_clauses_rule(p)) // for_if_clauses
15290 &&
15291 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
15292 )
15293 {
15294 D(fprintf(stderr, "%*c+ dictcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' kvpair for_if_clauses '}'"));
15295 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15296 if (_token == NULL) {
15297 D(p->level--);
15298 return NULL;
15299 }
15300 int _end_lineno = _token->end_lineno;
15301 UNUSED(_end_lineno); // Only used by EXTRA macro
15302 int _end_col_offset = _token->end_col_offset;
15303 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015304 _res = _PyAST_DictComp ( a -> key , a -> value , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015305 if (_res == NULL && PyErr_Occurred()) {
15306 p->error_indicator = 1;
15307 D(p->level--);
15308 return NULL;
15309 }
15310 goto done;
15311 }
15312 p->mark = _mark;
15313 D(fprintf(stderr, "%*c%s dictcomp[%d-%d]: %s failed!\n", p->level, ' ',
15314 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' kvpair for_if_clauses '}'"));
15315 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020015316 if (p->call_invalid_rules) { // invalid_dict_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015317 if (p->error_indicator) {
15318 D(p->level--);
15319 return NULL;
15320 }
15321 D(fprintf(stderr, "%*c> dictcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_dict_comprehension"));
15322 void *invalid_dict_comprehension_var;
15323 if (
15324 (invalid_dict_comprehension_var = invalid_dict_comprehension_rule(p)) // invalid_dict_comprehension
15325 )
15326 {
15327 D(fprintf(stderr, "%*c+ dictcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_dict_comprehension"));
15328 _res = invalid_dict_comprehension_var;
15329 goto done;
15330 }
15331 p->mark = _mark;
15332 D(fprintf(stderr, "%*c%s dictcomp[%d-%d]: %s failed!\n", p->level, ' ',
15333 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_dict_comprehension"));
15334 }
15335 _res = NULL;
15336 done:
15337 D(p->level--);
15338 return _res;
15339}
15340
15341// double_starred_kvpairs: ','.double_starred_kvpair+ ','?
15342static asdl_seq*
15343double_starred_kvpairs_rule(Parser *p)
15344{
15345 D(p->level++);
15346 if (p->error_indicator) {
15347 D(p->level--);
15348 return NULL;
15349 }
15350 asdl_seq* _res = NULL;
15351 int _mark = p->mark;
15352 { // ','.double_starred_kvpair+ ','?
15353 if (p->error_indicator) {
15354 D(p->level--);
15355 return NULL;
15356 }
15357 D(fprintf(stderr, "%*c> double_starred_kvpairs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.double_starred_kvpair+ ','?"));
15358 void *_opt_var;
15359 UNUSED(_opt_var); // Silence compiler warnings
15360 asdl_seq * a;
15361 if (
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070015362 (a = _gather_118_rule(p)) // ','.double_starred_kvpair+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015363 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +020015364 (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015365 )
15366 {
15367 D(fprintf(stderr, "%*c+ double_starred_kvpairs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.double_starred_kvpair+ ','?"));
15368 _res = a;
15369 if (_res == NULL && PyErr_Occurred()) {
15370 p->error_indicator = 1;
15371 D(p->level--);
15372 return NULL;
15373 }
15374 goto done;
15375 }
15376 p->mark = _mark;
15377 D(fprintf(stderr, "%*c%s double_starred_kvpairs[%d-%d]: %s failed!\n", p->level, ' ',
15378 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.double_starred_kvpair+ ','?"));
15379 }
15380 _res = NULL;
15381 done:
15382 D(p->level--);
15383 return _res;
15384}
15385
15386// double_starred_kvpair: '**' bitwise_or | kvpair
15387static KeyValuePair*
15388double_starred_kvpair_rule(Parser *p)
15389{
15390 D(p->level++);
15391 if (p->error_indicator) {
15392 D(p->level--);
15393 return NULL;
15394 }
15395 KeyValuePair* _res = NULL;
15396 int _mark = p->mark;
15397 { // '**' bitwise_or
15398 if (p->error_indicator) {
15399 D(p->level--);
15400 return NULL;
15401 }
15402 D(fprintf(stderr, "%*c> double_starred_kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' bitwise_or"));
15403 Token * _literal;
15404 expr_ty a;
15405 if (
15406 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
15407 &&
15408 (a = bitwise_or_rule(p)) // bitwise_or
15409 )
15410 {
15411 D(fprintf(stderr, "%*c+ double_starred_kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' bitwise_or"));
15412 _res = _PyPegen_key_value_pair ( p , NULL , a );
15413 if (_res == NULL && PyErr_Occurred()) {
15414 p->error_indicator = 1;
15415 D(p->level--);
15416 return NULL;
15417 }
15418 goto done;
15419 }
15420 p->mark = _mark;
15421 D(fprintf(stderr, "%*c%s double_starred_kvpair[%d-%d]: %s failed!\n", p->level, ' ',
15422 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' bitwise_or"));
15423 }
15424 { // kvpair
15425 if (p->error_indicator) {
15426 D(p->level--);
15427 return NULL;
15428 }
15429 D(fprintf(stderr, "%*c> double_starred_kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kvpair"));
15430 KeyValuePair* kvpair_var;
15431 if (
15432 (kvpair_var = kvpair_rule(p)) // kvpair
15433 )
15434 {
15435 D(fprintf(stderr, "%*c+ double_starred_kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kvpair"));
15436 _res = kvpair_var;
15437 goto done;
15438 }
15439 p->mark = _mark;
15440 D(fprintf(stderr, "%*c%s double_starred_kvpair[%d-%d]: %s failed!\n", p->level, ' ',
15441 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kvpair"));
15442 }
15443 _res = NULL;
15444 done:
15445 D(p->level--);
15446 return _res;
15447}
15448
15449// kvpair: expression ':' expression
15450static KeyValuePair*
15451kvpair_rule(Parser *p)
15452{
15453 D(p->level++);
15454 if (p->error_indicator) {
15455 D(p->level--);
15456 return NULL;
15457 }
15458 KeyValuePair* _res = NULL;
15459 int _mark = p->mark;
15460 { // expression ':' expression
15461 if (p->error_indicator) {
15462 D(p->level--);
15463 return NULL;
15464 }
15465 D(fprintf(stderr, "%*c> kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':' expression"));
15466 Token * _literal;
15467 expr_ty a;
15468 expr_ty b;
15469 if (
15470 (a = expression_rule(p)) // expression
15471 &&
15472 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
15473 &&
15474 (b = expression_rule(p)) // expression
15475 )
15476 {
15477 D(fprintf(stderr, "%*c+ kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':' expression"));
15478 _res = _PyPegen_key_value_pair ( p , a , b );
15479 if (_res == NULL && PyErr_Occurred()) {
15480 p->error_indicator = 1;
15481 D(p->level--);
15482 return NULL;
15483 }
15484 goto done;
15485 }
15486 p->mark = _mark;
15487 D(fprintf(stderr, "%*c%s kvpair[%d-%d]: %s failed!\n", p->level, ' ',
15488 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' expression"));
15489 }
15490 _res = NULL;
15491 done:
15492 D(p->level--);
15493 return _res;
15494}
15495
15496// for_if_clauses: for_if_clause+
Pablo Galindoa5634c42020-09-16 19:42:00 +010015497static asdl_comprehension_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015498for_if_clauses_rule(Parser *p)
15499{
15500 D(p->level++);
15501 if (p->error_indicator) {
15502 D(p->level--);
15503 return NULL;
15504 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010015505 asdl_comprehension_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015506 int _mark = p->mark;
15507 { // for_if_clause+
15508 if (p->error_indicator) {
15509 D(p->level--);
15510 return NULL;
15511 }
15512 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 +010015513 asdl_comprehension_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015514 if (
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070015515 (a = (asdl_comprehension_seq*)_loop1_120_rule(p)) // for_if_clause+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015516 )
15517 {
15518 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 +010015519 _res = a;
15520 if (_res == NULL && PyErr_Occurred()) {
15521 p->error_indicator = 1;
15522 D(p->level--);
15523 return NULL;
15524 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015525 goto done;
15526 }
15527 p->mark = _mark;
15528 D(fprintf(stderr, "%*c%s for_if_clauses[%d-%d]: %s failed!\n", p->level, ' ',
15529 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "for_if_clause+"));
15530 }
15531 _res = NULL;
15532 done:
15533 D(p->level--);
15534 return _res;
15535}
15536
15537// for_if_clause:
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015538// | ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*
15539// | 'for' star_targets 'in' ~ disjunction (('if' disjunction))*
15540// | invalid_for_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015541static comprehension_ty
15542for_if_clause_rule(Parser *p)
15543{
15544 D(p->level++);
15545 if (p->error_indicator) {
15546 D(p->level--);
15547 return NULL;
15548 }
15549 comprehension_ty _res = NULL;
15550 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015551 { // ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015552 if (p->error_indicator) {
15553 D(p->level--);
15554 return NULL;
15555 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015556 D(fprintf(stderr, "%*c> for_if_clause[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
15557 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015558 Token * _keyword;
15559 Token * _keyword_1;
15560 expr_ty a;
15561 Token * async_var;
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 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
15566 &&
15567 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
15568 &&
15569 (a = star_targets_rule(p)) // star_targets
15570 &&
15571 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
15572 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015573 (_cut_var = 1)
15574 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015575 (b = disjunction_rule(p)) // disjunction
15576 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070015577 (c = (asdl_expr_seq*)_loop0_121_rule(p)) // (('if' disjunction))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015578 )
15579 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015580 D(fprintf(stderr, "%*c+ for_if_clause[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015581 _res = CHECK_VERSION ( comprehension_ty , 6 , "Async comprehensions are" , _PyAST_comprehension ( a , b , c , 1 , p -> arena ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015582 if (_res == NULL && PyErr_Occurred()) {
15583 p->error_indicator = 1;
15584 D(p->level--);
15585 return NULL;
15586 }
15587 goto done;
15588 }
15589 p->mark = _mark;
15590 D(fprintf(stderr, "%*c%s for_if_clause[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015591 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
15592 if (_cut_var) {
15593 D(p->level--);
15594 return NULL;
15595 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015596 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015597 { // 'for' star_targets 'in' ~ disjunction (('if' disjunction))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015598 if (p->error_indicator) {
15599 D(p->level--);
15600 return NULL;
15601 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015602 D(fprintf(stderr, "%*c> for_if_clause[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
15603 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015604 Token * _keyword;
15605 Token * _keyword_1;
15606 expr_ty a;
15607 expr_ty b;
Pablo Galindoa5634c42020-09-16 19:42:00 +010015608 asdl_expr_seq* c;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015609 if (
15610 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
15611 &&
15612 (a = star_targets_rule(p)) // star_targets
15613 &&
15614 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
15615 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015616 (_cut_var = 1)
15617 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015618 (b = disjunction_rule(p)) // disjunction
15619 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070015620 (c = (asdl_expr_seq*)_loop0_122_rule(p)) // (('if' disjunction))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015621 )
15622 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015623 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 +020015624 _res = _PyAST_comprehension ( a , b , c , 0 , p -> arena );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015625 if (_res == NULL && PyErr_Occurred()) {
15626 p->error_indicator = 1;
15627 D(p->level--);
15628 return NULL;
15629 }
15630 goto done;
15631 }
15632 p->mark = _mark;
15633 D(fprintf(stderr, "%*c%s for_if_clause[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015634 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
15635 if (_cut_var) {
15636 D(p->level--);
15637 return NULL;
15638 }
15639 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020015640 if (p->call_invalid_rules) { // invalid_for_target
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015641 if (p->error_indicator) {
15642 D(p->level--);
15643 return NULL;
15644 }
15645 D(fprintf(stderr, "%*c> for_if_clause[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_for_target"));
15646 void *invalid_for_target_var;
15647 if (
15648 (invalid_for_target_var = invalid_for_target_rule(p)) // invalid_for_target
15649 )
15650 {
15651 D(fprintf(stderr, "%*c+ for_if_clause[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_for_target"));
15652 _res = invalid_for_target_var;
15653 goto done;
15654 }
15655 p->mark = _mark;
15656 D(fprintf(stderr, "%*c%s for_if_clause[%d-%d]: %s failed!\n", p->level, ' ',
15657 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_for_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015658 }
15659 _res = NULL;
15660 done:
15661 D(p->level--);
15662 return _res;
15663}
15664
15665// yield_expr: 'yield' 'from' expression | 'yield' star_expressions?
15666static expr_ty
15667yield_expr_rule(Parser *p)
15668{
15669 D(p->level++);
15670 if (p->error_indicator) {
15671 D(p->level--);
15672 return NULL;
15673 }
15674 expr_ty _res = NULL;
15675 int _mark = p->mark;
15676 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
15677 p->error_indicator = 1;
15678 D(p->level--);
15679 return NULL;
15680 }
15681 int _start_lineno = p->tokens[_mark]->lineno;
15682 UNUSED(_start_lineno); // Only used by EXTRA macro
15683 int _start_col_offset = p->tokens[_mark]->col_offset;
15684 UNUSED(_start_col_offset); // Only used by EXTRA macro
15685 { // 'yield' 'from' expression
15686 if (p->error_indicator) {
15687 D(p->level--);
15688 return NULL;
15689 }
15690 D(fprintf(stderr, "%*c> yield_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'yield' 'from' expression"));
15691 Token * _keyword;
15692 Token * _keyword_1;
15693 expr_ty a;
15694 if (
15695 (_keyword = _PyPegen_expect_token(p, 504)) // token='yield'
15696 &&
15697 (_keyword_1 = _PyPegen_expect_token(p, 514)) // token='from'
15698 &&
15699 (a = expression_rule(p)) // expression
15700 )
15701 {
15702 D(fprintf(stderr, "%*c+ yield_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'yield' 'from' expression"));
15703 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15704 if (_token == NULL) {
15705 D(p->level--);
15706 return NULL;
15707 }
15708 int _end_lineno = _token->end_lineno;
15709 UNUSED(_end_lineno); // Only used by EXTRA macro
15710 int _end_col_offset = _token->end_col_offset;
15711 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015712 _res = _PyAST_YieldFrom ( a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015713 if (_res == NULL && PyErr_Occurred()) {
15714 p->error_indicator = 1;
15715 D(p->level--);
15716 return NULL;
15717 }
15718 goto done;
15719 }
15720 p->mark = _mark;
15721 D(fprintf(stderr, "%*c%s yield_expr[%d-%d]: %s failed!\n", p->level, ' ',
15722 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'yield' 'from' expression"));
15723 }
15724 { // 'yield' star_expressions?
15725 if (p->error_indicator) {
15726 D(p->level--);
15727 return NULL;
15728 }
15729 D(fprintf(stderr, "%*c> yield_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'yield' star_expressions?"));
15730 Token * _keyword;
15731 void *a;
15732 if (
15733 (_keyword = _PyPegen_expect_token(p, 504)) // token='yield'
15734 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +020015735 (a = star_expressions_rule(p), !p->error_indicator) // star_expressions?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015736 )
15737 {
15738 D(fprintf(stderr, "%*c+ yield_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'yield' star_expressions?"));
15739 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15740 if (_token == NULL) {
15741 D(p->level--);
15742 return NULL;
15743 }
15744 int _end_lineno = _token->end_lineno;
15745 UNUSED(_end_lineno); // Only used by EXTRA macro
15746 int _end_col_offset = _token->end_col_offset;
15747 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015748 _res = _PyAST_Yield ( a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015749 if (_res == NULL && PyErr_Occurred()) {
15750 p->error_indicator = 1;
15751 D(p->level--);
15752 return NULL;
15753 }
15754 goto done;
15755 }
15756 p->mark = _mark;
15757 D(fprintf(stderr, "%*c%s yield_expr[%d-%d]: %s failed!\n", p->level, ' ',
15758 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'yield' star_expressions?"));
15759 }
15760 _res = NULL;
15761 done:
15762 D(p->level--);
15763 return _res;
15764}
15765
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020015766// arguments: args ','? &')' | invalid_arguments
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015767static expr_ty
15768arguments_rule(Parser *p)
15769{
15770 D(p->level++);
15771 if (p->error_indicator) {
15772 D(p->level--);
15773 return NULL;
15774 }
15775 expr_ty _res = NULL;
15776 if (_PyPegen_is_memoized(p, arguments_type, &_res)) {
15777 D(p->level--);
15778 return _res;
15779 }
15780 int _mark = p->mark;
15781 { // args ','? &')'
15782 if (p->error_indicator) {
15783 D(p->level--);
15784 return NULL;
15785 }
15786 D(fprintf(stderr, "%*c> arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args ','? &')'"));
15787 void *_opt_var;
15788 UNUSED(_opt_var); // Silence compiler warnings
15789 expr_ty a;
15790 if (
15791 (a = args_rule(p)) // args
15792 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +020015793 (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015794 &&
15795 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
15796 )
15797 {
15798 D(fprintf(stderr, "%*c+ arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args ','? &')'"));
15799 _res = a;
15800 if (_res == NULL && PyErr_Occurred()) {
15801 p->error_indicator = 1;
15802 D(p->level--);
15803 return NULL;
15804 }
15805 goto done;
15806 }
15807 p->mark = _mark;
15808 D(fprintf(stderr, "%*c%s arguments[%d-%d]: %s failed!\n", p->level, ' ',
15809 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ','? &')'"));
15810 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020015811 if (p->call_invalid_rules) { // invalid_arguments
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015812 if (p->error_indicator) {
15813 D(p->level--);
15814 return NULL;
15815 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020015816 D(fprintf(stderr, "%*c> arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_arguments"));
15817 void *invalid_arguments_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015818 if (
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020015819 (invalid_arguments_var = invalid_arguments_rule(p)) // invalid_arguments
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015820 )
15821 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020015822 D(fprintf(stderr, "%*c+ arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_arguments"));
15823 _res = invalid_arguments_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015824 goto done;
15825 }
15826 p->mark = _mark;
15827 D(fprintf(stderr, "%*c%s arguments[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020015828 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_arguments"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015829 }
15830 _res = NULL;
15831 done:
15832 _PyPegen_insert_memo(p, _mark, arguments_type, _res);
15833 D(p->level--);
15834 return _res;
15835}
15836
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070015837// args:
Pablo Galindo Salgado0e34a592021-11-04 23:19:27 +000015838// | ','.(starred_expression | (assignment_expression | expression !':=') !'=')+ [',' kwargs]
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070015839// | kwargs
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015840static expr_ty
15841args_rule(Parser *p)
15842{
15843 D(p->level++);
15844 if (p->error_indicator) {
15845 D(p->level--);
15846 return NULL;
15847 }
15848 expr_ty _res = NULL;
15849 int _mark = p->mark;
15850 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
15851 p->error_indicator = 1;
15852 D(p->level--);
15853 return NULL;
15854 }
15855 int _start_lineno = p->tokens[_mark]->lineno;
15856 UNUSED(_start_lineno); // Only used by EXTRA macro
15857 int _start_col_offset = p->tokens[_mark]->col_offset;
15858 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo Salgado0e34a592021-11-04 23:19:27 +000015859 { // ','.(starred_expression | (assignment_expression | expression !':=') !'=')+ [',' kwargs]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015860 if (p->error_indicator) {
15861 D(p->level--);
15862 return NULL;
15863 }
Pablo Galindo Salgado0e34a592021-11-04 23:19:27 +000015864 D(fprintf(stderr, "%*c> args[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.(starred_expression | (assignment_expression | expression !':=') !'=')+ [',' kwargs]"));
Pablo Galindoa5634c42020-09-16 19:42:00 +010015865 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015866 void *b;
15867 if (
Pablo Galindo Salgado0e34a592021-11-04 23:19:27 +000015868 (a = (asdl_expr_seq*)_gather_123_rule(p)) // ','.(starred_expression | (assignment_expression | expression !':=') !'=')+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015869 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +020015870 (b = _tmp_125_rule(p), !p->error_indicator) // [',' kwargs]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015871 )
15872 {
Pablo Galindo Salgado0e34a592021-11-04 23:19:27 +000015873 D(fprintf(stderr, "%*c+ args[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.(starred_expression | (assignment_expression | expression !':=') !'=')+ [',' kwargs]"));
Pablo Galindo315a61f2020-09-03 15:29:32 +010015874 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15875 if (_token == NULL) {
15876 D(p->level--);
15877 return NULL;
15878 }
15879 int _end_lineno = _token->end_lineno;
15880 UNUSED(_end_lineno); // Only used by EXTRA macro
15881 int _end_col_offset = _token->end_col_offset;
15882 UNUSED(_end_col_offset); // Only used by EXTRA macro
15883 _res = _PyPegen_collect_call_seqs ( p , a , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015884 if (_res == NULL && PyErr_Occurred()) {
15885 p->error_indicator = 1;
15886 D(p->level--);
15887 return NULL;
15888 }
15889 goto done;
15890 }
15891 p->mark = _mark;
15892 D(fprintf(stderr, "%*c%s args[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo Salgado0e34a592021-11-04 23:19:27 +000015893 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.(starred_expression | (assignment_expression | expression !':=') !'=')+ [',' kwargs]"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015894 }
15895 { // kwargs
15896 if (p->error_indicator) {
15897 D(p->level--);
15898 return NULL;
15899 }
15900 D(fprintf(stderr, "%*c> args[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwargs"));
15901 asdl_seq* a;
15902 if (
15903 (a = kwargs_rule(p)) // kwargs
15904 )
15905 {
15906 D(fprintf(stderr, "%*c+ args[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwargs"));
15907 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15908 if (_token == NULL) {
15909 D(p->level--);
15910 return NULL;
15911 }
15912 int _end_lineno = _token->end_lineno;
15913 UNUSED(_end_lineno); // Only used by EXTRA macro
15914 int _end_col_offset = _token->end_col_offset;
15915 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015916 _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 +010015917 if (_res == NULL && PyErr_Occurred()) {
15918 p->error_indicator = 1;
15919 D(p->level--);
15920 return NULL;
15921 }
15922 goto done;
15923 }
15924 p->mark = _mark;
15925 D(fprintf(stderr, "%*c%s args[%d-%d]: %s failed!\n", p->level, ' ',
15926 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwargs"));
15927 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015928 _res = NULL;
15929 done:
15930 D(p->level--);
15931 return _res;
15932}
15933
15934// kwargs:
15935// | ','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+
15936// | ','.kwarg_or_starred+
15937// | ','.kwarg_or_double_starred+
15938static asdl_seq*
15939kwargs_rule(Parser *p)
15940{
15941 D(p->level++);
15942 if (p->error_indicator) {
15943 D(p->level--);
15944 return NULL;
15945 }
15946 asdl_seq* _res = NULL;
15947 int _mark = p->mark;
15948 { // ','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+
15949 if (p->error_indicator) {
15950 D(p->level--);
15951 return NULL;
15952 }
15953 D(fprintf(stderr, "%*c> kwargs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+"));
15954 Token * _literal;
15955 asdl_seq * a;
15956 asdl_seq * b;
15957 if (
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070015958 (a = _gather_126_rule(p)) // ','.kwarg_or_starred+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015959 &&
15960 (_literal = _PyPegen_expect_token(p, 12)) // token=','
15961 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070015962 (b = _gather_128_rule(p)) // ','.kwarg_or_double_starred+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015963 )
15964 {
15965 D(fprintf(stderr, "%*c+ kwargs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+"));
15966 _res = _PyPegen_join_sequences ( p , a , b );
15967 if (_res == NULL && PyErr_Occurred()) {
15968 p->error_indicator = 1;
15969 D(p->level--);
15970 return NULL;
15971 }
15972 goto done;
15973 }
15974 p->mark = _mark;
15975 D(fprintf(stderr, "%*c%s kwargs[%d-%d]: %s failed!\n", p->level, ' ',
15976 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+"));
15977 }
15978 { // ','.kwarg_or_starred+
15979 if (p->error_indicator) {
15980 D(p->level--);
15981 return NULL;
15982 }
15983 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 -070015984 asdl_seq * _gather_130_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015985 if (
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070015986 (_gather_130_var = _gather_130_rule(p)) // ','.kwarg_or_starred+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015987 )
15988 {
15989 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 -070015990 _res = _gather_130_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015991 goto done;
15992 }
15993 p->mark = _mark;
15994 D(fprintf(stderr, "%*c%s kwargs[%d-%d]: %s failed!\n", p->level, ' ',
15995 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.kwarg_or_starred+"));
15996 }
15997 { // ','.kwarg_or_double_starred+
15998 if (p->error_indicator) {
15999 D(p->level--);
16000 return NULL;
16001 }
16002 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 -070016003 asdl_seq * _gather_132_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016004 if (
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070016005 (_gather_132_var = _gather_132_rule(p)) // ','.kwarg_or_double_starred+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016006 )
16007 {
16008 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 -070016009 _res = _gather_132_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016010 goto done;
16011 }
16012 p->mark = _mark;
16013 D(fprintf(stderr, "%*c%s kwargs[%d-%d]: %s failed!\n", p->level, ' ',
16014 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.kwarg_or_double_starred+"));
16015 }
16016 _res = NULL;
16017 done:
16018 D(p->level--);
16019 return _res;
16020}
16021
16022// starred_expression: '*' expression
16023static expr_ty
16024starred_expression_rule(Parser *p)
16025{
16026 D(p->level++);
16027 if (p->error_indicator) {
16028 D(p->level--);
16029 return NULL;
16030 }
16031 expr_ty _res = NULL;
16032 int _mark = p->mark;
16033 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
16034 p->error_indicator = 1;
16035 D(p->level--);
16036 return NULL;
16037 }
16038 int _start_lineno = p->tokens[_mark]->lineno;
16039 UNUSED(_start_lineno); // Only used by EXTRA macro
16040 int _start_col_offset = p->tokens[_mark]->col_offset;
16041 UNUSED(_start_col_offset); // Only used by EXTRA macro
16042 { // '*' expression
16043 if (p->error_indicator) {
16044 D(p->level--);
16045 return NULL;
16046 }
16047 D(fprintf(stderr, "%*c> starred_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' expression"));
16048 Token * _literal;
16049 expr_ty a;
16050 if (
16051 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
16052 &&
16053 (a = expression_rule(p)) // expression
16054 )
16055 {
16056 D(fprintf(stderr, "%*c+ starred_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' expression"));
16057 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16058 if (_token == NULL) {
16059 D(p->level--);
16060 return NULL;
16061 }
16062 int _end_lineno = _token->end_lineno;
16063 UNUSED(_end_lineno); // Only used by EXTRA macro
16064 int _end_col_offset = _token->end_col_offset;
16065 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016066 _res = _PyAST_Starred ( a , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016067 if (_res == NULL && PyErr_Occurred()) {
16068 p->error_indicator = 1;
16069 D(p->level--);
16070 return NULL;
16071 }
16072 goto done;
16073 }
16074 p->mark = _mark;
16075 D(fprintf(stderr, "%*c%s starred_expression[%d-%d]: %s failed!\n", p->level, ' ',
16076 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' expression"));
16077 }
16078 _res = NULL;
16079 done:
16080 D(p->level--);
16081 return _res;
16082}
16083
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070016084// kwarg_or_starred: invalid_kwarg | NAME '=' expression | starred_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016085static KeywordOrStarred*
16086kwarg_or_starred_rule(Parser *p)
16087{
16088 D(p->level++);
16089 if (p->error_indicator) {
16090 D(p->level--);
16091 return NULL;
16092 }
16093 KeywordOrStarred* _res = NULL;
16094 int _mark = p->mark;
16095 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
16096 p->error_indicator = 1;
16097 D(p->level--);
16098 return NULL;
16099 }
16100 int _start_lineno = p->tokens[_mark]->lineno;
16101 UNUSED(_start_lineno); // Only used by EXTRA macro
16102 int _start_col_offset = p->tokens[_mark]->col_offset;
16103 UNUSED(_start_col_offset); // Only used by EXTRA macro
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070016104 if (p->call_invalid_rules) { // invalid_kwarg
16105 if (p->error_indicator) {
16106 D(p->level--);
16107 return NULL;
16108 }
16109 D(fprintf(stderr, "%*c> kwarg_or_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_kwarg"));
16110 void *invalid_kwarg_var;
16111 if (
16112 (invalid_kwarg_var = invalid_kwarg_rule(p)) // invalid_kwarg
16113 )
16114 {
16115 D(fprintf(stderr, "%*c+ kwarg_or_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_kwarg"));
16116 _res = invalid_kwarg_var;
16117 goto done;
16118 }
16119 p->mark = _mark;
16120 D(fprintf(stderr, "%*c%s kwarg_or_starred[%d-%d]: %s failed!\n", p->level, ' ',
16121 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_kwarg"));
16122 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016123 { // NAME '=' expression
16124 if (p->error_indicator) {
16125 D(p->level--);
16126 return NULL;
16127 }
16128 D(fprintf(stderr, "%*c> kwarg_or_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME '=' expression"));
16129 Token * _literal;
16130 expr_ty a;
16131 expr_ty b;
16132 if (
16133 (a = _PyPegen_name_token(p)) // NAME
16134 &&
16135 (_literal = _PyPegen_expect_token(p, 22)) // token='='
16136 &&
16137 (b = expression_rule(p)) // expression
16138 )
16139 {
16140 D(fprintf(stderr, "%*c+ kwarg_or_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '=' expression"));
16141 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16142 if (_token == NULL) {
16143 D(p->level--);
16144 return NULL;
16145 }
16146 int _end_lineno = _token->end_lineno;
16147 UNUSED(_end_lineno); // Only used by EXTRA macro
16148 int _end_col_offset = _token->end_col_offset;
16149 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016150 _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 +010016151 if (_res == NULL && PyErr_Occurred()) {
16152 p->error_indicator = 1;
16153 D(p->level--);
16154 return NULL;
16155 }
16156 goto done;
16157 }
16158 p->mark = _mark;
16159 D(fprintf(stderr, "%*c%s kwarg_or_starred[%d-%d]: %s failed!\n", p->level, ' ',
16160 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' expression"));
16161 }
16162 { // starred_expression
16163 if (p->error_indicator) {
16164 D(p->level--);
16165 return NULL;
16166 }
16167 D(fprintf(stderr, "%*c> kwarg_or_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "starred_expression"));
16168 expr_ty a;
16169 if (
16170 (a = starred_expression_rule(p)) // starred_expression
16171 )
16172 {
16173 D(fprintf(stderr, "%*c+ kwarg_or_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "starred_expression"));
16174 _res = _PyPegen_keyword_or_starred ( p , a , 0 );
16175 if (_res == NULL && PyErr_Occurred()) {
16176 p->error_indicator = 1;
16177 D(p->level--);
16178 return NULL;
16179 }
16180 goto done;
16181 }
16182 p->mark = _mark;
16183 D(fprintf(stderr, "%*c%s kwarg_or_starred[%d-%d]: %s failed!\n", p->level, ' ',
16184 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "starred_expression"));
16185 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016186 _res = NULL;
16187 done:
16188 D(p->level--);
16189 return _res;
16190}
16191
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070016192// kwarg_or_double_starred: invalid_kwarg | NAME '=' expression | '**' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016193static KeywordOrStarred*
16194kwarg_or_double_starred_rule(Parser *p)
16195{
16196 D(p->level++);
16197 if (p->error_indicator) {
16198 D(p->level--);
16199 return NULL;
16200 }
16201 KeywordOrStarred* _res = NULL;
16202 int _mark = p->mark;
16203 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
16204 p->error_indicator = 1;
16205 D(p->level--);
16206 return NULL;
16207 }
16208 int _start_lineno = p->tokens[_mark]->lineno;
16209 UNUSED(_start_lineno); // Only used by EXTRA macro
16210 int _start_col_offset = p->tokens[_mark]->col_offset;
16211 UNUSED(_start_col_offset); // Only used by EXTRA macro
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070016212 if (p->call_invalid_rules) { // invalid_kwarg
16213 if (p->error_indicator) {
16214 D(p->level--);
16215 return NULL;
16216 }
16217 D(fprintf(stderr, "%*c> kwarg_or_double_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_kwarg"));
16218 void *invalid_kwarg_var;
16219 if (
16220 (invalid_kwarg_var = invalid_kwarg_rule(p)) // invalid_kwarg
16221 )
16222 {
16223 D(fprintf(stderr, "%*c+ kwarg_or_double_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_kwarg"));
16224 _res = invalid_kwarg_var;
16225 goto done;
16226 }
16227 p->mark = _mark;
16228 D(fprintf(stderr, "%*c%s kwarg_or_double_starred[%d-%d]: %s failed!\n", p->level, ' ',
16229 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_kwarg"));
16230 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016231 { // NAME '=' expression
16232 if (p->error_indicator) {
16233 D(p->level--);
16234 return NULL;
16235 }
16236 D(fprintf(stderr, "%*c> kwarg_or_double_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME '=' expression"));
16237 Token * _literal;
16238 expr_ty a;
16239 expr_ty b;
16240 if (
16241 (a = _PyPegen_name_token(p)) // NAME
16242 &&
16243 (_literal = _PyPegen_expect_token(p, 22)) // token='='
16244 &&
16245 (b = expression_rule(p)) // expression
16246 )
16247 {
16248 D(fprintf(stderr, "%*c+ kwarg_or_double_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '=' expression"));
16249 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16250 if (_token == NULL) {
16251 D(p->level--);
16252 return NULL;
16253 }
16254 int _end_lineno = _token->end_lineno;
16255 UNUSED(_end_lineno); // Only used by EXTRA macro
16256 int _end_col_offset = _token->end_col_offset;
16257 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016258 _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 +010016259 if (_res == NULL && PyErr_Occurred()) {
16260 p->error_indicator = 1;
16261 D(p->level--);
16262 return NULL;
16263 }
16264 goto done;
16265 }
16266 p->mark = _mark;
16267 D(fprintf(stderr, "%*c%s kwarg_or_double_starred[%d-%d]: %s failed!\n", p->level, ' ',
16268 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' expression"));
16269 }
16270 { // '**' expression
16271 if (p->error_indicator) {
16272 D(p->level--);
16273 return NULL;
16274 }
16275 D(fprintf(stderr, "%*c> kwarg_or_double_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' expression"));
16276 Token * _literal;
16277 expr_ty a;
16278 if (
16279 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
16280 &&
16281 (a = expression_rule(p)) // expression
16282 )
16283 {
16284 D(fprintf(stderr, "%*c+ kwarg_or_double_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' expression"));
16285 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16286 if (_token == NULL) {
16287 D(p->level--);
16288 return NULL;
16289 }
16290 int _end_lineno = _token->end_lineno;
16291 UNUSED(_end_lineno); // Only used by EXTRA macro
16292 int _end_col_offset = _token->end_col_offset;
16293 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016294 _res = _PyPegen_keyword_or_starred ( p , CHECK ( keyword_ty , _PyAST_keyword ( NULL , a , EXTRA ) ) , 1 );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016295 if (_res == NULL && PyErr_Occurred()) {
16296 p->error_indicator = 1;
16297 D(p->level--);
16298 return NULL;
16299 }
16300 goto done;
16301 }
16302 p->mark = _mark;
16303 D(fprintf(stderr, "%*c%s kwarg_or_double_starred[%d-%d]: %s failed!\n", p->level, ' ',
16304 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' expression"));
16305 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016306 _res = NULL;
16307 done:
16308 D(p->level--);
16309 return _res;
16310}
16311
16312// star_targets: star_target !',' | star_target ((',' star_target))* ','?
16313static expr_ty
16314star_targets_rule(Parser *p)
16315{
16316 D(p->level++);
16317 if (p->error_indicator) {
16318 D(p->level--);
16319 return NULL;
16320 }
16321 expr_ty _res = NULL;
16322 int _mark = p->mark;
16323 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
16324 p->error_indicator = 1;
16325 D(p->level--);
16326 return NULL;
16327 }
16328 int _start_lineno = p->tokens[_mark]->lineno;
16329 UNUSED(_start_lineno); // Only used by EXTRA macro
16330 int _start_col_offset = p->tokens[_mark]->col_offset;
16331 UNUSED(_start_col_offset); // Only used by EXTRA macro
16332 { // star_target !','
16333 if (p->error_indicator) {
16334 D(p->level--);
16335 return NULL;
16336 }
16337 D(fprintf(stderr, "%*c> star_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target !','"));
16338 expr_ty a;
16339 if (
16340 (a = star_target_rule(p)) // star_target
16341 &&
16342 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 12) // token=','
16343 )
16344 {
16345 D(fprintf(stderr, "%*c+ star_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target !','"));
16346 _res = a;
16347 if (_res == NULL && PyErr_Occurred()) {
16348 p->error_indicator = 1;
16349 D(p->level--);
16350 return NULL;
16351 }
16352 goto done;
16353 }
16354 p->mark = _mark;
16355 D(fprintf(stderr, "%*c%s star_targets[%d-%d]: %s failed!\n", p->level, ' ',
16356 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target !','"));
16357 }
16358 { // star_target ((',' star_target))* ','?
16359 if (p->error_indicator) {
16360 D(p->level--);
16361 return NULL;
16362 }
16363 D(fprintf(stderr, "%*c> star_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target ((',' star_target))* ','?"));
16364 void *_opt_var;
16365 UNUSED(_opt_var); // Silence compiler warnings
16366 expr_ty a;
16367 asdl_seq * b;
16368 if (
16369 (a = star_target_rule(p)) // star_target
16370 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070016371 (b = _loop0_134_rule(p)) // ((',' star_target))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016372 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +020016373 (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016374 )
16375 {
16376 D(fprintf(stderr, "%*c+ star_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target ((',' star_target))* ','?"));
16377 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16378 if (_token == NULL) {
16379 D(p->level--);
16380 return NULL;
16381 }
16382 int _end_lineno = _token->end_lineno;
16383 UNUSED(_end_lineno); // Only used by EXTRA macro
16384 int _end_col_offset = _token->end_col_offset;
16385 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016386 _res = _PyAST_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , a , b ) ) , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016387 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;
16395 D(fprintf(stderr, "%*c%s star_targets[%d-%d]: %s failed!\n", p->level, ' ',
16396 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target ((',' 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_list_seq: ','.star_target+ ','?
Pablo Galindoa5634c42020-09-16 19:42:00 +010016405static asdl_expr_seq*
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016406star_targets_list_seq_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016407{
16408 D(p->level++);
16409 if (p->error_indicator) {
16410 D(p->level--);
16411 return NULL;
16412 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010016413 asdl_expr_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016414 int _mark = p->mark;
16415 { // ','.star_target+ ','?
16416 if (p->error_indicator) {
16417 D(p->level--);
16418 return NULL;
16419 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016420 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 +010016421 void *_opt_var;
16422 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +010016423 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016424 if (
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070016425 (a = (asdl_expr_seq*)_gather_135_rule(p)) // ','.star_target+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016426 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +020016427 (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016428 )
16429 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016430 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 +010016431 _res = a;
16432 if (_res == NULL && PyErr_Occurred()) {
16433 p->error_indicator = 1;
16434 D(p->level--);
16435 return NULL;
16436 }
16437 goto done;
16438 }
16439 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016440 D(fprintf(stderr, "%*c%s star_targets_list_seq[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016441 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.star_target+ ','?"));
16442 }
16443 _res = NULL;
16444 done:
16445 D(p->level--);
16446 return _res;
16447}
16448
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016449// star_targets_tuple_seq: star_target ((',' star_target))+ ','? | star_target ','
16450static asdl_expr_seq*
16451star_targets_tuple_seq_rule(Parser *p)
16452{
16453 D(p->level++);
16454 if (p->error_indicator) {
16455 D(p->level--);
16456 return NULL;
16457 }
16458 asdl_expr_seq* _res = NULL;
16459 int _mark = p->mark;
16460 { // star_target ((',' star_target))+ ','?
16461 if (p->error_indicator) {
16462 D(p->level--);
16463 return NULL;
16464 }
16465 D(fprintf(stderr, "%*c> star_targets_tuple_seq[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target ((',' star_target))+ ','?"));
16466 void *_opt_var;
16467 UNUSED(_opt_var); // Silence compiler warnings
16468 expr_ty a;
16469 asdl_seq * b;
16470 if (
16471 (a = star_target_rule(p)) // star_target
16472 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070016473 (b = _loop1_137_rule(p)) // ((',' star_target))+
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016474 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +020016475 (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','?
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016476 )
16477 {
16478 D(fprintf(stderr, "%*c+ star_targets_tuple_seq[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target ((',' star_target))+ ','?"));
16479 _res = ( asdl_expr_seq * ) _PyPegen_seq_insert_in_front ( p , a , b );
16480 if (_res == NULL && PyErr_Occurred()) {
16481 p->error_indicator = 1;
16482 D(p->level--);
16483 return NULL;
16484 }
16485 goto done;
16486 }
16487 p->mark = _mark;
16488 D(fprintf(stderr, "%*c%s star_targets_tuple_seq[%d-%d]: %s failed!\n", p->level, ' ',
16489 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target ((',' star_target))+ ','?"));
16490 }
16491 { // star_target ','
16492 if (p->error_indicator) {
16493 D(p->level--);
16494 return NULL;
16495 }
16496 D(fprintf(stderr, "%*c> star_targets_tuple_seq[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target ','"));
16497 Token * _literal;
16498 expr_ty a;
16499 if (
16500 (a = star_target_rule(p)) // star_target
16501 &&
16502 (_literal = _PyPegen_expect_token(p, 12)) // token=','
16503 )
16504 {
16505 D(fprintf(stderr, "%*c+ star_targets_tuple_seq[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target ','"));
16506 _res = ( asdl_expr_seq * ) _PyPegen_singleton_seq ( p , a );
16507 if (_res == NULL && PyErr_Occurred()) {
16508 p->error_indicator = 1;
16509 D(p->level--);
16510 return NULL;
16511 }
16512 goto done;
16513 }
16514 p->mark = _mark;
16515 D(fprintf(stderr, "%*c%s star_targets_tuple_seq[%d-%d]: %s failed!\n", p->level, ' ',
16516 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target ','"));
16517 }
16518 _res = NULL;
16519 done:
16520 D(p->level--);
16521 return _res;
16522}
16523
16524// star_target: '*' (!'*' star_target) | target_with_star_atom
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016525static expr_ty
16526star_target_rule(Parser *p)
16527{
16528 D(p->level++);
16529 if (p->error_indicator) {
16530 D(p->level--);
16531 return NULL;
16532 }
16533 expr_ty _res = NULL;
16534 if (_PyPegen_is_memoized(p, star_target_type, &_res)) {
16535 D(p->level--);
16536 return _res;
16537 }
16538 int _mark = p->mark;
16539 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
16540 p->error_indicator = 1;
16541 D(p->level--);
16542 return NULL;
16543 }
16544 int _start_lineno = p->tokens[_mark]->lineno;
16545 UNUSED(_start_lineno); // Only used by EXTRA macro
16546 int _start_col_offset = p->tokens[_mark]->col_offset;
16547 UNUSED(_start_col_offset); // Only used by EXTRA macro
16548 { // '*' (!'*' star_target)
16549 if (p->error_indicator) {
16550 D(p->level--);
16551 return NULL;
16552 }
16553 D(fprintf(stderr, "%*c> star_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (!'*' star_target)"));
16554 Token * _literal;
16555 void *a;
16556 if (
16557 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
16558 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070016559 (a = _tmp_138_rule(p)) // !'*' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016560 )
16561 {
16562 D(fprintf(stderr, "%*c+ star_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' (!'*' star_target)"));
16563 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16564 if (_token == NULL) {
16565 D(p->level--);
16566 return NULL;
16567 }
16568 int _end_lineno = _token->end_lineno;
16569 UNUSED(_end_lineno); // Only used by EXTRA macro
16570 int _end_col_offset = _token->end_col_offset;
16571 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016572 _res = _PyAST_Starred ( CHECK ( expr_ty , _PyPegen_set_expr_context ( p , a , Store ) ) , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016573 if (_res == NULL && PyErr_Occurred()) {
16574 p->error_indicator = 1;
16575 D(p->level--);
16576 return NULL;
16577 }
16578 goto done;
16579 }
16580 p->mark = _mark;
16581 D(fprintf(stderr, "%*c%s star_target[%d-%d]: %s failed!\n", p->level, ' ',
16582 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' (!'*' star_target)"));
16583 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016584 { // target_with_star_atom
16585 if (p->error_indicator) {
16586 D(p->level--);
16587 return NULL;
16588 }
16589 D(fprintf(stderr, "%*c> star_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "target_with_star_atom"));
16590 expr_ty target_with_star_atom_var;
16591 if (
16592 (target_with_star_atom_var = target_with_star_atom_rule(p)) // target_with_star_atom
16593 )
16594 {
16595 D(fprintf(stderr, "%*c+ star_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "target_with_star_atom"));
16596 _res = target_with_star_atom_var;
16597 goto done;
16598 }
16599 p->mark = _mark;
16600 D(fprintf(stderr, "%*c%s star_target[%d-%d]: %s failed!\n", p->level, ' ',
16601 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "target_with_star_atom"));
16602 }
16603 _res = NULL;
16604 done:
16605 _PyPegen_insert_memo(p, _mark, star_target_type, _res);
16606 D(p->level--);
16607 return _res;
16608}
16609
16610// target_with_star_atom:
16611// | t_primary '.' NAME !t_lookahead
16612// | t_primary '[' slices ']' !t_lookahead
16613// | star_atom
16614static expr_ty
16615target_with_star_atom_rule(Parser *p)
16616{
16617 D(p->level++);
16618 if (p->error_indicator) {
16619 D(p->level--);
16620 return NULL;
16621 }
16622 expr_ty _res = NULL;
16623 if (_PyPegen_is_memoized(p, target_with_star_atom_type, &_res)) {
16624 D(p->level--);
16625 return _res;
16626 }
16627 int _mark = p->mark;
16628 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
16629 p->error_indicator = 1;
16630 D(p->level--);
16631 return NULL;
16632 }
16633 int _start_lineno = p->tokens[_mark]->lineno;
16634 UNUSED(_start_lineno); // Only used by EXTRA macro
16635 int _start_col_offset = p->tokens[_mark]->col_offset;
16636 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016637 { // t_primary '.' NAME !t_lookahead
16638 if (p->error_indicator) {
16639 D(p->level--);
16640 return NULL;
16641 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016642 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 +010016643 Token * _literal;
16644 expr_ty a;
16645 expr_ty b;
16646 if (
16647 (a = t_primary_rule(p)) // t_primary
16648 &&
16649 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
16650 &&
16651 (b = _PyPegen_name_token(p)) // NAME
16652 &&
16653 _PyPegen_lookahead(0, t_lookahead_rule, p)
16654 )
16655 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016656 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 +010016657 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16658 if (_token == NULL) {
16659 D(p->level--);
16660 return NULL;
16661 }
16662 int _end_lineno = _token->end_lineno;
16663 UNUSED(_end_lineno); // Only used by EXTRA macro
16664 int _end_col_offset = _token->end_col_offset;
16665 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016666 _res = _PyAST_Attribute ( a , b -> v . Name . id , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016667 if (_res == NULL && PyErr_Occurred()) {
16668 p->error_indicator = 1;
16669 D(p->level--);
16670 return NULL;
16671 }
16672 goto done;
16673 }
16674 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016675 D(fprintf(stderr, "%*c%s target_with_star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016676 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
16677 }
16678 { // t_primary '[' slices ']' !t_lookahead
16679 if (p->error_indicator) {
16680 D(p->level--);
16681 return NULL;
16682 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016683 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 +010016684 Token * _literal;
16685 Token * _literal_1;
16686 expr_ty a;
16687 expr_ty b;
16688 if (
16689 (a = t_primary_rule(p)) // t_primary
16690 &&
16691 (_literal = _PyPegen_expect_token(p, 9)) // token='['
16692 &&
16693 (b = slices_rule(p)) // slices
16694 &&
16695 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
16696 &&
16697 _PyPegen_lookahead(0, t_lookahead_rule, p)
16698 )
16699 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016700 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 +010016701 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16702 if (_token == NULL) {
16703 D(p->level--);
16704 return NULL;
16705 }
16706 int _end_lineno = _token->end_lineno;
16707 UNUSED(_end_lineno); // Only used by EXTRA macro
16708 int _end_col_offset = _token->end_col_offset;
16709 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016710 _res = _PyAST_Subscript ( a , b , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016711 if (_res == NULL && PyErr_Occurred()) {
16712 p->error_indicator = 1;
16713 D(p->level--);
16714 return NULL;
16715 }
16716 goto done;
16717 }
16718 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016719 D(fprintf(stderr, "%*c%s target_with_star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016720 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
16721 }
16722 { // star_atom
16723 if (p->error_indicator) {
16724 D(p->level--);
16725 return NULL;
16726 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016727 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 +010016728 expr_ty star_atom_var;
16729 if (
16730 (star_atom_var = star_atom_rule(p)) // star_atom
16731 )
16732 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016733 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 +010016734 _res = star_atom_var;
16735 goto done;
16736 }
16737 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016738 D(fprintf(stderr, "%*c%s target_with_star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016739 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_atom"));
16740 }
16741 _res = NULL;
16742 done:
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016743 _PyPegen_insert_memo(p, _mark, target_with_star_atom_type, _res);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016744 D(p->level--);
16745 return _res;
16746}
16747
16748// star_atom:
16749// | NAME
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016750// | '(' target_with_star_atom ')'
16751// | '(' star_targets_tuple_seq? ')'
16752// | '[' star_targets_list_seq? ']'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016753static expr_ty
16754star_atom_rule(Parser *p)
16755{
16756 D(p->level++);
16757 if (p->error_indicator) {
16758 D(p->level--);
16759 return NULL;
16760 }
16761 expr_ty _res = NULL;
16762 int _mark = p->mark;
16763 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
16764 p->error_indicator = 1;
16765 D(p->level--);
16766 return NULL;
16767 }
16768 int _start_lineno = p->tokens[_mark]->lineno;
16769 UNUSED(_start_lineno); // Only used by EXTRA macro
16770 int _start_col_offset = p->tokens[_mark]->col_offset;
16771 UNUSED(_start_col_offset); // Only used by EXTRA macro
16772 { // NAME
16773 if (p->error_indicator) {
16774 D(p->level--);
16775 return NULL;
16776 }
16777 D(fprintf(stderr, "%*c> star_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
16778 expr_ty a;
16779 if (
16780 (a = _PyPegen_name_token(p)) // NAME
16781 )
16782 {
16783 D(fprintf(stderr, "%*c+ star_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
16784 _res = _PyPegen_set_expr_context ( p , a , Store );
16785 if (_res == NULL && PyErr_Occurred()) {
16786 p->error_indicator = 1;
16787 D(p->level--);
16788 return NULL;
16789 }
16790 goto done;
16791 }
16792 p->mark = _mark;
16793 D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
16794 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
16795 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016796 { // '(' target_with_star_atom ')'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016797 if (p->error_indicator) {
16798 D(p->level--);
16799 return NULL;
16800 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016801 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 +010016802 Token * _literal;
16803 Token * _literal_1;
16804 expr_ty a;
16805 if (
16806 (_literal = _PyPegen_expect_token(p, 7)) // token='('
16807 &&
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016808 (a = target_with_star_atom_rule(p)) // target_with_star_atom
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016809 &&
16810 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
16811 )
16812 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016813 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 +010016814 _res = _PyPegen_set_expr_context ( p , a , Store );
16815 if (_res == NULL && PyErr_Occurred()) {
16816 p->error_indicator = 1;
16817 D(p->level--);
16818 return NULL;
16819 }
16820 goto done;
16821 }
16822 p->mark = _mark;
16823 D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016824 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' target_with_star_atom ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016825 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016826 { // '(' star_targets_tuple_seq? ')'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016827 if (p->error_indicator) {
16828 D(p->level--);
16829 return NULL;
16830 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016831 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 +010016832 Token * _literal;
16833 Token * _literal_1;
16834 void *a;
16835 if (
16836 (_literal = _PyPegen_expect_token(p, 7)) // token='('
16837 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +020016838 (a = star_targets_tuple_seq_rule(p), !p->error_indicator) // star_targets_tuple_seq?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016839 &&
16840 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
16841 )
16842 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016843 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 +010016844 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16845 if (_token == NULL) {
16846 D(p->level--);
16847 return NULL;
16848 }
16849 int _end_lineno = _token->end_lineno;
16850 UNUSED(_end_lineno); // Only used by EXTRA macro
16851 int _end_col_offset = _token->end_col_offset;
16852 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016853 _res = _PyAST_Tuple ( a , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016854 if (_res == NULL && PyErr_Occurred()) {
16855 p->error_indicator = 1;
16856 D(p->level--);
16857 return NULL;
16858 }
16859 goto done;
16860 }
16861 p->mark = _mark;
16862 D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016863 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' star_targets_tuple_seq? ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016864 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016865 { // '[' star_targets_list_seq? ']'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016866 if (p->error_indicator) {
16867 D(p->level--);
16868 return NULL;
16869 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016870 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 +010016871 Token * _literal;
16872 Token * _literal_1;
16873 void *a;
16874 if (
16875 (_literal = _PyPegen_expect_token(p, 9)) // token='['
16876 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +020016877 (a = star_targets_list_seq_rule(p), !p->error_indicator) // star_targets_list_seq?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016878 &&
16879 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
16880 )
16881 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016882 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 +010016883 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16884 if (_token == NULL) {
16885 D(p->level--);
16886 return NULL;
16887 }
16888 int _end_lineno = _token->end_lineno;
16889 UNUSED(_end_lineno); // Only used by EXTRA macro
16890 int _end_col_offset = _token->end_col_offset;
16891 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016892 _res = _PyAST_List ( a , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016893 if (_res == NULL && PyErr_Occurred()) {
16894 p->error_indicator = 1;
16895 D(p->level--);
16896 return NULL;
16897 }
16898 goto done;
16899 }
16900 p->mark = _mark;
16901 D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016902 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' star_targets_list_seq? ']'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016903 }
16904 _res = NULL;
16905 done:
16906 D(p->level--);
16907 return _res;
16908}
16909
16910// single_target: single_subscript_attribute_target | NAME | '(' single_target ')'
16911static expr_ty
16912single_target_rule(Parser *p)
16913{
16914 D(p->level++);
16915 if (p->error_indicator) {
16916 D(p->level--);
16917 return NULL;
16918 }
16919 expr_ty _res = NULL;
16920 int _mark = p->mark;
16921 { // single_subscript_attribute_target
16922 if (p->error_indicator) {
16923 D(p->level--);
16924 return NULL;
16925 }
16926 D(fprintf(stderr, "%*c> single_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "single_subscript_attribute_target"));
16927 expr_ty single_subscript_attribute_target_var;
16928 if (
16929 (single_subscript_attribute_target_var = single_subscript_attribute_target_rule(p)) // single_subscript_attribute_target
16930 )
16931 {
16932 D(fprintf(stderr, "%*c+ single_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "single_subscript_attribute_target"));
16933 _res = single_subscript_attribute_target_var;
16934 goto done;
16935 }
16936 p->mark = _mark;
16937 D(fprintf(stderr, "%*c%s single_target[%d-%d]: %s failed!\n", p->level, ' ',
16938 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "single_subscript_attribute_target"));
16939 }
16940 { // NAME
16941 if (p->error_indicator) {
16942 D(p->level--);
16943 return NULL;
16944 }
16945 D(fprintf(stderr, "%*c> single_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
16946 expr_ty a;
16947 if (
16948 (a = _PyPegen_name_token(p)) // NAME
16949 )
16950 {
16951 D(fprintf(stderr, "%*c+ single_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
16952 _res = _PyPegen_set_expr_context ( p , a , Store );
16953 if (_res == NULL && PyErr_Occurred()) {
16954 p->error_indicator = 1;
16955 D(p->level--);
16956 return NULL;
16957 }
16958 goto done;
16959 }
16960 p->mark = _mark;
16961 D(fprintf(stderr, "%*c%s single_target[%d-%d]: %s failed!\n", p->level, ' ',
16962 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
16963 }
16964 { // '(' single_target ')'
16965 if (p->error_indicator) {
16966 D(p->level--);
16967 return NULL;
16968 }
16969 D(fprintf(stderr, "%*c> single_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'"));
16970 Token * _literal;
16971 Token * _literal_1;
16972 expr_ty a;
16973 if (
16974 (_literal = _PyPegen_expect_token(p, 7)) // token='('
16975 &&
16976 (a = single_target_rule(p)) // single_target
16977 &&
16978 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
16979 )
16980 {
16981 D(fprintf(stderr, "%*c+ single_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'"));
16982 _res = a;
16983 if (_res == NULL && PyErr_Occurred()) {
16984 p->error_indicator = 1;
16985 D(p->level--);
16986 return NULL;
16987 }
16988 goto done;
16989 }
16990 p->mark = _mark;
16991 D(fprintf(stderr, "%*c%s single_target[%d-%d]: %s failed!\n", p->level, ' ',
16992 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' single_target ')'"));
16993 }
16994 _res = NULL;
16995 done:
16996 D(p->level--);
16997 return _res;
16998}
16999
17000// single_subscript_attribute_target:
17001// | t_primary '.' NAME !t_lookahead
17002// | t_primary '[' slices ']' !t_lookahead
17003static expr_ty
17004single_subscript_attribute_target_rule(Parser *p)
17005{
17006 D(p->level++);
17007 if (p->error_indicator) {
17008 D(p->level--);
17009 return NULL;
17010 }
17011 expr_ty _res = NULL;
17012 int _mark = p->mark;
17013 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
17014 p->error_indicator = 1;
17015 D(p->level--);
17016 return NULL;
17017 }
17018 int _start_lineno = p->tokens[_mark]->lineno;
17019 UNUSED(_start_lineno); // Only used by EXTRA macro
17020 int _start_col_offset = p->tokens[_mark]->col_offset;
17021 UNUSED(_start_col_offset); // Only used by EXTRA macro
17022 { // t_primary '.' NAME !t_lookahead
17023 if (p->error_indicator) {
17024 D(p->level--);
17025 return NULL;
17026 }
17027 D(fprintf(stderr, "%*c> single_subscript_attribute_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
17028 Token * _literal;
17029 expr_ty a;
17030 expr_ty b;
17031 if (
17032 (a = t_primary_rule(p)) // t_primary
17033 &&
17034 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
17035 &&
17036 (b = _PyPegen_name_token(p)) // NAME
17037 &&
17038 _PyPegen_lookahead(0, t_lookahead_rule, p)
17039 )
17040 {
17041 D(fprintf(stderr, "%*c+ single_subscript_attribute_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
17042 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17043 if (_token == NULL) {
17044 D(p->level--);
17045 return NULL;
17046 }
17047 int _end_lineno = _token->end_lineno;
17048 UNUSED(_end_lineno); // Only used by EXTRA macro
17049 int _end_col_offset = _token->end_col_offset;
17050 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017051 _res = _PyAST_Attribute ( a , b -> v . Name . id , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017052 if (_res == NULL && PyErr_Occurred()) {
17053 p->error_indicator = 1;
17054 D(p->level--);
17055 return NULL;
17056 }
17057 goto done;
17058 }
17059 p->mark = _mark;
17060 D(fprintf(stderr, "%*c%s single_subscript_attribute_target[%d-%d]: %s failed!\n", p->level, ' ',
17061 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
17062 }
17063 { // t_primary '[' slices ']' !t_lookahead
17064 if (p->error_indicator) {
17065 D(p->level--);
17066 return NULL;
17067 }
17068 D(fprintf(stderr, "%*c> single_subscript_attribute_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
17069 Token * _literal;
17070 Token * _literal_1;
17071 expr_ty a;
17072 expr_ty b;
17073 if (
17074 (a = t_primary_rule(p)) // t_primary
17075 &&
17076 (_literal = _PyPegen_expect_token(p, 9)) // token='['
17077 &&
17078 (b = slices_rule(p)) // slices
17079 &&
17080 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
17081 &&
17082 _PyPegen_lookahead(0, t_lookahead_rule, p)
17083 )
17084 {
17085 D(fprintf(stderr, "%*c+ single_subscript_attribute_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
17086 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17087 if (_token == NULL) {
17088 D(p->level--);
17089 return NULL;
17090 }
17091 int _end_lineno = _token->end_lineno;
17092 UNUSED(_end_lineno); // Only used by EXTRA macro
17093 int _end_col_offset = _token->end_col_offset;
17094 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017095 _res = _PyAST_Subscript ( a , b , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017096 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 single_subscript_attribute_target[%d-%d]: %s failed!\n", p->level, ' ',
17105 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
17106 }
17107 _res = NULL;
17108 done:
17109 D(p->level--);
17110 return _res;
17111}
17112
17113// del_targets: ','.del_target+ ','?
Pablo Galindoa5634c42020-09-16 19:42:00 +010017114static asdl_expr_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017115del_targets_rule(Parser *p)
17116{
17117 D(p->level++);
17118 if (p->error_indicator) {
17119 D(p->level--);
17120 return NULL;
17121 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010017122 asdl_expr_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017123 int _mark = p->mark;
17124 { // ','.del_target+ ','?
17125 if (p->error_indicator) {
17126 D(p->level--);
17127 return NULL;
17128 }
17129 D(fprintf(stderr, "%*c> del_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.del_target+ ','?"));
17130 void *_opt_var;
17131 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +010017132 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017133 if (
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070017134 (a = (asdl_expr_seq*)_gather_139_rule(p)) // ','.del_target+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017135 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +020017136 (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017137 )
17138 {
17139 D(fprintf(stderr, "%*c+ del_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.del_target+ ','?"));
17140 _res = a;
17141 if (_res == NULL && PyErr_Occurred()) {
17142 p->error_indicator = 1;
17143 D(p->level--);
17144 return NULL;
17145 }
17146 goto done;
17147 }
17148 p->mark = _mark;
17149 D(fprintf(stderr, "%*c%s del_targets[%d-%d]: %s failed!\n", p->level, ' ',
17150 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.del_target+ ','?"));
17151 }
17152 _res = NULL;
17153 done:
17154 D(p->level--);
17155 return _res;
17156}
17157
17158// del_target:
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017159// | t_primary '.' NAME !t_lookahead
17160// | t_primary '[' slices ']' !t_lookahead
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017161// | del_t_atom
17162static expr_ty
17163del_target_rule(Parser *p)
17164{
17165 D(p->level++);
17166 if (p->error_indicator) {
17167 D(p->level--);
17168 return NULL;
17169 }
17170 expr_ty _res = NULL;
17171 if (_PyPegen_is_memoized(p, del_target_type, &_res)) {
17172 D(p->level--);
17173 return _res;
17174 }
17175 int _mark = p->mark;
17176 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
17177 p->error_indicator = 1;
17178 D(p->level--);
17179 return NULL;
17180 }
17181 int _start_lineno = p->tokens[_mark]->lineno;
17182 UNUSED(_start_lineno); // Only used by EXTRA macro
17183 int _start_col_offset = p->tokens[_mark]->col_offset;
17184 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017185 { // t_primary '.' NAME !t_lookahead
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017186 if (p->error_indicator) {
17187 D(p->level--);
17188 return NULL;
17189 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017190 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 +010017191 Token * _literal;
17192 expr_ty a;
17193 expr_ty b;
17194 if (
17195 (a = t_primary_rule(p)) // t_primary
17196 &&
17197 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
17198 &&
17199 (b = _PyPegen_name_token(p)) // NAME
17200 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017201 _PyPegen_lookahead(0, t_lookahead_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017202 )
17203 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017204 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 +010017205 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17206 if (_token == NULL) {
17207 D(p->level--);
17208 return NULL;
17209 }
17210 int _end_lineno = _token->end_lineno;
17211 UNUSED(_end_lineno); // Only used by EXTRA macro
17212 int _end_col_offset = _token->end_col_offset;
17213 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017214 _res = _PyAST_Attribute ( a , b -> v . Name . id , Del , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017215 if (_res == NULL && PyErr_Occurred()) {
17216 p->error_indicator = 1;
17217 D(p->level--);
17218 return NULL;
17219 }
17220 goto done;
17221 }
17222 p->mark = _mark;
17223 D(fprintf(stderr, "%*c%s del_target[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017224 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017225 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017226 { // t_primary '[' slices ']' !t_lookahead
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017227 if (p->error_indicator) {
17228 D(p->level--);
17229 return NULL;
17230 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017231 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 +010017232 Token * _literal;
17233 Token * _literal_1;
17234 expr_ty a;
17235 expr_ty b;
17236 if (
17237 (a = t_primary_rule(p)) // t_primary
17238 &&
17239 (_literal = _PyPegen_expect_token(p, 9)) // token='['
17240 &&
17241 (b = slices_rule(p)) // slices
17242 &&
17243 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
17244 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017245 _PyPegen_lookahead(0, t_lookahead_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017246 )
17247 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017248 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 +010017249 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17250 if (_token == NULL) {
17251 D(p->level--);
17252 return NULL;
17253 }
17254 int _end_lineno = _token->end_lineno;
17255 UNUSED(_end_lineno); // Only used by EXTRA macro
17256 int _end_col_offset = _token->end_col_offset;
17257 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017258 _res = _PyAST_Subscript ( a , b , Del , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017259 if (_res == NULL && PyErr_Occurred()) {
17260 p->error_indicator = 1;
17261 D(p->level--);
17262 return NULL;
17263 }
17264 goto done;
17265 }
17266 p->mark = _mark;
17267 D(fprintf(stderr, "%*c%s del_target[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017268 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017269 }
17270 { // del_t_atom
17271 if (p->error_indicator) {
17272 D(p->level--);
17273 return NULL;
17274 }
17275 D(fprintf(stderr, "%*c> del_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "del_t_atom"));
17276 expr_ty del_t_atom_var;
17277 if (
17278 (del_t_atom_var = del_t_atom_rule(p)) // del_t_atom
17279 )
17280 {
17281 D(fprintf(stderr, "%*c+ del_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "del_t_atom"));
17282 _res = del_t_atom_var;
17283 goto done;
17284 }
17285 p->mark = _mark;
17286 D(fprintf(stderr, "%*c%s del_target[%d-%d]: %s failed!\n", p->level, ' ',
17287 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "del_t_atom"));
17288 }
17289 _res = NULL;
17290 done:
17291 _PyPegen_insert_memo(p, _mark, del_target_type, _res);
17292 D(p->level--);
17293 return _res;
17294}
17295
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017296// del_t_atom: NAME | '(' del_target ')' | '(' del_targets? ')' | '[' del_targets? ']'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017297static expr_ty
17298del_t_atom_rule(Parser *p)
17299{
17300 D(p->level++);
17301 if (p->error_indicator) {
17302 D(p->level--);
17303 return NULL;
17304 }
17305 expr_ty _res = NULL;
17306 int _mark = p->mark;
17307 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
17308 p->error_indicator = 1;
17309 D(p->level--);
17310 return NULL;
17311 }
17312 int _start_lineno = p->tokens[_mark]->lineno;
17313 UNUSED(_start_lineno); // Only used by EXTRA macro
17314 int _start_col_offset = p->tokens[_mark]->col_offset;
17315 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017316 { // NAME
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017317 if (p->error_indicator) {
17318 D(p->level--);
17319 return NULL;
17320 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017321 D(fprintf(stderr, "%*c> del_t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017322 expr_ty a;
17323 if (
17324 (a = _PyPegen_name_token(p)) // NAME
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017325 )
17326 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017327 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 +010017328 _res = _PyPegen_set_expr_context ( p , a , Del );
17329 if (_res == NULL && PyErr_Occurred()) {
17330 p->error_indicator = 1;
17331 D(p->level--);
17332 return NULL;
17333 }
17334 goto done;
17335 }
17336 p->mark = _mark;
17337 D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017338 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017339 }
17340 { // '(' del_target ')'
17341 if (p->error_indicator) {
17342 D(p->level--);
17343 return NULL;
17344 }
17345 D(fprintf(stderr, "%*c> del_t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' del_target ')'"));
17346 Token * _literal;
17347 Token * _literal_1;
17348 expr_ty a;
17349 if (
17350 (_literal = _PyPegen_expect_token(p, 7)) // token='('
17351 &&
17352 (a = del_target_rule(p)) // del_target
17353 &&
17354 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
17355 )
17356 {
17357 D(fprintf(stderr, "%*c+ del_t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' del_target ')'"));
17358 _res = _PyPegen_set_expr_context ( p , a , Del );
17359 if (_res == NULL && PyErr_Occurred()) {
17360 p->error_indicator = 1;
17361 D(p->level--);
17362 return NULL;
17363 }
17364 goto done;
17365 }
17366 p->mark = _mark;
17367 D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
17368 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' del_target ')'"));
17369 }
17370 { // '(' del_targets? ')'
17371 if (p->error_indicator) {
17372 D(p->level--);
17373 return NULL;
17374 }
17375 D(fprintf(stderr, "%*c> del_t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' del_targets? ')'"));
17376 Token * _literal;
17377 Token * _literal_1;
17378 void *a;
17379 if (
17380 (_literal = _PyPegen_expect_token(p, 7)) // token='('
17381 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +020017382 (a = del_targets_rule(p), !p->error_indicator) // del_targets?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017383 &&
17384 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
17385 )
17386 {
17387 D(fprintf(stderr, "%*c+ del_t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' del_targets? ')'"));
17388 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17389 if (_token == NULL) {
17390 D(p->level--);
17391 return NULL;
17392 }
17393 int _end_lineno = _token->end_lineno;
17394 UNUSED(_end_lineno); // Only used by EXTRA macro
17395 int _end_col_offset = _token->end_col_offset;
17396 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017397 _res = _PyAST_Tuple ( a , Del , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017398 if (_res == NULL && PyErr_Occurred()) {
17399 p->error_indicator = 1;
17400 D(p->level--);
17401 return NULL;
17402 }
17403 goto done;
17404 }
17405 p->mark = _mark;
17406 D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
17407 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' del_targets? ')'"));
17408 }
17409 { // '[' del_targets? ']'
17410 if (p->error_indicator) {
17411 D(p->level--);
17412 return NULL;
17413 }
17414 D(fprintf(stderr, "%*c> del_t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' del_targets? ']'"));
17415 Token * _literal;
17416 Token * _literal_1;
17417 void *a;
17418 if (
17419 (_literal = _PyPegen_expect_token(p, 9)) // token='['
17420 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +020017421 (a = del_targets_rule(p), !p->error_indicator) // del_targets?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017422 &&
17423 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
17424 )
17425 {
17426 D(fprintf(stderr, "%*c+ del_t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'[' del_targets? ']'"));
17427 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17428 if (_token == NULL) {
17429 D(p->level--);
17430 return NULL;
17431 }
17432 int _end_lineno = _token->end_lineno;
17433 UNUSED(_end_lineno); // Only used by EXTRA macro
17434 int _end_col_offset = _token->end_col_offset;
17435 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017436 _res = _PyAST_List ( a , Del , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017437 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 del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
17446 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' del_targets? ']'"));
17447 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017448 _res = NULL;
17449 done:
17450 D(p->level--);
17451 return _res;
17452}
17453
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017454// Left-recursive
17455// t_primary:
17456// | t_primary '.' NAME &t_lookahead
17457// | t_primary '[' slices ']' &t_lookahead
17458// | t_primary genexp &t_lookahead
17459// | t_primary '(' arguments? ')' &t_lookahead
17460// | atom &t_lookahead
17461static expr_ty t_primary_raw(Parser *);
17462static expr_ty
17463t_primary_rule(Parser *p)
17464{
17465 D(p->level++);
17466 expr_ty _res = NULL;
17467 if (_PyPegen_is_memoized(p, t_primary_type, &_res)) {
17468 D(p->level--);
17469 return _res;
17470 }
17471 int _mark = p->mark;
17472 int _resmark = p->mark;
17473 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080017474 int tmpvar_9 = _PyPegen_update_memo(p, _mark, t_primary_type, _res);
17475 if (tmpvar_9) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017476 D(p->level--);
17477 return _res;
17478 }
17479 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070017480 p->in_raw_rule++;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017481 void *_raw = t_primary_raw(p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070017482 p->in_raw_rule--;
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020017483 if (p->error_indicator)
17484 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017485 if (_raw == NULL || p->mark <= _resmark)
17486 break;
17487 _resmark = p->mark;
17488 _res = _raw;
17489 }
17490 p->mark = _resmark;
17491 D(p->level--);
17492 return _res;
17493}
17494static expr_ty
17495t_primary_raw(Parser *p)
17496{
17497 D(p->level++);
17498 if (p->error_indicator) {
17499 D(p->level--);
17500 return NULL;
17501 }
17502 expr_ty _res = NULL;
17503 int _mark = p->mark;
17504 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
17505 p->error_indicator = 1;
17506 D(p->level--);
17507 return NULL;
17508 }
17509 int _start_lineno = p->tokens[_mark]->lineno;
17510 UNUSED(_start_lineno); // Only used by EXTRA macro
17511 int _start_col_offset = p->tokens[_mark]->col_offset;
17512 UNUSED(_start_col_offset); // Only used by EXTRA macro
17513 { // t_primary '.' NAME &t_lookahead
17514 if (p->error_indicator) {
17515 D(p->level--);
17516 return NULL;
17517 }
17518 D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME &t_lookahead"));
17519 Token * _literal;
17520 expr_ty a;
17521 expr_ty b;
17522 if (
17523 (a = t_primary_rule(p)) // t_primary
17524 &&
17525 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
17526 &&
17527 (b = _PyPegen_name_token(p)) // NAME
17528 &&
17529 _PyPegen_lookahead(1, t_lookahead_rule, p)
17530 )
17531 {
17532 D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME &t_lookahead"));
17533 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17534 if (_token == NULL) {
17535 D(p->level--);
17536 return NULL;
17537 }
17538 int _end_lineno = _token->end_lineno;
17539 UNUSED(_end_lineno); // Only used by EXTRA macro
17540 int _end_col_offset = _token->end_col_offset;
17541 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017542 _res = _PyAST_Attribute ( a , b -> v . Name . id , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017543 if (_res == NULL && PyErr_Occurred()) {
17544 p->error_indicator = 1;
17545 D(p->level--);
17546 return NULL;
17547 }
17548 goto done;
17549 }
17550 p->mark = _mark;
17551 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
17552 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME &t_lookahead"));
17553 }
17554 { // t_primary '[' slices ']' &t_lookahead
17555 if (p->error_indicator) {
17556 D(p->level--);
17557 return NULL;
17558 }
17559 D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' &t_lookahead"));
17560 Token * _literal;
17561 Token * _literal_1;
17562 expr_ty a;
17563 expr_ty b;
17564 if (
17565 (a = t_primary_rule(p)) // t_primary
17566 &&
17567 (_literal = _PyPegen_expect_token(p, 9)) // token='['
17568 &&
17569 (b = slices_rule(p)) // slices
17570 &&
17571 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
17572 &&
17573 _PyPegen_lookahead(1, t_lookahead_rule, p)
17574 )
17575 {
17576 D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' &t_lookahead"));
17577 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17578 if (_token == NULL) {
17579 D(p->level--);
17580 return NULL;
17581 }
17582 int _end_lineno = _token->end_lineno;
17583 UNUSED(_end_lineno); // Only used by EXTRA macro
17584 int _end_col_offset = _token->end_col_offset;
17585 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017586 _res = _PyAST_Subscript ( a , b , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017587 if (_res == NULL && PyErr_Occurred()) {
17588 p->error_indicator = 1;
17589 D(p->level--);
17590 return NULL;
17591 }
17592 goto done;
17593 }
17594 p->mark = _mark;
17595 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
17596 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' &t_lookahead"));
17597 }
17598 { // t_primary genexp &t_lookahead
17599 if (p->error_indicator) {
17600 D(p->level--);
17601 return NULL;
17602 }
17603 D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary genexp &t_lookahead"));
17604 expr_ty a;
17605 expr_ty b;
17606 if (
17607 (a = t_primary_rule(p)) // t_primary
17608 &&
17609 (b = genexp_rule(p)) // genexp
17610 &&
17611 _PyPegen_lookahead(1, t_lookahead_rule, p)
17612 )
17613 {
17614 D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary genexp &t_lookahead"));
17615 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17616 if (_token == NULL) {
17617 D(p->level--);
17618 return NULL;
17619 }
17620 int _end_lineno = _token->end_lineno;
17621 UNUSED(_end_lineno); // Only used by EXTRA macro
17622 int _end_col_offset = _token->end_col_offset;
17623 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017624 _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 +010017625 if (_res == NULL && PyErr_Occurred()) {
17626 p->error_indicator = 1;
17627 D(p->level--);
17628 return NULL;
17629 }
17630 goto done;
17631 }
17632 p->mark = _mark;
17633 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
17634 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary genexp &t_lookahead"));
17635 }
17636 { // t_primary '(' arguments? ')' &t_lookahead
17637 if (p->error_indicator) {
17638 D(p->level--);
17639 return NULL;
17640 }
17641 D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '(' arguments? ')' &t_lookahead"));
17642 Token * _literal;
17643 Token * _literal_1;
17644 expr_ty a;
17645 void *b;
17646 if (
17647 (a = t_primary_rule(p)) // t_primary
17648 &&
17649 (_literal = _PyPegen_expect_token(p, 7)) // token='('
17650 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +020017651 (b = arguments_rule(p), !p->error_indicator) // arguments?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017652 &&
17653 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
17654 &&
17655 _PyPegen_lookahead(1, t_lookahead_rule, p)
17656 )
17657 {
17658 D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '(' arguments? ')' &t_lookahead"));
17659 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17660 if (_token == NULL) {
17661 D(p->level--);
17662 return NULL;
17663 }
17664 int _end_lineno = _token->end_lineno;
17665 UNUSED(_end_lineno); // Only used by EXTRA macro
17666 int _end_col_offset = _token->end_col_offset;
17667 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017668 _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 +010017669 if (_res == NULL && PyErr_Occurred()) {
17670 p->error_indicator = 1;
17671 D(p->level--);
17672 return NULL;
17673 }
17674 goto done;
17675 }
17676 p->mark = _mark;
17677 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
17678 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '(' arguments? ')' &t_lookahead"));
17679 }
17680 { // atom &t_lookahead
17681 if (p->error_indicator) {
17682 D(p->level--);
17683 return NULL;
17684 }
17685 D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "atom &t_lookahead"));
17686 expr_ty a;
17687 if (
17688 (a = atom_rule(p)) // atom
17689 &&
17690 _PyPegen_lookahead(1, t_lookahead_rule, p)
17691 )
17692 {
17693 D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "atom &t_lookahead"));
17694 _res = a;
17695 if (_res == NULL && PyErr_Occurred()) {
17696 p->error_indicator = 1;
17697 D(p->level--);
17698 return NULL;
17699 }
17700 goto done;
17701 }
17702 p->mark = _mark;
17703 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
17704 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "atom &t_lookahead"));
17705 }
17706 _res = NULL;
17707 done:
17708 D(p->level--);
17709 return _res;
17710}
17711
17712// t_lookahead: '(' | '[' | '.'
17713static void *
17714t_lookahead_rule(Parser *p)
17715{
17716 D(p->level++);
17717 if (p->error_indicator) {
17718 D(p->level--);
17719 return NULL;
17720 }
17721 void * _res = NULL;
17722 int _mark = p->mark;
17723 { // '('
17724 if (p->error_indicator) {
17725 D(p->level--);
17726 return NULL;
17727 }
17728 D(fprintf(stderr, "%*c> t_lookahead[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'('"));
17729 Token * _literal;
17730 if (
17731 (_literal = _PyPegen_expect_token(p, 7)) // token='('
17732 )
17733 {
17734 D(fprintf(stderr, "%*c+ t_lookahead[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'('"));
17735 _res = _literal;
17736 goto done;
17737 }
17738 p->mark = _mark;
17739 D(fprintf(stderr, "%*c%s t_lookahead[%d-%d]: %s failed!\n", p->level, ' ',
17740 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'('"));
17741 }
17742 { // '['
17743 if (p->error_indicator) {
17744 D(p->level--);
17745 return NULL;
17746 }
17747 D(fprintf(stderr, "%*c> t_lookahead[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['"));
17748 Token * _literal;
17749 if (
17750 (_literal = _PyPegen_expect_token(p, 9)) // token='['
17751 )
17752 {
17753 D(fprintf(stderr, "%*c+ t_lookahead[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['"));
17754 _res = _literal;
17755 goto done;
17756 }
17757 p->mark = _mark;
17758 D(fprintf(stderr, "%*c%s t_lookahead[%d-%d]: %s failed!\n", p->level, ' ',
17759 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'['"));
17760 }
17761 { // '.'
17762 if (p->error_indicator) {
17763 D(p->level--);
17764 return NULL;
17765 }
17766 D(fprintf(stderr, "%*c> t_lookahead[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
17767 Token * _literal;
17768 if (
17769 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
17770 )
17771 {
17772 D(fprintf(stderr, "%*c+ t_lookahead[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
17773 _res = _literal;
17774 goto done;
17775 }
17776 p->mark = _mark;
17777 D(fprintf(stderr, "%*c%s t_lookahead[%d-%d]: %s failed!\n", p->level, ' ',
17778 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
17779 }
17780 _res = NULL;
17781 done:
17782 D(p->level--);
17783 return _res;
17784}
17785
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017786// invalid_arguments:
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017787// | args ',' '*'
17788// | expression for_if_clauses ',' [args | expression for_if_clauses]
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070017789// | NAME '=' expression for_if_clauses
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017790// | args for_if_clauses
17791// | args ',' expression for_if_clauses
17792// | args ',' args
17793static void *
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017794invalid_arguments_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017795{
17796 D(p->level++);
17797 if (p->error_indicator) {
17798 D(p->level--);
17799 return NULL;
17800 }
17801 void * _res = NULL;
17802 int _mark = p->mark;
17803 { // args ',' '*'
17804 if (p->error_indicator) {
17805 D(p->level--);
17806 return NULL;
17807 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017808 D(fprintf(stderr, "%*c> invalid_arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args ',' '*'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017809 Token * _literal;
17810 Token * _literal_1;
Pablo Galindoa77aac42021-04-23 14:27:05 +010017811 expr_ty a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017812 if (
Pablo Galindoa77aac42021-04-23 14:27:05 +010017813 (a = args_rule(p)) // args
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017814 &&
17815 (_literal = _PyPegen_expect_token(p, 12)) // token=','
17816 &&
17817 (_literal_1 = _PyPegen_expect_token(p, 16)) // token='*'
17818 )
17819 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017820 D(fprintf(stderr, "%*c+ invalid_arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args ',' '*'"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010017821 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "iterable argument unpacking follows keyword argument unpacking" );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017822 if (_res == NULL && PyErr_Occurred()) {
17823 p->error_indicator = 1;
17824 D(p->level--);
17825 return NULL;
17826 }
17827 goto done;
17828 }
17829 p->mark = _mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017830 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017831 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ',' '*'"));
17832 }
17833 { // expression for_if_clauses ',' [args | expression for_if_clauses]
17834 if (p->error_indicator) {
17835 D(p->level--);
17836 return NULL;
17837 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017838 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 +010017839 Token * _literal;
17840 void *_opt_var;
17841 UNUSED(_opt_var); // Silence compiler warnings
17842 expr_ty a;
Pablo Galindoa77aac42021-04-23 14:27:05 +010017843 asdl_comprehension_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017844 if (
17845 (a = expression_rule(p)) // expression
17846 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010017847 (b = for_if_clauses_rule(p)) // for_if_clauses
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017848 &&
17849 (_literal = _PyPegen_expect_token(p, 12)) // token=','
17850 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +020017851 (_opt_var = _tmp_141_rule(p), !p->error_indicator) // [args | expression for_if_clauses]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017852 )
17853 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017854 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 +010017855 _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 +010017856 if (_res == NULL && PyErr_Occurred()) {
17857 p->error_indicator = 1;
17858 D(p->level--);
17859 return NULL;
17860 }
17861 goto done;
17862 }
17863 p->mark = _mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017864 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017865 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression for_if_clauses ',' [args | expression for_if_clauses]"));
17866 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070017867 { // NAME '=' expression for_if_clauses
17868 if (p->error_indicator) {
17869 D(p->level--);
17870 return NULL;
17871 }
17872 D(fprintf(stderr, "%*c> invalid_arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME '=' expression for_if_clauses"));
17873 expr_ty a;
17874 Token * b;
17875 expr_ty expression_var;
17876 asdl_comprehension_seq* for_if_clauses_var;
17877 if (
17878 (a = _PyPegen_name_token(p)) // NAME
17879 &&
17880 (b = _PyPegen_expect_token(p, 22)) // token='='
17881 &&
17882 (expression_var = expression_rule(p)) // expression
17883 &&
17884 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
17885 )
17886 {
17887 D(fprintf(stderr, "%*c+ invalid_arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '=' expression for_if_clauses"));
17888 _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , b , "invalid syntax. Maybe you meant '==' or ':=' instead of '='?" );
17889 if (_res == NULL && PyErr_Occurred()) {
17890 p->error_indicator = 1;
17891 D(p->level--);
17892 return NULL;
17893 }
17894 goto done;
17895 }
17896 p->mark = _mark;
17897 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
17898 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' expression for_if_clauses"));
17899 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017900 { // args for_if_clauses
17901 if (p->error_indicator) {
17902 D(p->level--);
17903 return NULL;
17904 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017905 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 +010017906 expr_ty a;
Miss Islington (bot)9e209d42021-09-27 07:05:20 -070017907 asdl_comprehension_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017908 if (
17909 (a = args_rule(p)) // args
17910 &&
Miss Islington (bot)9e209d42021-09-27 07:05:20 -070017911 (b = for_if_clauses_rule(p)) // for_if_clauses
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017912 )
17913 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017914 D(fprintf(stderr, "%*c+ invalid_arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args for_if_clauses"));
Miss Islington (bot)9e209d42021-09-27 07:05:20 -070017915 _res = _PyPegen_nonparen_genexp_in_call ( p , a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017916 if (_res == NULL && PyErr_Occurred()) {
17917 p->error_indicator = 1;
17918 D(p->level--);
17919 return NULL;
17920 }
17921 goto done;
17922 }
17923 p->mark = _mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017924 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017925 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args for_if_clauses"));
17926 }
17927 { // args ',' expression for_if_clauses
17928 if (p->error_indicator) {
17929 D(p->level--);
17930 return NULL;
17931 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017932 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 +010017933 Token * _literal;
17934 expr_ty a;
17935 expr_ty args_var;
Pablo Galindoa77aac42021-04-23 14:27:05 +010017936 asdl_comprehension_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017937 if (
17938 (args_var = args_rule(p)) // args
17939 &&
17940 (_literal = _PyPegen_expect_token(p, 12)) // token=','
17941 &&
17942 (a = expression_rule(p)) // expression
17943 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010017944 (b = for_if_clauses_rule(p)) // for_if_clauses
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017945 )
17946 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017947 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 +010017948 _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 +010017949 if (_res == NULL && PyErr_Occurred()) {
17950 p->error_indicator = 1;
17951 D(p->level--);
17952 return NULL;
17953 }
17954 goto done;
17955 }
17956 p->mark = _mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017957 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017958 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ',' expression for_if_clauses"));
17959 }
17960 { // args ',' args
17961 if (p->error_indicator) {
17962 D(p->level--);
17963 return NULL;
17964 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017965 D(fprintf(stderr, "%*c> invalid_arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args ',' args"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017966 Token * _literal;
17967 expr_ty a;
17968 expr_ty args_var;
17969 if (
17970 (a = args_rule(p)) // args
17971 &&
17972 (_literal = _PyPegen_expect_token(p, 12)) // token=','
17973 &&
17974 (args_var = args_rule(p)) // args
17975 )
17976 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017977 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 +010017978 _res = _PyPegen_arguments_parsing_error ( p , a );
17979 if (_res == NULL && PyErr_Occurred()) {
17980 p->error_indicator = 1;
17981 D(p->level--);
17982 return NULL;
17983 }
17984 goto done;
17985 }
17986 p->mark = _mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017987 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017988 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ',' args"));
17989 }
17990 _res = NULL;
17991 done:
17992 D(p->level--);
17993 return _res;
17994}
17995
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000017996// invalid_kwarg:
17997// | ('True' | 'False' | 'None') '='
17998// | NAME '=' expression for_if_clauses
17999// | !(NAME '=') expression '='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018000static void *
18001invalid_kwarg_rule(Parser *p)
18002{
18003 D(p->level++);
18004 if (p->error_indicator) {
18005 D(p->level--);
18006 return NULL;
18007 }
18008 void * _res = NULL;
18009 int _mark = p->mark;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000018010 { // ('True' | 'False' | 'None') '='
18011 if (p->error_indicator) {
18012 D(p->level--);
18013 return NULL;
18014 }
18015 D(fprintf(stderr, "%*c> invalid_kwarg[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('True' | 'False' | 'None') '='"));
18016 Token* a;
18017 Token * b;
18018 if (
18019 (a = (Token*)_tmp_142_rule(p)) // 'True' | 'False' | 'None'
18020 &&
18021 (b = _PyPegen_expect_token(p, 22)) // token='='
18022 )
18023 {
18024 D(fprintf(stderr, "%*c+ invalid_kwarg[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "('True' | 'False' | 'None') '='"));
18025 _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , b , "cannot assign to %s" , PyBytes_AS_STRING ( a -> bytes ) );
18026 if (_res == NULL && PyErr_Occurred()) {
18027 p->error_indicator = 1;
18028 D(p->level--);
18029 return NULL;
18030 }
18031 goto done;
18032 }
18033 p->mark = _mark;
18034 D(fprintf(stderr, "%*c%s invalid_kwarg[%d-%d]: %s failed!\n", p->level, ' ',
18035 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('True' | 'False' | 'None') '='"));
18036 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018037 { // NAME '=' expression for_if_clauses
18038 if (p->error_indicator) {
18039 D(p->level--);
18040 return NULL;
18041 }
18042 D(fprintf(stderr, "%*c> invalid_kwarg[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME '=' expression for_if_clauses"));
18043 expr_ty a;
18044 Token * b;
18045 expr_ty expression_var;
18046 asdl_comprehension_seq* for_if_clauses_var;
18047 if (
18048 (a = _PyPegen_name_token(p)) // NAME
18049 &&
18050 (b = _PyPegen_expect_token(p, 22)) // token='='
18051 &&
18052 (expression_var = expression_rule(p)) // expression
18053 &&
18054 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
18055 )
18056 {
18057 D(fprintf(stderr, "%*c+ invalid_kwarg[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '=' expression for_if_clauses"));
18058 _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , b , "invalid syntax. Maybe you meant '==' or ':=' instead of '='?" );
18059 if (_res == NULL && PyErr_Occurred()) {
18060 p->error_indicator = 1;
18061 D(p->level--);
18062 return NULL;
18063 }
18064 goto done;
18065 }
18066 p->mark = _mark;
18067 D(fprintf(stderr, "%*c%s invalid_kwarg[%d-%d]: %s failed!\n", p->level, ' ',
18068 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' expression for_if_clauses"));
18069 }
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070018070 { // !(NAME '=') expression '='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018071 if (p->error_indicator) {
18072 D(p->level--);
18073 return NULL;
18074 }
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070018075 D(fprintf(stderr, "%*c> invalid_kwarg[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "!(NAME '=') expression '='"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010018076 expr_ty a;
18077 Token * b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018078 if (
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000018079 _PyPegen_lookahead(0, _tmp_143_rule, p)
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070018080 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010018081 (a = expression_rule(p)) // expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018082 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010018083 (b = _PyPegen_expect_token(p, 22)) // token='='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018084 )
18085 {
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070018086 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 +010018087 _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , b , "expression cannot contain assignment, perhaps you meant \"==\"?" );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018088 if (_res == NULL && PyErr_Occurred()) {
18089 p->error_indicator = 1;
18090 D(p->level--);
18091 return NULL;
18092 }
18093 goto done;
18094 }
18095 p->mark = _mark;
18096 D(fprintf(stderr, "%*c%s invalid_kwarg[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070018097 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "!(NAME '=') expression '='"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018098 }
18099 _res = NULL;
18100 done:
18101 D(p->level--);
18102 return _res;
18103}
18104
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018105// expression_without_invalid:
18106// | disjunction 'if' disjunction 'else' expression
18107// | disjunction
18108// | lambdef
18109static expr_ty
18110expression_without_invalid_rule(Parser *p)
18111{
18112 D(p->level++);
18113 if (p->error_indicator) {
18114 D(p->level--);
18115 return NULL;
18116 }
18117 expr_ty _res = NULL;
18118 int _mark = p->mark;
18119 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
18120 p->error_indicator = 1;
18121 D(p->level--);
18122 return NULL;
18123 }
18124 int _start_lineno = p->tokens[_mark]->lineno;
18125 UNUSED(_start_lineno); // Only used by EXTRA macro
18126 int _start_col_offset = p->tokens[_mark]->col_offset;
18127 UNUSED(_start_col_offset); // Only used by EXTRA macro
18128 { // disjunction 'if' disjunction 'else' expression
18129 if (p->error_indicator) {
18130 D(p->level--);
18131 return NULL;
18132 }
18133 D(fprintf(stderr, "%*c> expression_without_invalid[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "disjunction 'if' disjunction 'else' expression"));
18134 Token * _keyword;
18135 Token * _keyword_1;
18136 expr_ty a;
18137 expr_ty b;
18138 expr_ty c;
18139 if (
18140 (a = disjunction_rule(p)) // disjunction
18141 &&
18142 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
18143 &&
18144 (b = disjunction_rule(p)) // disjunction
18145 &&
18146 (_keyword_1 = _PyPegen_expect_token(p, 516)) // token='else'
18147 &&
18148 (c = expression_rule(p)) // expression
18149 )
18150 {
18151 D(fprintf(stderr, "%*c+ expression_without_invalid[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "disjunction 'if' disjunction 'else' expression"));
18152 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
18153 if (_token == NULL) {
18154 D(p->level--);
18155 return NULL;
18156 }
18157 int _end_lineno = _token->end_lineno;
18158 UNUSED(_end_lineno); // Only used by EXTRA macro
18159 int _end_col_offset = _token->end_col_offset;
18160 UNUSED(_end_col_offset); // Only used by EXTRA macro
18161 _res = _PyAST_IfExp ( b , a , c , EXTRA );
18162 if (_res == NULL && PyErr_Occurred()) {
18163 p->error_indicator = 1;
18164 D(p->level--);
18165 return NULL;
18166 }
18167 goto done;
18168 }
18169 p->mark = _mark;
18170 D(fprintf(stderr, "%*c%s expression_without_invalid[%d-%d]: %s failed!\n", p->level, ' ',
18171 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "disjunction 'if' disjunction 'else' expression"));
18172 }
18173 { // disjunction
18174 if (p->error_indicator) {
18175 D(p->level--);
18176 return NULL;
18177 }
18178 D(fprintf(stderr, "%*c> expression_without_invalid[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "disjunction"));
18179 expr_ty disjunction_var;
18180 if (
18181 (disjunction_var = disjunction_rule(p)) // disjunction
18182 )
18183 {
18184 D(fprintf(stderr, "%*c+ expression_without_invalid[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "disjunction"));
18185 _res = disjunction_var;
18186 goto done;
18187 }
18188 p->mark = _mark;
18189 D(fprintf(stderr, "%*c%s expression_without_invalid[%d-%d]: %s failed!\n", p->level, ' ',
18190 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "disjunction"));
18191 }
18192 { // lambdef
18193 if (p->error_indicator) {
18194 D(p->level--);
18195 return NULL;
18196 }
18197 D(fprintf(stderr, "%*c> expression_without_invalid[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambdef"));
18198 expr_ty lambdef_var;
18199 if (
18200 (lambdef_var = lambdef_rule(p)) // lambdef
18201 )
18202 {
18203 D(fprintf(stderr, "%*c+ expression_without_invalid[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambdef"));
18204 _res = lambdef_var;
18205 goto done;
18206 }
18207 p->mark = _mark;
18208 D(fprintf(stderr, "%*c%s expression_without_invalid[%d-%d]: %s failed!\n", p->level, ' ',
18209 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambdef"));
18210 }
18211 _res = NULL;
18212 done:
18213 D(p->level--);
18214 return _res;
18215}
18216
Miss Islington (bot)35035bc2021-07-31 18:31:44 -070018217// invalid_legacy_expression: NAME !'(' star_expressions
Pablo Galindo Salgadob977f852021-07-27 18:52:32 +010018218static void *
18219invalid_legacy_expression_rule(Parser *p)
18220{
18221 D(p->level++);
18222 if (p->error_indicator) {
18223 D(p->level--);
18224 return NULL;
18225 }
18226 void * _res = NULL;
18227 int _mark = p->mark;
Miss Islington (bot)35035bc2021-07-31 18:31:44 -070018228 { // NAME !'(' star_expressions
Pablo Galindo Salgadob977f852021-07-27 18:52:32 +010018229 if (p->error_indicator) {
18230 D(p->level--);
18231 return NULL;
18232 }
Miss Islington (bot)35035bc2021-07-31 18:31:44 -070018233 D(fprintf(stderr, "%*c> invalid_legacy_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME !'(' star_expressions"));
Pablo Galindo Salgadob977f852021-07-27 18:52:32 +010018234 expr_ty a;
18235 expr_ty b;
18236 if (
18237 (a = _PyPegen_name_token(p)) // NAME
18238 &&
Miss Islington (bot)35035bc2021-07-31 18:31:44 -070018239 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 7) // token='('
18240 &&
Miss Islington (bot)68e3dca2021-07-27 14:19:18 -070018241 (b = star_expressions_rule(p)) // star_expressions
Pablo Galindo Salgadob977f852021-07-27 18:52:32 +010018242 )
18243 {
Miss Islington (bot)35035bc2021-07-31 18:31:44 -070018244 D(fprintf(stderr, "%*c+ invalid_legacy_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME !'(' star_expressions"));
Miss Islington (bot)68e3dca2021-07-27 14:19:18 -070018245 _res = _PyPegen_check_legacy_stmt ( p , a ) ? RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , b , "Missing parentheses in call to '%U'. Did you mean %U(...)?" , a -> v . Name . id , a -> v . Name . id ) : NULL;
Pablo Galindo Salgadob977f852021-07-27 18:52:32 +010018246 if (_res == NULL && PyErr_Occurred()) {
18247 p->error_indicator = 1;
18248 D(p->level--);
18249 return NULL;
18250 }
18251 goto done;
18252 }
18253 p->mark = _mark;
18254 D(fprintf(stderr, "%*c%s invalid_legacy_expression[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)35035bc2021-07-31 18:31:44 -070018255 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME !'(' star_expressions"));
Pablo Galindo Salgadob977f852021-07-27 18:52:32 +010018256 }
18257 _res = NULL;
18258 done:
18259 D(p->level--);
18260 return _res;
18261}
18262
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018263// invalid_expression:
Pablo Galindo Salgadob977f852021-07-27 18:52:32 +010018264// | invalid_legacy_expression
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018265// | !(NAME STRING | SOFT_KEYWORD) disjunction expression_without_invalid
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010018266// | disjunction 'if' disjunction !('else' | ':')
Pablo Galindob2802482021-04-15 21:38:45 +010018267static void *
18268invalid_expression_rule(Parser *p)
18269{
18270 D(p->level++);
18271 if (p->error_indicator) {
18272 D(p->level--);
18273 return NULL;
18274 }
18275 void * _res = NULL;
18276 int _mark = p->mark;
Pablo Galindo Salgadob977f852021-07-27 18:52:32 +010018277 if (p->call_invalid_rules) { // invalid_legacy_expression
18278 if (p->error_indicator) {
18279 D(p->level--);
18280 return NULL;
18281 }
18282 D(fprintf(stderr, "%*c> invalid_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_legacy_expression"));
18283 void *invalid_legacy_expression_var;
18284 if (
18285 (invalid_legacy_expression_var = invalid_legacy_expression_rule(p)) // invalid_legacy_expression
18286 )
18287 {
18288 D(fprintf(stderr, "%*c+ invalid_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_legacy_expression"));
18289 _res = invalid_legacy_expression_var;
18290 goto done;
18291 }
18292 p->mark = _mark;
18293 D(fprintf(stderr, "%*c%s invalid_expression[%d-%d]: %s failed!\n", p->level, ' ',
18294 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_legacy_expression"));
18295 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018296 { // !(NAME STRING | SOFT_KEYWORD) disjunction expression_without_invalid
Pablo Galindob2802482021-04-15 21:38:45 +010018297 if (p->error_indicator) {
18298 D(p->level--);
18299 return NULL;
18300 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018301 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 +010018302 expr_ty a;
Pablo Galindoa77aac42021-04-23 14:27:05 +010018303 expr_ty b;
Pablo Galindob2802482021-04-15 21:38:45 +010018304 if (
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000018305 _PyPegen_lookahead(0, _tmp_144_rule, p)
Pablo Galindob2802482021-04-15 21:38:45 +010018306 &&
18307 (a = disjunction_rule(p)) // disjunction
18308 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018309 (b = expression_without_invalid_rule(p)) // expression_without_invalid
Pablo Galindob2802482021-04-15 21:38:45 +010018310 )
18311 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018312 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 +010018313 _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , b , "invalid syntax. Perhaps you forgot a comma?" );
Pablo Galindob2802482021-04-15 21:38:45 +010018314 if (_res == NULL && PyErr_Occurred()) {
18315 p->error_indicator = 1;
18316 D(p->level--);
18317 return NULL;
18318 }
18319 goto done;
18320 }
18321 p->mark = _mark;
18322 D(fprintf(stderr, "%*c%s invalid_expression[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018323 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "!(NAME STRING | SOFT_KEYWORD) disjunction expression_without_invalid"));
Pablo Galindob2802482021-04-15 21:38:45 +010018324 }
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010018325 { // disjunction 'if' disjunction !('else' | ':')
Miss Islington (bot)56717622021-08-02 12:05:33 -070018326 if (p->error_indicator) {
18327 D(p->level--);
18328 return NULL;
18329 }
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010018330 D(fprintf(stderr, "%*c> invalid_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "disjunction 'if' disjunction !('else' | ':')"));
Miss Islington (bot)56717622021-08-02 12:05:33 -070018331 Token * _keyword;
18332 expr_ty a;
18333 expr_ty b;
18334 if (
18335 (a = disjunction_rule(p)) // disjunction
18336 &&
18337 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
18338 &&
18339 (b = disjunction_rule(p)) // disjunction
18340 &&
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000018341 _PyPegen_lookahead(0, _tmp_145_rule, p)
Miss Islington (bot)56717622021-08-02 12:05:33 -070018342 )
18343 {
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010018344 D(fprintf(stderr, "%*c+ invalid_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "disjunction 'if' disjunction !('else' | ':')"));
Miss Islington (bot)56717622021-08-02 12:05:33 -070018345 _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , b , "expected 'else' after 'if' expression" );
18346 if (_res == NULL && PyErr_Occurred()) {
18347 p->error_indicator = 1;
18348 D(p->level--);
18349 return NULL;
18350 }
18351 goto done;
18352 }
18353 p->mark = _mark;
18354 D(fprintf(stderr, "%*c%s invalid_expression[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010018355 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "disjunction 'if' disjunction !('else' | ':')"));
Miss Islington (bot)56717622021-08-02 12:05:33 -070018356 }
Pablo Galindob2802482021-04-15 21:38:45 +010018357 _res = NULL;
18358 done:
18359 D(p->level--);
18360 return _res;
18361}
18362
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018363// invalid_named_expression:
18364// | expression ':=' expression
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018365// | NAME '=' bitwise_or !('=' | ':=')
18366// | !(list | tuple | genexp | 'True' | 'None' | 'False') bitwise_or '=' bitwise_or !('=' | ':=')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018367static void *
18368invalid_named_expression_rule(Parser *p)
18369{
18370 D(p->level++);
18371 if (p->error_indicator) {
18372 D(p->level--);
18373 return NULL;
18374 }
18375 void * _res = NULL;
18376 int _mark = p->mark;
18377 { // expression ':=' expression
18378 if (p->error_indicator) {
18379 D(p->level--);
18380 return NULL;
18381 }
18382 D(fprintf(stderr, "%*c> invalid_named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':=' expression"));
18383 Token * _literal;
18384 expr_ty a;
18385 expr_ty expression_var;
18386 if (
18387 (a = expression_rule(p)) // expression
18388 &&
18389 (_literal = _PyPegen_expect_token(p, 53)) // token=':='
18390 &&
18391 (expression_var = expression_rule(p)) // expression
18392 )
18393 {
18394 D(fprintf(stderr, "%*c+ invalid_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':=' expression"));
18395 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "cannot use assignment expressions with %s" , _PyPegen_get_expr_name ( a ) );
18396 if (_res == NULL && PyErr_Occurred()) {
18397 p->error_indicator = 1;
18398 D(p->level--);
18399 return NULL;
18400 }
18401 goto done;
18402 }
18403 p->mark = _mark;
18404 D(fprintf(stderr, "%*c%s invalid_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
18405 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':=' expression"));
18406 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018407 { // NAME '=' bitwise_or !('=' | ':=')
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018408 if (p->error_indicator) {
18409 D(p->level--);
18410 return NULL;
18411 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018412 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 +010018413 Token * _literal;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018414 expr_ty a;
Pablo Galindoa77aac42021-04-23 14:27:05 +010018415 expr_ty b;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018416 if (
18417 (a = _PyPegen_name_token(p)) // NAME
18418 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010018419 (_literal = _PyPegen_expect_token(p, 22)) // token='='
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018420 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010018421 (b = bitwise_or_rule(p)) // bitwise_or
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018422 &&
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000018423 _PyPegen_lookahead(0, _tmp_146_rule, p)
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018424 )
18425 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018426 D(fprintf(stderr, "%*c+ invalid_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '=' bitwise_or !('=' | ':=')"));
18427 _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 +010018428 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 invalid_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018437 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' bitwise_or !('=' | ':=')"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018438 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018439 { // !(list | tuple | genexp | 'True' | 'None' | 'False') bitwise_or '=' bitwise_or !('=' | ':=')
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018440 if (p->error_indicator) {
18441 D(p->level--);
18442 return NULL;
18443 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018444 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 +010018445 expr_ty a;
18446 Token * b;
18447 expr_ty bitwise_or_var;
18448 if (
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000018449 _PyPegen_lookahead(0, _tmp_147_rule, p)
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018450 &&
18451 (a = bitwise_or_rule(p)) // bitwise_or
18452 &&
18453 (b = _PyPegen_expect_token(p, 22)) // token='='
18454 &&
18455 (bitwise_or_var = bitwise_or_rule(p)) // bitwise_or
18456 &&
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000018457 _PyPegen_lookahead(0, _tmp_148_rule, p)
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018458 )
18459 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018460 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 !('=' | ':=')"));
18461 _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 +010018462 if (_res == NULL && PyErr_Occurred()) {
18463 p->error_indicator = 1;
18464 D(p->level--);
18465 return NULL;
18466 }
18467 goto done;
18468 }
18469 p->mark = _mark;
18470 D(fprintf(stderr, "%*c%s invalid_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018471 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "!(list | tuple | genexp | 'True' | 'None' | 'False') bitwise_or '=' bitwise_or !('=' | ':=')"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018472 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018473 _res = NULL;
18474 done:
18475 D(p->level--);
18476 return _res;
18477}
18478
18479// invalid_assignment:
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030018480// | invalid_ann_assign_target ':' expression
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018481// | star_named_expression ',' star_named_expressions* ':' expression
18482// | expression ':' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018483// | ((star_targets '='))* star_expressions '='
18484// | ((star_targets '='))* yield_expr '='
18485// | star_expressions augassign (yield_expr | star_expressions)
18486static void *
18487invalid_assignment_rule(Parser *p)
18488{
18489 D(p->level++);
18490 if (p->error_indicator) {
18491 D(p->level--);
18492 return NULL;
18493 }
18494 void * _res = NULL;
18495 int _mark = p->mark;
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030018496 { // invalid_ann_assign_target ':' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018497 if (p->error_indicator) {
18498 D(p->level--);
18499 return NULL;
18500 }
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030018501 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 +010018502 Token * _literal;
18503 expr_ty a;
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018504 expr_ty expression_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018505 if (
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030018506 (a = invalid_ann_assign_target_rule(p)) // invalid_ann_assign_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018507 &&
18508 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018509 &&
18510 (expression_var = expression_rule(p)) // expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018511 )
18512 {
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030018513 D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_ann_assign_target ':' expression"));
18514 _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 +010018515 if (_res == NULL && PyErr_Occurred()) {
18516 p->error_indicator = 1;
18517 D(p->level--);
18518 return NULL;
18519 }
18520 goto done;
18521 }
18522 p->mark = _mark;
18523 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030018524 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_ann_assign_target ':' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018525 }
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018526 { // star_named_expression ',' star_named_expressions* ':' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018527 if (p->error_indicator) {
18528 D(p->level--);
18529 return NULL;
18530 }
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018531 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 +010018532 Token * _literal;
18533 Token * _literal_1;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000018534 asdl_seq * _loop0_149_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018535 expr_ty a;
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018536 expr_ty expression_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018537 if (
18538 (a = star_named_expression_rule(p)) // star_named_expression
18539 &&
18540 (_literal = _PyPegen_expect_token(p, 12)) // token=','
18541 &&
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000018542 (_loop0_149_var = _loop0_149_rule(p)) // star_named_expressions*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018543 &&
18544 (_literal_1 = _PyPegen_expect_token(p, 11)) // token=':'
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018545 &&
18546 (expression_var = expression_rule(p)) // expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018547 )
18548 {
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018549 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 +010018550 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "only single target (not tuple) can be annotated" );
18551 if (_res == NULL && PyErr_Occurred()) {
18552 p->error_indicator = 1;
18553 D(p->level--);
18554 return NULL;
18555 }
18556 goto done;
18557 }
18558 p->mark = _mark;
18559 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018560 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression ',' star_named_expressions* ':' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018561 }
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018562 { // expression ':' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018563 if (p->error_indicator) {
18564 D(p->level--);
18565 return NULL;
18566 }
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018567 D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018568 Token * _literal;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018569 expr_ty a;
18570 expr_ty expression_var;
18571 if (
18572 (a = expression_rule(p)) // expression
18573 &&
18574 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
18575 &&
18576 (expression_var = expression_rule(p)) // expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018577 )
18578 {
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018579 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 +010018580 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "illegal target for annotation" );
18581 if (_res == NULL && PyErr_Occurred()) {
18582 p->error_indicator = 1;
18583 D(p->level--);
18584 return NULL;
18585 }
18586 goto done;
18587 }
18588 p->mark = _mark;
18589 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018590 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018591 }
18592 { // ((star_targets '='))* star_expressions '='
18593 if (p->error_indicator) {
18594 D(p->level--);
18595 return NULL;
18596 }
18597 D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "((star_targets '='))* star_expressions '='"));
18598 Token * _literal;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000018599 asdl_seq * _loop0_150_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018600 expr_ty a;
18601 if (
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000018602 (_loop0_150_var = _loop0_150_rule(p)) // ((star_targets '='))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018603 &&
18604 (a = star_expressions_rule(p)) // star_expressions
18605 &&
18606 (_literal = _PyPegen_expect_token(p, 22)) // token='='
18607 )
18608 {
18609 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 +030018610 _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( STAR_TARGETS , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018611 if (_res == NULL && PyErr_Occurred()) {
18612 p->error_indicator = 1;
18613 D(p->level--);
18614 return NULL;
18615 }
18616 goto done;
18617 }
18618 p->mark = _mark;
18619 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
18620 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "((star_targets '='))* star_expressions '='"));
18621 }
18622 { // ((star_targets '='))* yield_expr '='
18623 if (p->error_indicator) {
18624 D(p->level--);
18625 return NULL;
18626 }
18627 D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "((star_targets '='))* yield_expr '='"));
18628 Token * _literal;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000018629 asdl_seq * _loop0_151_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018630 expr_ty a;
18631 if (
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000018632 (_loop0_151_var = _loop0_151_rule(p)) // ((star_targets '='))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018633 &&
18634 (a = yield_expr_rule(p)) // yield_expr
18635 &&
18636 (_literal = _PyPegen_expect_token(p, 22)) // token='='
18637 )
18638 {
18639 D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "((star_targets '='))* yield_expr '='"));
18640 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "assignment to yield expression not possible" );
18641 if (_res == NULL && PyErr_Occurred()) {
18642 p->error_indicator = 1;
18643 D(p->level--);
18644 return NULL;
18645 }
18646 goto done;
18647 }
18648 p->mark = _mark;
18649 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
18650 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "((star_targets '='))* yield_expr '='"));
18651 }
18652 { // star_expressions augassign (yield_expr | star_expressions)
18653 if (p->error_indicator) {
18654 D(p->level--);
18655 return NULL;
18656 }
18657 D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions augassign (yield_expr | star_expressions)"));
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000018658 void *_tmp_152_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018659 expr_ty a;
18660 AugOperator* augassign_var;
18661 if (
18662 (a = star_expressions_rule(p)) // star_expressions
18663 &&
18664 (augassign_var = augassign_rule(p)) // augassign
18665 &&
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000018666 (_tmp_152_var = _tmp_152_rule(p)) // yield_expr | star_expressions
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018667 )
18668 {
18669 D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions augassign (yield_expr | star_expressions)"));
18670 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "'%s' is an illegal expression for augmented assignment" , _PyPegen_get_expr_name ( a ) );
18671 if (_res == NULL && PyErr_Occurred()) {
18672 p->error_indicator = 1;
18673 D(p->level--);
18674 return NULL;
18675 }
18676 goto done;
18677 }
18678 p->mark = _mark;
18679 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
18680 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions augassign (yield_expr | star_expressions)"));
18681 }
18682 _res = NULL;
18683 done:
18684 D(p->level--);
18685 return _res;
18686}
18687
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030018688// invalid_ann_assign_target: list | tuple | '(' invalid_ann_assign_target ')'
18689static expr_ty
18690invalid_ann_assign_target_rule(Parser *p)
18691{
18692 D(p->level++);
18693 if (p->error_indicator) {
18694 D(p->level--);
18695 return NULL;
18696 }
18697 expr_ty _res = NULL;
18698 int _mark = p->mark;
18699 { // list
18700 if (p->error_indicator) {
18701 D(p->level--);
18702 return NULL;
18703 }
18704 D(fprintf(stderr, "%*c> invalid_ann_assign_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "list"));
18705 expr_ty list_var;
18706 if (
18707 (list_var = list_rule(p)) // list
18708 )
18709 {
18710 D(fprintf(stderr, "%*c+ invalid_ann_assign_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "list"));
18711 _res = list_var;
18712 goto done;
18713 }
18714 p->mark = _mark;
18715 D(fprintf(stderr, "%*c%s invalid_ann_assign_target[%d-%d]: %s failed!\n", p->level, ' ',
18716 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "list"));
18717 }
18718 { // tuple
18719 if (p->error_indicator) {
18720 D(p->level--);
18721 return NULL;
18722 }
18723 D(fprintf(stderr, "%*c> invalid_ann_assign_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "tuple"));
18724 expr_ty tuple_var;
18725 if (
18726 (tuple_var = tuple_rule(p)) // tuple
18727 )
18728 {
18729 D(fprintf(stderr, "%*c+ invalid_ann_assign_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "tuple"));
18730 _res = tuple_var;
18731 goto done;
18732 }
18733 p->mark = _mark;
18734 D(fprintf(stderr, "%*c%s invalid_ann_assign_target[%d-%d]: %s failed!\n", p->level, ' ',
18735 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "tuple"));
18736 }
18737 { // '(' invalid_ann_assign_target ')'
18738 if (p->error_indicator) {
18739 D(p->level--);
18740 return NULL;
18741 }
18742 D(fprintf(stderr, "%*c> invalid_ann_assign_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' invalid_ann_assign_target ')'"));
18743 Token * _literal;
18744 Token * _literal_1;
18745 expr_ty a;
18746 if (
18747 (_literal = _PyPegen_expect_token(p, 7)) // token='('
18748 &&
18749 (a = invalid_ann_assign_target_rule(p)) // invalid_ann_assign_target
18750 &&
18751 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
18752 )
18753 {
18754 D(fprintf(stderr, "%*c+ invalid_ann_assign_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' invalid_ann_assign_target ')'"));
18755 _res = a;
18756 if (_res == NULL && PyErr_Occurred()) {
18757 p->error_indicator = 1;
18758 D(p->level--);
18759 return NULL;
18760 }
18761 goto done;
18762 }
18763 p->mark = _mark;
18764 D(fprintf(stderr, "%*c%s invalid_ann_assign_target[%d-%d]: %s failed!\n", p->level, ' ',
18765 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' invalid_ann_assign_target ')'"));
18766 }
18767 _res = NULL;
18768 done:
18769 D(p->level--);
18770 return _res;
18771}
18772
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018773// invalid_del_stmt: 'del' star_expressions
18774static void *
18775invalid_del_stmt_rule(Parser *p)
18776{
18777 D(p->level++);
18778 if (p->error_indicator) {
18779 D(p->level--);
18780 return NULL;
18781 }
18782 void * _res = NULL;
18783 int _mark = p->mark;
18784 { // 'del' star_expressions
18785 if (p->error_indicator) {
18786 D(p->level--);
18787 return NULL;
18788 }
18789 D(fprintf(stderr, "%*c> invalid_del_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'del' star_expressions"));
18790 Token * _keyword;
18791 expr_ty a;
18792 if (
18793 (_keyword = _PyPegen_expect_token(p, 503)) // token='del'
18794 &&
18795 (a = star_expressions_rule(p)) // star_expressions
18796 )
18797 {
18798 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 +030018799 _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( DEL_TARGETS , a );
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018800 if (_res == NULL && PyErr_Occurred()) {
18801 p->error_indicator = 1;
18802 D(p->level--);
18803 return NULL;
18804 }
18805 goto done;
18806 }
18807 p->mark = _mark;
18808 D(fprintf(stderr, "%*c%s invalid_del_stmt[%d-%d]: %s failed!\n", p->level, ' ',
18809 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'del' star_expressions"));
18810 }
18811 _res = NULL;
18812 done:
18813 D(p->level--);
18814 return _res;
18815}
18816
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018817// invalid_block: NEWLINE !INDENT
18818static void *
18819invalid_block_rule(Parser *p)
18820{
18821 D(p->level++);
18822 if (p->error_indicator) {
18823 D(p->level--);
18824 return NULL;
18825 }
18826 void * _res = NULL;
18827 int _mark = p->mark;
18828 { // NEWLINE !INDENT
18829 if (p->error_indicator) {
18830 D(p->level--);
18831 return NULL;
18832 }
18833 D(fprintf(stderr, "%*c> invalid_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE !INDENT"));
18834 Token * newline_var;
18835 if (
18836 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
18837 &&
18838 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
18839 )
18840 {
18841 D(fprintf(stderr, "%*c+ invalid_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE !INDENT"));
18842 _res = RAISE_INDENTATION_ERROR ( "expected an indented block" );
18843 if (_res == NULL && PyErr_Occurred()) {
18844 p->error_indicator = 1;
18845 D(p->level--);
18846 return NULL;
18847 }
18848 goto done;
18849 }
18850 p->mark = _mark;
18851 D(fprintf(stderr, "%*c%s invalid_block[%d-%d]: %s failed!\n", p->level, ' ',
18852 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE !INDENT"));
18853 }
18854 _res = NULL;
18855 done:
18856 D(p->level--);
18857 return _res;
18858}
18859
Lysandros Nikolaou15acc4e2020-10-27 20:54:20 +020018860// Left-recursive
18861// invalid_primary: primary '{'
18862static void *
18863invalid_primary_rule(Parser *p)
18864{
18865 D(p->level++);
18866 if (p->error_indicator) {
18867 D(p->level--);
18868 return NULL;
18869 }
18870 void * _res = NULL;
18871 int _mark = p->mark;
18872 { // primary '{'
18873 if (p->error_indicator) {
18874 D(p->level--);
18875 return NULL;
18876 }
18877 D(fprintf(stderr, "%*c> invalid_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '{'"));
18878 Token * a;
18879 expr_ty primary_var;
18880 if (
18881 (primary_var = primary_rule(p)) // primary
18882 &&
18883 (a = _PyPegen_expect_token(p, 25)) // token='{'
18884 )
18885 {
18886 D(fprintf(stderr, "%*c+ invalid_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '{'"));
18887 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "invalid syntax" );
18888 if (_res == NULL && PyErr_Occurred()) {
18889 p->error_indicator = 1;
18890 D(p->level--);
18891 return NULL;
18892 }
18893 goto done;
18894 }
18895 p->mark = _mark;
18896 D(fprintf(stderr, "%*c%s invalid_primary[%d-%d]: %s failed!\n", p->level, ' ',
18897 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '{'"));
18898 }
18899 _res = NULL;
18900 done:
18901 D(p->level--);
18902 return _res;
18903}
18904
Pablo Galindo835f14f2021-01-31 22:52:56 +000018905// invalid_comprehension:
18906// | ('[' | '(' | '{') starred_expression for_if_clauses
Pablo Galindoa77aac42021-04-23 14:27:05 +010018907// | ('[' | '{') star_named_expression ',' star_named_expressions for_if_clauses
18908// | ('[' | '{') star_named_expression ',' for_if_clauses
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018909static void *
18910invalid_comprehension_rule(Parser *p)
18911{
18912 D(p->level++);
18913 if (p->error_indicator) {
18914 D(p->level--);
18915 return NULL;
18916 }
18917 void * _res = NULL;
18918 int _mark = p->mark;
18919 { // ('[' | '(' | '{') starred_expression for_if_clauses
18920 if (p->error_indicator) {
18921 D(p->level--);
18922 return NULL;
18923 }
18924 D(fprintf(stderr, "%*c> invalid_comprehension[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('[' | '(' | '{') starred_expression for_if_clauses"));
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000018925 void *_tmp_153_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018926 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010018927 asdl_comprehension_seq* for_if_clauses_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018928 if (
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000018929 (_tmp_153_var = _tmp_153_rule(p)) // '[' | '(' | '{'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018930 &&
18931 (a = starred_expression_rule(p)) // starred_expression
18932 &&
18933 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
18934 )
18935 {
18936 D(fprintf(stderr, "%*c+ invalid_comprehension[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "('[' | '(' | '{') starred_expression for_if_clauses"));
18937 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "iterable unpacking cannot be used in comprehension" );
18938 if (_res == NULL && PyErr_Occurred()) {
18939 p->error_indicator = 1;
18940 D(p->level--);
18941 return NULL;
18942 }
18943 goto done;
18944 }
18945 p->mark = _mark;
18946 D(fprintf(stderr, "%*c%s invalid_comprehension[%d-%d]: %s failed!\n", p->level, ' ',
18947 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('[' | '(' | '{') starred_expression for_if_clauses"));
18948 }
Pablo Galindoa77aac42021-04-23 14:27:05 +010018949 { // ('[' | '{') star_named_expression ',' star_named_expressions for_if_clauses
Pablo Galindo835f14f2021-01-31 22:52:56 +000018950 if (p->error_indicator) {
18951 D(p->level--);
18952 return NULL;
18953 }
Pablo Galindoa77aac42021-04-23 14:27:05 +010018954 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 +000018955 Token * _literal;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000018956 void *_tmp_154_var;
Pablo Galindo835f14f2021-01-31 22:52:56 +000018957 expr_ty a;
Pablo Galindoa77aac42021-04-23 14:27:05 +010018958 asdl_expr_seq* b;
Pablo Galindod4e6ed72021-02-03 23:29:26 +000018959 asdl_comprehension_seq* for_if_clauses_var;
Pablo Galindo835f14f2021-01-31 22:52:56 +000018960 if (
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000018961 (_tmp_154_var = _tmp_154_rule(p)) // '[' | '{'
Pablo Galindo835f14f2021-01-31 22:52:56 +000018962 &&
18963 (a = star_named_expression_rule(p)) // star_named_expression
18964 &&
18965 (_literal = _PyPegen_expect_token(p, 12)) // token=','
18966 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010018967 (b = star_named_expressions_rule(p)) // star_named_expressions
Pablo Galindod4e6ed72021-02-03 23:29:26 +000018968 &&
18969 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
Pablo Galindo835f14f2021-01-31 22:52:56 +000018970 )
18971 {
Pablo Galindoa77aac42021-04-23 14:27:05 +010018972 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"));
18973 _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 +000018974 if (_res == NULL && PyErr_Occurred()) {
18975 p->error_indicator = 1;
18976 D(p->level--);
18977 return NULL;
18978 }
18979 goto done;
18980 }
18981 p->mark = _mark;
18982 D(fprintf(stderr, "%*c%s invalid_comprehension[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindoa77aac42021-04-23 14:27:05 +010018983 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('[' | '{') star_named_expression ',' star_named_expressions for_if_clauses"));
18984 }
18985 { // ('[' | '{') star_named_expression ',' for_if_clauses
18986 if (p->error_indicator) {
18987 D(p->level--);
18988 return NULL;
18989 }
18990 D(fprintf(stderr, "%*c> invalid_comprehension[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('[' | '{') star_named_expression ',' for_if_clauses"));
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000018991 void *_tmp_155_var;
Pablo Galindoa77aac42021-04-23 14:27:05 +010018992 expr_ty a;
18993 Token * b;
18994 asdl_comprehension_seq* for_if_clauses_var;
18995 if (
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000018996 (_tmp_155_var = _tmp_155_rule(p)) // '[' | '{'
Pablo Galindoa77aac42021-04-23 14:27:05 +010018997 &&
18998 (a = star_named_expression_rule(p)) // star_named_expression
18999 &&
19000 (b = _PyPegen_expect_token(p, 12)) // token=','
19001 &&
19002 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
19003 )
19004 {
19005 D(fprintf(stderr, "%*c+ invalid_comprehension[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "('[' | '{') star_named_expression ',' for_if_clauses"));
19006 _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , b , "did you forget parentheses around the comprehension target?" );
19007 if (_res == NULL && PyErr_Occurred()) {
19008 p->error_indicator = 1;
19009 D(p->level--);
19010 return NULL;
19011 }
19012 goto done;
19013 }
19014 p->mark = _mark;
19015 D(fprintf(stderr, "%*c%s invalid_comprehension[%d-%d]: %s failed!\n", p->level, ' ',
19016 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('[' | '{') star_named_expression ',' for_if_clauses"));
Pablo Galindo835f14f2021-01-31 22:52:56 +000019017 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019018 _res = NULL;
19019 done:
19020 D(p->level--);
19021 return _res;
19022}
19023
19024// invalid_dict_comprehension: '{' '**' bitwise_or for_if_clauses '}'
19025static void *
19026invalid_dict_comprehension_rule(Parser *p)
19027{
19028 D(p->level++);
19029 if (p->error_indicator) {
19030 D(p->level--);
19031 return NULL;
19032 }
19033 void * _res = NULL;
19034 int _mark = p->mark;
19035 { // '{' '**' bitwise_or for_if_clauses '}'
19036 if (p->error_indicator) {
19037 D(p->level--);
19038 return NULL;
19039 }
19040 D(fprintf(stderr, "%*c> invalid_dict_comprehension[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' '**' bitwise_or for_if_clauses '}'"));
19041 Token * _literal;
19042 Token * _literal_1;
19043 Token * a;
19044 expr_ty bitwise_or_var;
Pablo Galindoa5634c42020-09-16 19:42:00 +010019045 asdl_comprehension_seq* for_if_clauses_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019046 if (
19047 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
19048 &&
19049 (a = _PyPegen_expect_token(p, 35)) // token='**'
19050 &&
19051 (bitwise_or_var = bitwise_or_rule(p)) // bitwise_or
19052 &&
19053 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
19054 &&
19055 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
19056 )
19057 {
19058 D(fprintf(stderr, "%*c+ invalid_dict_comprehension[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' '**' bitwise_or for_if_clauses '}'"));
19059 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "dict unpacking cannot be used in dict comprehension" );
19060 if (_res == NULL && PyErr_Occurred()) {
19061 p->error_indicator = 1;
19062 D(p->level--);
19063 return NULL;
19064 }
19065 goto done;
19066 }
19067 p->mark = _mark;
19068 D(fprintf(stderr, "%*c%s invalid_dict_comprehension[%d-%d]: %s failed!\n", p->level, ' ',
19069 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' '**' bitwise_or for_if_clauses '}'"));
19070 }
19071 _res = NULL;
19072 done:
19073 D(p->level--);
19074 return _res;
19075}
19076
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019077// invalid_parameters: param_no_default* invalid_parameters_helper param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019078static void *
19079invalid_parameters_rule(Parser *p)
19080{
19081 D(p->level++);
19082 if (p->error_indicator) {
19083 D(p->level--);
19084 return NULL;
19085 }
19086 void * _res = NULL;
19087 int _mark = p->mark;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019088 { // param_no_default* invalid_parameters_helper param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019089 if (p->error_indicator) {
19090 D(p->level--);
19091 return NULL;
19092 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019093 D(fprintf(stderr, "%*c> invalid_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default* invalid_parameters_helper param_no_default"));
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000019094 asdl_seq * _loop0_156_var;
Pablo Galindoa77aac42021-04-23 14:27:05 +010019095 arg_ty a;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019096 void *invalid_parameters_helper_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019097 if (
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000019098 (_loop0_156_var = _loop0_156_rule(p)) // param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019099 &&
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019100 (invalid_parameters_helper_var = invalid_parameters_helper_rule(p)) // invalid_parameters_helper
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019101 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010019102 (a = param_no_default_rule(p)) // param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019103 )
19104 {
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019105 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 +010019106 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "non-default argument follows default argument" );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019107 if (_res == NULL && PyErr_Occurred()) {
19108 p->error_indicator = 1;
19109 D(p->level--);
19110 return NULL;
19111 }
19112 goto done;
19113 }
19114 p->mark = _mark;
19115 D(fprintf(stderr, "%*c%s invalid_parameters[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019116 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default* invalid_parameters_helper param_no_default"));
19117 }
19118 _res = NULL;
19119 done:
19120 D(p->level--);
19121 return _res;
19122}
19123
19124// invalid_parameters_helper: slash_with_default | param_with_default+
19125static void *
19126invalid_parameters_helper_rule(Parser *p)
19127{
19128 D(p->level++);
19129 if (p->error_indicator) {
19130 D(p->level--);
19131 return NULL;
19132 }
19133 void * _res = NULL;
19134 int _mark = p->mark;
19135 { // slash_with_default
19136 if (p->error_indicator) {
19137 D(p->level--);
19138 return NULL;
19139 }
19140 D(fprintf(stderr, "%*c> invalid_parameters_helper[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slash_with_default"));
19141 SlashWithDefault* a;
19142 if (
19143 (a = slash_with_default_rule(p)) // slash_with_default
19144 )
19145 {
19146 D(fprintf(stderr, "%*c+ invalid_parameters_helper[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slash_with_default"));
19147 _res = _PyPegen_singleton_seq ( p , a );
19148 if (_res == NULL && PyErr_Occurred()) {
19149 p->error_indicator = 1;
19150 D(p->level--);
19151 return NULL;
19152 }
19153 goto done;
19154 }
19155 p->mark = _mark;
19156 D(fprintf(stderr, "%*c%s invalid_parameters_helper[%d-%d]: %s failed!\n", p->level, ' ',
19157 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slash_with_default"));
19158 }
19159 { // param_with_default+
19160 if (p->error_indicator) {
19161 D(p->level--);
19162 return NULL;
19163 }
19164 D(fprintf(stderr, "%*c> invalid_parameters_helper[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default+"));
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000019165 asdl_seq * _loop1_157_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019166 if (
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000019167 (_loop1_157_var = _loop1_157_rule(p)) // param_with_default+
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019168 )
19169 {
19170 D(fprintf(stderr, "%*c+ invalid_parameters_helper[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_with_default+"));
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000019171 _res = _loop1_157_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019172 goto done;
19173 }
19174 p->mark = _mark;
19175 D(fprintf(stderr, "%*c%s invalid_parameters_helper[%d-%d]: %s failed!\n", p->level, ' ',
19176 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default+"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019177 }
19178 _res = NULL;
19179 done:
19180 D(p->level--);
19181 return _res;
19182}
19183
19184// invalid_lambda_parameters:
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019185// | lambda_param_no_default* invalid_lambda_parameters_helper lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019186static void *
19187invalid_lambda_parameters_rule(Parser *p)
19188{
19189 D(p->level++);
19190 if (p->error_indicator) {
19191 D(p->level--);
19192 return NULL;
19193 }
19194 void * _res = NULL;
19195 int _mark = p->mark;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019196 { // lambda_param_no_default* invalid_lambda_parameters_helper lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019197 if (p->error_indicator) {
19198 D(p->level--);
19199 return NULL;
19200 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019201 D(fprintf(stderr, "%*c> invalid_lambda_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default* invalid_lambda_parameters_helper lambda_param_no_default"));
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000019202 asdl_seq * _loop0_158_var;
Pablo Galindoa77aac42021-04-23 14:27:05 +010019203 arg_ty a;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019204 void *invalid_lambda_parameters_helper_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019205 if (
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000019206 (_loop0_158_var = _loop0_158_rule(p)) // lambda_param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019207 &&
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019208 (invalid_lambda_parameters_helper_var = invalid_lambda_parameters_helper_rule(p)) // invalid_lambda_parameters_helper
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019209 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010019210 (a = lambda_param_no_default_rule(p)) // lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019211 )
19212 {
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019213 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 +010019214 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "non-default argument follows default argument" );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019215 if (_res == NULL && PyErr_Occurred()) {
19216 p->error_indicator = 1;
19217 D(p->level--);
19218 return NULL;
19219 }
19220 goto done;
19221 }
19222 p->mark = _mark;
19223 D(fprintf(stderr, "%*c%s invalid_lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019224 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default* invalid_lambda_parameters_helper lambda_param_no_default"));
19225 }
19226 _res = NULL;
19227 done:
19228 D(p->level--);
19229 return _res;
19230}
19231
19232// invalid_lambda_parameters_helper:
19233// | lambda_slash_with_default
19234// | lambda_param_with_default+
19235static void *
19236invalid_lambda_parameters_helper_rule(Parser *p)
19237{
19238 D(p->level++);
19239 if (p->error_indicator) {
19240 D(p->level--);
19241 return NULL;
19242 }
19243 void * _res = NULL;
19244 int _mark = p->mark;
19245 { // lambda_slash_with_default
19246 if (p->error_indicator) {
19247 D(p->level--);
19248 return NULL;
19249 }
19250 D(fprintf(stderr, "%*c> invalid_lambda_parameters_helper[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_slash_with_default"));
19251 SlashWithDefault* a;
19252 if (
19253 (a = lambda_slash_with_default_rule(p)) // lambda_slash_with_default
19254 )
19255 {
19256 D(fprintf(stderr, "%*c+ invalid_lambda_parameters_helper[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_slash_with_default"));
19257 _res = _PyPegen_singleton_seq ( p , a );
19258 if (_res == NULL && PyErr_Occurred()) {
19259 p->error_indicator = 1;
19260 D(p->level--);
19261 return NULL;
19262 }
19263 goto done;
19264 }
19265 p->mark = _mark;
19266 D(fprintf(stderr, "%*c%s invalid_lambda_parameters_helper[%d-%d]: %s failed!\n", p->level, ' ',
19267 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_slash_with_default"));
19268 }
19269 { // lambda_param_with_default+
19270 if (p->error_indicator) {
19271 D(p->level--);
19272 return NULL;
19273 }
19274 D(fprintf(stderr, "%*c> invalid_lambda_parameters_helper[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default+"));
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000019275 asdl_seq * _loop1_159_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019276 if (
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000019277 (_loop1_159_var = _loop1_159_rule(p)) // lambda_param_with_default+
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019278 )
19279 {
19280 D(fprintf(stderr, "%*c+ invalid_lambda_parameters_helper[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default+"));
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000019281 _res = _loop1_159_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019282 goto done;
19283 }
19284 p->mark = _mark;
19285 D(fprintf(stderr, "%*c%s invalid_lambda_parameters_helper[%d-%d]: %s failed!\n", p->level, ' ',
19286 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default+"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019287 }
19288 _res = NULL;
19289 done:
19290 D(p->level--);
19291 return _res;
19292}
19293
19294// invalid_star_etc: '*' (')' | ',' (')' | '**')) | '*' ',' TYPE_COMMENT
19295static void *
19296invalid_star_etc_rule(Parser *p)
19297{
19298 D(p->level++);
19299 if (p->error_indicator) {
19300 D(p->level--);
19301 return NULL;
19302 }
19303 void * _res = NULL;
19304 int _mark = p->mark;
19305 { // '*' (')' | ',' (')' | '**'))
19306 if (p->error_indicator) {
19307 D(p->level--);
19308 return NULL;
19309 }
19310 D(fprintf(stderr, "%*c> invalid_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (')' | ',' (')' | '**'))"));
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000019311 void *_tmp_160_var;
Pablo Galindoa77aac42021-04-23 14:27:05 +010019312 Token * a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019313 if (
Pablo Galindoa77aac42021-04-23 14:27:05 +010019314 (a = _PyPegen_expect_token(p, 16)) // token='*'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019315 &&
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000019316 (_tmp_160_var = _tmp_160_rule(p)) // ')' | ',' (')' | '**')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019317 )
19318 {
19319 D(fprintf(stderr, "%*c+ invalid_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' (')' | ',' (')' | '**'))"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010019320 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "named arguments must follow bare *" );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019321 if (_res == NULL && PyErr_Occurred()) {
19322 p->error_indicator = 1;
19323 D(p->level--);
19324 return NULL;
19325 }
19326 goto done;
19327 }
19328 p->mark = _mark;
19329 D(fprintf(stderr, "%*c%s invalid_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
19330 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' (')' | ',' (')' | '**'))"));
19331 }
19332 { // '*' ',' TYPE_COMMENT
19333 if (p->error_indicator) {
19334 D(p->level--);
19335 return NULL;
19336 }
19337 D(fprintf(stderr, "%*c> invalid_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' ',' TYPE_COMMENT"));
19338 Token * _literal;
19339 Token * _literal_1;
19340 Token * type_comment_var;
19341 if (
19342 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
19343 &&
19344 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
19345 &&
19346 (type_comment_var = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
19347 )
19348 {
19349 D(fprintf(stderr, "%*c+ invalid_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' ',' TYPE_COMMENT"));
19350 _res = RAISE_SYNTAX_ERROR ( "bare * has associated type comment" );
19351 if (_res == NULL && PyErr_Occurred()) {
19352 p->error_indicator = 1;
19353 D(p->level--);
19354 return NULL;
19355 }
19356 goto done;
19357 }
19358 p->mark = _mark;
19359 D(fprintf(stderr, "%*c%s invalid_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
19360 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' ',' TYPE_COMMENT"));
19361 }
19362 _res = NULL;
19363 done:
19364 D(p->level--);
19365 return _res;
19366}
19367
19368// invalid_lambda_star_etc: '*' (':' | ',' (':' | '**'))
19369static void *
19370invalid_lambda_star_etc_rule(Parser *p)
19371{
19372 D(p->level++);
19373 if (p->error_indicator) {
19374 D(p->level--);
19375 return NULL;
19376 }
19377 void * _res = NULL;
19378 int _mark = p->mark;
19379 { // '*' (':' | ',' (':' | '**'))
19380 if (p->error_indicator) {
19381 D(p->level--);
19382 return NULL;
19383 }
19384 D(fprintf(stderr, "%*c> invalid_lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (':' | ',' (':' | '**'))"));
19385 Token * _literal;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000019386 void *_tmp_161_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019387 if (
19388 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
19389 &&
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000019390 (_tmp_161_var = _tmp_161_rule(p)) // ':' | ',' (':' | '**')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019391 )
19392 {
19393 D(fprintf(stderr, "%*c+ invalid_lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' (':' | ',' (':' | '**'))"));
19394 _res = RAISE_SYNTAX_ERROR ( "named arguments must follow bare *" );
19395 if (_res == NULL && PyErr_Occurred()) {
19396 p->error_indicator = 1;
19397 D(p->level--);
19398 return NULL;
19399 }
19400 goto done;
19401 }
19402 p->mark = _mark;
19403 D(fprintf(stderr, "%*c%s invalid_lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
19404 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' (':' | ',' (':' | '**'))"));
19405 }
19406 _res = NULL;
19407 done:
19408 D(p->level--);
19409 return _res;
19410}
19411
19412// invalid_double_type_comments: TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT
19413static void *
19414invalid_double_type_comments_rule(Parser *p)
19415{
19416 D(p->level++);
19417 if (p->error_indicator) {
19418 D(p->level--);
19419 return NULL;
19420 }
19421 void * _res = NULL;
19422 int _mark = p->mark;
19423 { // TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT
19424 if (p->error_indicator) {
19425 D(p->level--);
19426 return NULL;
19427 }
19428 D(fprintf(stderr, "%*c> invalid_double_type_comments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT"));
19429 Token * indent_var;
19430 Token * newline_var;
19431 Token * newline_var_1;
19432 Token * type_comment_var;
19433 Token * type_comment_var_1;
19434 if (
19435 (type_comment_var = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
19436 &&
19437 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
19438 &&
19439 (type_comment_var_1 = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
19440 &&
19441 (newline_var_1 = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
19442 &&
19443 (indent_var = _PyPegen_expect_token(p, INDENT)) // token='INDENT'
19444 )
19445 {
19446 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"));
19447 _res = RAISE_SYNTAX_ERROR ( "Cannot have two type comments on def" );
19448 if (_res == NULL && PyErr_Occurred()) {
19449 p->error_indicator = 1;
19450 D(p->level--);
19451 return NULL;
19452 }
19453 goto done;
19454 }
19455 p->mark = _mark;
19456 D(fprintf(stderr, "%*c%s invalid_double_type_comments[%d-%d]: %s failed!\n", p->level, ' ',
19457 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT"));
19458 }
19459 _res = NULL;
19460 done:
19461 D(p->level--);
19462 return _res;
19463}
19464
Pablo Galindo58fb1562021-02-02 19:54:22 +000019465// invalid_with_item: expression 'as' expression &(',' | ')' | ':')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019466static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019467invalid_with_item_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019468{
19469 D(p->level++);
19470 if (p->error_indicator) {
19471 D(p->level--);
19472 return NULL;
19473 }
19474 void * _res = NULL;
19475 int _mark = p->mark;
Pablo Galindo58fb1562021-02-02 19:54:22 +000019476 { // expression 'as' expression &(',' | ')' | ':')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019477 if (p->error_indicator) {
19478 D(p->level--);
19479 return NULL;
19480 }
Pablo Galindo58fb1562021-02-02 19:54:22 +000019481 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 +030019482 Token * _keyword;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019483 expr_ty a;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019484 expr_ty expression_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019485 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019486 (expression_var = expression_rule(p)) // expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019487 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019488 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
19489 &&
19490 (a = expression_rule(p)) // expression
Pablo Galindo58fb1562021-02-02 19:54:22 +000019491 &&
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000019492 _PyPegen_lookahead(1, _tmp_162_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019493 )
19494 {
Pablo Galindo58fb1562021-02-02 19:54:22 +000019495 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 +030019496 _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( STAR_TARGETS , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019497 if (_res == NULL && PyErr_Occurred()) {
19498 p->error_indicator = 1;
19499 D(p->level--);
19500 return NULL;
19501 }
19502 goto done;
19503 }
19504 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019505 D(fprintf(stderr, "%*c%s invalid_with_item[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +000019506 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression 'as' expression &(',' | ')' | ':')"));
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019507 }
19508 _res = NULL;
19509 done:
19510 D(p->level--);
19511 return _res;
19512}
19513
19514// invalid_for_target: ASYNC? 'for' star_expressions
19515static void *
19516invalid_for_target_rule(Parser *p)
19517{
19518 D(p->level++);
19519 if (p->error_indicator) {
19520 D(p->level--);
19521 return NULL;
19522 }
19523 void * _res = NULL;
19524 int _mark = p->mark;
19525 { // ASYNC? 'for' star_expressions
19526 if (p->error_indicator) {
19527 D(p->level--);
19528 return NULL;
19529 }
19530 D(fprintf(stderr, "%*c> invalid_for_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC? 'for' star_expressions"));
19531 Token * _keyword;
19532 void *_opt_var;
19533 UNUSED(_opt_var); // Silence compiler warnings
19534 expr_ty a;
19535 if (
Łukasz Langa5c9cab52021-10-19 22:31:18 +020019536 (_opt_var = _PyPegen_expect_token(p, ASYNC), !p->error_indicator) // ASYNC?
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019537 &&
19538 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
19539 &&
19540 (a = star_expressions_rule(p)) // star_expressions
19541 )
19542 {
19543 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 +030019544 _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( FOR_TARGETS , a );
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019545 if (_res == NULL && PyErr_Occurred()) {
19546 p->error_indicator = 1;
19547 D(p->level--);
19548 return NULL;
19549 }
19550 goto done;
19551 }
19552 p->mark = _mark;
19553 D(fprintf(stderr, "%*c%s invalid_for_target[%d-%d]: %s failed!\n", p->level, ' ',
19554 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'for' star_expressions"));
19555 }
19556 _res = NULL;
19557 done:
19558 D(p->level--);
19559 return _res;
19560}
19561
Pablo Galindo8efad612021-03-24 19:34:17 +000019562// invalid_group: '(' starred_expression ')' | '(' '**' expression ')'
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019563static void *
19564invalid_group_rule(Parser *p)
19565{
19566 D(p->level++);
19567 if (p->error_indicator) {
19568 D(p->level--);
19569 return NULL;
19570 }
19571 void * _res = NULL;
19572 int _mark = p->mark;
19573 { // '(' starred_expression ')'
19574 if (p->error_indicator) {
19575 D(p->level--);
19576 return NULL;
19577 }
19578 D(fprintf(stderr, "%*c> invalid_group[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' starred_expression ')'"));
19579 Token * _literal;
19580 Token * _literal_1;
19581 expr_ty a;
19582 if (
19583 (_literal = _PyPegen_expect_token(p, 7)) // token='('
19584 &&
19585 (a = starred_expression_rule(p)) // starred_expression
19586 &&
19587 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
19588 )
19589 {
19590 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 +010019591 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "cannot use starred expression here" );
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019592 if (_res == NULL && PyErr_Occurred()) {
19593 p->error_indicator = 1;
19594 D(p->level--);
19595 return NULL;
19596 }
19597 goto done;
19598 }
19599 p->mark = _mark;
19600 D(fprintf(stderr, "%*c%s invalid_group[%d-%d]: %s failed!\n", p->level, ' ',
19601 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' starred_expression ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019602 }
Pablo Galindo8efad612021-03-24 19:34:17 +000019603 { // '(' '**' expression ')'
19604 if (p->error_indicator) {
19605 D(p->level--);
19606 return NULL;
19607 }
19608 D(fprintf(stderr, "%*c> invalid_group[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' '**' expression ')'"));
19609 Token * _literal;
19610 Token * _literal_1;
19611 Token * a;
19612 expr_ty expression_var;
19613 if (
19614 (_literal = _PyPegen_expect_token(p, 7)) // token='('
19615 &&
19616 (a = _PyPegen_expect_token(p, 35)) // token='**'
19617 &&
19618 (expression_var = expression_rule(p)) // expression
19619 &&
19620 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
19621 )
19622 {
19623 D(fprintf(stderr, "%*c+ invalid_group[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' '**' expression ')'"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010019624 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "cannot use double starred expression here" );
Pablo Galindo8efad612021-03-24 19:34:17 +000019625 if (_res == NULL && PyErr_Occurred()) {
19626 p->error_indicator = 1;
19627 D(p->level--);
19628 return NULL;
19629 }
19630 goto done;
19631 }
19632 p->mark = _mark;
19633 D(fprintf(stderr, "%*c%s invalid_group[%d-%d]: %s failed!\n", p->level, ' ',
19634 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' '**' expression ')'"));
19635 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019636 _res = NULL;
19637 done:
19638 D(p->level--);
19639 return _res;
19640}
19641
Miss Islington (bot)846a10f2021-08-18 13:32:01 -070019642// invalid_import_from_targets: import_from_as_names ',' NEWLINE
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019643static void *
19644invalid_import_from_targets_rule(Parser *p)
19645{
19646 D(p->level++);
19647 if (p->error_indicator) {
19648 D(p->level--);
19649 return NULL;
19650 }
19651 void * _res = NULL;
19652 int _mark = p->mark;
Miss Islington (bot)846a10f2021-08-18 13:32:01 -070019653 { // import_from_as_names ',' NEWLINE
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019654 if (p->error_indicator) {
19655 D(p->level--);
19656 return NULL;
19657 }
Miss Islington (bot)846a10f2021-08-18 13:32:01 -070019658 D(fprintf(stderr, "%*c> invalid_import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "import_from_as_names ',' NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019659 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +010019660 asdl_alias_seq* import_from_as_names_var;
Miss Islington (bot)846a10f2021-08-18 13:32:01 -070019661 Token * newline_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019662 if (
19663 (import_from_as_names_var = import_from_as_names_rule(p)) // import_from_as_names
19664 &&
19665 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Miss Islington (bot)846a10f2021-08-18 13:32:01 -070019666 &&
19667 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019668 )
19669 {
Miss Islington (bot)846a10f2021-08-18 13:32:01 -070019670 D(fprintf(stderr, "%*c+ invalid_import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "import_from_as_names ',' NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019671 _res = RAISE_SYNTAX_ERROR ( "trailing comma not allowed without surrounding parentheses" );
19672 if (_res == NULL && PyErr_Occurred()) {
19673 p->error_indicator = 1;
19674 D(p->level--);
19675 return NULL;
19676 }
19677 goto done;
19678 }
19679 p->mark = _mark;
19680 D(fprintf(stderr, "%*c%s invalid_import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)846a10f2021-08-18 13:32:01 -070019681 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from_as_names ',' NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019682 }
19683 _res = NULL;
19684 done:
19685 D(p->level--);
19686 return _res;
19687}
19688
Pablo Galindo58fb1562021-02-02 19:54:22 +000019689// invalid_with_stmt:
19690// | ASYNC? 'with' ','.(expression ['as' star_target])+ &&':'
19691// | ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' &&':'
19692static void *
19693invalid_with_stmt_rule(Parser *p)
19694{
19695 D(p->level++);
19696 if (p->error_indicator) {
19697 D(p->level--);
19698 return NULL;
19699 }
19700 void * _res = NULL;
19701 int _mark = p->mark;
19702 { // ASYNC? 'with' ','.(expression ['as' star_target])+ &&':'
19703 if (p->error_indicator) {
19704 D(p->level--);
19705 return NULL;
19706 }
19707 D(fprintf(stderr, "%*c> invalid_with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' ','.(expression ['as' star_target])+ &&':'"));
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000019708 asdl_seq * _gather_163_var;
Pablo Galindo58fb1562021-02-02 19:54:22 +000019709 Token * _keyword;
19710 Token * _literal;
19711 void *_opt_var;
19712 UNUSED(_opt_var); // Silence compiler warnings
19713 if (
Łukasz Langa5c9cab52021-10-19 22:31:18 +020019714 (_opt_var = _PyPegen_expect_token(p, ASYNC), !p->error_indicator) // ASYNC?
Pablo Galindo58fb1562021-02-02 19:54:22 +000019715 &&
19716 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
19717 &&
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000019718 (_gather_163_var = _gather_163_rule(p)) // ','.(expression ['as' star_target])+
Pablo Galindo58fb1562021-02-02 19:54:22 +000019719 &&
19720 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
19721 )
19722 {
19723 D(fprintf(stderr, "%*c+ invalid_with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' ','.(expression ['as' star_target])+ &&':'"));
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000019724 _res = _PyPegen_dummy_name(p, _opt_var, _keyword, _gather_163_var, _literal);
Pablo Galindo58fb1562021-02-02 19:54:22 +000019725 goto done;
19726 }
19727 p->mark = _mark;
19728 D(fprintf(stderr, "%*c%s invalid_with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
19729 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'with' ','.(expression ['as' star_target])+ &&':'"));
19730 }
19731 { // ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' &&':'
19732 if (p->error_indicator) {
19733 D(p->level--);
19734 return NULL;
19735 }
19736 D(fprintf(stderr, "%*c> invalid_with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' &&':'"));
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000019737 asdl_seq * _gather_165_var;
Pablo Galindo58fb1562021-02-02 19:54:22 +000019738 Token * _keyword;
19739 Token * _literal;
19740 Token * _literal_1;
19741 Token * _literal_2;
19742 void *_opt_var;
19743 UNUSED(_opt_var); // Silence compiler warnings
19744 void *_opt_var_1;
19745 UNUSED(_opt_var_1); // Silence compiler warnings
19746 if (
Łukasz Langa5c9cab52021-10-19 22:31:18 +020019747 (_opt_var = _PyPegen_expect_token(p, ASYNC), !p->error_indicator) // ASYNC?
Pablo Galindo58fb1562021-02-02 19:54:22 +000019748 &&
19749 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
19750 &&
19751 (_literal = _PyPegen_expect_token(p, 7)) // token='('
19752 &&
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000019753 (_gather_165_var = _gather_165_rule(p)) // ','.(expressions ['as' star_target])+
Pablo Galindo58fb1562021-02-02 19:54:22 +000019754 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +020019755 (_opt_var_1 = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','?
Pablo Galindo58fb1562021-02-02 19:54:22 +000019756 &&
19757 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
19758 &&
19759 (_literal_2 = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
19760 )
19761 {
19762 D(fprintf(stderr, "%*c+ invalid_with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' &&':'"));
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000019763 _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 +000019764 goto done;
19765 }
19766 p->mark = _mark;
19767 D(fprintf(stderr, "%*c%s invalid_with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
19768 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' &&':'"));
19769 }
19770 _res = NULL;
19771 done:
19772 D(p->level--);
19773 return _res;
19774}
19775
Pablo Galindo56c95df2021-04-21 15:28:21 +010019776// invalid_with_stmt_indent:
19777// | ASYNC? 'with' ','.(expression ['as' star_target])+ ':' NEWLINE !INDENT
19778// | ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' ':' NEWLINE !INDENT
Pablo Galindo206cbda2021-02-07 18:42:21 +000019779static void *
Pablo Galindo56c95df2021-04-21 15:28:21 +010019780invalid_with_stmt_indent_rule(Parser *p)
19781{
19782 D(p->level++);
19783 if (p->error_indicator) {
19784 D(p->level--);
19785 return NULL;
19786 }
19787 void * _res = NULL;
19788 int _mark = p->mark;
19789 { // ASYNC? 'with' ','.(expression ['as' star_target])+ ':' NEWLINE !INDENT
19790 if (p->error_indicator) {
19791 D(p->level--);
19792 return NULL;
19793 }
19794 D(fprintf(stderr, "%*c> invalid_with_stmt_indent[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' ','.(expression ['as' star_target])+ ':' NEWLINE !INDENT"));
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000019795 asdl_seq * _gather_167_var;
Pablo Galindo56c95df2021-04-21 15:28:21 +010019796 Token * _literal;
19797 void *_opt_var;
19798 UNUSED(_opt_var); // Silence compiler warnings
19799 Token * a;
19800 Token * newline_var;
19801 if (
Łukasz Langa5c9cab52021-10-19 22:31:18 +020019802 (_opt_var = _PyPegen_expect_token(p, ASYNC), !p->error_indicator) // ASYNC?
Pablo Galindo56c95df2021-04-21 15:28:21 +010019803 &&
19804 (a = _PyPegen_expect_token(p, 519)) // token='with'
19805 &&
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000019806 (_gather_167_var = _gather_167_rule(p)) // ','.(expression ['as' star_target])+
Pablo Galindo56c95df2021-04-21 15:28:21 +010019807 &&
19808 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
19809 &&
19810 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
19811 &&
19812 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
19813 )
19814 {
19815 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"));
19816 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'with' statement on line %d" , a -> lineno );
19817 if (_res == NULL && PyErr_Occurred()) {
19818 p->error_indicator = 1;
19819 D(p->level--);
19820 return NULL;
19821 }
19822 goto done;
19823 }
19824 p->mark = _mark;
19825 D(fprintf(stderr, "%*c%s invalid_with_stmt_indent[%d-%d]: %s failed!\n", p->level, ' ',
19826 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'with' ','.(expression ['as' star_target])+ ':' NEWLINE !INDENT"));
19827 }
19828 { // ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' ':' NEWLINE !INDENT
19829 if (p->error_indicator) {
19830 D(p->level--);
19831 return NULL;
19832 }
19833 D(fprintf(stderr, "%*c> invalid_with_stmt_indent[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' ':' NEWLINE !INDENT"));
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000019834 asdl_seq * _gather_169_var;
Pablo Galindo56c95df2021-04-21 15:28:21 +010019835 Token * _literal;
19836 Token * _literal_1;
19837 Token * _literal_2;
19838 void *_opt_var;
19839 UNUSED(_opt_var); // Silence compiler warnings
19840 void *_opt_var_1;
19841 UNUSED(_opt_var_1); // Silence compiler warnings
19842 Token * a;
19843 Token * newline_var;
19844 if (
Łukasz Langa5c9cab52021-10-19 22:31:18 +020019845 (_opt_var = _PyPegen_expect_token(p, ASYNC), !p->error_indicator) // ASYNC?
Pablo Galindo56c95df2021-04-21 15:28:21 +010019846 &&
19847 (a = _PyPegen_expect_token(p, 519)) // token='with'
19848 &&
19849 (_literal = _PyPegen_expect_token(p, 7)) // token='('
19850 &&
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000019851 (_gather_169_var = _gather_169_rule(p)) // ','.(expressions ['as' star_target])+
Pablo Galindo56c95df2021-04-21 15:28:21 +010019852 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +020019853 (_opt_var_1 = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','?
Pablo Galindo56c95df2021-04-21 15:28:21 +010019854 &&
19855 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
19856 &&
19857 (_literal_2 = _PyPegen_expect_token(p, 11)) // token=':'
19858 &&
19859 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
19860 &&
19861 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
19862 )
19863 {
19864 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"));
19865 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'with' statement on line %d" , a -> lineno );
19866 if (_res == NULL && PyErr_Occurred()) {
19867 p->error_indicator = 1;
19868 D(p->level--);
19869 return NULL;
19870 }
19871 goto done;
19872 }
19873 p->mark = _mark;
19874 D(fprintf(stderr, "%*c%s invalid_with_stmt_indent[%d-%d]: %s failed!\n", p->level, ' ',
19875 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' ':' NEWLINE !INDENT"));
19876 }
19877 _res = NULL;
19878 done:
19879 D(p->level--);
19880 return _res;
19881}
19882
Pablo Galindoe53f72a2021-06-04 00:11:43 +010019883// invalid_try_stmt: 'try' ':' NEWLINE !INDENT | 'try' ':' block !('except' | 'finally')
Pablo Galindo56c95df2021-04-21 15:28:21 +010019884static void *
19885invalid_try_stmt_rule(Parser *p)
19886{
19887 D(p->level++);
19888 if (p->error_indicator) {
19889 D(p->level--);
19890 return NULL;
19891 }
19892 void * _res = NULL;
19893 int _mark = p->mark;
19894 { // 'try' ':' NEWLINE !INDENT
19895 if (p->error_indicator) {
19896 D(p->level--);
19897 return NULL;
19898 }
19899 D(fprintf(stderr, "%*c> invalid_try_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'try' ':' NEWLINE !INDENT"));
19900 Token * _literal;
19901 Token * a;
19902 Token * newline_var;
19903 if (
19904 (a = _PyPegen_expect_token(p, 511)) // token='try'
19905 &&
19906 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
19907 &&
19908 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
19909 &&
19910 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
19911 )
19912 {
19913 D(fprintf(stderr, "%*c+ invalid_try_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'try' ':' NEWLINE !INDENT"));
19914 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'try' statement on line %d" , a -> lineno );
19915 if (_res == NULL && PyErr_Occurred()) {
19916 p->error_indicator = 1;
19917 D(p->level--);
19918 return NULL;
19919 }
19920 goto done;
19921 }
19922 p->mark = _mark;
19923 D(fprintf(stderr, "%*c%s invalid_try_stmt[%d-%d]: %s failed!\n", p->level, ' ',
19924 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'try' ':' NEWLINE !INDENT"));
19925 }
Pablo Galindoe53f72a2021-06-04 00:11:43 +010019926 { // 'try' ':' block !('except' | 'finally')
19927 if (p->error_indicator) {
19928 D(p->level--);
19929 return NULL;
19930 }
19931 D(fprintf(stderr, "%*c> invalid_try_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'try' ':' block !('except' | 'finally')"));
19932 Token * _keyword;
19933 Token * _literal;
19934 asdl_stmt_seq* block_var;
19935 if (
19936 (_keyword = _PyPegen_expect_token(p, 511)) // token='try'
19937 &&
19938 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
19939 &&
19940 (block_var = block_rule(p)) // block
19941 &&
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000019942 _PyPegen_lookahead(0, _tmp_171_rule, p)
Pablo Galindoe53f72a2021-06-04 00:11:43 +010019943 )
19944 {
19945 D(fprintf(stderr, "%*c+ invalid_try_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'try' ':' block !('except' | 'finally')"));
19946 _res = RAISE_SYNTAX_ERROR ( "expected 'except' or 'finally' block" );
19947 if (_res == NULL && PyErr_Occurred()) {
19948 p->error_indicator = 1;
19949 D(p->level--);
19950 return NULL;
19951 }
19952 goto done;
19953 }
19954 p->mark = _mark;
19955 D(fprintf(stderr, "%*c%s invalid_try_stmt[%d-%d]: %s failed!\n", p->level, ' ',
19956 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'try' ':' block !('except' | 'finally')"));
19957 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010019958 _res = NULL;
19959 done:
19960 D(p->level--);
19961 return _res;
19962}
19963
19964// invalid_except_stmt:
19965// | 'except' expression ',' expressions ['as' NAME] ':'
19966// | 'except' expression ['as' NAME] NEWLINE
19967// | 'except' NEWLINE
19968static void *
19969invalid_except_stmt_rule(Parser *p)
Pablo Galindo206cbda2021-02-07 18:42:21 +000019970{
19971 D(p->level++);
19972 if (p->error_indicator) {
19973 D(p->level--);
19974 return NULL;
19975 }
19976 void * _res = NULL;
19977 int _mark = p->mark;
19978 { // 'except' expression ',' expressions ['as' NAME] ':'
19979 if (p->error_indicator) {
19980 D(p->level--);
19981 return NULL;
19982 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010019983 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 +000019984 Token * _keyword;
19985 Token * _literal;
19986 Token * _literal_1;
19987 void *_opt_var;
19988 UNUSED(_opt_var); // Silence compiler warnings
19989 expr_ty a;
19990 expr_ty expressions_var;
19991 if (
19992 (_keyword = _PyPegen_expect_token(p, 521)) // token='except'
19993 &&
19994 (a = expression_rule(p)) // expression
19995 &&
19996 (_literal = _PyPegen_expect_token(p, 12)) // token=','
19997 &&
19998 (expressions_var = expressions_rule(p)) // expressions
19999 &&
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000020000 (_opt_var = _tmp_172_rule(p), !p->error_indicator) // ['as' NAME]
Pablo Galindo206cbda2021-02-07 18:42:21 +000020001 &&
20002 (_literal_1 = _PyPegen_expect_token(p, 11)) // token=':'
20003 )
20004 {
Pablo Galindo56c95df2021-04-21 15:28:21 +010020005 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 -070020006 _res = RAISE_SYNTAX_ERROR_STARTING_FROM ( a , "multiple exception types must be parenthesized" );
Pablo Galindo206cbda2021-02-07 18:42:21 +000020007 if (_res == NULL && PyErr_Occurred()) {
20008 p->error_indicator = 1;
20009 D(p->level--);
20010 return NULL;
20011 }
20012 goto done;
20013 }
20014 p->mark = _mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +010020015 D(fprintf(stderr, "%*c%s invalid_except_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo206cbda2021-02-07 18:42:21 +000020016 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' expression ',' expressions ['as' NAME] ':'"));
20017 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010020018 { // 'except' expression ['as' NAME] NEWLINE
Pablo Galindo206cbda2021-02-07 18:42:21 +000020019 if (p->error_indicator) {
20020 D(p->level--);
20021 return NULL;
20022 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010020023 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 +000020024 void *_opt_var;
20025 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindo56c95df2021-04-21 15:28:21 +010020026 Token * a;
Pablo Galindo206cbda2021-02-07 18:42:21 +000020027 expr_ty expression_var;
Pablo Galindo56c95df2021-04-21 15:28:21 +010020028 Token * newline_var;
Pablo Galindo206cbda2021-02-07 18:42:21 +000020029 if (
Pablo Galindo56c95df2021-04-21 15:28:21 +010020030 (a = _PyPegen_expect_token(p, 521)) // token='except'
Pablo Galindo206cbda2021-02-07 18:42:21 +000020031 &&
20032 (expression_var = expression_rule(p)) // expression
20033 &&
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000020034 (_opt_var = _tmp_173_rule(p), !p->error_indicator) // ['as' NAME]
Pablo Galindo206cbda2021-02-07 18:42:21 +000020035 &&
Pablo Galindo56c95df2021-04-21 15:28:21 +010020036 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
Pablo Galindo206cbda2021-02-07 18:42:21 +000020037 )
20038 {
Pablo Galindo56c95df2021-04-21 15:28:21 +010020039 D(fprintf(stderr, "%*c+ invalid_except_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' expression ['as' NAME] NEWLINE"));
20040 _res = RAISE_SYNTAX_ERROR ( "expected ':'" );
20041 if (_res == NULL && PyErr_Occurred()) {
20042 p->error_indicator = 1;
20043 D(p->level--);
20044 return NULL;
20045 }
Pablo Galindo206cbda2021-02-07 18:42:21 +000020046 goto done;
20047 }
20048 p->mark = _mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +010020049 D(fprintf(stderr, "%*c%s invalid_except_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20050 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' expression ['as' NAME] NEWLINE"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000020051 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010020052 { // 'except' NEWLINE
Pablo Galindo206cbda2021-02-07 18:42:21 +000020053 if (p->error_indicator) {
20054 D(p->level--);
20055 return NULL;
20056 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010020057 D(fprintf(stderr, "%*c> invalid_except_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' NEWLINE"));
20058 Token * a;
20059 Token * newline_var;
Pablo Galindo206cbda2021-02-07 18:42:21 +000020060 if (
Pablo Galindo56c95df2021-04-21 15:28:21 +010020061 (a = _PyPegen_expect_token(p, 521)) // token='except'
Pablo Galindo206cbda2021-02-07 18:42:21 +000020062 &&
Pablo Galindo56c95df2021-04-21 15:28:21 +010020063 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
Pablo Galindo206cbda2021-02-07 18:42:21 +000020064 )
20065 {
Pablo Galindo56c95df2021-04-21 15:28:21 +010020066 D(fprintf(stderr, "%*c+ invalid_except_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' NEWLINE"));
20067 _res = RAISE_SYNTAX_ERROR ( "expected ':'" );
20068 if (_res == NULL && PyErr_Occurred()) {
20069 p->error_indicator = 1;
20070 D(p->level--);
20071 return NULL;
20072 }
Pablo Galindo206cbda2021-02-07 18:42:21 +000020073 goto done;
20074 }
20075 p->mark = _mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +010020076 D(fprintf(stderr, "%*c%s invalid_except_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20077 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' NEWLINE"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000020078 }
20079 _res = NULL;
20080 done:
20081 D(p->level--);
20082 return _res;
20083}
20084
Pablo Galindo56c95df2021-04-21 15:28:21 +010020085// invalid_finally_stmt: 'finally' ':' NEWLINE !INDENT
20086static void *
20087invalid_finally_stmt_rule(Parser *p)
20088{
20089 D(p->level++);
20090 if (p->error_indicator) {
20091 D(p->level--);
20092 return NULL;
20093 }
20094 void * _res = NULL;
20095 int _mark = p->mark;
20096 { // 'finally' ':' NEWLINE !INDENT
20097 if (p->error_indicator) {
20098 D(p->level--);
20099 return NULL;
20100 }
20101 D(fprintf(stderr, "%*c> invalid_finally_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'finally' ':' NEWLINE !INDENT"));
20102 Token * _literal;
20103 Token * a;
20104 Token * newline_var;
20105 if (
20106 (a = _PyPegen_expect_token(p, 522)) // token='finally'
20107 &&
20108 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
20109 &&
20110 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20111 &&
20112 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20113 )
20114 {
20115 D(fprintf(stderr, "%*c+ invalid_finally_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'finally' ':' NEWLINE !INDENT"));
20116 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'finally' statement on line %d" , a -> lineno );
20117 if (_res == NULL && PyErr_Occurred()) {
20118 p->error_indicator = 1;
20119 D(p->level--);
20120 return NULL;
20121 }
20122 goto done;
20123 }
20124 p->mark = _mark;
20125 D(fprintf(stderr, "%*c%s invalid_finally_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20126 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'finally' ':' NEWLINE !INDENT"));
20127 }
20128 _res = NULL;
20129 done:
20130 D(p->level--);
20131 return _res;
20132}
20133
20134// invalid_except_stmt_indent:
20135// | 'except' expression ['as' NAME] ':' NEWLINE !INDENT
20136// | 'except' ':' NEWLINE !INDENT
20137static void *
20138invalid_except_stmt_indent_rule(Parser *p)
20139{
20140 D(p->level++);
20141 if (p->error_indicator) {
20142 D(p->level--);
20143 return NULL;
20144 }
20145 void * _res = NULL;
20146 int _mark = p->mark;
20147 { // 'except' expression ['as' NAME] ':' NEWLINE !INDENT
20148 if (p->error_indicator) {
20149 D(p->level--);
20150 return NULL;
20151 }
20152 D(fprintf(stderr, "%*c> invalid_except_stmt_indent[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' expression ['as' NAME] ':' NEWLINE !INDENT"));
20153 Token * _literal;
20154 void *_opt_var;
20155 UNUSED(_opt_var); // Silence compiler warnings
20156 Token * a;
20157 expr_ty expression_var;
20158 Token * newline_var;
20159 if (
20160 (a = _PyPegen_expect_token(p, 521)) // token='except'
20161 &&
20162 (expression_var = expression_rule(p)) // expression
20163 &&
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000020164 (_opt_var = _tmp_174_rule(p), !p->error_indicator) // ['as' NAME]
Pablo Galindo56c95df2021-04-21 15:28:21 +010020165 &&
20166 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
20167 &&
20168 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20169 &&
20170 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20171 )
20172 {
20173 D(fprintf(stderr, "%*c+ invalid_except_stmt_indent[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' expression ['as' NAME] ':' NEWLINE !INDENT"));
20174 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'except' statement on line %d" , a -> lineno );
20175 if (_res == NULL && PyErr_Occurred()) {
20176 p->error_indicator = 1;
20177 D(p->level--);
20178 return NULL;
20179 }
20180 goto done;
20181 }
20182 p->mark = _mark;
20183 D(fprintf(stderr, "%*c%s invalid_except_stmt_indent[%d-%d]: %s failed!\n", p->level, ' ',
20184 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' expression ['as' NAME] ':' NEWLINE !INDENT"));
20185 }
20186 { // 'except' ':' NEWLINE !INDENT
20187 if (p->error_indicator) {
20188 D(p->level--);
20189 return NULL;
20190 }
20191 D(fprintf(stderr, "%*c> invalid_except_stmt_indent[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' ':' NEWLINE !INDENT"));
20192 Token * _literal;
20193 Token * a;
20194 Token * newline_var;
20195 if (
20196 (a = _PyPegen_expect_token(p, 521)) // token='except'
20197 &&
20198 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
20199 &&
20200 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20201 &&
20202 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20203 )
20204 {
20205 D(fprintf(stderr, "%*c+ invalid_except_stmt_indent[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' ':' NEWLINE !INDENT"));
20206 _res = RAISE_SYNTAX_ERROR ( "expected an indented block after except statement on line %d" , a -> lineno );
20207 if (_res == NULL && PyErr_Occurred()) {
20208 p->error_indicator = 1;
20209 D(p->level--);
20210 return NULL;
20211 }
20212 goto done;
20213 }
20214 p->mark = _mark;
20215 D(fprintf(stderr, "%*c%s invalid_except_stmt_indent[%d-%d]: %s failed!\n", p->level, ' ',
20216 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' ':' NEWLINE !INDENT"));
20217 }
20218 _res = NULL;
20219 done:
20220 D(p->level--);
20221 return _res;
20222}
20223
20224// invalid_match_stmt:
20225// | "match" subject_expr !':'
20226// | "match" subject_expr ':' NEWLINE !INDENT
Pablo Galindo08fb8ac2021-03-18 01:03:11 +000020227static void *
20228invalid_match_stmt_rule(Parser *p)
20229{
20230 D(p->level++);
20231 if (p->error_indicator) {
20232 D(p->level--);
20233 return NULL;
20234 }
20235 void * _res = NULL;
20236 int _mark = p->mark;
20237 { // "match" subject_expr !':'
20238 if (p->error_indicator) {
20239 D(p->level--);
20240 return NULL;
20241 }
20242 D(fprintf(stderr, "%*c> invalid_match_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"match\" subject_expr !':'"));
20243 expr_ty _keyword;
20244 expr_ty subject_expr_var;
20245 if (
20246 (_keyword = _PyPegen_expect_soft_keyword(p, "match")) // soft_keyword='"match"'
20247 &&
20248 (subject_expr_var = subject_expr_rule(p)) // subject_expr
20249 &&
20250 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 11) // token=':'
20251 )
20252 {
20253 D(fprintf(stderr, "%*c+ invalid_match_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"match\" subject_expr !':'"));
20254 _res = CHECK_VERSION ( void * , 10 , "Pattern matching is" , RAISE_SYNTAX_ERROR ( "expected ':'" ) );
20255 if (_res == NULL && PyErr_Occurred()) {
20256 p->error_indicator = 1;
20257 D(p->level--);
20258 return NULL;
20259 }
20260 goto done;
20261 }
20262 p->mark = _mark;
20263 D(fprintf(stderr, "%*c%s invalid_match_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20264 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"match\" subject_expr !':'"));
20265 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010020266 { // "match" subject_expr ':' NEWLINE !INDENT
20267 if (p->error_indicator) {
20268 D(p->level--);
20269 return NULL;
20270 }
20271 D(fprintf(stderr, "%*c> invalid_match_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"match\" subject_expr ':' NEWLINE !INDENT"));
20272 Token * _literal;
20273 expr_ty a;
20274 Token * newline_var;
20275 expr_ty subject;
20276 if (
20277 (a = _PyPegen_expect_soft_keyword(p, "match")) // soft_keyword='"match"'
20278 &&
20279 (subject = subject_expr_rule(p)) // subject_expr
20280 &&
20281 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
20282 &&
20283 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20284 &&
20285 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20286 )
20287 {
20288 D(fprintf(stderr, "%*c+ invalid_match_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"match\" subject_expr ':' NEWLINE !INDENT"));
20289 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'match' statement on line %d" , a -> lineno );
20290 if (_res == NULL && PyErr_Occurred()) {
20291 p->error_indicator = 1;
20292 D(p->level--);
20293 return NULL;
20294 }
20295 goto done;
20296 }
20297 p->mark = _mark;
20298 D(fprintf(stderr, "%*c%s invalid_match_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20299 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"match\" subject_expr ':' NEWLINE !INDENT"));
20300 }
Pablo Galindo08fb8ac2021-03-18 01:03:11 +000020301 _res = NULL;
20302 done:
20303 D(p->level--);
20304 return _res;
20305}
20306
Pablo Galindo56c95df2021-04-21 15:28:21 +010020307// invalid_case_block:
20308// | "case" patterns guard? !':'
20309// | "case" patterns guard? ':' NEWLINE !INDENT
Pablo Galindo08fb8ac2021-03-18 01:03:11 +000020310static void *
20311invalid_case_block_rule(Parser *p)
20312{
20313 D(p->level++);
20314 if (p->error_indicator) {
20315 D(p->level--);
20316 return NULL;
20317 }
20318 void * _res = NULL;
20319 int _mark = p->mark;
20320 { // "case" patterns guard? !':'
20321 if (p->error_indicator) {
20322 D(p->level--);
20323 return NULL;
20324 }
20325 D(fprintf(stderr, "%*c> invalid_case_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"case\" patterns guard? !':'"));
20326 expr_ty _keyword;
20327 void *_opt_var;
20328 UNUSED(_opt_var); // Silence compiler warnings
Nick Coghlan1e7b8582021-04-29 15:58:44 +100020329 pattern_ty patterns_var;
Pablo Galindo08fb8ac2021-03-18 01:03:11 +000020330 if (
20331 (_keyword = _PyPegen_expect_soft_keyword(p, "case")) // soft_keyword='"case"'
20332 &&
20333 (patterns_var = patterns_rule(p)) // patterns
20334 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +020020335 (_opt_var = guard_rule(p), !p->error_indicator) // guard?
Pablo Galindo08fb8ac2021-03-18 01:03:11 +000020336 &&
20337 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 11) // token=':'
20338 )
20339 {
20340 D(fprintf(stderr, "%*c+ invalid_case_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"case\" patterns guard? !':'"));
20341 _res = RAISE_SYNTAX_ERROR ( "expected ':'" );
20342 if (_res == NULL && PyErr_Occurred()) {
20343 p->error_indicator = 1;
20344 D(p->level--);
20345 return NULL;
20346 }
20347 goto done;
20348 }
20349 p->mark = _mark;
20350 D(fprintf(stderr, "%*c%s invalid_case_block[%d-%d]: %s failed!\n", p->level, ' ',
20351 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"case\" patterns guard? !':'"));
20352 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010020353 { // "case" patterns guard? ':' NEWLINE !INDENT
20354 if (p->error_indicator) {
20355 D(p->level--);
20356 return NULL;
20357 }
20358 D(fprintf(stderr, "%*c> invalid_case_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"case\" patterns guard? ':' NEWLINE !INDENT"));
20359 Token * _literal;
20360 void *_opt_var;
20361 UNUSED(_opt_var); // Silence compiler warnings
20362 expr_ty a;
20363 Token * newline_var;
Nick Coghlan1e7b8582021-04-29 15:58:44 +100020364 pattern_ty patterns_var;
Pablo Galindo56c95df2021-04-21 15:28:21 +010020365 if (
20366 (a = _PyPegen_expect_soft_keyword(p, "case")) // soft_keyword='"case"'
20367 &&
20368 (patterns_var = patterns_rule(p)) // patterns
20369 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +020020370 (_opt_var = guard_rule(p), !p->error_indicator) // guard?
Pablo Galindo56c95df2021-04-21 15:28:21 +010020371 &&
20372 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
20373 &&
20374 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20375 &&
20376 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20377 )
20378 {
20379 D(fprintf(stderr, "%*c+ invalid_case_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"case\" patterns guard? ':' NEWLINE !INDENT"));
20380 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'case' statement on line %d" , a -> lineno );
20381 if (_res == NULL && PyErr_Occurred()) {
20382 p->error_indicator = 1;
20383 D(p->level--);
20384 return NULL;
20385 }
20386 goto done;
20387 }
20388 p->mark = _mark;
20389 D(fprintf(stderr, "%*c%s invalid_case_block[%d-%d]: %s failed!\n", p->level, ' ',
20390 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"case\" patterns guard? ':' NEWLINE !INDENT"));
20391 }
Pablo Galindo08fb8ac2021-03-18 01:03:11 +000020392 _res = NULL;
20393 done:
20394 D(p->level--);
20395 return _res;
20396}
20397
Pablo Galindoa8c418d2021-06-18 22:15:57 +010020398// invalid_as_pattern: or_pattern 'as' "_" | or_pattern 'as' !NAME expression
20399static void *
20400invalid_as_pattern_rule(Parser *p)
20401{
20402 D(p->level++);
20403 if (p->error_indicator) {
20404 D(p->level--);
20405 return NULL;
20406 }
20407 void * _res = NULL;
20408 int _mark = p->mark;
20409 { // or_pattern 'as' "_"
20410 if (p->error_indicator) {
20411 D(p->level--);
20412 return NULL;
20413 }
20414 D(fprintf(stderr, "%*c> invalid_as_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "or_pattern 'as' \"_\""));
20415 Token * _keyword;
20416 expr_ty a;
20417 pattern_ty or_pattern_var;
20418 if (
20419 (or_pattern_var = or_pattern_rule(p)) // or_pattern
20420 &&
20421 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
20422 &&
20423 (a = _PyPegen_expect_soft_keyword(p, "_")) // soft_keyword='"_"'
20424 )
20425 {
20426 D(fprintf(stderr, "%*c+ invalid_as_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "or_pattern 'as' \"_\""));
20427 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "cannot use '_' as a target" );
20428 if (_res == NULL && PyErr_Occurred()) {
20429 p->error_indicator = 1;
20430 D(p->level--);
20431 return NULL;
20432 }
20433 goto done;
20434 }
20435 p->mark = _mark;
20436 D(fprintf(stderr, "%*c%s invalid_as_pattern[%d-%d]: %s failed!\n", p->level, ' ',
20437 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "or_pattern 'as' \"_\""));
20438 }
20439 { // or_pattern 'as' !NAME expression
20440 if (p->error_indicator) {
20441 D(p->level--);
20442 return NULL;
20443 }
20444 D(fprintf(stderr, "%*c> invalid_as_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "or_pattern 'as' !NAME expression"));
20445 Token * _keyword;
20446 expr_ty a;
20447 pattern_ty or_pattern_var;
20448 if (
20449 (or_pattern_var = or_pattern_rule(p)) // or_pattern
20450 &&
20451 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
20452 &&
20453 _PyPegen_lookahead_with_name(0, _PyPegen_name_token, p)
20454 &&
20455 (a = expression_rule(p)) // expression
20456 )
20457 {
20458 D(fprintf(stderr, "%*c+ invalid_as_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "or_pattern 'as' !NAME expression"));
20459 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "invalid pattern target" );
20460 if (_res == NULL && PyErr_Occurred()) {
20461 p->error_indicator = 1;
20462 D(p->level--);
20463 return NULL;
20464 }
20465 goto done;
20466 }
20467 p->mark = _mark;
20468 D(fprintf(stderr, "%*c%s invalid_as_pattern[%d-%d]: %s failed!\n", p->level, ' ',
20469 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "or_pattern 'as' !NAME expression"));
20470 }
20471 _res = NULL;
20472 done:
20473 D(p->level--);
20474 return _res;
20475}
20476
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070020477// invalid_class_pattern: name_or_attr '(' invalid_class_argument_pattern
20478static void *
20479invalid_class_pattern_rule(Parser *p)
20480{
20481 D(p->level++);
20482 if (p->error_indicator) {
20483 D(p->level--);
20484 return NULL;
20485 }
20486 void * _res = NULL;
20487 int _mark = p->mark;
20488 { // name_or_attr '(' invalid_class_argument_pattern
20489 if (p->error_indicator) {
20490 D(p->level--);
20491 return NULL;
20492 }
20493 D(fprintf(stderr, "%*c> invalid_class_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' invalid_class_argument_pattern"));
20494 Token * _literal;
20495 asdl_pattern_seq* a;
20496 expr_ty name_or_attr_var;
20497 if (
20498 (name_or_attr_var = name_or_attr_rule(p)) // name_or_attr
20499 &&
20500 (_literal = _PyPegen_expect_token(p, 7)) // token='('
20501 &&
20502 (a = invalid_class_argument_pattern_rule(p)) // invalid_class_argument_pattern
20503 )
20504 {
20505 D(fprintf(stderr, "%*c+ invalid_class_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' invalid_class_argument_pattern"));
20506 _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( PyPegen_first_item ( a , pattern_ty ) , PyPegen_last_item ( a , pattern_ty ) , "positional patterns follow keyword patterns" );
20507 if (_res == NULL && PyErr_Occurred()) {
20508 p->error_indicator = 1;
20509 D(p->level--);
20510 return NULL;
20511 }
20512 goto done;
20513 }
20514 p->mark = _mark;
20515 D(fprintf(stderr, "%*c%s invalid_class_pattern[%d-%d]: %s failed!\n", p->level, ' ',
20516 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "name_or_attr '(' invalid_class_argument_pattern"));
20517 }
20518 _res = NULL;
20519 done:
20520 D(p->level--);
20521 return _res;
20522}
20523
20524// invalid_class_argument_pattern:
20525// | [positional_patterns ','] keyword_patterns ',' positional_patterns
20526static asdl_pattern_seq*
20527invalid_class_argument_pattern_rule(Parser *p)
20528{
20529 D(p->level++);
20530 if (p->error_indicator) {
20531 D(p->level--);
20532 return NULL;
20533 }
20534 asdl_pattern_seq* _res = NULL;
20535 int _mark = p->mark;
20536 { // [positional_patterns ','] keyword_patterns ',' positional_patterns
20537 if (p->error_indicator) {
20538 D(p->level--);
20539 return NULL;
20540 }
20541 D(fprintf(stderr, "%*c> invalid_class_argument_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "[positional_patterns ','] keyword_patterns ',' positional_patterns"));
20542 Token * _literal;
20543 void *_opt_var;
20544 UNUSED(_opt_var); // Silence compiler warnings
20545 asdl_pattern_seq* a;
20546 asdl_seq* keyword_patterns_var;
20547 if (
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000020548 (_opt_var = _tmp_175_rule(p), !p->error_indicator) // [positional_patterns ',']
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070020549 &&
20550 (keyword_patterns_var = keyword_patterns_rule(p)) // keyword_patterns
20551 &&
20552 (_literal = _PyPegen_expect_token(p, 12)) // token=','
20553 &&
20554 (a = positional_patterns_rule(p)) // positional_patterns
20555 )
20556 {
20557 D(fprintf(stderr, "%*c+ invalid_class_argument_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "[positional_patterns ','] keyword_patterns ',' positional_patterns"));
20558 _res = a;
20559 if (_res == NULL && PyErr_Occurred()) {
20560 p->error_indicator = 1;
20561 D(p->level--);
20562 return NULL;
20563 }
20564 goto done;
20565 }
20566 p->mark = _mark;
20567 D(fprintf(stderr, "%*c%s invalid_class_argument_pattern[%d-%d]: %s failed!\n", p->level, ' ',
20568 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "[positional_patterns ','] keyword_patterns ',' positional_patterns"));
20569 }
20570 _res = NULL;
20571 done:
20572 D(p->level--);
20573 return _res;
20574}
20575
Pablo Galindo56c95df2021-04-21 15:28:21 +010020576// invalid_if_stmt:
20577// | 'if' named_expression NEWLINE
20578// | 'if' named_expression ':' NEWLINE !INDENT
Pablo Galindob86ed8e2021-04-12 16:59:30 +010020579static void *
20580invalid_if_stmt_rule(Parser *p)
20581{
20582 D(p->level++);
20583 if (p->error_indicator) {
20584 D(p->level--);
20585 return NULL;
20586 }
20587 void * _res = NULL;
20588 int _mark = p->mark;
20589 { // 'if' named_expression NEWLINE
20590 if (p->error_indicator) {
20591 D(p->level--);
20592 return NULL;
20593 }
20594 D(fprintf(stderr, "%*c> invalid_if_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' named_expression NEWLINE"));
20595 Token * _keyword;
20596 expr_ty named_expression_var;
20597 Token * newline_var;
20598 if (
20599 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
20600 &&
20601 (named_expression_var = named_expression_rule(p)) // named_expression
20602 &&
20603 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20604 )
20605 {
20606 D(fprintf(stderr, "%*c+ invalid_if_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' named_expression NEWLINE"));
20607 _res = RAISE_SYNTAX_ERROR ( "expected ':'" );
20608 if (_res == NULL && PyErr_Occurred()) {
20609 p->error_indicator = 1;
20610 D(p->level--);
20611 return NULL;
20612 }
20613 goto done;
20614 }
20615 p->mark = _mark;
20616 D(fprintf(stderr, "%*c%s invalid_if_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20617 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' named_expression NEWLINE"));
20618 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010020619 { // 'if' named_expression ':' NEWLINE !INDENT
20620 if (p->error_indicator) {
20621 D(p->level--);
20622 return NULL;
20623 }
20624 D(fprintf(stderr, "%*c> invalid_if_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' named_expression ':' NEWLINE !INDENT"));
20625 Token * _literal;
20626 Token * a;
20627 expr_ty a_1;
20628 Token * newline_var;
20629 if (
20630 (a = _PyPegen_expect_token(p, 510)) // token='if'
20631 &&
20632 (a_1 = named_expression_rule(p)) // named_expression
20633 &&
20634 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
20635 &&
20636 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20637 &&
20638 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20639 )
20640 {
20641 D(fprintf(stderr, "%*c+ invalid_if_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' named_expression ':' NEWLINE !INDENT"));
20642 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'if' statement on line %d" , a -> lineno );
20643 if (_res == NULL && PyErr_Occurred()) {
20644 p->error_indicator = 1;
20645 D(p->level--);
20646 return NULL;
20647 }
20648 goto done;
20649 }
20650 p->mark = _mark;
20651 D(fprintf(stderr, "%*c%s invalid_if_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20652 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' named_expression ':' NEWLINE !INDENT"));
20653 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010020654 _res = NULL;
20655 done:
20656 D(p->level--);
20657 return _res;
20658}
20659
Pablo Galindo56c95df2021-04-21 15:28:21 +010020660// invalid_elif_stmt:
20661// | 'elif' named_expression NEWLINE
20662// | 'elif' named_expression ':' NEWLINE !INDENT
Pablo Galindob86ed8e2021-04-12 16:59:30 +010020663static void *
20664invalid_elif_stmt_rule(Parser *p)
20665{
20666 D(p->level++);
20667 if (p->error_indicator) {
20668 D(p->level--);
20669 return NULL;
20670 }
20671 void * _res = NULL;
20672 int _mark = p->mark;
20673 { // 'elif' named_expression NEWLINE
20674 if (p->error_indicator) {
20675 D(p->level--);
20676 return NULL;
20677 }
20678 D(fprintf(stderr, "%*c> invalid_elif_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'elif' named_expression NEWLINE"));
20679 Token * _keyword;
20680 expr_ty named_expression_var;
20681 Token * newline_var;
20682 if (
20683 (_keyword = _PyPegen_expect_token(p, 515)) // token='elif'
20684 &&
20685 (named_expression_var = named_expression_rule(p)) // named_expression
20686 &&
20687 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20688 )
20689 {
20690 D(fprintf(stderr, "%*c+ invalid_elif_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'elif' named_expression NEWLINE"));
20691 _res = RAISE_SYNTAX_ERROR ( "expected ':'" );
20692 if (_res == NULL && PyErr_Occurred()) {
20693 p->error_indicator = 1;
20694 D(p->level--);
20695 return NULL;
20696 }
20697 goto done;
20698 }
20699 p->mark = _mark;
20700 D(fprintf(stderr, "%*c%s invalid_elif_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20701 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'elif' named_expression NEWLINE"));
20702 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010020703 { // 'elif' named_expression ':' NEWLINE !INDENT
20704 if (p->error_indicator) {
20705 D(p->level--);
20706 return NULL;
20707 }
20708 D(fprintf(stderr, "%*c> invalid_elif_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'elif' named_expression ':' NEWLINE !INDENT"));
20709 Token * _literal;
20710 Token * a;
20711 expr_ty named_expression_var;
20712 Token * newline_var;
20713 if (
20714 (a = _PyPegen_expect_token(p, 515)) // token='elif'
20715 &&
20716 (named_expression_var = named_expression_rule(p)) // named_expression
20717 &&
20718 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
20719 &&
20720 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20721 &&
20722 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20723 )
20724 {
20725 D(fprintf(stderr, "%*c+ invalid_elif_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'elif' named_expression ':' NEWLINE !INDENT"));
20726 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'elif' statement on line %d" , a -> lineno );
20727 if (_res == NULL && PyErr_Occurred()) {
20728 p->error_indicator = 1;
20729 D(p->level--);
20730 return NULL;
20731 }
20732 goto done;
20733 }
20734 p->mark = _mark;
20735 D(fprintf(stderr, "%*c%s invalid_elif_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20736 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'elif' named_expression ':' NEWLINE !INDENT"));
20737 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010020738 _res = NULL;
20739 done:
20740 D(p->level--);
20741 return _res;
20742}
20743
Pablo Galindo56c95df2021-04-21 15:28:21 +010020744// invalid_else_stmt: 'else' ':' NEWLINE !INDENT
20745static void *
20746invalid_else_stmt_rule(Parser *p)
20747{
20748 D(p->level++);
20749 if (p->error_indicator) {
20750 D(p->level--);
20751 return NULL;
20752 }
20753 void * _res = NULL;
20754 int _mark = p->mark;
20755 { // 'else' ':' NEWLINE !INDENT
20756 if (p->error_indicator) {
20757 D(p->level--);
20758 return NULL;
20759 }
20760 D(fprintf(stderr, "%*c> invalid_else_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'else' ':' NEWLINE !INDENT"));
20761 Token * _literal;
20762 Token * a;
20763 Token * newline_var;
20764 if (
20765 (a = _PyPegen_expect_token(p, 516)) // token='else'
20766 &&
20767 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
20768 &&
20769 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20770 &&
20771 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20772 )
20773 {
20774 D(fprintf(stderr, "%*c+ invalid_else_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'else' ':' NEWLINE !INDENT"));
20775 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'else' statement on line %d" , a -> lineno );
20776 if (_res == NULL && PyErr_Occurred()) {
20777 p->error_indicator = 1;
20778 D(p->level--);
20779 return NULL;
20780 }
20781 goto done;
20782 }
20783 p->mark = _mark;
20784 D(fprintf(stderr, "%*c%s invalid_else_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20785 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'else' ':' NEWLINE !INDENT"));
20786 }
20787 _res = NULL;
20788 done:
20789 D(p->level--);
20790 return _res;
20791}
20792
20793// invalid_while_stmt:
20794// | 'while' named_expression NEWLINE
20795// | 'while' named_expression ':' NEWLINE !INDENT
Pablo Galindob86ed8e2021-04-12 16:59:30 +010020796static void *
20797invalid_while_stmt_rule(Parser *p)
20798{
20799 D(p->level++);
20800 if (p->error_indicator) {
20801 D(p->level--);
20802 return NULL;
20803 }
20804 void * _res = NULL;
20805 int _mark = p->mark;
20806 { // 'while' named_expression NEWLINE
20807 if (p->error_indicator) {
20808 D(p->level--);
20809 return NULL;
20810 }
20811 D(fprintf(stderr, "%*c> invalid_while_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'while' named_expression NEWLINE"));
20812 Token * _keyword;
20813 expr_ty named_expression_var;
20814 Token * newline_var;
20815 if (
20816 (_keyword = _PyPegen_expect_token(p, 512)) // token='while'
20817 &&
20818 (named_expression_var = named_expression_rule(p)) // named_expression
20819 &&
20820 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20821 )
20822 {
20823 D(fprintf(stderr, "%*c+ invalid_while_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'while' named_expression NEWLINE"));
20824 _res = RAISE_SYNTAX_ERROR ( "expected ':'" );
20825 if (_res == NULL && PyErr_Occurred()) {
20826 p->error_indicator = 1;
20827 D(p->level--);
20828 return NULL;
20829 }
20830 goto done;
20831 }
20832 p->mark = _mark;
20833 D(fprintf(stderr, "%*c%s invalid_while_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20834 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'while' named_expression NEWLINE"));
20835 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010020836 { // 'while' named_expression ':' NEWLINE !INDENT
20837 if (p->error_indicator) {
20838 D(p->level--);
20839 return NULL;
20840 }
20841 D(fprintf(stderr, "%*c> invalid_while_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'while' named_expression ':' NEWLINE !INDENT"));
20842 Token * _literal;
20843 Token * a;
20844 expr_ty named_expression_var;
20845 Token * newline_var;
20846 if (
20847 (a = _PyPegen_expect_token(p, 512)) // token='while'
20848 &&
20849 (named_expression_var = named_expression_rule(p)) // named_expression
20850 &&
20851 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
20852 &&
20853 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20854 &&
20855 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20856 )
20857 {
20858 D(fprintf(stderr, "%*c+ invalid_while_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'while' named_expression ':' NEWLINE !INDENT"));
20859 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'while' statement on line %d" , a -> lineno );
20860 if (_res == NULL && PyErr_Occurred()) {
20861 p->error_indicator = 1;
20862 D(p->level--);
20863 return NULL;
20864 }
20865 goto done;
20866 }
20867 p->mark = _mark;
20868 D(fprintf(stderr, "%*c%s invalid_while_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20869 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'while' named_expression ':' NEWLINE !INDENT"));
20870 }
20871 _res = NULL;
20872 done:
20873 D(p->level--);
20874 return _res;
20875}
20876
20877// invalid_for_stmt: ASYNC? 'for' star_targets 'in' star_expressions ':' NEWLINE !INDENT
20878static void *
20879invalid_for_stmt_rule(Parser *p)
20880{
20881 D(p->level++);
20882 if (p->error_indicator) {
20883 D(p->level--);
20884 return NULL;
20885 }
20886 void * _res = NULL;
20887 int _mark = p->mark;
20888 { // ASYNC? 'for' star_targets 'in' star_expressions ':' NEWLINE !INDENT
20889 if (p->error_indicator) {
20890 D(p->level--);
20891 return NULL;
20892 }
20893 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"));
20894 Token * _keyword;
20895 Token * _literal;
20896 void *_opt_var;
20897 UNUSED(_opt_var); // Silence compiler warnings
20898 Token * a;
20899 Token * newline_var;
20900 expr_ty star_expressions_var;
20901 expr_ty star_targets_var;
20902 if (
Łukasz Langa5c9cab52021-10-19 22:31:18 +020020903 (_opt_var = _PyPegen_expect_token(p, ASYNC), !p->error_indicator) // ASYNC?
Pablo Galindo56c95df2021-04-21 15:28:21 +010020904 &&
20905 (a = _PyPegen_expect_token(p, 517)) // token='for'
20906 &&
20907 (star_targets_var = star_targets_rule(p)) // star_targets
20908 &&
20909 (_keyword = _PyPegen_expect_token(p, 518)) // token='in'
20910 &&
20911 (star_expressions_var = star_expressions_rule(p)) // star_expressions
20912 &&
20913 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
20914 &&
20915 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20916 &&
20917 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20918 )
20919 {
20920 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"));
20921 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'for' statement on line %d" , a -> lineno );
20922 if (_res == NULL && PyErr_Occurred()) {
20923 p->error_indicator = 1;
20924 D(p->level--);
20925 return NULL;
20926 }
20927 goto done;
20928 }
20929 p->mark = _mark;
20930 D(fprintf(stderr, "%*c%s invalid_for_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20931 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'for' star_targets 'in' star_expressions ':' NEWLINE !INDENT"));
20932 }
20933 _res = NULL;
20934 done:
20935 D(p->level--);
20936 return _res;
20937}
20938
20939// invalid_def_raw:
20940// | ASYNC? 'def' NAME '(' params? ')' ['->' expression] ':' NEWLINE !INDENT
20941static void *
20942invalid_def_raw_rule(Parser *p)
20943{
20944 D(p->level++);
20945 if (p->error_indicator) {
20946 D(p->level--);
20947 return NULL;
20948 }
20949 void * _res = NULL;
20950 int _mark = p->mark;
20951 { // ASYNC? 'def' NAME '(' params? ')' ['->' expression] ':' NEWLINE !INDENT
20952 if (p->error_indicator) {
20953 D(p->level--);
20954 return NULL;
20955 }
20956 D(fprintf(stderr, "%*c> invalid_def_raw[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC? 'def' NAME '(' params? ')' ['->' expression] ':' NEWLINE !INDENT"));
20957 Token * _literal;
20958 Token * _literal_1;
20959 Token * _literal_2;
20960 void *_opt_var;
20961 UNUSED(_opt_var); // Silence compiler warnings
20962 void *_opt_var_1;
20963 UNUSED(_opt_var_1); // Silence compiler warnings
20964 void *_opt_var_2;
20965 UNUSED(_opt_var_2); // Silence compiler warnings
20966 Token * a;
20967 expr_ty name_var;
20968 Token * newline_var;
20969 if (
Łukasz Langa5c9cab52021-10-19 22:31:18 +020020970 (_opt_var = _PyPegen_expect_token(p, ASYNC), !p->error_indicator) // ASYNC?
Pablo Galindo56c95df2021-04-21 15:28:21 +010020971 &&
20972 (a = _PyPegen_expect_token(p, 526)) // token='def'
20973 &&
20974 (name_var = _PyPegen_name_token(p)) // NAME
20975 &&
20976 (_literal = _PyPegen_expect_token(p, 7)) // token='('
20977 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +020020978 (_opt_var_1 = params_rule(p), !p->error_indicator) // params?
Pablo Galindo56c95df2021-04-21 15:28:21 +010020979 &&
20980 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
20981 &&
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000020982 (_opt_var_2 = _tmp_176_rule(p), !p->error_indicator) // ['->' expression]
Pablo Galindo56c95df2021-04-21 15:28:21 +010020983 &&
20984 (_literal_2 = _PyPegen_expect_token(p, 11)) // token=':'
20985 &&
20986 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20987 &&
20988 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20989 )
20990 {
20991 D(fprintf(stderr, "%*c+ invalid_def_raw[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC? 'def' NAME '(' params? ')' ['->' expression] ':' NEWLINE !INDENT"));
20992 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after function definition on line %d" , a -> lineno );
20993 if (_res == NULL && PyErr_Occurred()) {
20994 p->error_indicator = 1;
20995 D(p->level--);
20996 return NULL;
20997 }
20998 goto done;
20999 }
21000 p->mark = _mark;
21001 D(fprintf(stderr, "%*c%s invalid_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
21002 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'def' NAME '(' params? ')' ['->' expression] ':' NEWLINE !INDENT"));
21003 }
21004 _res = NULL;
21005 done:
21006 D(p->level--);
21007 return _res;
21008}
21009
21010// invalid_class_def_raw: 'class' NAME ['(' arguments? ')'] ':' NEWLINE !INDENT
21011static void *
21012invalid_class_def_raw_rule(Parser *p)
21013{
21014 D(p->level++);
21015 if (p->error_indicator) {
21016 D(p->level--);
21017 return NULL;
21018 }
21019 void * _res = NULL;
21020 int _mark = p->mark;
21021 { // 'class' NAME ['(' arguments? ')'] ':' NEWLINE !INDENT
21022 if (p->error_indicator) {
21023 D(p->level--);
21024 return NULL;
21025 }
21026 D(fprintf(stderr, "%*c> invalid_class_def_raw[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'class' NAME ['(' arguments? ')'] ':' NEWLINE !INDENT"));
21027 Token * _literal;
21028 void *_opt_var;
21029 UNUSED(_opt_var); // Silence compiler warnings
21030 Token * a;
21031 expr_ty name_var;
21032 Token * newline_var;
21033 if (
21034 (a = _PyPegen_expect_token(p, 527)) // token='class'
21035 &&
21036 (name_var = _PyPegen_name_token(p)) // NAME
21037 &&
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000021038 (_opt_var = _tmp_177_rule(p), !p->error_indicator) // ['(' arguments? ')']
Pablo Galindo56c95df2021-04-21 15:28:21 +010021039 &&
21040 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
21041 &&
21042 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
21043 &&
21044 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
21045 )
21046 {
21047 D(fprintf(stderr, "%*c+ invalid_class_def_raw[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'class' NAME ['(' arguments? ')'] ':' NEWLINE !INDENT"));
21048 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after class definition on line %d" , a -> lineno );
21049 if (_res == NULL && PyErr_Occurred()) {
21050 p->error_indicator = 1;
21051 D(p->level--);
21052 return NULL;
21053 }
21054 goto done;
21055 }
21056 p->mark = _mark;
21057 D(fprintf(stderr, "%*c%s invalid_class_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
21058 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'class' NAME ['(' arguments? ')'] ':' NEWLINE !INDENT"));
21059 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010021060 _res = NULL;
21061 done:
21062 D(p->level--);
21063 return _res;
21064}
21065
Pablo Galindoda743502021-04-15 14:06:39 +010021066// invalid_double_starred_kvpairs:
21067// | ','.double_starred_kvpair+ ',' invalid_kvpair
21068// | expression ':' '*' bitwise_or
21069// | expression ':' &('}' | ',')
21070static void *
21071invalid_double_starred_kvpairs_rule(Parser *p)
21072{
21073 D(p->level++);
21074 if (p->error_indicator) {
21075 D(p->level--);
21076 return NULL;
21077 }
21078 void * _res = NULL;
21079 int _mark = p->mark;
21080 { // ','.double_starred_kvpair+ ',' invalid_kvpair
21081 if (p->error_indicator) {
21082 D(p->level--);
21083 return NULL;
21084 }
21085 D(fprintf(stderr, "%*c> invalid_double_starred_kvpairs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.double_starred_kvpair+ ',' invalid_kvpair"));
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000021086 asdl_seq * _gather_178_var;
Pablo Galindoda743502021-04-15 14:06:39 +010021087 Token * _literal;
21088 void *invalid_kvpair_var;
21089 if (
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000021090 (_gather_178_var = _gather_178_rule(p)) // ','.double_starred_kvpair+
Pablo Galindoda743502021-04-15 14:06:39 +010021091 &&
21092 (_literal = _PyPegen_expect_token(p, 12)) // token=','
21093 &&
21094 (invalid_kvpair_var = invalid_kvpair_rule(p)) // invalid_kvpair
21095 )
21096 {
21097 D(fprintf(stderr, "%*c+ invalid_double_starred_kvpairs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.double_starred_kvpair+ ',' invalid_kvpair"));
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000021098 _res = _PyPegen_dummy_name(p, _gather_178_var, _literal, invalid_kvpair_var);
Pablo Galindoda743502021-04-15 14:06:39 +010021099 goto done;
21100 }
21101 p->mark = _mark;
21102 D(fprintf(stderr, "%*c%s invalid_double_starred_kvpairs[%d-%d]: %s failed!\n", p->level, ' ',
21103 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.double_starred_kvpair+ ',' invalid_kvpair"));
21104 }
21105 { // expression ':' '*' bitwise_or
21106 if (p->error_indicator) {
21107 D(p->level--);
21108 return NULL;
21109 }
21110 D(fprintf(stderr, "%*c> invalid_double_starred_kvpairs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':' '*' bitwise_or"));
21111 Token * _literal;
21112 Token * a;
21113 expr_ty bitwise_or_var;
21114 expr_ty expression_var;
21115 if (
21116 (expression_var = expression_rule(p)) // expression
21117 &&
21118 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
21119 &&
21120 (a = _PyPegen_expect_token(p, 16)) // token='*'
21121 &&
21122 (bitwise_or_var = bitwise_or_rule(p)) // bitwise_or
21123 )
21124 {
21125 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 +010021126 _res = RAISE_SYNTAX_ERROR_STARTING_FROM ( a , "cannot use a starred expression in a dictionary value" );
Pablo Galindoda743502021-04-15 14:06:39 +010021127 if (_res == NULL && PyErr_Occurred()) {
21128 p->error_indicator = 1;
21129 D(p->level--);
21130 return NULL;
21131 }
21132 goto done;
21133 }
21134 p->mark = _mark;
21135 D(fprintf(stderr, "%*c%s invalid_double_starred_kvpairs[%d-%d]: %s failed!\n", p->level, ' ',
21136 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' '*' bitwise_or"));
21137 }
21138 { // expression ':' &('}' | ',')
21139 if (p->error_indicator) {
21140 D(p->level--);
21141 return NULL;
21142 }
21143 D(fprintf(stderr, "%*c> invalid_double_starred_kvpairs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':' &('}' | ',')"));
21144 Token * a;
21145 expr_ty expression_var;
21146 if (
21147 (expression_var = expression_rule(p)) // expression
21148 &&
21149 (a = _PyPegen_expect_token(p, 11)) // token=':'
21150 &&
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000021151 _PyPegen_lookahead(1, _tmp_180_rule, p)
Pablo Galindoda743502021-04-15 14:06:39 +010021152 )
21153 {
21154 D(fprintf(stderr, "%*c+ invalid_double_starred_kvpairs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':' &('}' | ',')"));
21155 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "expression expected after dictionary key and ':'" );
21156 if (_res == NULL && PyErr_Occurred()) {
21157 p->error_indicator = 1;
21158 D(p->level--);
21159 return NULL;
21160 }
21161 goto done;
21162 }
21163 p->mark = _mark;
21164 D(fprintf(stderr, "%*c%s invalid_double_starred_kvpairs[%d-%d]: %s failed!\n", p->level, ' ',
21165 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' &('}' | ',')"));
21166 }
21167 _res = NULL;
21168 done:
21169 D(p->level--);
21170 return _res;
21171}
21172
21173// invalid_kvpair: expression !(':') | expression ':' '*' bitwise_or | expression ':'
21174static void *
21175invalid_kvpair_rule(Parser *p)
21176{
21177 D(p->level++);
21178 if (p->error_indicator) {
21179 D(p->level--);
21180 return NULL;
21181 }
21182 void * _res = NULL;
21183 int _mark = p->mark;
21184 { // expression !(':')
21185 if (p->error_indicator) {
21186 D(p->level--);
21187 return NULL;
21188 }
21189 D(fprintf(stderr, "%*c> invalid_kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression !(':')"));
21190 expr_ty a;
21191 if (
21192 (a = expression_rule(p)) // expression
21193 &&
21194 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 11) // token=(':')
21195 )
21196 {
21197 D(fprintf(stderr, "%*c+ invalid_kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression !(':')"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010021198 _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 +010021199 if (_res == NULL && PyErr_Occurred()) {
21200 p->error_indicator = 1;
21201 D(p->level--);
21202 return NULL;
21203 }
21204 goto done;
21205 }
21206 p->mark = _mark;
21207 D(fprintf(stderr, "%*c%s invalid_kvpair[%d-%d]: %s failed!\n", p->level, ' ',
21208 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression !(':')"));
21209 }
21210 { // expression ':' '*' bitwise_or
21211 if (p->error_indicator) {
21212 D(p->level--);
21213 return NULL;
21214 }
21215 D(fprintf(stderr, "%*c> invalid_kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':' '*' bitwise_or"));
21216 Token * _literal;
21217 Token * a;
21218 expr_ty bitwise_or_var;
21219 expr_ty expression_var;
21220 if (
21221 (expression_var = expression_rule(p)) // expression
21222 &&
21223 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
21224 &&
21225 (a = _PyPegen_expect_token(p, 16)) // token='*'
21226 &&
21227 (bitwise_or_var = bitwise_or_rule(p)) // bitwise_or
21228 )
21229 {
21230 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 +010021231 _res = RAISE_SYNTAX_ERROR_STARTING_FROM ( a , "cannot use a starred expression in a dictionary value" );
Pablo Galindoda743502021-04-15 14:06:39 +010021232 if (_res == NULL && PyErr_Occurred()) {
21233 p->error_indicator = 1;
21234 D(p->level--);
21235 return NULL;
21236 }
21237 goto done;
21238 }
21239 p->mark = _mark;
21240 D(fprintf(stderr, "%*c%s invalid_kvpair[%d-%d]: %s failed!\n", p->level, ' ',
21241 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' '*' bitwise_or"));
21242 }
21243 { // expression ':'
21244 if (p->error_indicator) {
21245 D(p->level--);
21246 return NULL;
21247 }
21248 D(fprintf(stderr, "%*c> invalid_kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':'"));
21249 Token * a;
21250 expr_ty expression_var;
21251 if (
21252 (expression_var = expression_rule(p)) // expression
21253 &&
21254 (a = _PyPegen_expect_token(p, 11)) // token=':'
21255 )
21256 {
21257 D(fprintf(stderr, "%*c+ invalid_kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':'"));
21258 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "expression expected after dictionary key and ':'" );
21259 if (_res == NULL && PyErr_Occurred()) {
21260 p->error_indicator = 1;
21261 D(p->level--);
21262 return NULL;
21263 }
21264 goto done;
21265 }
21266 p->mark = _mark;
21267 D(fprintf(stderr, "%*c%s invalid_kvpair[%d-%d]: %s failed!\n", p->level, ' ',
21268 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':'"));
21269 }
21270 _res = NULL;
21271 done:
21272 D(p->level--);
21273 return _res;
21274}
21275
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021276// _loop0_1: NEWLINE
21277static asdl_seq *
21278_loop0_1_rule(Parser *p)
21279{
21280 D(p->level++);
21281 if (p->error_indicator) {
21282 D(p->level--);
21283 return NULL;
21284 }
21285 void *_res = NULL;
21286 int _mark = p->mark;
21287 int _start_mark = p->mark;
21288 void **_children = PyMem_Malloc(sizeof(void *));
21289 if (!_children) {
21290 p->error_indicator = 1;
21291 PyErr_NoMemory();
21292 D(p->level--);
21293 return NULL;
21294 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010021295 Py_ssize_t _children_capacity = 1;
21296 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021297 { // NEWLINE
21298 if (p->error_indicator) {
21299 D(p->level--);
21300 return NULL;
21301 }
21302 D(fprintf(stderr, "%*c> _loop0_1[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
21303 Token * newline_var;
21304 while (
21305 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
21306 )
21307 {
21308 _res = newline_var;
21309 if (_n == _children_capacity) {
21310 _children_capacity *= 2;
21311 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21312 if (!_new_children) {
21313 p->error_indicator = 1;
21314 PyErr_NoMemory();
21315 D(p->level--);
21316 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000021317 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021318 _children = _new_children;
21319 }
21320 _children[_n++] = _res;
21321 _mark = p->mark;
21322 }
21323 p->mark = _mark;
21324 D(fprintf(stderr, "%*c%s _loop0_1[%d-%d]: %s failed!\n", p->level, ' ',
21325 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
21326 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021327 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021328 if (!_seq) {
21329 PyMem_Free(_children);
21330 p->error_indicator = 1;
21331 PyErr_NoMemory();
21332 D(p->level--);
21333 return NULL;
21334 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021335 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021336 PyMem_Free(_children);
21337 _PyPegen_insert_memo(p, _start_mark, _loop0_1_type, _seq);
21338 D(p->level--);
21339 return _seq;
21340}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000021341
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021342// _loop0_2: NEWLINE
21343static asdl_seq *
21344_loop0_2_rule(Parser *p)
21345{
21346 D(p->level++);
21347 if (p->error_indicator) {
21348 D(p->level--);
21349 return NULL;
21350 }
21351 void *_res = NULL;
21352 int _mark = p->mark;
21353 int _start_mark = p->mark;
21354 void **_children = PyMem_Malloc(sizeof(void *));
21355 if (!_children) {
21356 p->error_indicator = 1;
21357 PyErr_NoMemory();
21358 D(p->level--);
21359 return NULL;
21360 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010021361 Py_ssize_t _children_capacity = 1;
21362 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021363 { // NEWLINE
21364 if (p->error_indicator) {
21365 D(p->level--);
21366 return NULL;
21367 }
21368 D(fprintf(stderr, "%*c> _loop0_2[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
21369 Token * newline_var;
21370 while (
21371 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
21372 )
21373 {
21374 _res = newline_var;
21375 if (_n == _children_capacity) {
21376 _children_capacity *= 2;
21377 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21378 if (!_new_children) {
21379 p->error_indicator = 1;
21380 PyErr_NoMemory();
21381 D(p->level--);
21382 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000021383 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021384 _children = _new_children;
21385 }
21386 _children[_n++] = _res;
21387 _mark = p->mark;
21388 }
21389 p->mark = _mark;
21390 D(fprintf(stderr, "%*c%s _loop0_2[%d-%d]: %s failed!\n", p->level, ' ',
21391 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
21392 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021393 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021394 if (!_seq) {
21395 PyMem_Free(_children);
21396 p->error_indicator = 1;
21397 PyErr_NoMemory();
21398 D(p->level--);
21399 return NULL;
21400 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021401 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021402 PyMem_Free(_children);
21403 _PyPegen_insert_memo(p, _start_mark, _loop0_2_type, _seq);
21404 D(p->level--);
21405 return _seq;
21406}
21407
21408// _loop0_4: ',' expression
21409static asdl_seq *
21410_loop0_4_rule(Parser *p)
21411{
21412 D(p->level++);
21413 if (p->error_indicator) {
21414 D(p->level--);
21415 return NULL;
21416 }
21417 void *_res = NULL;
21418 int _mark = p->mark;
21419 int _start_mark = p->mark;
21420 void **_children = PyMem_Malloc(sizeof(void *));
21421 if (!_children) {
21422 p->error_indicator = 1;
21423 PyErr_NoMemory();
21424 D(p->level--);
21425 return NULL;
21426 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010021427 Py_ssize_t _children_capacity = 1;
21428 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021429 { // ',' expression
21430 if (p->error_indicator) {
21431 D(p->level--);
21432 return NULL;
21433 }
21434 D(fprintf(stderr, "%*c> _loop0_4[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
21435 Token * _literal;
21436 expr_ty elem;
21437 while (
21438 (_literal = _PyPegen_expect_token(p, 12)) // token=','
21439 &&
21440 (elem = expression_rule(p)) // expression
21441 )
21442 {
21443 _res = elem;
21444 if (_res == NULL && PyErr_Occurred()) {
21445 p->error_indicator = 1;
21446 PyMem_Free(_children);
21447 D(p->level--);
21448 return NULL;
21449 }
21450 if (_n == _children_capacity) {
21451 _children_capacity *= 2;
21452 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21453 if (!_new_children) {
21454 p->error_indicator = 1;
21455 PyErr_NoMemory();
21456 D(p->level--);
21457 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000021458 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021459 _children = _new_children;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000021460 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021461 _children[_n++] = _res;
21462 _mark = p->mark;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000021463 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021464 p->mark = _mark;
21465 D(fprintf(stderr, "%*c%s _loop0_4[%d-%d]: %s failed!\n", p->level, ' ',
21466 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000021467 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021468 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021469 if (!_seq) {
21470 PyMem_Free(_children);
21471 p->error_indicator = 1;
21472 PyErr_NoMemory();
21473 D(p->level--);
21474 return NULL;
21475 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021476 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021477 PyMem_Free(_children);
21478 _PyPegen_insert_memo(p, _start_mark, _loop0_4_type, _seq);
21479 D(p->level--);
21480 return _seq;
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021481}
21482
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021483// _gather_3: expression _loop0_4
21484static asdl_seq *
21485_gather_3_rule(Parser *p)
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021486{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021487 D(p->level++);
21488 if (p->error_indicator) {
21489 D(p->level--);
21490 return NULL;
21491 }
21492 asdl_seq * _res = NULL;
21493 int _mark = p->mark;
21494 { // expression _loop0_4
21495 if (p->error_indicator) {
21496 D(p->level--);
21497 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000021498 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021499 D(fprintf(stderr, "%*c> _gather_3[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression _loop0_4"));
21500 expr_ty elem;
21501 asdl_seq * seq;
21502 if (
21503 (elem = expression_rule(p)) // expression
21504 &&
21505 (seq = _loop0_4_rule(p)) // _loop0_4
21506 )
21507 {
21508 D(fprintf(stderr, "%*c+ _gather_3[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression _loop0_4"));
21509 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
21510 goto done;
21511 }
21512 p->mark = _mark;
21513 D(fprintf(stderr, "%*c%s _gather_3[%d-%d]: %s failed!\n", p->level, ' ',
21514 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_4"));
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000021515 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021516 _res = NULL;
21517 done:
21518 D(p->level--);
21519 return _res;
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021520}
21521
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021522// _loop0_6: ',' expression
21523static asdl_seq *
21524_loop0_6_rule(Parser *p)
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021525{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021526 D(p->level++);
21527 if (p->error_indicator) {
21528 D(p->level--);
21529 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000021530 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021531 void *_res = NULL;
21532 int _mark = p->mark;
21533 int _start_mark = p->mark;
21534 void **_children = PyMem_Malloc(sizeof(void *));
21535 if (!_children) {
21536 p->error_indicator = 1;
21537 PyErr_NoMemory();
21538 D(p->level--);
21539 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000021540 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010021541 Py_ssize_t _children_capacity = 1;
21542 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021543 { // ',' expression
21544 if (p->error_indicator) {
21545 D(p->level--);
21546 return NULL;
21547 }
21548 D(fprintf(stderr, "%*c> _loop0_6[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
21549 Token * _literal;
21550 expr_ty elem;
21551 while (
21552 (_literal = _PyPegen_expect_token(p, 12)) // token=','
21553 &&
21554 (elem = expression_rule(p)) // expression
21555 )
21556 {
21557 _res = elem;
21558 if (_res == NULL && PyErr_Occurred()) {
21559 p->error_indicator = 1;
21560 PyMem_Free(_children);
21561 D(p->level--);
21562 return NULL;
21563 }
21564 if (_n == _children_capacity) {
21565 _children_capacity *= 2;
21566 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21567 if (!_new_children) {
21568 p->error_indicator = 1;
21569 PyErr_NoMemory();
21570 D(p->level--);
21571 return NULL;
21572 }
21573 _children = _new_children;
21574 }
21575 _children[_n++] = _res;
21576 _mark = p->mark;
21577 }
21578 p->mark = _mark;
21579 D(fprintf(stderr, "%*c%s _loop0_6[%d-%d]: %s failed!\n", p->level, ' ',
21580 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
21581 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021582 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021583 if (!_seq) {
21584 PyMem_Free(_children);
21585 p->error_indicator = 1;
21586 PyErr_NoMemory();
21587 D(p->level--);
21588 return NULL;
21589 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021590 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021591 PyMem_Free(_children);
21592 _PyPegen_insert_memo(p, _start_mark, _loop0_6_type, _seq);
21593 D(p->level--);
21594 return _seq;
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021595}
21596
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021597// _gather_5: expression _loop0_6
21598static asdl_seq *
21599_gather_5_rule(Parser *p)
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021600{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021601 D(p->level++);
21602 if (p->error_indicator) {
21603 D(p->level--);
21604 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000021605 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021606 asdl_seq * _res = NULL;
21607 int _mark = p->mark;
21608 { // expression _loop0_6
21609 if (p->error_indicator) {
21610 D(p->level--);
21611 return NULL;
21612 }
21613 D(fprintf(stderr, "%*c> _gather_5[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression _loop0_6"));
21614 expr_ty elem;
21615 asdl_seq * seq;
21616 if (
21617 (elem = expression_rule(p)) // expression
21618 &&
21619 (seq = _loop0_6_rule(p)) // _loop0_6
21620 )
21621 {
21622 D(fprintf(stderr, "%*c+ _gather_5[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression _loop0_6"));
21623 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
21624 goto done;
21625 }
21626 p->mark = _mark;
21627 D(fprintf(stderr, "%*c%s _gather_5[%d-%d]: %s failed!\n", p->level, ' ',
21628 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_6"));
21629 }
21630 _res = NULL;
21631 done:
21632 D(p->level--);
21633 return _res;
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021634}
21635
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021636// _loop0_8: ',' expression
21637static asdl_seq *
21638_loop0_8_rule(Parser *p)
21639{
21640 D(p->level++);
21641 if (p->error_indicator) {
21642 D(p->level--);
21643 return NULL;
21644 }
21645 void *_res = NULL;
21646 int _mark = p->mark;
21647 int _start_mark = p->mark;
21648 void **_children = PyMem_Malloc(sizeof(void *));
21649 if (!_children) {
21650 p->error_indicator = 1;
21651 PyErr_NoMemory();
21652 D(p->level--);
21653 return NULL;
21654 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010021655 Py_ssize_t _children_capacity = 1;
21656 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021657 { // ',' expression
21658 if (p->error_indicator) {
21659 D(p->level--);
21660 return NULL;
21661 }
21662 D(fprintf(stderr, "%*c> _loop0_8[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
21663 Token * _literal;
21664 expr_ty elem;
21665 while (
21666 (_literal = _PyPegen_expect_token(p, 12)) // token=','
21667 &&
21668 (elem = expression_rule(p)) // expression
21669 )
21670 {
21671 _res = elem;
21672 if (_res == NULL && PyErr_Occurred()) {
21673 p->error_indicator = 1;
21674 PyMem_Free(_children);
21675 D(p->level--);
21676 return NULL;
21677 }
21678 if (_n == _children_capacity) {
21679 _children_capacity *= 2;
21680 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21681 if (!_new_children) {
21682 p->error_indicator = 1;
21683 PyErr_NoMemory();
21684 D(p->level--);
21685 return NULL;
21686 }
21687 _children = _new_children;
21688 }
21689 _children[_n++] = _res;
21690 _mark = p->mark;
21691 }
21692 p->mark = _mark;
21693 D(fprintf(stderr, "%*c%s _loop0_8[%d-%d]: %s failed!\n", p->level, ' ',
21694 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
21695 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021696 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021697 if (!_seq) {
21698 PyMem_Free(_children);
21699 p->error_indicator = 1;
21700 PyErr_NoMemory();
21701 D(p->level--);
21702 return NULL;
21703 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021704 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021705 PyMem_Free(_children);
21706 _PyPegen_insert_memo(p, _start_mark, _loop0_8_type, _seq);
21707 D(p->level--);
21708 return _seq;
21709}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021710
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021711// _gather_7: expression _loop0_8
21712static asdl_seq *
21713_gather_7_rule(Parser *p)
21714{
21715 D(p->level++);
21716 if (p->error_indicator) {
21717 D(p->level--);
21718 return NULL;
21719 }
21720 asdl_seq * _res = NULL;
21721 int _mark = p->mark;
21722 { // expression _loop0_8
21723 if (p->error_indicator) {
21724 D(p->level--);
21725 return NULL;
21726 }
21727 D(fprintf(stderr, "%*c> _gather_7[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression _loop0_8"));
21728 expr_ty elem;
21729 asdl_seq * seq;
21730 if (
21731 (elem = expression_rule(p)) // expression
21732 &&
21733 (seq = _loop0_8_rule(p)) // _loop0_8
21734 )
21735 {
21736 D(fprintf(stderr, "%*c+ _gather_7[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression _loop0_8"));
21737 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
21738 goto done;
21739 }
21740 p->mark = _mark;
21741 D(fprintf(stderr, "%*c%s _gather_7[%d-%d]: %s failed!\n", p->level, ' ',
21742 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_8"));
21743 }
21744 _res = NULL;
21745 done:
21746 D(p->level--);
21747 return _res;
21748}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021749
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021750// _loop0_10: ',' expression
21751static asdl_seq *
21752_loop0_10_rule(Parser *p)
21753{
21754 D(p->level++);
21755 if (p->error_indicator) {
21756 D(p->level--);
21757 return NULL;
21758 }
21759 void *_res = NULL;
21760 int _mark = p->mark;
21761 int _start_mark = p->mark;
21762 void **_children = PyMem_Malloc(sizeof(void *));
21763 if (!_children) {
21764 p->error_indicator = 1;
21765 PyErr_NoMemory();
21766 D(p->level--);
21767 return NULL;
21768 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010021769 Py_ssize_t _children_capacity = 1;
21770 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021771 { // ',' expression
21772 if (p->error_indicator) {
21773 D(p->level--);
21774 return NULL;
21775 }
21776 D(fprintf(stderr, "%*c> _loop0_10[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
21777 Token * _literal;
21778 expr_ty elem;
21779 while (
21780 (_literal = _PyPegen_expect_token(p, 12)) // token=','
21781 &&
21782 (elem = expression_rule(p)) // expression
21783 )
21784 {
21785 _res = elem;
21786 if (_res == NULL && PyErr_Occurred()) {
21787 p->error_indicator = 1;
21788 PyMem_Free(_children);
21789 D(p->level--);
21790 return NULL;
21791 }
21792 if (_n == _children_capacity) {
21793 _children_capacity *= 2;
21794 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21795 if (!_new_children) {
21796 p->error_indicator = 1;
21797 PyErr_NoMemory();
21798 D(p->level--);
21799 return NULL;
21800 }
21801 _children = _new_children;
21802 }
21803 _children[_n++] = _res;
21804 _mark = p->mark;
21805 }
21806 p->mark = _mark;
21807 D(fprintf(stderr, "%*c%s _loop0_10[%d-%d]: %s failed!\n", p->level, ' ',
21808 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
21809 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021810 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021811 if (!_seq) {
21812 PyMem_Free(_children);
21813 p->error_indicator = 1;
21814 PyErr_NoMemory();
21815 D(p->level--);
21816 return NULL;
21817 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021818 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021819 PyMem_Free(_children);
21820 _PyPegen_insert_memo(p, _start_mark, _loop0_10_type, _seq);
21821 D(p->level--);
21822 return _seq;
21823}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021824
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021825// _gather_9: expression _loop0_10
21826static asdl_seq *
21827_gather_9_rule(Parser *p)
21828{
21829 D(p->level++);
21830 if (p->error_indicator) {
21831 D(p->level--);
21832 return NULL;
21833 }
21834 asdl_seq * _res = NULL;
21835 int _mark = p->mark;
21836 { // expression _loop0_10
21837 if (p->error_indicator) {
21838 D(p->level--);
21839 return NULL;
21840 }
21841 D(fprintf(stderr, "%*c> _gather_9[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression _loop0_10"));
21842 expr_ty elem;
21843 asdl_seq * seq;
21844 if (
21845 (elem = expression_rule(p)) // expression
21846 &&
21847 (seq = _loop0_10_rule(p)) // _loop0_10
21848 )
21849 {
21850 D(fprintf(stderr, "%*c+ _gather_9[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression _loop0_10"));
21851 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
21852 goto done;
21853 }
21854 p->mark = _mark;
21855 D(fprintf(stderr, "%*c%s _gather_9[%d-%d]: %s failed!\n", p->level, ' ',
21856 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_10"));
21857 }
21858 _res = NULL;
21859 done:
21860 D(p->level--);
21861 return _res;
21862}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021863
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021864// _loop1_11: statement
21865static asdl_seq *
21866_loop1_11_rule(Parser *p)
21867{
21868 D(p->level++);
21869 if (p->error_indicator) {
21870 D(p->level--);
21871 return NULL;
21872 }
21873 void *_res = NULL;
21874 int _mark = p->mark;
21875 int _start_mark = p->mark;
21876 void **_children = PyMem_Malloc(sizeof(void *));
21877 if (!_children) {
21878 p->error_indicator = 1;
21879 PyErr_NoMemory();
21880 D(p->level--);
21881 return NULL;
21882 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010021883 Py_ssize_t _children_capacity = 1;
21884 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021885 { // statement
21886 if (p->error_indicator) {
21887 D(p->level--);
21888 return NULL;
21889 }
21890 D(fprintf(stderr, "%*c> _loop1_11[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statement"));
Pablo Galindoa5634c42020-09-16 19:42:00 +010021891 asdl_stmt_seq* statement_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021892 while (
21893 (statement_var = statement_rule(p)) // statement
21894 )
21895 {
21896 _res = statement_var;
21897 if (_n == _children_capacity) {
21898 _children_capacity *= 2;
21899 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21900 if (!_new_children) {
21901 p->error_indicator = 1;
21902 PyErr_NoMemory();
21903 D(p->level--);
21904 return NULL;
21905 }
21906 _children = _new_children;
21907 }
21908 _children[_n++] = _res;
21909 _mark = p->mark;
21910 }
21911 p->mark = _mark;
21912 D(fprintf(stderr, "%*c%s _loop1_11[%d-%d]: %s failed!\n", p->level, ' ',
21913 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statement"));
21914 }
21915 if (_n == 0 || p->error_indicator) {
21916 PyMem_Free(_children);
21917 D(p->level--);
21918 return NULL;
21919 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021920 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021921 if (!_seq) {
21922 PyMem_Free(_children);
21923 p->error_indicator = 1;
21924 PyErr_NoMemory();
21925 D(p->level--);
21926 return NULL;
21927 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021928 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021929 PyMem_Free(_children);
21930 _PyPegen_insert_memo(p, _start_mark, _loop1_11_type, _seq);
21931 D(p->level--);
21932 return _seq;
21933}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021934
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000021935// _loop0_13: ';' simple_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021936static asdl_seq *
21937_loop0_13_rule(Parser *p)
21938{
21939 D(p->level++);
21940 if (p->error_indicator) {
21941 D(p->level--);
21942 return NULL;
21943 }
21944 void *_res = NULL;
21945 int _mark = p->mark;
21946 int _start_mark = p->mark;
21947 void **_children = PyMem_Malloc(sizeof(void *));
21948 if (!_children) {
21949 p->error_indicator = 1;
21950 PyErr_NoMemory();
21951 D(p->level--);
21952 return NULL;
21953 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010021954 Py_ssize_t _children_capacity = 1;
21955 Py_ssize_t _n = 0;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000021956 { // ';' simple_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021957 if (p->error_indicator) {
21958 D(p->level--);
21959 return NULL;
21960 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000021961 D(fprintf(stderr, "%*c> _loop0_13[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "';' simple_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021962 Token * _literal;
21963 stmt_ty elem;
21964 while (
21965 (_literal = _PyPegen_expect_token(p, 13)) // token=';'
21966 &&
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000021967 (elem = simple_stmt_rule(p)) // simple_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021968 )
21969 {
21970 _res = elem;
21971 if (_res == NULL && PyErr_Occurred()) {
21972 p->error_indicator = 1;
21973 PyMem_Free(_children);
21974 D(p->level--);
21975 return NULL;
21976 }
21977 if (_n == _children_capacity) {
21978 _children_capacity *= 2;
21979 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21980 if (!_new_children) {
21981 p->error_indicator = 1;
21982 PyErr_NoMemory();
21983 D(p->level--);
21984 return NULL;
21985 }
21986 _children = _new_children;
21987 }
21988 _children[_n++] = _res;
21989 _mark = p->mark;
21990 }
21991 p->mark = _mark;
21992 D(fprintf(stderr, "%*c%s _loop0_13[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000021993 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "';' simple_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021994 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021995 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021996 if (!_seq) {
21997 PyMem_Free(_children);
21998 p->error_indicator = 1;
21999 PyErr_NoMemory();
22000 D(p->level--);
22001 return NULL;
22002 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022003 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022004 PyMem_Free(_children);
22005 _PyPegen_insert_memo(p, _start_mark, _loop0_13_type, _seq);
22006 D(p->level--);
22007 return _seq;
22008}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000022009
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000022010// _gather_12: simple_stmt _loop0_13
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022011static asdl_seq *
22012_gather_12_rule(Parser *p)
22013{
22014 D(p->level++);
22015 if (p->error_indicator) {
22016 D(p->level--);
22017 return NULL;
22018 }
22019 asdl_seq * _res = NULL;
22020 int _mark = p->mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000022021 { // simple_stmt _loop0_13
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022022 if (p->error_indicator) {
22023 D(p->level--);
22024 return NULL;
22025 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000022026 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 +010022027 stmt_ty elem;
22028 asdl_seq * seq;
22029 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000022030 (elem = simple_stmt_rule(p)) // simple_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022031 &&
22032 (seq = _loop0_13_rule(p)) // _loop0_13
22033 )
22034 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000022035 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 +010022036 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
22037 goto done;
22038 }
22039 p->mark = _mark;
22040 D(fprintf(stderr, "%*c%s _gather_12[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000022041 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmt _loop0_13"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022042 }
22043 _res = NULL;
22044 done:
22045 D(p->level--);
22046 return _res;
22047}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000022048
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022049// _tmp_14: 'import' | 'from'
22050static void *
22051_tmp_14_rule(Parser *p)
22052{
22053 D(p->level++);
22054 if (p->error_indicator) {
22055 D(p->level--);
22056 return NULL;
22057 }
22058 void * _res = NULL;
22059 int _mark = p->mark;
22060 { // 'import'
22061 if (p->error_indicator) {
22062 D(p->level--);
22063 return NULL;
22064 }
22065 D(fprintf(stderr, "%*c> _tmp_14[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'import'"));
22066 Token * _keyword;
22067 if (
22068 (_keyword = _PyPegen_expect_token(p, 513)) // token='import'
22069 )
22070 {
22071 D(fprintf(stderr, "%*c+ _tmp_14[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'import'"));
22072 _res = _keyword;
22073 goto done;
22074 }
22075 p->mark = _mark;
22076 D(fprintf(stderr, "%*c%s _tmp_14[%d-%d]: %s failed!\n", p->level, ' ',
22077 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'import'"));
22078 }
22079 { // 'from'
22080 if (p->error_indicator) {
22081 D(p->level--);
22082 return NULL;
22083 }
22084 D(fprintf(stderr, "%*c> _tmp_14[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from'"));
22085 Token * _keyword;
22086 if (
22087 (_keyword = _PyPegen_expect_token(p, 514)) // token='from'
22088 )
22089 {
22090 D(fprintf(stderr, "%*c+ _tmp_14[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'from'"));
22091 _res = _keyword;
22092 goto done;
22093 }
22094 p->mark = _mark;
22095 D(fprintf(stderr, "%*c%s _tmp_14[%d-%d]: %s failed!\n", p->level, ' ',
22096 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from'"));
22097 }
22098 _res = NULL;
22099 done:
22100 D(p->level--);
22101 return _res;
22102}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000022103
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022104// _tmp_15: 'def' | '@' | ASYNC
22105static void *
22106_tmp_15_rule(Parser *p)
22107{
22108 D(p->level++);
22109 if (p->error_indicator) {
22110 D(p->level--);
22111 return NULL;
22112 }
22113 void * _res = NULL;
22114 int _mark = p->mark;
22115 { // 'def'
22116 if (p->error_indicator) {
22117 D(p->level--);
22118 return NULL;
22119 }
22120 D(fprintf(stderr, "%*c> _tmp_15[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'def'"));
22121 Token * _keyword;
22122 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080022123 (_keyword = _PyPegen_expect_token(p, 526)) // token='def'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022124 )
22125 {
22126 D(fprintf(stderr, "%*c+ _tmp_15[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'def'"));
22127 _res = _keyword;
22128 goto done;
22129 }
22130 p->mark = _mark;
22131 D(fprintf(stderr, "%*c%s _tmp_15[%d-%d]: %s failed!\n", p->level, ' ',
22132 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'def'"));
22133 }
22134 { // '@'
22135 if (p->error_indicator) {
22136 D(p->level--);
22137 return NULL;
22138 }
22139 D(fprintf(stderr, "%*c> _tmp_15[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@'"));
22140 Token * _literal;
22141 if (
22142 (_literal = _PyPegen_expect_token(p, 49)) // token='@'
22143 )
22144 {
22145 D(fprintf(stderr, "%*c+ _tmp_15[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@'"));
22146 _res = _literal;
22147 goto done;
22148 }
22149 p->mark = _mark;
22150 D(fprintf(stderr, "%*c%s _tmp_15[%d-%d]: %s failed!\n", p->level, ' ',
22151 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@'"));
22152 }
22153 { // ASYNC
22154 if (p->error_indicator) {
22155 D(p->level--);
22156 return NULL;
22157 }
22158 D(fprintf(stderr, "%*c> _tmp_15[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC"));
22159 Token * async_var;
22160 if (
22161 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
22162 )
22163 {
22164 D(fprintf(stderr, "%*c+ _tmp_15[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC"));
22165 _res = async_var;
22166 goto done;
22167 }
22168 p->mark = _mark;
22169 D(fprintf(stderr, "%*c%s _tmp_15[%d-%d]: %s failed!\n", p->level, ' ',
22170 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC"));
22171 }
22172 _res = NULL;
22173 done:
22174 D(p->level--);
22175 return _res;
22176}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000022177
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022178// _tmp_16: 'class' | '@'
22179static void *
22180_tmp_16_rule(Parser *p)
22181{
22182 D(p->level++);
22183 if (p->error_indicator) {
22184 D(p->level--);
22185 return NULL;
22186 }
22187 void * _res = NULL;
22188 int _mark = p->mark;
22189 { // 'class'
22190 if (p->error_indicator) {
22191 D(p->level--);
22192 return NULL;
22193 }
22194 D(fprintf(stderr, "%*c> _tmp_16[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'class'"));
22195 Token * _keyword;
22196 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080022197 (_keyword = _PyPegen_expect_token(p, 527)) // token='class'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022198 )
22199 {
22200 D(fprintf(stderr, "%*c+ _tmp_16[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'class'"));
22201 _res = _keyword;
22202 goto done;
22203 }
22204 p->mark = _mark;
22205 D(fprintf(stderr, "%*c%s _tmp_16[%d-%d]: %s failed!\n", p->level, ' ',
22206 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'class'"));
22207 }
22208 { // '@'
22209 if (p->error_indicator) {
22210 D(p->level--);
22211 return NULL;
22212 }
22213 D(fprintf(stderr, "%*c> _tmp_16[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@'"));
22214 Token * _literal;
22215 if (
22216 (_literal = _PyPegen_expect_token(p, 49)) // token='@'
22217 )
22218 {
22219 D(fprintf(stderr, "%*c+ _tmp_16[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@'"));
22220 _res = _literal;
22221 goto done;
22222 }
22223 p->mark = _mark;
22224 D(fprintf(stderr, "%*c%s _tmp_16[%d-%d]: %s failed!\n", p->level, ' ',
22225 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@'"));
22226 }
22227 _res = NULL;
22228 done:
22229 D(p->level--);
22230 return _res;
22231}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000022232
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022233// _tmp_17: 'with' | ASYNC
22234static void *
22235_tmp_17_rule(Parser *p)
22236{
22237 D(p->level++);
22238 if (p->error_indicator) {
22239 D(p->level--);
22240 return NULL;
22241 }
22242 void * _res = NULL;
22243 int _mark = p->mark;
22244 { // 'with'
22245 if (p->error_indicator) {
22246 D(p->level--);
22247 return NULL;
22248 }
22249 D(fprintf(stderr, "%*c> _tmp_17[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'with'"));
22250 Token * _keyword;
22251 if (
22252 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
22253 )
22254 {
22255 D(fprintf(stderr, "%*c+ _tmp_17[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'with'"));
22256 _res = _keyword;
22257 goto done;
22258 }
22259 p->mark = _mark;
22260 D(fprintf(stderr, "%*c%s _tmp_17[%d-%d]: %s failed!\n", p->level, ' ',
22261 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'with'"));
22262 }
22263 { // ASYNC
22264 if (p->error_indicator) {
22265 D(p->level--);
22266 return NULL;
22267 }
22268 D(fprintf(stderr, "%*c> _tmp_17[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC"));
22269 Token * async_var;
22270 if (
22271 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
22272 )
22273 {
22274 D(fprintf(stderr, "%*c+ _tmp_17[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC"));
22275 _res = async_var;
22276 goto done;
22277 }
22278 p->mark = _mark;
22279 D(fprintf(stderr, "%*c%s _tmp_17[%d-%d]: %s failed!\n", p->level, ' ',
22280 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC"));
22281 }
22282 _res = NULL;
22283 done:
22284 D(p->level--);
22285 return _res;
22286}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000022287
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022288// _tmp_18: 'for' | ASYNC
22289static void *
22290_tmp_18_rule(Parser *p)
22291{
22292 D(p->level++);
22293 if (p->error_indicator) {
22294 D(p->level--);
22295 return NULL;
22296 }
22297 void * _res = NULL;
22298 int _mark = p->mark;
22299 { // 'for'
22300 if (p->error_indicator) {
22301 D(p->level--);
22302 return NULL;
22303 }
22304 D(fprintf(stderr, "%*c> _tmp_18[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'for'"));
22305 Token * _keyword;
22306 if (
22307 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
22308 )
22309 {
22310 D(fprintf(stderr, "%*c+ _tmp_18[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'for'"));
22311 _res = _keyword;
22312 goto done;
22313 }
22314 p->mark = _mark;
22315 D(fprintf(stderr, "%*c%s _tmp_18[%d-%d]: %s failed!\n", p->level, ' ',
22316 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'for'"));
22317 }
22318 { // ASYNC
22319 if (p->error_indicator) {
22320 D(p->level--);
22321 return NULL;
22322 }
22323 D(fprintf(stderr, "%*c> _tmp_18[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC"));
22324 Token * async_var;
22325 if (
22326 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
22327 )
22328 {
22329 D(fprintf(stderr, "%*c+ _tmp_18[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC"));
22330 _res = async_var;
22331 goto done;
22332 }
22333 p->mark = _mark;
22334 D(fprintf(stderr, "%*c%s _tmp_18[%d-%d]: %s failed!\n", p->level, ' ',
22335 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC"));
22336 }
22337 _res = NULL;
22338 done:
22339 D(p->level--);
22340 return _res;
22341}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000022342
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022343// _tmp_19: '=' annotated_rhs
22344static void *
22345_tmp_19_rule(Parser *p)
22346{
22347 D(p->level++);
22348 if (p->error_indicator) {
22349 D(p->level--);
22350 return NULL;
22351 }
22352 void * _res = NULL;
22353 int _mark = p->mark;
22354 { // '=' annotated_rhs
22355 if (p->error_indicator) {
22356 D(p->level--);
22357 return NULL;
22358 }
22359 D(fprintf(stderr, "%*c> _tmp_19[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
22360 Token * _literal;
22361 expr_ty d;
22362 if (
22363 (_literal = _PyPegen_expect_token(p, 22)) // token='='
22364 &&
22365 (d = annotated_rhs_rule(p)) // annotated_rhs
22366 )
22367 {
22368 D(fprintf(stderr, "%*c+ _tmp_19[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
22369 _res = d;
22370 if (_res == NULL && PyErr_Occurred()) {
22371 p->error_indicator = 1;
22372 D(p->level--);
22373 return NULL;
22374 }
22375 goto done;
22376 }
22377 p->mark = _mark;
22378 D(fprintf(stderr, "%*c%s _tmp_19[%d-%d]: %s failed!\n", p->level, ' ',
22379 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'=' annotated_rhs"));
22380 }
22381 _res = NULL;
22382 done:
22383 D(p->level--);
22384 return _res;
22385}
22386
22387// _tmp_20: '(' single_target ')' | single_subscript_attribute_target
22388static void *
22389_tmp_20_rule(Parser *p)
22390{
22391 D(p->level++);
22392 if (p->error_indicator) {
22393 D(p->level--);
22394 return NULL;
22395 }
22396 void * _res = NULL;
22397 int _mark = p->mark;
22398 { // '(' single_target ')'
22399 if (p->error_indicator) {
22400 D(p->level--);
22401 return NULL;
22402 }
22403 D(fprintf(stderr, "%*c> _tmp_20[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'"));
22404 Token * _literal;
22405 Token * _literal_1;
22406 expr_ty b;
22407 if (
22408 (_literal = _PyPegen_expect_token(p, 7)) // token='('
22409 &&
22410 (b = single_target_rule(p)) // single_target
22411 &&
22412 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
22413 )
22414 {
22415 D(fprintf(stderr, "%*c+ _tmp_20[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'"));
22416 _res = b;
22417 if (_res == NULL && PyErr_Occurred()) {
22418 p->error_indicator = 1;
22419 D(p->level--);
22420 return NULL;
22421 }
22422 goto done;
22423 }
22424 p->mark = _mark;
22425 D(fprintf(stderr, "%*c%s _tmp_20[%d-%d]: %s failed!\n", p->level, ' ',
22426 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' single_target ')'"));
22427 }
22428 { // single_subscript_attribute_target
22429 if (p->error_indicator) {
22430 D(p->level--);
22431 return NULL;
22432 }
22433 D(fprintf(stderr, "%*c> _tmp_20[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "single_subscript_attribute_target"));
22434 expr_ty single_subscript_attribute_target_var;
22435 if (
22436 (single_subscript_attribute_target_var = single_subscript_attribute_target_rule(p)) // single_subscript_attribute_target
22437 )
22438 {
22439 D(fprintf(stderr, "%*c+ _tmp_20[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "single_subscript_attribute_target"));
22440 _res = single_subscript_attribute_target_var;
22441 goto done;
22442 }
22443 p->mark = _mark;
22444 D(fprintf(stderr, "%*c%s _tmp_20[%d-%d]: %s failed!\n", p->level, ' ',
22445 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "single_subscript_attribute_target"));
22446 }
22447 _res = NULL;
22448 done:
22449 D(p->level--);
22450 return _res;
22451}
22452
22453// _tmp_21: '=' annotated_rhs
22454static void *
22455_tmp_21_rule(Parser *p)
22456{
22457 D(p->level++);
22458 if (p->error_indicator) {
22459 D(p->level--);
22460 return NULL;
22461 }
22462 void * _res = NULL;
22463 int _mark = p->mark;
22464 { // '=' annotated_rhs
22465 if (p->error_indicator) {
22466 D(p->level--);
22467 return NULL;
22468 }
22469 D(fprintf(stderr, "%*c> _tmp_21[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
22470 Token * _literal;
22471 expr_ty d;
22472 if (
22473 (_literal = _PyPegen_expect_token(p, 22)) // token='='
22474 &&
22475 (d = annotated_rhs_rule(p)) // annotated_rhs
22476 )
22477 {
22478 D(fprintf(stderr, "%*c+ _tmp_21[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
22479 _res = d;
22480 if (_res == NULL && PyErr_Occurred()) {
22481 p->error_indicator = 1;
22482 D(p->level--);
22483 return NULL;
22484 }
22485 goto done;
22486 }
22487 p->mark = _mark;
22488 D(fprintf(stderr, "%*c%s _tmp_21[%d-%d]: %s failed!\n", p->level, ' ',
22489 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'=' annotated_rhs"));
22490 }
22491 _res = NULL;
22492 done:
22493 D(p->level--);
22494 return _res;
22495}
22496
22497// _loop1_22: (star_targets '=')
22498static asdl_seq *
22499_loop1_22_rule(Parser *p)
22500{
22501 D(p->level++);
22502 if (p->error_indicator) {
22503 D(p->level--);
22504 return NULL;
22505 }
22506 void *_res = NULL;
22507 int _mark = p->mark;
22508 int _start_mark = p->mark;
22509 void **_children = PyMem_Malloc(sizeof(void *));
22510 if (!_children) {
22511 p->error_indicator = 1;
22512 PyErr_NoMemory();
22513 D(p->level--);
22514 return NULL;
22515 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010022516 Py_ssize_t _children_capacity = 1;
22517 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022518 { // (star_targets '=')
22519 if (p->error_indicator) {
22520 D(p->level--);
22521 return NULL;
22522 }
22523 D(fprintf(stderr, "%*c> _loop1_22[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')"));
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000022524 void *_tmp_181_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022525 while (
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000022526 (_tmp_181_var = _tmp_181_rule(p)) // star_targets '='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022527 )
22528 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000022529 _res = _tmp_181_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022530 if (_n == _children_capacity) {
22531 _children_capacity *= 2;
22532 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22533 if (!_new_children) {
22534 p->error_indicator = 1;
22535 PyErr_NoMemory();
22536 D(p->level--);
22537 return NULL;
22538 }
22539 _children = _new_children;
22540 }
22541 _children[_n++] = _res;
22542 _mark = p->mark;
22543 }
22544 p->mark = _mark;
22545 D(fprintf(stderr, "%*c%s _loop1_22[%d-%d]: %s failed!\n", p->level, ' ',
22546 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(star_targets '=')"));
22547 }
22548 if (_n == 0 || p->error_indicator) {
22549 PyMem_Free(_children);
22550 D(p->level--);
22551 return NULL;
22552 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022553 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022554 if (!_seq) {
22555 PyMem_Free(_children);
22556 p->error_indicator = 1;
22557 PyErr_NoMemory();
22558 D(p->level--);
22559 return NULL;
22560 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022561 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022562 PyMem_Free(_children);
22563 _PyPegen_insert_memo(p, _start_mark, _loop1_22_type, _seq);
22564 D(p->level--);
22565 return _seq;
22566}
22567
22568// _tmp_23: yield_expr | star_expressions
22569static void *
22570_tmp_23_rule(Parser *p)
22571{
22572 D(p->level++);
22573 if (p->error_indicator) {
22574 D(p->level--);
22575 return NULL;
22576 }
22577 void * _res = NULL;
22578 int _mark = p->mark;
22579 { // yield_expr
22580 if (p->error_indicator) {
22581 D(p->level--);
22582 return NULL;
22583 }
22584 D(fprintf(stderr, "%*c> _tmp_23[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
22585 expr_ty yield_expr_var;
22586 if (
22587 (yield_expr_var = yield_expr_rule(p)) // yield_expr
22588 )
22589 {
22590 D(fprintf(stderr, "%*c+ _tmp_23[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
22591 _res = yield_expr_var;
22592 goto done;
22593 }
22594 p->mark = _mark;
22595 D(fprintf(stderr, "%*c%s _tmp_23[%d-%d]: %s failed!\n", p->level, ' ',
22596 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
22597 }
22598 { // star_expressions
22599 if (p->error_indicator) {
22600 D(p->level--);
22601 return NULL;
22602 }
22603 D(fprintf(stderr, "%*c> _tmp_23[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
22604 expr_ty star_expressions_var;
22605 if (
22606 (star_expressions_var = star_expressions_rule(p)) // star_expressions
22607 )
22608 {
22609 D(fprintf(stderr, "%*c+ _tmp_23[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
22610 _res = star_expressions_var;
22611 goto done;
22612 }
22613 p->mark = _mark;
22614 D(fprintf(stderr, "%*c%s _tmp_23[%d-%d]: %s failed!\n", p->level, ' ',
22615 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
22616 }
22617 _res = NULL;
22618 done:
22619 D(p->level--);
22620 return _res;
22621}
22622
22623// _tmp_24: yield_expr | star_expressions
22624static void *
22625_tmp_24_rule(Parser *p)
22626{
22627 D(p->level++);
22628 if (p->error_indicator) {
22629 D(p->level--);
22630 return NULL;
22631 }
22632 void * _res = NULL;
22633 int _mark = p->mark;
22634 { // yield_expr
22635 if (p->error_indicator) {
22636 D(p->level--);
22637 return NULL;
22638 }
22639 D(fprintf(stderr, "%*c> _tmp_24[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
22640 expr_ty yield_expr_var;
22641 if (
22642 (yield_expr_var = yield_expr_rule(p)) // yield_expr
22643 )
22644 {
22645 D(fprintf(stderr, "%*c+ _tmp_24[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
22646 _res = yield_expr_var;
22647 goto done;
22648 }
22649 p->mark = _mark;
22650 D(fprintf(stderr, "%*c%s _tmp_24[%d-%d]: %s failed!\n", p->level, ' ',
22651 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
22652 }
22653 { // star_expressions
22654 if (p->error_indicator) {
22655 D(p->level--);
22656 return NULL;
22657 }
22658 D(fprintf(stderr, "%*c> _tmp_24[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
22659 expr_ty star_expressions_var;
22660 if (
22661 (star_expressions_var = star_expressions_rule(p)) // star_expressions
22662 )
22663 {
22664 D(fprintf(stderr, "%*c+ _tmp_24[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
22665 _res = star_expressions_var;
22666 goto done;
22667 }
22668 p->mark = _mark;
22669 D(fprintf(stderr, "%*c%s _tmp_24[%d-%d]: %s failed!\n", p->level, ' ',
22670 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
22671 }
22672 _res = NULL;
22673 done:
22674 D(p->level--);
22675 return _res;
22676}
22677
22678// _loop0_26: ',' NAME
22679static asdl_seq *
22680_loop0_26_rule(Parser *p)
22681{
22682 D(p->level++);
22683 if (p->error_indicator) {
22684 D(p->level--);
22685 return NULL;
22686 }
22687 void *_res = NULL;
22688 int _mark = p->mark;
22689 int _start_mark = p->mark;
22690 void **_children = PyMem_Malloc(sizeof(void *));
22691 if (!_children) {
22692 p->error_indicator = 1;
22693 PyErr_NoMemory();
22694 D(p->level--);
22695 return NULL;
22696 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010022697 Py_ssize_t _children_capacity = 1;
22698 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022699 { // ',' NAME
22700 if (p->error_indicator) {
22701 D(p->level--);
22702 return NULL;
22703 }
22704 D(fprintf(stderr, "%*c> _loop0_26[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' NAME"));
22705 Token * _literal;
22706 expr_ty elem;
22707 while (
22708 (_literal = _PyPegen_expect_token(p, 12)) // token=','
22709 &&
22710 (elem = _PyPegen_name_token(p)) // NAME
22711 )
22712 {
22713 _res = elem;
22714 if (_res == NULL && PyErr_Occurred()) {
22715 p->error_indicator = 1;
22716 PyMem_Free(_children);
22717 D(p->level--);
22718 return NULL;
22719 }
22720 if (_n == _children_capacity) {
22721 _children_capacity *= 2;
22722 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22723 if (!_new_children) {
22724 p->error_indicator = 1;
22725 PyErr_NoMemory();
22726 D(p->level--);
22727 return NULL;
22728 }
22729 _children = _new_children;
22730 }
22731 _children[_n++] = _res;
22732 _mark = p->mark;
22733 }
22734 p->mark = _mark;
22735 D(fprintf(stderr, "%*c%s _loop0_26[%d-%d]: %s failed!\n", p->level, ' ',
22736 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' NAME"));
22737 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022738 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022739 if (!_seq) {
22740 PyMem_Free(_children);
22741 p->error_indicator = 1;
22742 PyErr_NoMemory();
22743 D(p->level--);
22744 return NULL;
22745 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022746 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022747 PyMem_Free(_children);
22748 _PyPegen_insert_memo(p, _start_mark, _loop0_26_type, _seq);
22749 D(p->level--);
22750 return _seq;
22751}
22752
22753// _gather_25: NAME _loop0_26
22754static asdl_seq *
22755_gather_25_rule(Parser *p)
22756{
22757 D(p->level++);
22758 if (p->error_indicator) {
22759 D(p->level--);
22760 return NULL;
22761 }
22762 asdl_seq * _res = NULL;
22763 int _mark = p->mark;
22764 { // NAME _loop0_26
22765 if (p->error_indicator) {
22766 D(p->level--);
22767 return NULL;
22768 }
22769 D(fprintf(stderr, "%*c> _gather_25[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME _loop0_26"));
22770 expr_ty elem;
22771 asdl_seq * seq;
22772 if (
22773 (elem = _PyPegen_name_token(p)) // NAME
22774 &&
22775 (seq = _loop0_26_rule(p)) // _loop0_26
22776 )
22777 {
22778 D(fprintf(stderr, "%*c+ _gather_25[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME _loop0_26"));
22779 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
22780 goto done;
22781 }
22782 p->mark = _mark;
22783 D(fprintf(stderr, "%*c%s _gather_25[%d-%d]: %s failed!\n", p->level, ' ',
22784 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME _loop0_26"));
22785 }
22786 _res = NULL;
22787 done:
22788 D(p->level--);
22789 return _res;
22790}
22791
22792// _loop0_28: ',' NAME
22793static asdl_seq *
22794_loop0_28_rule(Parser *p)
22795{
22796 D(p->level++);
22797 if (p->error_indicator) {
22798 D(p->level--);
22799 return NULL;
22800 }
22801 void *_res = NULL;
22802 int _mark = p->mark;
22803 int _start_mark = p->mark;
22804 void **_children = PyMem_Malloc(sizeof(void *));
22805 if (!_children) {
22806 p->error_indicator = 1;
22807 PyErr_NoMemory();
22808 D(p->level--);
22809 return NULL;
22810 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010022811 Py_ssize_t _children_capacity = 1;
22812 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022813 { // ',' NAME
22814 if (p->error_indicator) {
22815 D(p->level--);
22816 return NULL;
22817 }
22818 D(fprintf(stderr, "%*c> _loop0_28[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' NAME"));
22819 Token * _literal;
22820 expr_ty elem;
22821 while (
22822 (_literal = _PyPegen_expect_token(p, 12)) // token=','
22823 &&
22824 (elem = _PyPegen_name_token(p)) // NAME
22825 )
22826 {
22827 _res = elem;
22828 if (_res == NULL && PyErr_Occurred()) {
22829 p->error_indicator = 1;
22830 PyMem_Free(_children);
22831 D(p->level--);
22832 return NULL;
22833 }
22834 if (_n == _children_capacity) {
22835 _children_capacity *= 2;
22836 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22837 if (!_new_children) {
22838 p->error_indicator = 1;
22839 PyErr_NoMemory();
22840 D(p->level--);
22841 return NULL;
22842 }
22843 _children = _new_children;
22844 }
22845 _children[_n++] = _res;
22846 _mark = p->mark;
22847 }
22848 p->mark = _mark;
22849 D(fprintf(stderr, "%*c%s _loop0_28[%d-%d]: %s failed!\n", p->level, ' ',
22850 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' NAME"));
22851 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022852 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022853 if (!_seq) {
22854 PyMem_Free(_children);
22855 p->error_indicator = 1;
22856 PyErr_NoMemory();
22857 D(p->level--);
22858 return NULL;
22859 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022860 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022861 PyMem_Free(_children);
22862 _PyPegen_insert_memo(p, _start_mark, _loop0_28_type, _seq);
22863 D(p->level--);
22864 return _seq;
22865}
22866
22867// _gather_27: NAME _loop0_28
22868static asdl_seq *
22869_gather_27_rule(Parser *p)
22870{
22871 D(p->level++);
22872 if (p->error_indicator) {
22873 D(p->level--);
22874 return NULL;
22875 }
22876 asdl_seq * _res = NULL;
22877 int _mark = p->mark;
22878 { // NAME _loop0_28
22879 if (p->error_indicator) {
22880 D(p->level--);
22881 return NULL;
22882 }
22883 D(fprintf(stderr, "%*c> _gather_27[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME _loop0_28"));
22884 expr_ty elem;
22885 asdl_seq * seq;
22886 if (
22887 (elem = _PyPegen_name_token(p)) // NAME
22888 &&
22889 (seq = _loop0_28_rule(p)) // _loop0_28
22890 )
22891 {
22892 D(fprintf(stderr, "%*c+ _gather_27[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME _loop0_28"));
22893 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
22894 goto done;
22895 }
22896 p->mark = _mark;
22897 D(fprintf(stderr, "%*c%s _gather_27[%d-%d]: %s failed!\n", p->level, ' ',
22898 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME _loop0_28"));
22899 }
22900 _res = NULL;
22901 done:
22902 D(p->level--);
22903 return _res;
22904}
22905
22906// _tmp_29: ',' expression
22907static void *
22908_tmp_29_rule(Parser *p)
22909{
22910 D(p->level++);
22911 if (p->error_indicator) {
22912 D(p->level--);
22913 return NULL;
22914 }
22915 void * _res = NULL;
22916 int _mark = p->mark;
22917 { // ',' expression
22918 if (p->error_indicator) {
22919 D(p->level--);
22920 return NULL;
22921 }
22922 D(fprintf(stderr, "%*c> _tmp_29[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
22923 Token * _literal;
22924 expr_ty z;
22925 if (
22926 (_literal = _PyPegen_expect_token(p, 12)) // token=','
22927 &&
22928 (z = expression_rule(p)) // expression
22929 )
22930 {
22931 D(fprintf(stderr, "%*c+ _tmp_29[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' expression"));
22932 _res = z;
22933 if (_res == NULL && PyErr_Occurred()) {
22934 p->error_indicator = 1;
22935 D(p->level--);
22936 return NULL;
22937 }
22938 goto done;
22939 }
22940 p->mark = _mark;
22941 D(fprintf(stderr, "%*c%s _tmp_29[%d-%d]: %s failed!\n", p->level, ' ',
22942 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
22943 }
22944 _res = NULL;
22945 done:
22946 D(p->level--);
22947 return _res;
22948}
22949
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022950// _tmp_30: ';' | NEWLINE
22951static void *
22952_tmp_30_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022953{
22954 D(p->level++);
22955 if (p->error_indicator) {
22956 D(p->level--);
22957 return NULL;
22958 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022959 void * _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022960 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022961 { // ';'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022962 if (p->error_indicator) {
22963 D(p->level--);
22964 return NULL;
22965 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022966 D(fprintf(stderr, "%*c> _tmp_30[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "';'"));
22967 Token * _literal;
22968 if (
22969 (_literal = _PyPegen_expect_token(p, 13)) // token=';'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022970 )
22971 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022972 D(fprintf(stderr, "%*c+ _tmp_30[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "';'"));
22973 _res = _literal;
22974 goto done;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022975 }
22976 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022977 D(fprintf(stderr, "%*c%s _tmp_30[%d-%d]: %s failed!\n", p->level, ' ',
22978 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "';'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022979 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022980 { // NEWLINE
22981 if (p->error_indicator) {
22982 D(p->level--);
22983 return NULL;
22984 }
22985 D(fprintf(stderr, "%*c> _tmp_30[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
22986 Token * newline_var;
22987 if (
22988 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
22989 )
22990 {
22991 D(fprintf(stderr, "%*c+ _tmp_30[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
22992 _res = newline_var;
22993 goto done;
22994 }
22995 p->mark = _mark;
22996 D(fprintf(stderr, "%*c%s _tmp_30[%d-%d]: %s failed!\n", p->level, ' ',
22997 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022998 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022999 _res = NULL;
23000 done:
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023001 D(p->level--);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023002 return _res;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023003}
23004
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023005// _loop0_31: ('.' | '...')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023006static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023007_loop0_31_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023008{
23009 D(p->level++);
23010 if (p->error_indicator) {
23011 D(p->level--);
23012 return NULL;
23013 }
23014 void *_res = NULL;
23015 int _mark = p->mark;
23016 int _start_mark = p->mark;
23017 void **_children = PyMem_Malloc(sizeof(void *));
23018 if (!_children) {
23019 p->error_indicator = 1;
23020 PyErr_NoMemory();
23021 D(p->level--);
23022 return NULL;
23023 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023024 Py_ssize_t _children_capacity = 1;
23025 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023026 { // ('.' | '...')
23027 if (p->error_indicator) {
23028 D(p->level--);
23029 return NULL;
23030 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023031 D(fprintf(stderr, "%*c> _loop0_31[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('.' | '...')"));
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000023032 void *_tmp_182_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023033 while (
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000023034 (_tmp_182_var = _tmp_182_rule(p)) // '.' | '...'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023035 )
23036 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000023037 _res = _tmp_182_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023038 if (_n == _children_capacity) {
23039 _children_capacity *= 2;
23040 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23041 if (!_new_children) {
23042 p->error_indicator = 1;
23043 PyErr_NoMemory();
23044 D(p->level--);
23045 return NULL;
23046 }
23047 _children = _new_children;
23048 }
23049 _children[_n++] = _res;
23050 _mark = p->mark;
23051 }
23052 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023053 D(fprintf(stderr, "%*c%s _loop0_31[%d-%d]: %s failed!\n", p->level, ' ',
23054 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('.' | '...')"));
23055 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023056 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023057 if (!_seq) {
23058 PyMem_Free(_children);
23059 p->error_indicator = 1;
23060 PyErr_NoMemory();
23061 D(p->level--);
23062 return NULL;
23063 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023064 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023065 PyMem_Free(_children);
23066 _PyPegen_insert_memo(p, _start_mark, _loop0_31_type, _seq);
23067 D(p->level--);
23068 return _seq;
23069}
23070
23071// _loop1_32: ('.' | '...')
23072static asdl_seq *
23073_loop1_32_rule(Parser *p)
23074{
23075 D(p->level++);
23076 if (p->error_indicator) {
23077 D(p->level--);
23078 return NULL;
23079 }
23080 void *_res = NULL;
23081 int _mark = p->mark;
23082 int _start_mark = p->mark;
23083 void **_children = PyMem_Malloc(sizeof(void *));
23084 if (!_children) {
23085 p->error_indicator = 1;
23086 PyErr_NoMemory();
23087 D(p->level--);
23088 return NULL;
23089 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023090 Py_ssize_t _children_capacity = 1;
23091 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023092 { // ('.' | '...')
23093 if (p->error_indicator) {
23094 D(p->level--);
23095 return NULL;
23096 }
23097 D(fprintf(stderr, "%*c> _loop1_32[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('.' | '...')"));
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000023098 void *_tmp_183_var;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023099 while (
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000023100 (_tmp_183_var = _tmp_183_rule(p)) // '.' | '...'
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023101 )
23102 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000023103 _res = _tmp_183_var;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023104 if (_n == _children_capacity) {
23105 _children_capacity *= 2;
23106 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23107 if (!_new_children) {
23108 p->error_indicator = 1;
23109 PyErr_NoMemory();
23110 D(p->level--);
23111 return NULL;
23112 }
23113 _children = _new_children;
23114 }
23115 _children[_n++] = _res;
23116 _mark = p->mark;
23117 }
23118 p->mark = _mark;
23119 D(fprintf(stderr, "%*c%s _loop1_32[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023120 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('.' | '...')"));
23121 }
23122 if (_n == 0 || p->error_indicator) {
23123 PyMem_Free(_children);
23124 D(p->level--);
23125 return NULL;
23126 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023127 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023128 if (!_seq) {
23129 PyMem_Free(_children);
23130 p->error_indicator = 1;
23131 PyErr_NoMemory();
23132 D(p->level--);
23133 return NULL;
23134 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023135 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023136 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023137 _PyPegen_insert_memo(p, _start_mark, _loop1_32_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023138 D(p->level--);
23139 return _seq;
23140}
23141
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023142// _loop0_34: ',' import_from_as_name
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023143static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023144_loop0_34_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023145{
23146 D(p->level++);
23147 if (p->error_indicator) {
23148 D(p->level--);
23149 return NULL;
23150 }
23151 void *_res = NULL;
23152 int _mark = p->mark;
23153 int _start_mark = p->mark;
23154 void **_children = PyMem_Malloc(sizeof(void *));
23155 if (!_children) {
23156 p->error_indicator = 1;
23157 PyErr_NoMemory();
23158 D(p->level--);
23159 return NULL;
23160 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023161 Py_ssize_t _children_capacity = 1;
23162 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023163 { // ',' import_from_as_name
23164 if (p->error_indicator) {
23165 D(p->level--);
23166 return NULL;
23167 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023168 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 +010023169 Token * _literal;
23170 alias_ty elem;
23171 while (
23172 (_literal = _PyPegen_expect_token(p, 12)) // token=','
23173 &&
23174 (elem = import_from_as_name_rule(p)) // import_from_as_name
23175 )
23176 {
23177 _res = elem;
23178 if (_res == NULL && PyErr_Occurred()) {
23179 p->error_indicator = 1;
23180 PyMem_Free(_children);
23181 D(p->level--);
23182 return NULL;
23183 }
23184 if (_n == _children_capacity) {
23185 _children_capacity *= 2;
23186 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23187 if (!_new_children) {
23188 p->error_indicator = 1;
23189 PyErr_NoMemory();
23190 D(p->level--);
23191 return NULL;
23192 }
23193 _children = _new_children;
23194 }
23195 _children[_n++] = _res;
23196 _mark = p->mark;
23197 }
23198 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023199 D(fprintf(stderr, "%*c%s _loop0_34[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023200 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' import_from_as_name"));
23201 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023202 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023203 if (!_seq) {
23204 PyMem_Free(_children);
23205 p->error_indicator = 1;
23206 PyErr_NoMemory();
23207 D(p->level--);
23208 return NULL;
23209 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023210 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023211 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023212 _PyPegen_insert_memo(p, _start_mark, _loop0_34_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023213 D(p->level--);
23214 return _seq;
23215}
23216
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023217// _gather_33: import_from_as_name _loop0_34
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023218static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023219_gather_33_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023220{
23221 D(p->level++);
23222 if (p->error_indicator) {
23223 D(p->level--);
23224 return NULL;
23225 }
23226 asdl_seq * _res = NULL;
23227 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023228 { // import_from_as_name _loop0_34
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023229 if (p->error_indicator) {
23230 D(p->level--);
23231 return NULL;
23232 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023233 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 +010023234 alias_ty elem;
23235 asdl_seq * seq;
23236 if (
23237 (elem = import_from_as_name_rule(p)) // import_from_as_name
23238 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023239 (seq = _loop0_34_rule(p)) // _loop0_34
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023240 )
23241 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023242 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 +010023243 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
23244 goto done;
23245 }
23246 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023247 D(fprintf(stderr, "%*c%s _gather_33[%d-%d]: %s failed!\n", p->level, ' ',
23248 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from_as_name _loop0_34"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023249 }
23250 _res = NULL;
23251 done:
23252 D(p->level--);
23253 return _res;
23254}
23255
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023256// _tmp_35: 'as' NAME
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023257static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023258_tmp_35_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023259{
23260 D(p->level++);
23261 if (p->error_indicator) {
23262 D(p->level--);
23263 return NULL;
23264 }
23265 void * _res = NULL;
23266 int _mark = p->mark;
23267 { // 'as' NAME
23268 if (p->error_indicator) {
23269 D(p->level--);
23270 return NULL;
23271 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023272 D(fprintf(stderr, "%*c> _tmp_35[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023273 Token * _keyword;
23274 expr_ty z;
23275 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023276 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023277 &&
23278 (z = _PyPegen_name_token(p)) // NAME
23279 )
23280 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023281 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 +010023282 _res = z;
23283 if (_res == NULL && PyErr_Occurred()) {
23284 p->error_indicator = 1;
23285 D(p->level--);
23286 return NULL;
23287 }
23288 goto done;
23289 }
23290 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023291 D(fprintf(stderr, "%*c%s _tmp_35[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023292 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
23293 }
23294 _res = NULL;
23295 done:
23296 D(p->level--);
23297 return _res;
23298}
23299
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023300// _loop0_37: ',' dotted_as_name
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023301static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023302_loop0_37_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023303{
23304 D(p->level++);
23305 if (p->error_indicator) {
23306 D(p->level--);
23307 return NULL;
23308 }
23309 void *_res = NULL;
23310 int _mark = p->mark;
23311 int _start_mark = p->mark;
23312 void **_children = PyMem_Malloc(sizeof(void *));
23313 if (!_children) {
23314 p->error_indicator = 1;
23315 PyErr_NoMemory();
23316 D(p->level--);
23317 return NULL;
23318 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023319 Py_ssize_t _children_capacity = 1;
23320 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023321 { // ',' dotted_as_name
23322 if (p->error_indicator) {
23323 D(p->level--);
23324 return NULL;
23325 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023326 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 +010023327 Token * _literal;
23328 alias_ty elem;
23329 while (
23330 (_literal = _PyPegen_expect_token(p, 12)) // token=','
23331 &&
23332 (elem = dotted_as_name_rule(p)) // dotted_as_name
23333 )
23334 {
23335 _res = elem;
23336 if (_res == NULL && PyErr_Occurred()) {
23337 p->error_indicator = 1;
23338 PyMem_Free(_children);
23339 D(p->level--);
23340 return NULL;
23341 }
23342 if (_n == _children_capacity) {
23343 _children_capacity *= 2;
23344 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23345 if (!_new_children) {
23346 p->error_indicator = 1;
23347 PyErr_NoMemory();
23348 D(p->level--);
23349 return NULL;
23350 }
23351 _children = _new_children;
23352 }
23353 _children[_n++] = _res;
23354 _mark = p->mark;
23355 }
23356 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023357 D(fprintf(stderr, "%*c%s _loop0_37[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023358 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' dotted_as_name"));
23359 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023360 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023361 if (!_seq) {
23362 PyMem_Free(_children);
23363 p->error_indicator = 1;
23364 PyErr_NoMemory();
23365 D(p->level--);
23366 return NULL;
23367 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023368 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023369 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023370 _PyPegen_insert_memo(p, _start_mark, _loop0_37_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023371 D(p->level--);
23372 return _seq;
23373}
23374
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023375// _gather_36: dotted_as_name _loop0_37
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023376static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023377_gather_36_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023378{
23379 D(p->level++);
23380 if (p->error_indicator) {
23381 D(p->level--);
23382 return NULL;
23383 }
23384 asdl_seq * _res = NULL;
23385 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023386 { // dotted_as_name _loop0_37
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023387 if (p->error_indicator) {
23388 D(p->level--);
23389 return NULL;
23390 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023391 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 +010023392 alias_ty elem;
23393 asdl_seq * seq;
23394 if (
23395 (elem = dotted_as_name_rule(p)) // dotted_as_name
23396 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023397 (seq = _loop0_37_rule(p)) // _loop0_37
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023398 )
23399 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023400 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 +010023401 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
23402 goto done;
23403 }
23404 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023405 D(fprintf(stderr, "%*c%s _gather_36[%d-%d]: %s failed!\n", p->level, ' ',
23406 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dotted_as_name _loop0_37"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023407 }
23408 _res = NULL;
23409 done:
23410 D(p->level--);
23411 return _res;
23412}
23413
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023414// _tmp_38: 'as' NAME
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023415static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023416_tmp_38_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023417{
23418 D(p->level++);
23419 if (p->error_indicator) {
23420 D(p->level--);
23421 return NULL;
23422 }
23423 void * _res = NULL;
23424 int _mark = p->mark;
23425 { // 'as' NAME
23426 if (p->error_indicator) {
23427 D(p->level--);
23428 return NULL;
23429 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023430 D(fprintf(stderr, "%*c> _tmp_38[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023431 Token * _keyword;
23432 expr_ty z;
23433 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023434 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023435 &&
23436 (z = _PyPegen_name_token(p)) // NAME
23437 )
23438 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023439 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 +010023440 _res = z;
23441 if (_res == NULL && PyErr_Occurred()) {
23442 p->error_indicator = 1;
23443 D(p->level--);
23444 return NULL;
23445 }
23446 goto done;
23447 }
23448 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023449 D(fprintf(stderr, "%*c%s _tmp_38[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023450 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
23451 }
23452 _res = NULL;
23453 done:
23454 D(p->level--);
23455 return _res;
23456}
23457
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023458// _loop0_40: ',' with_item
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023459static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023460_loop0_40_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023461{
23462 D(p->level++);
23463 if (p->error_indicator) {
23464 D(p->level--);
23465 return NULL;
23466 }
23467 void *_res = NULL;
23468 int _mark = p->mark;
23469 int _start_mark = p->mark;
23470 void **_children = PyMem_Malloc(sizeof(void *));
23471 if (!_children) {
23472 p->error_indicator = 1;
23473 PyErr_NoMemory();
23474 D(p->level--);
23475 return NULL;
23476 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023477 Py_ssize_t _children_capacity = 1;
23478 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023479 { // ',' with_item
23480 if (p->error_indicator) {
23481 D(p->level--);
23482 return NULL;
23483 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023484 D(fprintf(stderr, "%*c> _loop0_40[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023485 Token * _literal;
23486 withitem_ty elem;
23487 while (
23488 (_literal = _PyPegen_expect_token(p, 12)) // token=','
23489 &&
23490 (elem = with_item_rule(p)) // with_item
23491 )
23492 {
23493 _res = elem;
23494 if (_res == NULL && PyErr_Occurred()) {
23495 p->error_indicator = 1;
23496 PyMem_Free(_children);
23497 D(p->level--);
23498 return NULL;
23499 }
23500 if (_n == _children_capacity) {
23501 _children_capacity *= 2;
23502 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23503 if (!_new_children) {
23504 p->error_indicator = 1;
23505 PyErr_NoMemory();
23506 D(p->level--);
23507 return NULL;
23508 }
23509 _children = _new_children;
23510 }
23511 _children[_n++] = _res;
23512 _mark = p->mark;
23513 }
23514 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023515 D(fprintf(stderr, "%*c%s _loop0_40[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023516 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
23517 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023518 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023519 if (!_seq) {
23520 PyMem_Free(_children);
23521 p->error_indicator = 1;
23522 PyErr_NoMemory();
23523 D(p->level--);
23524 return NULL;
23525 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023526 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023527 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023528 _PyPegen_insert_memo(p, _start_mark, _loop0_40_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023529 D(p->level--);
23530 return _seq;
23531}
23532
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023533// _gather_39: with_item _loop0_40
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023534static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023535_gather_39_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023536{
23537 D(p->level++);
23538 if (p->error_indicator) {
23539 D(p->level--);
23540 return NULL;
23541 }
23542 asdl_seq * _res = NULL;
23543 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023544 { // with_item _loop0_40
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023545 if (p->error_indicator) {
23546 D(p->level--);
23547 return NULL;
23548 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023549 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 +010023550 withitem_ty elem;
23551 asdl_seq * seq;
23552 if (
23553 (elem = with_item_rule(p)) // with_item
23554 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023555 (seq = _loop0_40_rule(p)) // _loop0_40
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023556 )
23557 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023558 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 +010023559 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
23560 goto done;
23561 }
23562 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023563 D(fprintf(stderr, "%*c%s _gather_39[%d-%d]: %s failed!\n", p->level, ' ',
23564 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_40"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023565 }
23566 _res = NULL;
23567 done:
23568 D(p->level--);
23569 return _res;
23570}
23571
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023572// _loop0_42: ',' with_item
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023573static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023574_loop0_42_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023575{
23576 D(p->level++);
23577 if (p->error_indicator) {
23578 D(p->level--);
23579 return NULL;
23580 }
23581 void *_res = NULL;
23582 int _mark = p->mark;
23583 int _start_mark = p->mark;
23584 void **_children = PyMem_Malloc(sizeof(void *));
23585 if (!_children) {
23586 p->error_indicator = 1;
23587 PyErr_NoMemory();
23588 D(p->level--);
23589 return NULL;
23590 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023591 Py_ssize_t _children_capacity = 1;
23592 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023593 { // ',' with_item
23594 if (p->error_indicator) {
23595 D(p->level--);
23596 return NULL;
23597 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023598 D(fprintf(stderr, "%*c> _loop0_42[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023599 Token * _literal;
23600 withitem_ty elem;
23601 while (
23602 (_literal = _PyPegen_expect_token(p, 12)) // token=','
23603 &&
23604 (elem = with_item_rule(p)) // with_item
23605 )
23606 {
23607 _res = elem;
23608 if (_res == NULL && PyErr_Occurred()) {
23609 p->error_indicator = 1;
23610 PyMem_Free(_children);
23611 D(p->level--);
23612 return NULL;
23613 }
23614 if (_n == _children_capacity) {
23615 _children_capacity *= 2;
23616 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23617 if (!_new_children) {
23618 p->error_indicator = 1;
23619 PyErr_NoMemory();
23620 D(p->level--);
23621 return NULL;
23622 }
23623 _children = _new_children;
23624 }
23625 _children[_n++] = _res;
23626 _mark = p->mark;
23627 }
23628 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023629 D(fprintf(stderr, "%*c%s _loop0_42[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023630 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
23631 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023632 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023633 if (!_seq) {
23634 PyMem_Free(_children);
23635 p->error_indicator = 1;
23636 PyErr_NoMemory();
23637 D(p->level--);
23638 return NULL;
23639 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023640 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023641 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023642 _PyPegen_insert_memo(p, _start_mark, _loop0_42_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023643 D(p->level--);
23644 return _seq;
23645}
23646
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023647// _gather_41: with_item _loop0_42
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023648static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023649_gather_41_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023650{
23651 D(p->level++);
23652 if (p->error_indicator) {
23653 D(p->level--);
23654 return NULL;
23655 }
23656 asdl_seq * _res = NULL;
23657 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023658 { // with_item _loop0_42
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023659 if (p->error_indicator) {
23660 D(p->level--);
23661 return NULL;
23662 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023663 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 +010023664 withitem_ty elem;
23665 asdl_seq * seq;
23666 if (
23667 (elem = with_item_rule(p)) // with_item
23668 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023669 (seq = _loop0_42_rule(p)) // _loop0_42
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023670 )
23671 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023672 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 +010023673 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
23674 goto done;
23675 }
23676 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023677 D(fprintf(stderr, "%*c%s _gather_41[%d-%d]: %s failed!\n", p->level, ' ',
23678 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_42"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023679 }
23680 _res = NULL;
23681 done:
23682 D(p->level--);
23683 return _res;
23684}
23685
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023686// _loop0_44: ',' with_item
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023687static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023688_loop0_44_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023689{
23690 D(p->level++);
23691 if (p->error_indicator) {
23692 D(p->level--);
23693 return NULL;
23694 }
23695 void *_res = NULL;
23696 int _mark = p->mark;
23697 int _start_mark = p->mark;
23698 void **_children = PyMem_Malloc(sizeof(void *));
23699 if (!_children) {
23700 p->error_indicator = 1;
23701 PyErr_NoMemory();
23702 D(p->level--);
23703 return NULL;
23704 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023705 Py_ssize_t _children_capacity = 1;
23706 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023707 { // ',' with_item
23708 if (p->error_indicator) {
23709 D(p->level--);
23710 return NULL;
23711 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023712 D(fprintf(stderr, "%*c> _loop0_44[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023713 Token * _literal;
23714 withitem_ty elem;
23715 while (
23716 (_literal = _PyPegen_expect_token(p, 12)) // token=','
23717 &&
23718 (elem = with_item_rule(p)) // with_item
23719 )
23720 {
23721 _res = elem;
23722 if (_res == NULL && PyErr_Occurred()) {
23723 p->error_indicator = 1;
23724 PyMem_Free(_children);
23725 D(p->level--);
23726 return NULL;
23727 }
23728 if (_n == _children_capacity) {
23729 _children_capacity *= 2;
23730 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23731 if (!_new_children) {
23732 p->error_indicator = 1;
23733 PyErr_NoMemory();
23734 D(p->level--);
23735 return NULL;
23736 }
23737 _children = _new_children;
23738 }
23739 _children[_n++] = _res;
23740 _mark = p->mark;
23741 }
23742 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023743 D(fprintf(stderr, "%*c%s _loop0_44[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023744 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
23745 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023746 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023747 if (!_seq) {
23748 PyMem_Free(_children);
23749 p->error_indicator = 1;
23750 PyErr_NoMemory();
23751 D(p->level--);
23752 return NULL;
23753 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023754 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023755 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023756 _PyPegen_insert_memo(p, _start_mark, _loop0_44_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023757 D(p->level--);
23758 return _seq;
23759}
23760
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023761// _gather_43: with_item _loop0_44
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023762static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023763_gather_43_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023764{
23765 D(p->level++);
23766 if (p->error_indicator) {
23767 D(p->level--);
23768 return NULL;
23769 }
23770 asdl_seq * _res = NULL;
23771 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023772 { // with_item _loop0_44
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023773 if (p->error_indicator) {
23774 D(p->level--);
23775 return NULL;
23776 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023777 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 +010023778 withitem_ty elem;
23779 asdl_seq * seq;
23780 if (
23781 (elem = with_item_rule(p)) // with_item
23782 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023783 (seq = _loop0_44_rule(p)) // _loop0_44
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023784 )
23785 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023786 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 +010023787 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
23788 goto done;
23789 }
23790 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023791 D(fprintf(stderr, "%*c%s _gather_43[%d-%d]: %s failed!\n", p->level, ' ',
23792 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_44"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023793 }
23794 _res = NULL;
23795 done:
23796 D(p->level--);
23797 return _res;
23798}
23799
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023800// _loop0_46: ',' with_item
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023801static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023802_loop0_46_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023803{
23804 D(p->level++);
23805 if (p->error_indicator) {
23806 D(p->level--);
23807 return NULL;
23808 }
23809 void *_res = NULL;
23810 int _mark = p->mark;
23811 int _start_mark = p->mark;
23812 void **_children = PyMem_Malloc(sizeof(void *));
23813 if (!_children) {
23814 p->error_indicator = 1;
23815 PyErr_NoMemory();
23816 D(p->level--);
23817 return NULL;
23818 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023819 Py_ssize_t _children_capacity = 1;
23820 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023821 { // ',' with_item
23822 if (p->error_indicator) {
23823 D(p->level--);
23824 return NULL;
23825 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023826 D(fprintf(stderr, "%*c> _loop0_46[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023827 Token * _literal;
23828 withitem_ty elem;
23829 while (
23830 (_literal = _PyPegen_expect_token(p, 12)) // token=','
23831 &&
23832 (elem = with_item_rule(p)) // with_item
23833 )
23834 {
23835 _res = elem;
23836 if (_res == NULL && PyErr_Occurred()) {
23837 p->error_indicator = 1;
23838 PyMem_Free(_children);
23839 D(p->level--);
23840 return NULL;
23841 }
23842 if (_n == _children_capacity) {
23843 _children_capacity *= 2;
23844 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23845 if (!_new_children) {
23846 p->error_indicator = 1;
23847 PyErr_NoMemory();
23848 D(p->level--);
23849 return NULL;
23850 }
23851 _children = _new_children;
23852 }
23853 _children[_n++] = _res;
23854 _mark = p->mark;
23855 }
23856 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023857 D(fprintf(stderr, "%*c%s _loop0_46[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023858 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
23859 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023860 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023861 if (!_seq) {
23862 PyMem_Free(_children);
23863 p->error_indicator = 1;
23864 PyErr_NoMemory();
23865 D(p->level--);
23866 return NULL;
23867 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023868 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023869 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023870 _PyPegen_insert_memo(p, _start_mark, _loop0_46_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023871 D(p->level--);
23872 return _seq;
23873}
23874
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023875// _gather_45: with_item _loop0_46
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023876static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023877_gather_45_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023878{
23879 D(p->level++);
23880 if (p->error_indicator) {
23881 D(p->level--);
23882 return NULL;
23883 }
23884 asdl_seq * _res = NULL;
23885 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023886 { // with_item _loop0_46
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023887 if (p->error_indicator) {
23888 D(p->level--);
23889 return NULL;
23890 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023891 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 +010023892 withitem_ty elem;
23893 asdl_seq * seq;
23894 if (
23895 (elem = with_item_rule(p)) // with_item
23896 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023897 (seq = _loop0_46_rule(p)) // _loop0_46
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023898 )
23899 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023900 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 +010023901 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
23902 goto done;
23903 }
23904 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023905 D(fprintf(stderr, "%*c%s _gather_45[%d-%d]: %s failed!\n", p->level, ' ',
23906 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_46"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023907 }
23908 _res = NULL;
23909 done:
23910 D(p->level--);
23911 return _res;
23912}
23913
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023914// _tmp_47: ',' | ')' | ':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023915static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023916_tmp_47_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023917{
23918 D(p->level++);
23919 if (p->error_indicator) {
23920 D(p->level--);
23921 return NULL;
23922 }
23923 void * _res = NULL;
23924 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023925 { // ','
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023926 if (p->error_indicator) {
23927 D(p->level--);
23928 return NULL;
23929 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023930 D(fprintf(stderr, "%*c> _tmp_47[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','"));
23931 Token * _literal;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023932 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023933 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023934 )
23935 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023936 D(fprintf(stderr, "%*c+ _tmp_47[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','"));
23937 _res = _literal;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023938 goto done;
23939 }
23940 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023941 D(fprintf(stderr, "%*c%s _tmp_47[%d-%d]: %s failed!\n", p->level, ' ',
23942 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','"));
23943 }
23944 { // ')'
23945 if (p->error_indicator) {
23946 D(p->level--);
23947 return NULL;
23948 }
23949 D(fprintf(stderr, "%*c> _tmp_47[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
23950 Token * _literal;
23951 if (
23952 (_literal = _PyPegen_expect_token(p, 8)) // token=')'
23953 )
23954 {
23955 D(fprintf(stderr, "%*c+ _tmp_47[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
23956 _res = _literal;
23957 goto done;
23958 }
23959 p->mark = _mark;
23960 D(fprintf(stderr, "%*c%s _tmp_47[%d-%d]: %s failed!\n", p->level, ' ',
23961 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
23962 }
23963 { // ':'
23964 if (p->error_indicator) {
23965 D(p->level--);
23966 return NULL;
23967 }
23968 D(fprintf(stderr, "%*c> _tmp_47[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
23969 Token * _literal;
23970 if (
23971 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
23972 )
23973 {
23974 D(fprintf(stderr, "%*c+ _tmp_47[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
23975 _res = _literal;
23976 goto done;
23977 }
23978 p->mark = _mark;
23979 D(fprintf(stderr, "%*c%s _tmp_47[%d-%d]: %s failed!\n", p->level, ' ',
23980 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023981 }
23982 _res = NULL;
23983 done:
23984 D(p->level--);
23985 return _res;
23986}
23987
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023988// _loop1_48: except_block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023989static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023990_loop1_48_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023991{
23992 D(p->level++);
23993 if (p->error_indicator) {
23994 D(p->level--);
23995 return NULL;
23996 }
23997 void *_res = NULL;
23998 int _mark = p->mark;
23999 int _start_mark = p->mark;
24000 void **_children = PyMem_Malloc(sizeof(void *));
24001 if (!_children) {
24002 p->error_indicator = 1;
24003 PyErr_NoMemory();
24004 D(p->level--);
24005 return NULL;
24006 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024007 Py_ssize_t _children_capacity = 1;
24008 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024009 { // except_block
24010 if (p->error_indicator) {
24011 D(p->level--);
24012 return NULL;
24013 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024014 D(fprintf(stderr, "%*c> _loop1_48[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "except_block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024015 excepthandler_ty except_block_var;
24016 while (
24017 (except_block_var = except_block_rule(p)) // except_block
24018 )
24019 {
24020 _res = except_block_var;
24021 if (_n == _children_capacity) {
24022 _children_capacity *= 2;
24023 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24024 if (!_new_children) {
24025 p->error_indicator = 1;
24026 PyErr_NoMemory();
24027 D(p->level--);
24028 return NULL;
24029 }
24030 _children = _new_children;
24031 }
24032 _children[_n++] = _res;
24033 _mark = p->mark;
24034 }
24035 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024036 D(fprintf(stderr, "%*c%s _loop1_48[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024037 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "except_block"));
24038 }
24039 if (_n == 0 || p->error_indicator) {
24040 PyMem_Free(_children);
24041 D(p->level--);
24042 return NULL;
24043 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024044 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024045 if (!_seq) {
24046 PyMem_Free(_children);
24047 p->error_indicator = 1;
24048 PyErr_NoMemory();
24049 D(p->level--);
24050 return NULL;
24051 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024052 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024053 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024054 _PyPegen_insert_memo(p, _start_mark, _loop1_48_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024055 D(p->level--);
24056 return _seq;
24057}
24058
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024059// _tmp_49: 'as' NAME
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024060static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024061_tmp_49_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024062{
24063 D(p->level++);
24064 if (p->error_indicator) {
24065 D(p->level--);
24066 return NULL;
24067 }
24068 void * _res = NULL;
24069 int _mark = p->mark;
24070 { // 'as' NAME
24071 if (p->error_indicator) {
24072 D(p->level--);
24073 return NULL;
24074 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024075 D(fprintf(stderr, "%*c> _tmp_49[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024076 Token * _keyword;
24077 expr_ty z;
24078 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024079 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024080 &&
24081 (z = _PyPegen_name_token(p)) // NAME
24082 )
24083 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024084 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 +010024085 _res = z;
24086 if (_res == NULL && PyErr_Occurred()) {
24087 p->error_indicator = 1;
24088 D(p->level--);
24089 return NULL;
24090 }
24091 goto done;
24092 }
24093 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024094 D(fprintf(stderr, "%*c%s _tmp_49[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024095 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
24096 }
24097 _res = NULL;
24098 done:
24099 D(p->level--);
24100 return _res;
24101}
24102
Brandt Bucher145bf262021-02-26 14:51:55 -080024103// _loop1_50: case_block
24104static asdl_seq *
24105_loop1_50_rule(Parser *p)
24106{
24107 D(p->level++);
24108 if (p->error_indicator) {
24109 D(p->level--);
24110 return NULL;
24111 }
24112 void *_res = NULL;
24113 int _mark = p->mark;
24114 int _start_mark = p->mark;
24115 void **_children = PyMem_Malloc(sizeof(void *));
24116 if (!_children) {
24117 p->error_indicator = 1;
24118 PyErr_NoMemory();
24119 D(p->level--);
24120 return NULL;
24121 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024122 Py_ssize_t _children_capacity = 1;
24123 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080024124 { // case_block
24125 if (p->error_indicator) {
24126 D(p->level--);
24127 return NULL;
24128 }
24129 D(fprintf(stderr, "%*c> _loop1_50[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "case_block"));
24130 match_case_ty case_block_var;
24131 while (
24132 (case_block_var = case_block_rule(p)) // case_block
24133 )
24134 {
24135 _res = case_block_var;
24136 if (_n == _children_capacity) {
24137 _children_capacity *= 2;
24138 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24139 if (!_new_children) {
24140 p->error_indicator = 1;
24141 PyErr_NoMemory();
24142 D(p->level--);
24143 return NULL;
24144 }
24145 _children = _new_children;
24146 }
24147 _children[_n++] = _res;
24148 _mark = p->mark;
24149 }
24150 p->mark = _mark;
24151 D(fprintf(stderr, "%*c%s _loop1_50[%d-%d]: %s failed!\n", p->level, ' ',
24152 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "case_block"));
24153 }
24154 if (_n == 0 || p->error_indicator) {
24155 PyMem_Free(_children);
24156 D(p->level--);
24157 return NULL;
24158 }
24159 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
24160 if (!_seq) {
24161 PyMem_Free(_children);
24162 p->error_indicator = 1;
24163 PyErr_NoMemory();
24164 D(p->level--);
24165 return NULL;
24166 }
24167 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
24168 PyMem_Free(_children);
24169 _PyPegen_insert_memo(p, _start_mark, _loop1_50_type, _seq);
24170 D(p->level--);
24171 return _seq;
24172}
24173
24174// _loop0_52: '|' closed_pattern
24175static asdl_seq *
24176_loop0_52_rule(Parser *p)
24177{
24178 D(p->level++);
24179 if (p->error_indicator) {
24180 D(p->level--);
24181 return NULL;
24182 }
24183 void *_res = NULL;
24184 int _mark = p->mark;
24185 int _start_mark = p->mark;
24186 void **_children = PyMem_Malloc(sizeof(void *));
24187 if (!_children) {
24188 p->error_indicator = 1;
24189 PyErr_NoMemory();
24190 D(p->level--);
24191 return NULL;
24192 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024193 Py_ssize_t _children_capacity = 1;
24194 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080024195 { // '|' closed_pattern
24196 if (p->error_indicator) {
24197 D(p->level--);
24198 return NULL;
24199 }
24200 D(fprintf(stderr, "%*c> _loop0_52[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'|' closed_pattern"));
24201 Token * _literal;
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024202 pattern_ty elem;
Brandt Bucher145bf262021-02-26 14:51:55 -080024203 while (
24204 (_literal = _PyPegen_expect_token(p, 18)) // token='|'
24205 &&
24206 (elem = closed_pattern_rule(p)) // closed_pattern
24207 )
24208 {
24209 _res = elem;
24210 if (_res == NULL && PyErr_Occurred()) {
24211 p->error_indicator = 1;
24212 PyMem_Free(_children);
24213 D(p->level--);
24214 return NULL;
24215 }
24216 if (_n == _children_capacity) {
24217 _children_capacity *= 2;
24218 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24219 if (!_new_children) {
24220 p->error_indicator = 1;
24221 PyErr_NoMemory();
24222 D(p->level--);
24223 return NULL;
24224 }
24225 _children = _new_children;
24226 }
24227 _children[_n++] = _res;
24228 _mark = p->mark;
24229 }
24230 p->mark = _mark;
24231 D(fprintf(stderr, "%*c%s _loop0_52[%d-%d]: %s failed!\n", p->level, ' ',
24232 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'|' closed_pattern"));
24233 }
24234 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
24235 if (!_seq) {
24236 PyMem_Free(_children);
24237 p->error_indicator = 1;
24238 PyErr_NoMemory();
24239 D(p->level--);
24240 return NULL;
24241 }
24242 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
24243 PyMem_Free(_children);
24244 _PyPegen_insert_memo(p, _start_mark, _loop0_52_type, _seq);
24245 D(p->level--);
24246 return _seq;
24247}
24248
24249// _gather_51: closed_pattern _loop0_52
24250static asdl_seq *
24251_gather_51_rule(Parser *p)
24252{
24253 D(p->level++);
24254 if (p->error_indicator) {
24255 D(p->level--);
24256 return NULL;
24257 }
24258 asdl_seq * _res = NULL;
24259 int _mark = p->mark;
24260 { // closed_pattern _loop0_52
24261 if (p->error_indicator) {
24262 D(p->level--);
24263 return NULL;
24264 }
24265 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 +100024266 pattern_ty elem;
Brandt Bucher145bf262021-02-26 14:51:55 -080024267 asdl_seq * seq;
24268 if (
24269 (elem = closed_pattern_rule(p)) // closed_pattern
24270 &&
24271 (seq = _loop0_52_rule(p)) // _loop0_52
24272 )
24273 {
24274 D(fprintf(stderr, "%*c+ _gather_51[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "closed_pattern _loop0_52"));
24275 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
24276 goto done;
24277 }
24278 p->mark = _mark;
24279 D(fprintf(stderr, "%*c%s _gather_51[%d-%d]: %s failed!\n", p->level, ' ',
24280 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "closed_pattern _loop0_52"));
24281 }
24282 _res = NULL;
24283 done:
24284 D(p->level--);
24285 return _res;
24286}
24287
24288// _tmp_53: '+' | '-'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024289static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080024290_tmp_53_rule(Parser *p)
24291{
24292 D(p->level++);
24293 if (p->error_indicator) {
24294 D(p->level--);
24295 return NULL;
24296 }
24297 void * _res = NULL;
24298 int _mark = p->mark;
24299 { // '+'
24300 if (p->error_indicator) {
24301 D(p->level--);
24302 return NULL;
24303 }
24304 D(fprintf(stderr, "%*c> _tmp_53[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'+'"));
24305 Token * _literal;
24306 if (
24307 (_literal = _PyPegen_expect_token(p, 14)) // token='+'
24308 )
24309 {
24310 D(fprintf(stderr, "%*c+ _tmp_53[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'+'"));
24311 _res = _literal;
24312 goto done;
24313 }
24314 p->mark = _mark;
24315 D(fprintf(stderr, "%*c%s _tmp_53[%d-%d]: %s failed!\n", p->level, ' ',
24316 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'+'"));
24317 }
24318 { // '-'
24319 if (p->error_indicator) {
24320 D(p->level--);
24321 return NULL;
24322 }
24323 D(fprintf(stderr, "%*c> _tmp_53[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-'"));
24324 Token * _literal;
24325 if (
24326 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
24327 )
24328 {
24329 D(fprintf(stderr, "%*c+ _tmp_53[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-'"));
24330 _res = _literal;
24331 goto done;
24332 }
24333 p->mark = _mark;
24334 D(fprintf(stderr, "%*c%s _tmp_53[%d-%d]: %s failed!\n", p->level, ' ',
24335 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-'"));
24336 }
24337 _res = NULL;
24338 done:
24339 D(p->level--);
24340 return _res;
24341}
24342
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024343// _tmp_54: '+' | '-'
Brandt Bucher145bf262021-02-26 14:51:55 -080024344static void *
24345_tmp_54_rule(Parser *p)
24346{
24347 D(p->level++);
24348 if (p->error_indicator) {
24349 D(p->level--);
24350 return NULL;
24351 }
24352 void * _res = NULL;
24353 int _mark = p->mark;
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024354 { // '+'
Brandt Bucher145bf262021-02-26 14:51:55 -080024355 if (p->error_indicator) {
24356 D(p->level--);
24357 return NULL;
24358 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024359 D(fprintf(stderr, "%*c> _tmp_54[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'+'"));
Brandt Bucher145bf262021-02-26 14:51:55 -080024360 Token * _literal;
24361 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024362 (_literal = _PyPegen_expect_token(p, 14)) // token='+'
Brandt Bucher145bf262021-02-26 14:51:55 -080024363 )
24364 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024365 D(fprintf(stderr, "%*c+ _tmp_54[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'+'"));
Brandt Bucher145bf262021-02-26 14:51:55 -080024366 _res = _literal;
24367 goto done;
24368 }
24369 p->mark = _mark;
24370 D(fprintf(stderr, "%*c%s _tmp_54[%d-%d]: %s failed!\n", p->level, ' ',
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024371 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'+'"));
Brandt Bucher145bf262021-02-26 14:51:55 -080024372 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024373 { // '-'
Brandt Bucher145bf262021-02-26 14:51:55 -080024374 if (p->error_indicator) {
24375 D(p->level--);
24376 return NULL;
24377 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024378 D(fprintf(stderr, "%*c> _tmp_54[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-'"));
Brandt Bucher145bf262021-02-26 14:51:55 -080024379 Token * _literal;
24380 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024381 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
Brandt Bucher145bf262021-02-26 14:51:55 -080024382 )
24383 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024384 D(fprintf(stderr, "%*c+ _tmp_54[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-'"));
Brandt Bucher145bf262021-02-26 14:51:55 -080024385 _res = _literal;
24386 goto done;
24387 }
24388 p->mark = _mark;
24389 D(fprintf(stderr, "%*c%s _tmp_54[%d-%d]: %s failed!\n", p->level, ' ',
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024390 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-'"));
Brandt Bucher145bf262021-02-26 14:51:55 -080024391 }
24392 _res = NULL;
24393 done:
24394 D(p->level--);
24395 return _res;
24396}
24397
24398// _tmp_55: '.' | '(' | '='
24399static void *
24400_tmp_55_rule(Parser *p)
24401{
24402 D(p->level++);
24403 if (p->error_indicator) {
24404 D(p->level--);
24405 return NULL;
24406 }
24407 void * _res = NULL;
24408 int _mark = p->mark;
24409 { // '.'
24410 if (p->error_indicator) {
24411 D(p->level--);
24412 return NULL;
24413 }
24414 D(fprintf(stderr, "%*c> _tmp_55[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
24415 Token * _literal;
24416 if (
24417 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
24418 )
24419 {
24420 D(fprintf(stderr, "%*c+ _tmp_55[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
24421 _res = _literal;
24422 goto done;
24423 }
24424 p->mark = _mark;
24425 D(fprintf(stderr, "%*c%s _tmp_55[%d-%d]: %s failed!\n", p->level, ' ',
24426 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
24427 }
24428 { // '('
24429 if (p->error_indicator) {
24430 D(p->level--);
24431 return NULL;
24432 }
24433 D(fprintf(stderr, "%*c> _tmp_55[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'('"));
24434 Token * _literal;
24435 if (
24436 (_literal = _PyPegen_expect_token(p, 7)) // token='('
24437 )
24438 {
24439 D(fprintf(stderr, "%*c+ _tmp_55[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'('"));
24440 _res = _literal;
24441 goto done;
24442 }
24443 p->mark = _mark;
24444 D(fprintf(stderr, "%*c%s _tmp_55[%d-%d]: %s failed!\n", p->level, ' ',
24445 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'('"));
24446 }
24447 { // '='
24448 if (p->error_indicator) {
24449 D(p->level--);
24450 return NULL;
24451 }
24452 D(fprintf(stderr, "%*c> _tmp_55[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'='"));
24453 Token * _literal;
24454 if (
24455 (_literal = _PyPegen_expect_token(p, 22)) // token='='
24456 )
24457 {
24458 D(fprintf(stderr, "%*c+ _tmp_55[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'='"));
24459 _res = _literal;
24460 goto done;
24461 }
24462 p->mark = _mark;
24463 D(fprintf(stderr, "%*c%s _tmp_55[%d-%d]: %s failed!\n", p->level, ' ',
24464 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'='"));
24465 }
24466 _res = NULL;
24467 done:
24468 D(p->level--);
24469 return _res;
24470}
24471
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024472// _tmp_56: '.' | '(' | '='
24473static void *
24474_tmp_56_rule(Parser *p)
24475{
24476 D(p->level++);
24477 if (p->error_indicator) {
24478 D(p->level--);
24479 return NULL;
24480 }
24481 void * _res = NULL;
24482 int _mark = p->mark;
24483 { // '.'
24484 if (p->error_indicator) {
24485 D(p->level--);
24486 return NULL;
24487 }
24488 D(fprintf(stderr, "%*c> _tmp_56[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
24489 Token * _literal;
24490 if (
24491 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
24492 )
24493 {
24494 D(fprintf(stderr, "%*c+ _tmp_56[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
24495 _res = _literal;
24496 goto done;
24497 }
24498 p->mark = _mark;
24499 D(fprintf(stderr, "%*c%s _tmp_56[%d-%d]: %s failed!\n", p->level, ' ',
24500 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
24501 }
24502 { // '('
24503 if (p->error_indicator) {
24504 D(p->level--);
24505 return NULL;
24506 }
24507 D(fprintf(stderr, "%*c> _tmp_56[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'('"));
24508 Token * _literal;
24509 if (
24510 (_literal = _PyPegen_expect_token(p, 7)) // token='('
24511 )
24512 {
24513 D(fprintf(stderr, "%*c+ _tmp_56[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'('"));
24514 _res = _literal;
24515 goto done;
24516 }
24517 p->mark = _mark;
24518 D(fprintf(stderr, "%*c%s _tmp_56[%d-%d]: %s failed!\n", p->level, ' ',
24519 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'('"));
24520 }
24521 { // '='
24522 if (p->error_indicator) {
24523 D(p->level--);
24524 return NULL;
24525 }
24526 D(fprintf(stderr, "%*c> _tmp_56[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'='"));
24527 Token * _literal;
24528 if (
24529 (_literal = _PyPegen_expect_token(p, 22)) // token='='
24530 )
24531 {
24532 D(fprintf(stderr, "%*c+ _tmp_56[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'='"));
24533 _res = _literal;
24534 goto done;
24535 }
24536 p->mark = _mark;
24537 D(fprintf(stderr, "%*c%s _tmp_56[%d-%d]: %s failed!\n", p->level, ' ',
24538 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'='"));
24539 }
24540 _res = NULL;
24541 done:
24542 D(p->level--);
24543 return _res;
24544}
24545
24546// _loop0_58: ',' maybe_star_pattern
Brandt Bucher145bf262021-02-26 14:51:55 -080024547static asdl_seq *
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024548_loop0_58_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080024549{
24550 D(p->level++);
24551 if (p->error_indicator) {
24552 D(p->level--);
24553 return NULL;
24554 }
24555 void *_res = NULL;
24556 int _mark = p->mark;
24557 int _start_mark = p->mark;
24558 void **_children = PyMem_Malloc(sizeof(void *));
24559 if (!_children) {
24560 p->error_indicator = 1;
24561 PyErr_NoMemory();
24562 D(p->level--);
24563 return NULL;
24564 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024565 Py_ssize_t _children_capacity = 1;
24566 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080024567 { // ',' maybe_star_pattern
24568 if (p->error_indicator) {
24569 D(p->level--);
24570 return NULL;
24571 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024572 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 -080024573 Token * _literal;
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024574 pattern_ty elem;
Brandt Bucher145bf262021-02-26 14:51:55 -080024575 while (
24576 (_literal = _PyPegen_expect_token(p, 12)) // token=','
24577 &&
24578 (elem = maybe_star_pattern_rule(p)) // maybe_star_pattern
24579 )
24580 {
24581 _res = elem;
24582 if (_res == NULL && PyErr_Occurred()) {
24583 p->error_indicator = 1;
24584 PyMem_Free(_children);
24585 D(p->level--);
24586 return NULL;
24587 }
24588 if (_n == _children_capacity) {
24589 _children_capacity *= 2;
24590 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24591 if (!_new_children) {
24592 p->error_indicator = 1;
24593 PyErr_NoMemory();
24594 D(p->level--);
24595 return NULL;
24596 }
24597 _children = _new_children;
24598 }
24599 _children[_n++] = _res;
24600 _mark = p->mark;
24601 }
24602 p->mark = _mark;
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024603 D(fprintf(stderr, "%*c%s _loop0_58[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080024604 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' maybe_star_pattern"));
24605 }
24606 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
24607 if (!_seq) {
24608 PyMem_Free(_children);
24609 p->error_indicator = 1;
24610 PyErr_NoMemory();
24611 D(p->level--);
24612 return NULL;
24613 }
24614 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
24615 PyMem_Free(_children);
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024616 _PyPegen_insert_memo(p, _start_mark, _loop0_58_type, _seq);
Brandt Bucher145bf262021-02-26 14:51:55 -080024617 D(p->level--);
24618 return _seq;
24619}
24620
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024621// _gather_57: maybe_star_pattern _loop0_58
Brandt Bucher145bf262021-02-26 14:51:55 -080024622static asdl_seq *
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024623_gather_57_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080024624{
24625 D(p->level++);
24626 if (p->error_indicator) {
24627 D(p->level--);
24628 return NULL;
24629 }
24630 asdl_seq * _res = NULL;
24631 int _mark = p->mark;
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024632 { // maybe_star_pattern _loop0_58
Brandt Bucher145bf262021-02-26 14:51:55 -080024633 if (p->error_indicator) {
24634 D(p->level--);
24635 return NULL;
24636 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024637 D(fprintf(stderr, "%*c> _gather_57[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "maybe_star_pattern _loop0_58"));
24638 pattern_ty elem;
Brandt Bucher145bf262021-02-26 14:51:55 -080024639 asdl_seq * seq;
24640 if (
24641 (elem = maybe_star_pattern_rule(p)) // maybe_star_pattern
24642 &&
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024643 (seq = _loop0_58_rule(p)) // _loop0_58
Brandt Bucher145bf262021-02-26 14:51:55 -080024644 )
24645 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024646 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 -080024647 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
24648 goto done;
24649 }
24650 p->mark = _mark;
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024651 D(fprintf(stderr, "%*c%s _gather_57[%d-%d]: %s failed!\n", p->level, ' ',
24652 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "maybe_star_pattern _loop0_58"));
Brandt Bucher145bf262021-02-26 14:51:55 -080024653 }
24654 _res = NULL;
24655 done:
24656 D(p->level--);
24657 return _res;
24658}
24659
24660// _loop0_60: ',' key_value_pattern
24661static asdl_seq *
24662_loop0_60_rule(Parser *p)
24663{
24664 D(p->level++);
24665 if (p->error_indicator) {
24666 D(p->level--);
24667 return NULL;
24668 }
24669 void *_res = NULL;
24670 int _mark = p->mark;
24671 int _start_mark = p->mark;
24672 void **_children = PyMem_Malloc(sizeof(void *));
24673 if (!_children) {
24674 p->error_indicator = 1;
24675 PyErr_NoMemory();
24676 D(p->level--);
24677 return NULL;
24678 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024679 Py_ssize_t _children_capacity = 1;
24680 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080024681 { // ',' key_value_pattern
24682 if (p->error_indicator) {
24683 D(p->level--);
24684 return NULL;
24685 }
24686 D(fprintf(stderr, "%*c> _loop0_60[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' key_value_pattern"));
24687 Token * _literal;
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024688 KeyPatternPair* elem;
Brandt Bucher145bf262021-02-26 14:51:55 -080024689 while (
24690 (_literal = _PyPegen_expect_token(p, 12)) // token=','
24691 &&
24692 (elem = key_value_pattern_rule(p)) // key_value_pattern
24693 )
24694 {
24695 _res = elem;
24696 if (_res == NULL && PyErr_Occurred()) {
24697 p->error_indicator = 1;
24698 PyMem_Free(_children);
24699 D(p->level--);
24700 return NULL;
24701 }
24702 if (_n == _children_capacity) {
24703 _children_capacity *= 2;
24704 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24705 if (!_new_children) {
24706 p->error_indicator = 1;
24707 PyErr_NoMemory();
24708 D(p->level--);
24709 return NULL;
24710 }
24711 _children = _new_children;
24712 }
24713 _children[_n++] = _res;
24714 _mark = p->mark;
24715 }
24716 p->mark = _mark;
24717 D(fprintf(stderr, "%*c%s _loop0_60[%d-%d]: %s failed!\n", p->level, ' ',
24718 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' key_value_pattern"));
24719 }
24720 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
24721 if (!_seq) {
24722 PyMem_Free(_children);
24723 p->error_indicator = 1;
24724 PyErr_NoMemory();
24725 D(p->level--);
24726 return NULL;
24727 }
24728 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
24729 PyMem_Free(_children);
24730 _PyPegen_insert_memo(p, _start_mark, _loop0_60_type, _seq);
24731 D(p->level--);
24732 return _seq;
24733}
24734
24735// _gather_59: key_value_pattern _loop0_60
24736static asdl_seq *
24737_gather_59_rule(Parser *p)
24738{
24739 D(p->level++);
24740 if (p->error_indicator) {
24741 D(p->level--);
24742 return NULL;
24743 }
24744 asdl_seq * _res = NULL;
24745 int _mark = p->mark;
24746 { // key_value_pattern _loop0_60
24747 if (p->error_indicator) {
24748 D(p->level--);
24749 return NULL;
24750 }
24751 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 +100024752 KeyPatternPair* elem;
Brandt Bucher145bf262021-02-26 14:51:55 -080024753 asdl_seq * seq;
24754 if (
24755 (elem = key_value_pattern_rule(p)) // key_value_pattern
24756 &&
24757 (seq = _loop0_60_rule(p)) // _loop0_60
24758 )
24759 {
24760 D(fprintf(stderr, "%*c+ _gather_59[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "key_value_pattern _loop0_60"));
24761 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
24762 goto done;
24763 }
24764 p->mark = _mark;
24765 D(fprintf(stderr, "%*c%s _gather_59[%d-%d]: %s failed!\n", p->level, ' ',
24766 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "key_value_pattern _loop0_60"));
24767 }
24768 _res = NULL;
24769 done:
24770 D(p->level--);
24771 return _res;
24772}
24773
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024774// _tmp_61: literal_expr | attr
Brandt Bucher145bf262021-02-26 14:51:55 -080024775static void *
24776_tmp_61_rule(Parser *p)
24777{
24778 D(p->level++);
24779 if (p->error_indicator) {
24780 D(p->level--);
24781 return NULL;
24782 }
24783 void * _res = NULL;
24784 int _mark = p->mark;
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024785 { // literal_expr
Brandt Bucher145bf262021-02-26 14:51:55 -080024786 if (p->error_indicator) {
24787 D(p->level--);
24788 return NULL;
24789 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024790 D(fprintf(stderr, "%*c> _tmp_61[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "literal_expr"));
24791 expr_ty literal_expr_var;
Brandt Bucher145bf262021-02-26 14:51:55 -080024792 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024793 (literal_expr_var = literal_expr_rule(p)) // literal_expr
Brandt Bucher145bf262021-02-26 14:51:55 -080024794 )
24795 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024796 D(fprintf(stderr, "%*c+ _tmp_61[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "literal_expr"));
24797 _res = literal_expr_var;
Brandt Bucher145bf262021-02-26 14:51:55 -080024798 goto done;
24799 }
24800 p->mark = _mark;
24801 D(fprintf(stderr, "%*c%s _tmp_61[%d-%d]: %s failed!\n", p->level, ' ',
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024802 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "literal_expr"));
Brandt Bucher145bf262021-02-26 14:51:55 -080024803 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024804 { // attr
Brandt Bucher145bf262021-02-26 14:51:55 -080024805 if (p->error_indicator) {
24806 D(p->level--);
24807 return NULL;
24808 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024809 D(fprintf(stderr, "%*c> _tmp_61[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "attr"));
24810 expr_ty attr_var;
Brandt Bucher145bf262021-02-26 14:51:55 -080024811 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024812 (attr_var = attr_rule(p)) // attr
Brandt Bucher145bf262021-02-26 14:51:55 -080024813 )
24814 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024815 D(fprintf(stderr, "%*c+ _tmp_61[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "attr"));
24816 _res = attr_var;
Brandt Bucher145bf262021-02-26 14:51:55 -080024817 goto done;
24818 }
24819 p->mark = _mark;
24820 D(fprintf(stderr, "%*c%s _tmp_61[%d-%d]: %s failed!\n", p->level, ' ',
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024821 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "attr"));
Brandt Bucher145bf262021-02-26 14:51:55 -080024822 }
24823 _res = NULL;
24824 done:
24825 D(p->level--);
24826 return _res;
24827}
24828
24829// _loop0_63: ',' pattern
24830static asdl_seq *
24831_loop0_63_rule(Parser *p)
24832{
24833 D(p->level++);
24834 if (p->error_indicator) {
24835 D(p->level--);
24836 return NULL;
24837 }
24838 void *_res = NULL;
24839 int _mark = p->mark;
24840 int _start_mark = p->mark;
24841 void **_children = PyMem_Malloc(sizeof(void *));
24842 if (!_children) {
24843 p->error_indicator = 1;
24844 PyErr_NoMemory();
24845 D(p->level--);
24846 return NULL;
24847 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024848 Py_ssize_t _children_capacity = 1;
24849 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080024850 { // ',' pattern
24851 if (p->error_indicator) {
24852 D(p->level--);
24853 return NULL;
24854 }
24855 D(fprintf(stderr, "%*c> _loop0_63[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' pattern"));
24856 Token * _literal;
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024857 pattern_ty elem;
Brandt Bucher145bf262021-02-26 14:51:55 -080024858 while (
24859 (_literal = _PyPegen_expect_token(p, 12)) // token=','
24860 &&
24861 (elem = pattern_rule(p)) // pattern
24862 )
24863 {
24864 _res = elem;
24865 if (_res == NULL && PyErr_Occurred()) {
24866 p->error_indicator = 1;
24867 PyMem_Free(_children);
24868 D(p->level--);
24869 return NULL;
24870 }
24871 if (_n == _children_capacity) {
24872 _children_capacity *= 2;
24873 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24874 if (!_new_children) {
24875 p->error_indicator = 1;
24876 PyErr_NoMemory();
24877 D(p->level--);
24878 return NULL;
24879 }
24880 _children = _new_children;
24881 }
24882 _children[_n++] = _res;
24883 _mark = p->mark;
24884 }
24885 p->mark = _mark;
24886 D(fprintf(stderr, "%*c%s _loop0_63[%d-%d]: %s failed!\n", p->level, ' ',
24887 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' pattern"));
24888 }
24889 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
24890 if (!_seq) {
24891 PyMem_Free(_children);
24892 p->error_indicator = 1;
24893 PyErr_NoMemory();
24894 D(p->level--);
24895 return NULL;
24896 }
24897 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
24898 PyMem_Free(_children);
24899 _PyPegen_insert_memo(p, _start_mark, _loop0_63_type, _seq);
24900 D(p->level--);
24901 return _seq;
24902}
24903
24904// _gather_62: pattern _loop0_63
24905static asdl_seq *
24906_gather_62_rule(Parser *p)
24907{
24908 D(p->level++);
24909 if (p->error_indicator) {
24910 D(p->level--);
24911 return NULL;
24912 }
24913 asdl_seq * _res = NULL;
24914 int _mark = p->mark;
24915 { // pattern _loop0_63
24916 if (p->error_indicator) {
24917 D(p->level--);
24918 return NULL;
24919 }
24920 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 +100024921 pattern_ty elem;
Brandt Bucher145bf262021-02-26 14:51:55 -080024922 asdl_seq * seq;
24923 if (
24924 (elem = pattern_rule(p)) // pattern
24925 &&
24926 (seq = _loop0_63_rule(p)) // _loop0_63
24927 )
24928 {
24929 D(fprintf(stderr, "%*c+ _gather_62[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "pattern _loop0_63"));
24930 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
24931 goto done;
24932 }
24933 p->mark = _mark;
24934 D(fprintf(stderr, "%*c%s _gather_62[%d-%d]: %s failed!\n", p->level, ' ',
24935 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "pattern _loop0_63"));
24936 }
24937 _res = NULL;
24938 done:
24939 D(p->level--);
24940 return _res;
24941}
24942
24943// _loop0_65: ',' keyword_pattern
24944static asdl_seq *
24945_loop0_65_rule(Parser *p)
24946{
24947 D(p->level++);
24948 if (p->error_indicator) {
24949 D(p->level--);
24950 return NULL;
24951 }
24952 void *_res = NULL;
24953 int _mark = p->mark;
24954 int _start_mark = p->mark;
24955 void **_children = PyMem_Malloc(sizeof(void *));
24956 if (!_children) {
24957 p->error_indicator = 1;
24958 PyErr_NoMemory();
24959 D(p->level--);
24960 return NULL;
24961 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024962 Py_ssize_t _children_capacity = 1;
24963 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080024964 { // ',' keyword_pattern
24965 if (p->error_indicator) {
24966 D(p->level--);
24967 return NULL;
24968 }
24969 D(fprintf(stderr, "%*c> _loop0_65[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' keyword_pattern"));
24970 Token * _literal;
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024971 KeyPatternPair* elem;
Brandt Bucher145bf262021-02-26 14:51:55 -080024972 while (
24973 (_literal = _PyPegen_expect_token(p, 12)) // token=','
24974 &&
24975 (elem = keyword_pattern_rule(p)) // keyword_pattern
24976 )
24977 {
24978 _res = elem;
24979 if (_res == NULL && PyErr_Occurred()) {
24980 p->error_indicator = 1;
24981 PyMem_Free(_children);
24982 D(p->level--);
24983 return NULL;
24984 }
24985 if (_n == _children_capacity) {
24986 _children_capacity *= 2;
24987 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24988 if (!_new_children) {
24989 p->error_indicator = 1;
24990 PyErr_NoMemory();
24991 D(p->level--);
24992 return NULL;
24993 }
24994 _children = _new_children;
24995 }
24996 _children[_n++] = _res;
24997 _mark = p->mark;
24998 }
24999 p->mark = _mark;
25000 D(fprintf(stderr, "%*c%s _loop0_65[%d-%d]: %s failed!\n", p->level, ' ',
25001 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' keyword_pattern"));
25002 }
25003 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
25004 if (!_seq) {
25005 PyMem_Free(_children);
25006 p->error_indicator = 1;
25007 PyErr_NoMemory();
25008 D(p->level--);
25009 return NULL;
25010 }
25011 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
25012 PyMem_Free(_children);
25013 _PyPegen_insert_memo(p, _start_mark, _loop0_65_type, _seq);
25014 D(p->level--);
25015 return _seq;
25016}
25017
25018// _gather_64: keyword_pattern _loop0_65
25019static asdl_seq *
25020_gather_64_rule(Parser *p)
25021{
25022 D(p->level++);
25023 if (p->error_indicator) {
25024 D(p->level--);
25025 return NULL;
25026 }
25027 asdl_seq * _res = NULL;
25028 int _mark = p->mark;
25029 { // keyword_pattern _loop0_65
25030 if (p->error_indicator) {
25031 D(p->level--);
25032 return NULL;
25033 }
25034 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 +100025035 KeyPatternPair* elem;
Brandt Bucher145bf262021-02-26 14:51:55 -080025036 asdl_seq * seq;
25037 if (
25038 (elem = keyword_pattern_rule(p)) // keyword_pattern
25039 &&
25040 (seq = _loop0_65_rule(p)) // _loop0_65
25041 )
25042 {
25043 D(fprintf(stderr, "%*c+ _gather_64[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "keyword_pattern _loop0_65"));
25044 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
25045 goto done;
25046 }
25047 p->mark = _mark;
25048 D(fprintf(stderr, "%*c%s _gather_64[%d-%d]: %s failed!\n", p->level, ' ',
25049 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "keyword_pattern _loop0_65"));
25050 }
25051 _res = NULL;
25052 done:
25053 D(p->level--);
25054 return _res;
25055}
25056
25057// _tmp_66: 'from' expression
25058static void *
25059_tmp_66_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025060{
25061 D(p->level++);
25062 if (p->error_indicator) {
25063 D(p->level--);
25064 return NULL;
25065 }
25066 void * _res = NULL;
25067 int _mark = p->mark;
25068 { // 'from' expression
25069 if (p->error_indicator) {
25070 D(p->level--);
25071 return NULL;
25072 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025073 D(fprintf(stderr, "%*c> _tmp_66[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025074 Token * _keyword;
25075 expr_ty z;
25076 if (
25077 (_keyword = _PyPegen_expect_token(p, 514)) // token='from'
25078 &&
25079 (z = expression_rule(p)) // expression
25080 )
25081 {
Brandt Bucher145bf262021-02-26 14:51:55 -080025082 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 +010025083 _res = z;
25084 if (_res == NULL && PyErr_Occurred()) {
25085 p->error_indicator = 1;
25086 D(p->level--);
25087 return NULL;
25088 }
25089 goto done;
25090 }
25091 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025092 D(fprintf(stderr, "%*c%s _tmp_66[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025093 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025094 }
25095 _res = NULL;
25096 done:
25097 D(p->level--);
25098 return _res;
25099}
25100
Brandt Bucher145bf262021-02-26 14:51:55 -080025101// _tmp_67: '->' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025102static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080025103_tmp_67_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025104{
25105 D(p->level++);
25106 if (p->error_indicator) {
25107 D(p->level--);
25108 return NULL;
25109 }
25110 void * _res = NULL;
25111 int _mark = p->mark;
25112 { // '->' expression
25113 if (p->error_indicator) {
25114 D(p->level--);
25115 return NULL;
25116 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025117 D(fprintf(stderr, "%*c> _tmp_67[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'->' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025118 Token * _literal;
25119 expr_ty z;
25120 if (
25121 (_literal = _PyPegen_expect_token(p, 51)) // token='->'
25122 &&
25123 (z = expression_rule(p)) // expression
25124 )
25125 {
Brandt Bucher145bf262021-02-26 14:51:55 -080025126 D(fprintf(stderr, "%*c+ _tmp_67[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'->' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025127 _res = z;
25128 if (_res == NULL && PyErr_Occurred()) {
25129 p->error_indicator = 1;
25130 D(p->level--);
25131 return NULL;
25132 }
25133 goto done;
25134 }
25135 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025136 D(fprintf(stderr, "%*c%s _tmp_67[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025137 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'->' expression"));
25138 }
25139 _res = NULL;
25140 done:
25141 D(p->level--);
25142 return _res;
25143}
25144
Brandt Bucher145bf262021-02-26 14:51:55 -080025145// _tmp_68: '->' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025146static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080025147_tmp_68_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025148{
25149 D(p->level++);
25150 if (p->error_indicator) {
25151 D(p->level--);
25152 return NULL;
25153 }
25154 void * _res = NULL;
25155 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025156 { // '->' expression
25157 if (p->error_indicator) {
25158 D(p->level--);
25159 return NULL;
25160 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025161 D(fprintf(stderr, "%*c> _tmp_68[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'->' expression"));
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025162 Token * _literal;
25163 expr_ty z;
25164 if (
25165 (_literal = _PyPegen_expect_token(p, 51)) // token='->'
25166 &&
25167 (z = expression_rule(p)) // expression
25168 )
25169 {
Brandt Bucher145bf262021-02-26 14:51:55 -080025170 D(fprintf(stderr, "%*c+ _tmp_68[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'->' expression"));
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025171 _res = z;
25172 if (_res == NULL && PyErr_Occurred()) {
25173 p->error_indicator = 1;
25174 D(p->level--);
25175 return NULL;
25176 }
25177 goto done;
25178 }
25179 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025180 D(fprintf(stderr, "%*c%s _tmp_68[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025181 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'->' expression"));
25182 }
25183 _res = NULL;
25184 done:
25185 D(p->level--);
25186 return _res;
25187}
25188
Brandt Bucher145bf262021-02-26 14:51:55 -080025189// _tmp_69: NEWLINE INDENT
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025190static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080025191_tmp_69_rule(Parser *p)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025192{
25193 D(p->level++);
25194 if (p->error_indicator) {
25195 D(p->level--);
25196 return NULL;
25197 }
25198 void * _res = NULL;
25199 int _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025200 { // NEWLINE INDENT
25201 if (p->error_indicator) {
25202 D(p->level--);
25203 return NULL;
25204 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025205 D(fprintf(stderr, "%*c> _tmp_69[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE INDENT"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025206 Token * indent_var;
25207 Token * newline_var;
25208 if (
25209 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
25210 &&
25211 (indent_var = _PyPegen_expect_token(p, INDENT)) // token='INDENT'
25212 )
25213 {
Brandt Bucher145bf262021-02-26 14:51:55 -080025214 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 +010025215 _res = _PyPegen_dummy_name(p, newline_var, indent_var);
25216 goto done;
25217 }
25218 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025219 D(fprintf(stderr, "%*c%s _tmp_69[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025220 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE INDENT"));
25221 }
25222 _res = NULL;
25223 done:
25224 D(p->level--);
25225 return _res;
25226}
25227
Brandt Bucher145bf262021-02-26 14:51:55 -080025228// _loop0_70: param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025229static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025230_loop0_70_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025231{
25232 D(p->level++);
25233 if (p->error_indicator) {
25234 D(p->level--);
25235 return NULL;
25236 }
25237 void *_res = NULL;
25238 int _mark = p->mark;
25239 int _start_mark = p->mark;
25240 void **_children = PyMem_Malloc(sizeof(void *));
25241 if (!_children) {
25242 p->error_indicator = 1;
25243 PyErr_NoMemory();
25244 D(p->level--);
25245 return NULL;
25246 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025247 Py_ssize_t _children_capacity = 1;
25248 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025249 { // param_no_default
25250 if (p->error_indicator) {
25251 D(p->level--);
25252 return NULL;
25253 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025254 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 +010025255 arg_ty param_no_default_var;
25256 while (
25257 (param_no_default_var = param_no_default_rule(p)) // param_no_default
25258 )
25259 {
25260 _res = param_no_default_var;
25261 if (_n == _children_capacity) {
25262 _children_capacity *= 2;
25263 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25264 if (!_new_children) {
25265 p->error_indicator = 1;
25266 PyErr_NoMemory();
25267 D(p->level--);
25268 return NULL;
25269 }
25270 _children = _new_children;
25271 }
25272 _children[_n++] = _res;
25273 _mark = p->mark;
25274 }
25275 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025276 D(fprintf(stderr, "%*c%s _loop0_70[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025277 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025278 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025279 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025280 if (!_seq) {
25281 PyMem_Free(_children);
25282 p->error_indicator = 1;
25283 PyErr_NoMemory();
25284 D(p->level--);
25285 return NULL;
25286 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025287 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025288 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025289 _PyPegen_insert_memo(p, _start_mark, _loop0_70_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025290 D(p->level--);
25291 return _seq;
25292}
25293
Brandt Bucher145bf262021-02-26 14:51:55 -080025294// _loop0_71: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025295static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025296_loop0_71_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025297{
25298 D(p->level++);
25299 if (p->error_indicator) {
25300 D(p->level--);
25301 return NULL;
25302 }
25303 void *_res = NULL;
25304 int _mark = p->mark;
25305 int _start_mark = p->mark;
25306 void **_children = PyMem_Malloc(sizeof(void *));
25307 if (!_children) {
25308 p->error_indicator = 1;
25309 PyErr_NoMemory();
25310 D(p->level--);
25311 return NULL;
25312 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025313 Py_ssize_t _children_capacity = 1;
25314 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025315 { // param_with_default
25316 if (p->error_indicator) {
25317 D(p->level--);
25318 return NULL;
25319 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025320 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 +010025321 NameDefaultPair* param_with_default_var;
25322 while (
25323 (param_with_default_var = param_with_default_rule(p)) // param_with_default
25324 )
25325 {
25326 _res = param_with_default_var;
25327 if (_n == _children_capacity) {
25328 _children_capacity *= 2;
25329 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25330 if (!_new_children) {
25331 p->error_indicator = 1;
25332 PyErr_NoMemory();
25333 D(p->level--);
25334 return NULL;
25335 }
25336 _children = _new_children;
25337 }
25338 _children[_n++] = _res;
25339 _mark = p->mark;
25340 }
25341 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025342 D(fprintf(stderr, "%*c%s _loop0_71[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025343 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
25344 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025345 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025346 if (!_seq) {
25347 PyMem_Free(_children);
25348 p->error_indicator = 1;
25349 PyErr_NoMemory();
25350 D(p->level--);
25351 return NULL;
25352 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025353 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025354 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025355 _PyPegen_insert_memo(p, _start_mark, _loop0_71_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025356 D(p->level--);
25357 return _seq;
25358}
25359
Brandt Bucher145bf262021-02-26 14:51:55 -080025360// _loop0_72: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025361static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025362_loop0_72_rule(Parser *p)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025363{
25364 D(p->level++);
25365 if (p->error_indicator) {
25366 D(p->level--);
25367 return NULL;
25368 }
25369 void *_res = NULL;
25370 int _mark = p->mark;
25371 int _start_mark = p->mark;
25372 void **_children = PyMem_Malloc(sizeof(void *));
25373 if (!_children) {
25374 p->error_indicator = 1;
25375 PyErr_NoMemory();
25376 D(p->level--);
25377 return NULL;
25378 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025379 Py_ssize_t _children_capacity = 1;
25380 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025381 { // param_with_default
25382 if (p->error_indicator) {
25383 D(p->level--);
25384 return NULL;
25385 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025386 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 +030025387 NameDefaultPair* param_with_default_var;
25388 while (
25389 (param_with_default_var = param_with_default_rule(p)) // param_with_default
25390 )
25391 {
25392 _res = param_with_default_var;
25393 if (_n == _children_capacity) {
25394 _children_capacity *= 2;
25395 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25396 if (!_new_children) {
25397 p->error_indicator = 1;
25398 PyErr_NoMemory();
25399 D(p->level--);
25400 return NULL;
25401 }
25402 _children = _new_children;
25403 }
25404 _children[_n++] = _res;
25405 _mark = p->mark;
25406 }
25407 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025408 D(fprintf(stderr, "%*c%s _loop0_72[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025409 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
25410 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025411 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025412 if (!_seq) {
25413 PyMem_Free(_children);
25414 p->error_indicator = 1;
25415 PyErr_NoMemory();
25416 D(p->level--);
25417 return NULL;
25418 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025419 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025420 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025421 _PyPegen_insert_memo(p, _start_mark, _loop0_72_type, _seq);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025422 D(p->level--);
25423 return _seq;
25424}
25425
Brandt Bucher145bf262021-02-26 14:51:55 -080025426// _loop1_73: param_no_default
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025427static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025428_loop1_73_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025429{
25430 D(p->level++);
25431 if (p->error_indicator) {
25432 D(p->level--);
25433 return NULL;
25434 }
25435 void *_res = NULL;
25436 int _mark = p->mark;
25437 int _start_mark = p->mark;
25438 void **_children = PyMem_Malloc(sizeof(void *));
25439 if (!_children) {
25440 p->error_indicator = 1;
25441 PyErr_NoMemory();
25442 D(p->level--);
25443 return NULL;
25444 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025445 Py_ssize_t _children_capacity = 1;
25446 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025447 { // param_no_default
25448 if (p->error_indicator) {
25449 D(p->level--);
25450 return NULL;
25451 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025452 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 +010025453 arg_ty param_no_default_var;
25454 while (
25455 (param_no_default_var = param_no_default_rule(p)) // param_no_default
25456 )
25457 {
25458 _res = param_no_default_var;
25459 if (_n == _children_capacity) {
25460 _children_capacity *= 2;
25461 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25462 if (!_new_children) {
25463 p->error_indicator = 1;
25464 PyErr_NoMemory();
25465 D(p->level--);
25466 return NULL;
25467 }
25468 _children = _new_children;
25469 }
25470 _children[_n++] = _res;
25471 _mark = p->mark;
25472 }
25473 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025474 D(fprintf(stderr, "%*c%s _loop1_73[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025475 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
25476 }
25477 if (_n == 0 || p->error_indicator) {
25478 PyMem_Free(_children);
25479 D(p->level--);
25480 return NULL;
25481 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025482 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025483 if (!_seq) {
25484 PyMem_Free(_children);
25485 p->error_indicator = 1;
25486 PyErr_NoMemory();
25487 D(p->level--);
25488 return NULL;
25489 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025490 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025491 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025492 _PyPegen_insert_memo(p, _start_mark, _loop1_73_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025493 D(p->level--);
25494 return _seq;
25495}
25496
Brandt Bucher145bf262021-02-26 14:51:55 -080025497// _loop0_74: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025498static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025499_loop0_74_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025500{
25501 D(p->level++);
25502 if (p->error_indicator) {
25503 D(p->level--);
25504 return NULL;
25505 }
25506 void *_res = NULL;
25507 int _mark = p->mark;
25508 int _start_mark = p->mark;
25509 void **_children = PyMem_Malloc(sizeof(void *));
25510 if (!_children) {
25511 p->error_indicator = 1;
25512 PyErr_NoMemory();
25513 D(p->level--);
25514 return NULL;
25515 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025516 Py_ssize_t _children_capacity = 1;
25517 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025518 { // param_with_default
25519 if (p->error_indicator) {
25520 D(p->level--);
25521 return NULL;
25522 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025523 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 +010025524 NameDefaultPair* param_with_default_var;
25525 while (
25526 (param_with_default_var = param_with_default_rule(p)) // param_with_default
25527 )
25528 {
25529 _res = param_with_default_var;
25530 if (_n == _children_capacity) {
25531 _children_capacity *= 2;
25532 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25533 if (!_new_children) {
25534 p->error_indicator = 1;
25535 PyErr_NoMemory();
25536 D(p->level--);
25537 return NULL;
25538 }
25539 _children = _new_children;
25540 }
25541 _children[_n++] = _res;
25542 _mark = p->mark;
25543 }
25544 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025545 D(fprintf(stderr, "%*c%s _loop0_74[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025546 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
25547 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025548 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025549 if (!_seq) {
25550 PyMem_Free(_children);
25551 p->error_indicator = 1;
25552 PyErr_NoMemory();
25553 D(p->level--);
25554 return NULL;
25555 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025556 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025557 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025558 _PyPegen_insert_memo(p, _start_mark, _loop0_74_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025559 D(p->level--);
25560 return _seq;
25561}
25562
Brandt Bucher145bf262021-02-26 14:51:55 -080025563// _loop1_75: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025564static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025565_loop1_75_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025566{
25567 D(p->level++);
25568 if (p->error_indicator) {
25569 D(p->level--);
25570 return NULL;
25571 }
25572 void *_res = NULL;
25573 int _mark = p->mark;
25574 int _start_mark = p->mark;
25575 void **_children = PyMem_Malloc(sizeof(void *));
25576 if (!_children) {
25577 p->error_indicator = 1;
25578 PyErr_NoMemory();
25579 D(p->level--);
25580 return NULL;
25581 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025582 Py_ssize_t _children_capacity = 1;
25583 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025584 { // param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025585 if (p->error_indicator) {
25586 D(p->level--);
25587 return NULL;
25588 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025589 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 +030025590 NameDefaultPair* param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025591 while (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025592 (param_with_default_var = param_with_default_rule(p)) // param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025593 )
25594 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025595 _res = param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025596 if (_n == _children_capacity) {
25597 _children_capacity *= 2;
25598 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25599 if (!_new_children) {
25600 p->error_indicator = 1;
25601 PyErr_NoMemory();
25602 D(p->level--);
25603 return NULL;
25604 }
25605 _children = _new_children;
25606 }
25607 _children[_n++] = _res;
25608 _mark = p->mark;
25609 }
25610 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025611 D(fprintf(stderr, "%*c%s _loop1_75[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025612 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025613 }
25614 if (_n == 0 || p->error_indicator) {
25615 PyMem_Free(_children);
25616 D(p->level--);
25617 return NULL;
25618 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025619 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025620 if (!_seq) {
25621 PyMem_Free(_children);
25622 p->error_indicator = 1;
25623 PyErr_NoMemory();
25624 D(p->level--);
25625 return NULL;
25626 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025627 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025628 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025629 _PyPegen_insert_memo(p, _start_mark, _loop1_75_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025630 D(p->level--);
25631 return _seq;
25632}
25633
Brandt Bucher145bf262021-02-26 14:51:55 -080025634// _loop1_76: param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025635static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025636_loop1_76_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025637{
25638 D(p->level++);
25639 if (p->error_indicator) {
25640 D(p->level--);
25641 return NULL;
25642 }
25643 void *_res = NULL;
25644 int _mark = p->mark;
25645 int _start_mark = p->mark;
25646 void **_children = PyMem_Malloc(sizeof(void *));
25647 if (!_children) {
25648 p->error_indicator = 1;
25649 PyErr_NoMemory();
25650 D(p->level--);
25651 return NULL;
25652 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025653 Py_ssize_t _children_capacity = 1;
25654 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025655 { // param_no_default
25656 if (p->error_indicator) {
25657 D(p->level--);
25658 return NULL;
25659 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025660 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 +010025661 arg_ty param_no_default_var;
25662 while (
25663 (param_no_default_var = param_no_default_rule(p)) // param_no_default
25664 )
25665 {
25666 _res = param_no_default_var;
25667 if (_n == _children_capacity) {
25668 _children_capacity *= 2;
25669 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25670 if (!_new_children) {
25671 p->error_indicator = 1;
25672 PyErr_NoMemory();
25673 D(p->level--);
25674 return NULL;
25675 }
25676 _children = _new_children;
25677 }
25678 _children[_n++] = _res;
25679 _mark = p->mark;
25680 }
25681 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025682 D(fprintf(stderr, "%*c%s _loop1_76[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025683 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
25684 }
25685 if (_n == 0 || p->error_indicator) {
25686 PyMem_Free(_children);
25687 D(p->level--);
25688 return NULL;
25689 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025690 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025691 if (!_seq) {
25692 PyMem_Free(_children);
25693 p->error_indicator = 1;
25694 PyErr_NoMemory();
25695 D(p->level--);
25696 return NULL;
25697 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025698 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025699 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025700 _PyPegen_insert_memo(p, _start_mark, _loop1_76_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025701 D(p->level--);
25702 return _seq;
25703}
25704
Brandt Bucher145bf262021-02-26 14:51:55 -080025705// _loop1_77: param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025706static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025707_loop1_77_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025708{
25709 D(p->level++);
25710 if (p->error_indicator) {
25711 D(p->level--);
25712 return NULL;
25713 }
25714 void *_res = NULL;
25715 int _mark = p->mark;
25716 int _start_mark = p->mark;
25717 void **_children = PyMem_Malloc(sizeof(void *));
25718 if (!_children) {
25719 p->error_indicator = 1;
25720 PyErr_NoMemory();
25721 D(p->level--);
25722 return NULL;
25723 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025724 Py_ssize_t _children_capacity = 1;
25725 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025726 { // param_no_default
25727 if (p->error_indicator) {
25728 D(p->level--);
25729 return NULL;
25730 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025731 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 +010025732 arg_ty param_no_default_var;
25733 while (
25734 (param_no_default_var = param_no_default_rule(p)) // param_no_default
25735 )
25736 {
25737 _res = param_no_default_var;
25738 if (_n == _children_capacity) {
25739 _children_capacity *= 2;
25740 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25741 if (!_new_children) {
25742 p->error_indicator = 1;
25743 PyErr_NoMemory();
25744 D(p->level--);
25745 return NULL;
25746 }
25747 _children = _new_children;
25748 }
25749 _children[_n++] = _res;
25750 _mark = p->mark;
25751 }
25752 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025753 D(fprintf(stderr, "%*c%s _loop1_77[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025754 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
25755 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025756 if (_n == 0 || p->error_indicator) {
25757 PyMem_Free(_children);
25758 D(p->level--);
25759 return NULL;
25760 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025761 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025762 if (!_seq) {
25763 PyMem_Free(_children);
25764 p->error_indicator = 1;
25765 PyErr_NoMemory();
25766 D(p->level--);
25767 return NULL;
25768 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025769 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025770 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025771 _PyPegen_insert_memo(p, _start_mark, _loop1_77_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025772 D(p->level--);
25773 return _seq;
25774}
25775
Brandt Bucher145bf262021-02-26 14:51:55 -080025776// _loop0_78: param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025777static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025778_loop0_78_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025779{
25780 D(p->level++);
25781 if (p->error_indicator) {
25782 D(p->level--);
25783 return NULL;
25784 }
25785 void *_res = NULL;
25786 int _mark = p->mark;
25787 int _start_mark = p->mark;
25788 void **_children = PyMem_Malloc(sizeof(void *));
25789 if (!_children) {
25790 p->error_indicator = 1;
25791 PyErr_NoMemory();
25792 D(p->level--);
25793 return NULL;
25794 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025795 Py_ssize_t _children_capacity = 1;
25796 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025797 { // param_no_default
25798 if (p->error_indicator) {
25799 D(p->level--);
25800 return NULL;
25801 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025802 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 +010025803 arg_ty param_no_default_var;
25804 while (
25805 (param_no_default_var = param_no_default_rule(p)) // param_no_default
25806 )
25807 {
25808 _res = param_no_default_var;
25809 if (_n == _children_capacity) {
25810 _children_capacity *= 2;
25811 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25812 if (!_new_children) {
25813 p->error_indicator = 1;
25814 PyErr_NoMemory();
25815 D(p->level--);
25816 return NULL;
25817 }
25818 _children = _new_children;
25819 }
25820 _children[_n++] = _res;
25821 _mark = p->mark;
25822 }
25823 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025824 D(fprintf(stderr, "%*c%s _loop0_78[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025825 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
25826 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025827 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025828 if (!_seq) {
25829 PyMem_Free(_children);
25830 p->error_indicator = 1;
25831 PyErr_NoMemory();
25832 D(p->level--);
25833 return NULL;
25834 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025835 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025836 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025837 _PyPegen_insert_memo(p, _start_mark, _loop0_78_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025838 D(p->level--);
25839 return _seq;
25840}
25841
Brandt Bucher145bf262021-02-26 14:51:55 -080025842// _loop1_79: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025843static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025844_loop1_79_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025845{
25846 D(p->level++);
25847 if (p->error_indicator) {
25848 D(p->level--);
25849 return NULL;
25850 }
25851 void *_res = NULL;
25852 int _mark = p->mark;
25853 int _start_mark = p->mark;
25854 void **_children = PyMem_Malloc(sizeof(void *));
25855 if (!_children) {
25856 p->error_indicator = 1;
25857 PyErr_NoMemory();
25858 D(p->level--);
25859 return NULL;
25860 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025861 Py_ssize_t _children_capacity = 1;
25862 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025863 { // param_with_default
25864 if (p->error_indicator) {
25865 D(p->level--);
25866 return NULL;
25867 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025868 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 +010025869 NameDefaultPair* param_with_default_var;
25870 while (
25871 (param_with_default_var = param_with_default_rule(p)) // param_with_default
25872 )
25873 {
25874 _res = param_with_default_var;
25875 if (_n == _children_capacity) {
25876 _children_capacity *= 2;
25877 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25878 if (!_new_children) {
25879 p->error_indicator = 1;
25880 PyErr_NoMemory();
25881 D(p->level--);
25882 return NULL;
25883 }
25884 _children = _new_children;
25885 }
25886 _children[_n++] = _res;
25887 _mark = p->mark;
25888 }
25889 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025890 D(fprintf(stderr, "%*c%s _loop1_79[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025891 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
25892 }
25893 if (_n == 0 || p->error_indicator) {
25894 PyMem_Free(_children);
25895 D(p->level--);
25896 return NULL;
25897 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025898 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025899 if (!_seq) {
25900 PyMem_Free(_children);
25901 p->error_indicator = 1;
25902 PyErr_NoMemory();
25903 D(p->level--);
25904 return NULL;
25905 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025906 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025907 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025908 _PyPegen_insert_memo(p, _start_mark, _loop1_79_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025909 D(p->level--);
25910 return _seq;
25911}
25912
Brandt Bucher145bf262021-02-26 14:51:55 -080025913// _loop0_80: param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025914static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025915_loop0_80_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025916{
25917 D(p->level++);
25918 if (p->error_indicator) {
25919 D(p->level--);
25920 return NULL;
25921 }
25922 void *_res = NULL;
25923 int _mark = p->mark;
25924 int _start_mark = p->mark;
25925 void **_children = PyMem_Malloc(sizeof(void *));
25926 if (!_children) {
25927 p->error_indicator = 1;
25928 PyErr_NoMemory();
25929 D(p->level--);
25930 return NULL;
25931 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025932 Py_ssize_t _children_capacity = 1;
25933 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025934 { // param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025935 if (p->error_indicator) {
25936 D(p->level--);
25937 return NULL;
25938 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025939 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 +030025940 arg_ty param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025941 while (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025942 (param_no_default_var = param_no_default_rule(p)) // param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025943 )
25944 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025945 _res = param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025946 if (_n == _children_capacity) {
25947 _children_capacity *= 2;
25948 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25949 if (!_new_children) {
25950 p->error_indicator = 1;
25951 PyErr_NoMemory();
25952 D(p->level--);
25953 return NULL;
25954 }
25955 _children = _new_children;
25956 }
25957 _children[_n++] = _res;
25958 _mark = p->mark;
25959 }
25960 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025961 D(fprintf(stderr, "%*c%s _loop0_80[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025962 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025963 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025964 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025965 if (!_seq) {
25966 PyMem_Free(_children);
25967 p->error_indicator = 1;
25968 PyErr_NoMemory();
25969 D(p->level--);
25970 return NULL;
25971 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025972 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025973 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025974 _PyPegen_insert_memo(p, _start_mark, _loop0_80_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025975 D(p->level--);
25976 return _seq;
25977}
25978
Brandt Bucher145bf262021-02-26 14:51:55 -080025979// _loop1_81: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025980static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025981_loop1_81_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025982{
25983 D(p->level++);
25984 if (p->error_indicator) {
25985 D(p->level--);
25986 return NULL;
25987 }
25988 void *_res = NULL;
25989 int _mark = p->mark;
25990 int _start_mark = p->mark;
25991 void **_children = PyMem_Malloc(sizeof(void *));
25992 if (!_children) {
25993 p->error_indicator = 1;
25994 PyErr_NoMemory();
25995 D(p->level--);
25996 return NULL;
25997 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025998 Py_ssize_t _children_capacity = 1;
25999 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026000 { // param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026001 if (p->error_indicator) {
26002 D(p->level--);
26003 return NULL;
26004 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026005 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 +030026006 NameDefaultPair* param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026007 while (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026008 (param_with_default_var = param_with_default_rule(p)) // param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026009 )
26010 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026011 _res = param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026012 if (_n == _children_capacity) {
26013 _children_capacity *= 2;
26014 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26015 if (!_new_children) {
26016 p->error_indicator = 1;
26017 PyErr_NoMemory();
26018 D(p->level--);
26019 return NULL;
26020 }
26021 _children = _new_children;
26022 }
26023 _children[_n++] = _res;
26024 _mark = p->mark;
26025 }
26026 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026027 D(fprintf(stderr, "%*c%s _loop1_81[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026028 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026029 }
26030 if (_n == 0 || p->error_indicator) {
26031 PyMem_Free(_children);
26032 D(p->level--);
26033 return NULL;
26034 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026035 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026036 if (!_seq) {
26037 PyMem_Free(_children);
26038 p->error_indicator = 1;
26039 PyErr_NoMemory();
26040 D(p->level--);
26041 return NULL;
26042 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026043 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026044 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026045 _PyPegen_insert_memo(p, _start_mark, _loop1_81_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026046 D(p->level--);
26047 return _seq;
26048}
26049
Brandt Bucher145bf262021-02-26 14:51:55 -080026050// _loop0_82: param_maybe_default
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026051static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026052_loop0_82_rule(Parser *p)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026053{
26054 D(p->level++);
26055 if (p->error_indicator) {
26056 D(p->level--);
26057 return NULL;
26058 }
26059 void *_res = NULL;
26060 int _mark = p->mark;
26061 int _start_mark = p->mark;
26062 void **_children = PyMem_Malloc(sizeof(void *));
26063 if (!_children) {
26064 p->error_indicator = 1;
26065 PyErr_NoMemory();
26066 D(p->level--);
26067 return NULL;
26068 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026069 Py_ssize_t _children_capacity = 1;
26070 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026071 { // param_maybe_default
26072 if (p->error_indicator) {
26073 D(p->level--);
26074 return NULL;
26075 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026076 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 +030026077 NameDefaultPair* param_maybe_default_var;
26078 while (
26079 (param_maybe_default_var = param_maybe_default_rule(p)) // param_maybe_default
26080 )
26081 {
26082 _res = param_maybe_default_var;
26083 if (_n == _children_capacity) {
26084 _children_capacity *= 2;
26085 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26086 if (!_new_children) {
26087 p->error_indicator = 1;
26088 PyErr_NoMemory();
26089 D(p->level--);
26090 return NULL;
26091 }
26092 _children = _new_children;
26093 }
26094 _children[_n++] = _res;
26095 _mark = p->mark;
26096 }
26097 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026098 D(fprintf(stderr, "%*c%s _loop0_82[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026099 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_maybe_default"));
26100 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026101 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026102 if (!_seq) {
26103 PyMem_Free(_children);
26104 p->error_indicator = 1;
26105 PyErr_NoMemory();
26106 D(p->level--);
26107 return NULL;
26108 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026109 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026110 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026111 _PyPegen_insert_memo(p, _start_mark, _loop0_82_type, _seq);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026112 D(p->level--);
26113 return _seq;
26114}
26115
Brandt Bucher145bf262021-02-26 14:51:55 -080026116// _loop1_83: param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026117static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026118_loop1_83_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026119{
26120 D(p->level++);
26121 if (p->error_indicator) {
26122 D(p->level--);
26123 return NULL;
26124 }
26125 void *_res = NULL;
26126 int _mark = p->mark;
26127 int _start_mark = p->mark;
26128 void **_children = PyMem_Malloc(sizeof(void *));
26129 if (!_children) {
26130 p->error_indicator = 1;
26131 PyErr_NoMemory();
26132 D(p->level--);
26133 return NULL;
26134 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026135 Py_ssize_t _children_capacity = 1;
26136 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026137 { // param_maybe_default
26138 if (p->error_indicator) {
26139 D(p->level--);
26140 return NULL;
26141 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026142 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 +030026143 NameDefaultPair* param_maybe_default_var;
26144 while (
26145 (param_maybe_default_var = param_maybe_default_rule(p)) // param_maybe_default
26146 )
26147 {
26148 _res = param_maybe_default_var;
26149 if (_n == _children_capacity) {
26150 _children_capacity *= 2;
26151 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26152 if (!_new_children) {
26153 p->error_indicator = 1;
26154 PyErr_NoMemory();
26155 D(p->level--);
26156 return NULL;
26157 }
26158 _children = _new_children;
26159 }
26160 _children[_n++] = _res;
26161 _mark = p->mark;
26162 }
26163 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026164 D(fprintf(stderr, "%*c%s _loop1_83[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026165 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_maybe_default"));
26166 }
26167 if (_n == 0 || p->error_indicator) {
26168 PyMem_Free(_children);
26169 D(p->level--);
26170 return NULL;
26171 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026172 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026173 if (!_seq) {
26174 PyMem_Free(_children);
26175 p->error_indicator = 1;
26176 PyErr_NoMemory();
26177 D(p->level--);
26178 return NULL;
26179 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026180 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026181 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026182 _PyPegen_insert_memo(p, _start_mark, _loop1_83_type, _seq);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026183 D(p->level--);
26184 return _seq;
26185}
26186
Brandt Bucher145bf262021-02-26 14:51:55 -080026187// _loop1_84: ('@' named_expression NEWLINE)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026188static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026189_loop1_84_rule(Parser *p)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026190{
26191 D(p->level++);
26192 if (p->error_indicator) {
26193 D(p->level--);
26194 return NULL;
26195 }
26196 void *_res = NULL;
26197 int _mark = p->mark;
26198 int _start_mark = p->mark;
26199 void **_children = PyMem_Malloc(sizeof(void *));
26200 if (!_children) {
26201 p->error_indicator = 1;
26202 PyErr_NoMemory();
26203 D(p->level--);
26204 return NULL;
26205 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026206 Py_ssize_t _children_capacity = 1;
26207 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026208 { // ('@' named_expression NEWLINE)
26209 if (p->error_indicator) {
26210 D(p->level--);
26211 return NULL;
26212 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026213 D(fprintf(stderr, "%*c> _loop1_84[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('@' named_expression NEWLINE)"));
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000026214 void *_tmp_184_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026215 while (
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000026216 (_tmp_184_var = _tmp_184_rule(p)) // '@' named_expression NEWLINE
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026217 )
26218 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000026219 _res = _tmp_184_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026220 if (_n == _children_capacity) {
26221 _children_capacity *= 2;
26222 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26223 if (!_new_children) {
26224 p->error_indicator = 1;
26225 PyErr_NoMemory();
26226 D(p->level--);
26227 return NULL;
26228 }
26229 _children = _new_children;
26230 }
26231 _children[_n++] = _res;
26232 _mark = p->mark;
26233 }
26234 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026235 D(fprintf(stderr, "%*c%s _loop1_84[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026236 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('@' named_expression NEWLINE)"));
26237 }
26238 if (_n == 0 || p->error_indicator) {
26239 PyMem_Free(_children);
26240 D(p->level--);
26241 return NULL;
26242 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026243 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026244 if (!_seq) {
26245 PyMem_Free(_children);
26246 p->error_indicator = 1;
26247 PyErr_NoMemory();
26248 D(p->level--);
26249 return NULL;
26250 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026251 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026252 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026253 _PyPegen_insert_memo(p, _start_mark, _loop1_84_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026254 D(p->level--);
26255 return _seq;
26256}
26257
Brandt Bucher145bf262021-02-26 14:51:55 -080026258// _tmp_85: '(' arguments? ')'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026259static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080026260_tmp_85_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026261{
26262 D(p->level++);
26263 if (p->error_indicator) {
26264 D(p->level--);
26265 return NULL;
26266 }
26267 void * _res = NULL;
26268 int _mark = p->mark;
26269 { // '(' arguments? ')'
26270 if (p->error_indicator) {
26271 D(p->level--);
26272 return NULL;
26273 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026274 D(fprintf(stderr, "%*c> _tmp_85[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026275 Token * _literal;
26276 Token * _literal_1;
26277 void *z;
26278 if (
26279 (_literal = _PyPegen_expect_token(p, 7)) // token='('
26280 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +020026281 (z = arguments_rule(p), !p->error_indicator) // arguments?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026282 &&
26283 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
26284 )
26285 {
Brandt Bucher145bf262021-02-26 14:51:55 -080026286 D(fprintf(stderr, "%*c+ _tmp_85[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026287 _res = z;
26288 if (_res == NULL && PyErr_Occurred()) {
26289 p->error_indicator = 1;
26290 D(p->level--);
26291 return NULL;
26292 }
26293 goto done;
26294 }
26295 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026296 D(fprintf(stderr, "%*c%s _tmp_85[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026297 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' arguments? ')'"));
26298 }
26299 _res = NULL;
26300 done:
26301 D(p->level--);
26302 return _res;
26303}
26304
Brandt Bucher145bf262021-02-26 14:51:55 -080026305// _loop1_86: (',' star_expression)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026306static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026307_loop1_86_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026308{
26309 D(p->level++);
26310 if (p->error_indicator) {
26311 D(p->level--);
26312 return NULL;
26313 }
26314 void *_res = NULL;
26315 int _mark = p->mark;
26316 int _start_mark = p->mark;
26317 void **_children = PyMem_Malloc(sizeof(void *));
26318 if (!_children) {
26319 p->error_indicator = 1;
26320 PyErr_NoMemory();
26321 D(p->level--);
26322 return NULL;
26323 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026324 Py_ssize_t _children_capacity = 1;
26325 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026326 { // (',' star_expression)
26327 if (p->error_indicator) {
26328 D(p->level--);
26329 return NULL;
26330 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026331 D(fprintf(stderr, "%*c> _loop1_86[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' star_expression)"));
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000026332 void *_tmp_185_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026333 while (
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000026334 (_tmp_185_var = _tmp_185_rule(p)) // ',' star_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026335 )
26336 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000026337 _res = _tmp_185_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026338 if (_n == _children_capacity) {
26339 _children_capacity *= 2;
26340 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26341 if (!_new_children) {
26342 p->error_indicator = 1;
26343 PyErr_NoMemory();
26344 D(p->level--);
26345 return NULL;
26346 }
26347 _children = _new_children;
26348 }
26349 _children[_n++] = _res;
26350 _mark = p->mark;
26351 }
26352 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026353 D(fprintf(stderr, "%*c%s _loop1_86[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026354 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' star_expression)"));
26355 }
26356 if (_n == 0 || p->error_indicator) {
26357 PyMem_Free(_children);
26358 D(p->level--);
26359 return NULL;
26360 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026361 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026362 if (!_seq) {
26363 PyMem_Free(_children);
26364 p->error_indicator = 1;
26365 PyErr_NoMemory();
26366 D(p->level--);
26367 return NULL;
26368 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026369 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026370 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026371 _PyPegen_insert_memo(p, _start_mark, _loop1_86_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026372 D(p->level--);
26373 return _seq;
26374}
26375
Brandt Bucher145bf262021-02-26 14:51:55 -080026376// _loop0_88: ',' star_named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026377static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026378_loop0_88_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026379{
26380 D(p->level++);
26381 if (p->error_indicator) {
26382 D(p->level--);
26383 return NULL;
26384 }
26385 void *_res = NULL;
26386 int _mark = p->mark;
26387 int _start_mark = p->mark;
26388 void **_children = PyMem_Malloc(sizeof(void *));
26389 if (!_children) {
26390 p->error_indicator = 1;
26391 PyErr_NoMemory();
26392 D(p->level--);
26393 return NULL;
26394 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026395 Py_ssize_t _children_capacity = 1;
26396 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026397 { // ',' star_named_expression
26398 if (p->error_indicator) {
26399 D(p->level--);
26400 return NULL;
26401 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026402 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 +010026403 Token * _literal;
26404 expr_ty elem;
26405 while (
26406 (_literal = _PyPegen_expect_token(p, 12)) // token=','
26407 &&
26408 (elem = star_named_expression_rule(p)) // star_named_expression
26409 )
26410 {
26411 _res = elem;
26412 if (_res == NULL && PyErr_Occurred()) {
26413 p->error_indicator = 1;
26414 PyMem_Free(_children);
26415 D(p->level--);
26416 return NULL;
26417 }
26418 if (_n == _children_capacity) {
26419 _children_capacity *= 2;
26420 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26421 if (!_new_children) {
26422 p->error_indicator = 1;
26423 PyErr_NoMemory();
26424 D(p->level--);
26425 return NULL;
26426 }
26427 _children = _new_children;
26428 }
26429 _children[_n++] = _res;
26430 _mark = p->mark;
26431 }
26432 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026433 D(fprintf(stderr, "%*c%s _loop0_88[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026434 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_named_expression"));
26435 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026436 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026437 if (!_seq) {
26438 PyMem_Free(_children);
26439 p->error_indicator = 1;
26440 PyErr_NoMemory();
26441 D(p->level--);
26442 return NULL;
26443 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026444 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026445 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026446 _PyPegen_insert_memo(p, _start_mark, _loop0_88_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026447 D(p->level--);
26448 return _seq;
26449}
26450
Brandt Bucher145bf262021-02-26 14:51:55 -080026451// _gather_87: star_named_expression _loop0_88
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026452static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026453_gather_87_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026454{
26455 D(p->level++);
26456 if (p->error_indicator) {
26457 D(p->level--);
26458 return NULL;
26459 }
26460 asdl_seq * _res = NULL;
26461 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026462 { // star_named_expression _loop0_88
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026463 if (p->error_indicator) {
26464 D(p->level--);
26465 return NULL;
26466 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026467 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 +010026468 expr_ty elem;
26469 asdl_seq * seq;
26470 if (
26471 (elem = star_named_expression_rule(p)) // star_named_expression
26472 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080026473 (seq = _loop0_88_rule(p)) // _loop0_88
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026474 )
26475 {
Brandt Bucher145bf262021-02-26 14:51:55 -080026476 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 +010026477 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
26478 goto done;
26479 }
26480 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026481 D(fprintf(stderr, "%*c%s _gather_87[%d-%d]: %s failed!\n", p->level, ' ',
26482 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression _loop0_88"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026483 }
26484 _res = NULL;
26485 done:
26486 D(p->level--);
26487 return _res;
26488}
26489
Brandt Bucher145bf262021-02-26 14:51:55 -080026490// _loop1_89: (',' expression)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026491static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026492_loop1_89_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026493{
26494 D(p->level++);
26495 if (p->error_indicator) {
26496 D(p->level--);
26497 return NULL;
26498 }
26499 void *_res = NULL;
26500 int _mark = p->mark;
26501 int _start_mark = p->mark;
26502 void **_children = PyMem_Malloc(sizeof(void *));
26503 if (!_children) {
26504 p->error_indicator = 1;
26505 PyErr_NoMemory();
26506 D(p->level--);
26507 return NULL;
26508 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026509 Py_ssize_t _children_capacity = 1;
26510 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026511 { // (',' expression)
26512 if (p->error_indicator) {
26513 D(p->level--);
26514 return NULL;
26515 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026516 D(fprintf(stderr, "%*c> _loop1_89[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' expression)"));
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000026517 void *_tmp_186_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026518 while (
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000026519 (_tmp_186_var = _tmp_186_rule(p)) // ',' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026520 )
26521 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000026522 _res = _tmp_186_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026523 if (_n == _children_capacity) {
26524 _children_capacity *= 2;
26525 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26526 if (!_new_children) {
26527 p->error_indicator = 1;
26528 PyErr_NoMemory();
26529 D(p->level--);
26530 return NULL;
26531 }
26532 _children = _new_children;
26533 }
26534 _children[_n++] = _res;
26535 _mark = p->mark;
26536 }
26537 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026538 D(fprintf(stderr, "%*c%s _loop1_89[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026539 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' expression)"));
26540 }
26541 if (_n == 0 || p->error_indicator) {
26542 PyMem_Free(_children);
26543 D(p->level--);
26544 return NULL;
26545 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026546 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026547 if (!_seq) {
26548 PyMem_Free(_children);
26549 p->error_indicator = 1;
26550 PyErr_NoMemory();
26551 D(p->level--);
26552 return NULL;
26553 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026554 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026555 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026556 _PyPegen_insert_memo(p, _start_mark, _loop1_89_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026557 D(p->level--);
26558 return _seq;
26559}
26560
Brandt Bucher145bf262021-02-26 14:51:55 -080026561// _loop0_90: lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026562static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026563_loop0_90_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026564{
26565 D(p->level++);
26566 if (p->error_indicator) {
26567 D(p->level--);
26568 return NULL;
26569 }
26570 void *_res = NULL;
26571 int _mark = p->mark;
26572 int _start_mark = p->mark;
26573 void **_children = PyMem_Malloc(sizeof(void *));
26574 if (!_children) {
26575 p->error_indicator = 1;
26576 PyErr_NoMemory();
26577 D(p->level--);
26578 return NULL;
26579 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026580 Py_ssize_t _children_capacity = 1;
26581 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026582 { // lambda_param_no_default
26583 if (p->error_indicator) {
26584 D(p->level--);
26585 return NULL;
26586 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026587 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 +010026588 arg_ty lambda_param_no_default_var;
26589 while (
26590 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
26591 )
26592 {
26593 _res = lambda_param_no_default_var;
26594 if (_n == _children_capacity) {
26595 _children_capacity *= 2;
26596 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26597 if (!_new_children) {
26598 p->error_indicator = 1;
26599 PyErr_NoMemory();
26600 D(p->level--);
26601 return NULL;
26602 }
26603 _children = _new_children;
26604 }
26605 _children[_n++] = _res;
26606 _mark = p->mark;
26607 }
26608 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026609 D(fprintf(stderr, "%*c%s _loop0_90[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026610 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026611 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026612 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026613 if (!_seq) {
26614 PyMem_Free(_children);
26615 p->error_indicator = 1;
26616 PyErr_NoMemory();
26617 D(p->level--);
26618 return NULL;
26619 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026620 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026621 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026622 _PyPegen_insert_memo(p, _start_mark, _loop0_90_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026623 D(p->level--);
26624 return _seq;
26625}
26626
Brandt Bucher145bf262021-02-26 14:51:55 -080026627// _loop0_91: lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026628static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026629_loop0_91_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026630{
26631 D(p->level++);
26632 if (p->error_indicator) {
26633 D(p->level--);
26634 return NULL;
26635 }
26636 void *_res = NULL;
26637 int _mark = p->mark;
26638 int _start_mark = p->mark;
26639 void **_children = PyMem_Malloc(sizeof(void *));
26640 if (!_children) {
26641 p->error_indicator = 1;
26642 PyErr_NoMemory();
26643 D(p->level--);
26644 return NULL;
26645 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026646 Py_ssize_t _children_capacity = 1;
26647 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026648 { // lambda_param_with_default
26649 if (p->error_indicator) {
26650 D(p->level--);
26651 return NULL;
26652 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026653 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 +010026654 NameDefaultPair* lambda_param_with_default_var;
26655 while (
26656 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
26657 )
26658 {
26659 _res = lambda_param_with_default_var;
26660 if (_n == _children_capacity) {
26661 _children_capacity *= 2;
26662 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26663 if (!_new_children) {
26664 p->error_indicator = 1;
26665 PyErr_NoMemory();
26666 D(p->level--);
26667 return NULL;
26668 }
26669 _children = _new_children;
26670 }
26671 _children[_n++] = _res;
26672 _mark = p->mark;
26673 }
26674 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026675 D(fprintf(stderr, "%*c%s _loop0_91[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026676 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
26677 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026678 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026679 if (!_seq) {
26680 PyMem_Free(_children);
26681 p->error_indicator = 1;
26682 PyErr_NoMemory();
26683 D(p->level--);
26684 return NULL;
26685 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026686 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026687 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026688 _PyPegen_insert_memo(p, _start_mark, _loop0_91_type, _seq);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026689 D(p->level--);
26690 return _seq;
26691}
26692
Brandt Bucher145bf262021-02-26 14:51:55 -080026693// _loop0_92: lambda_param_with_default
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026694static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026695_loop0_92_rule(Parser *p)
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026696{
26697 D(p->level++);
26698 if (p->error_indicator) {
26699 D(p->level--);
26700 return NULL;
26701 }
26702 void *_res = NULL;
26703 int _mark = p->mark;
26704 int _start_mark = p->mark;
26705 void **_children = PyMem_Malloc(sizeof(void *));
26706 if (!_children) {
26707 p->error_indicator = 1;
26708 PyErr_NoMemory();
26709 D(p->level--);
26710 return NULL;
26711 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026712 Py_ssize_t _children_capacity = 1;
26713 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026714 { // lambda_param_with_default
26715 if (p->error_indicator) {
26716 D(p->level--);
26717 return NULL;
26718 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026719 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 +000026720 NameDefaultPair* lambda_param_with_default_var;
26721 while (
26722 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
26723 )
26724 {
26725 _res = lambda_param_with_default_var;
26726 if (_n == _children_capacity) {
26727 _children_capacity *= 2;
26728 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26729 if (!_new_children) {
26730 p->error_indicator = 1;
26731 PyErr_NoMemory();
26732 D(p->level--);
26733 return NULL;
26734 }
26735 _children = _new_children;
26736 }
26737 _children[_n++] = _res;
26738 _mark = p->mark;
26739 }
26740 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026741 D(fprintf(stderr, "%*c%s _loop0_92[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026742 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
26743 }
26744 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
26745 if (!_seq) {
26746 PyMem_Free(_children);
26747 p->error_indicator = 1;
26748 PyErr_NoMemory();
26749 D(p->level--);
26750 return NULL;
26751 }
26752 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
26753 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026754 _PyPegen_insert_memo(p, _start_mark, _loop0_92_type, _seq);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026755 D(p->level--);
26756 return _seq;
26757}
26758
Brandt Bucher145bf262021-02-26 14:51:55 -080026759// _loop1_93: lambda_param_no_default
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026760static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026761_loop1_93_rule(Parser *p)
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026762{
26763 D(p->level++);
26764 if (p->error_indicator) {
26765 D(p->level--);
26766 return NULL;
26767 }
26768 void *_res = NULL;
26769 int _mark = p->mark;
26770 int _start_mark = p->mark;
26771 void **_children = PyMem_Malloc(sizeof(void *));
26772 if (!_children) {
26773 p->error_indicator = 1;
26774 PyErr_NoMemory();
26775 D(p->level--);
26776 return NULL;
26777 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026778 Py_ssize_t _children_capacity = 1;
26779 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026780 { // lambda_param_no_default
26781 if (p->error_indicator) {
26782 D(p->level--);
26783 return NULL;
26784 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026785 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 +000026786 arg_ty lambda_param_no_default_var;
26787 while (
26788 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
26789 )
26790 {
26791 _res = lambda_param_no_default_var;
26792 if (_n == _children_capacity) {
26793 _children_capacity *= 2;
26794 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26795 if (!_new_children) {
26796 p->error_indicator = 1;
26797 PyErr_NoMemory();
26798 D(p->level--);
26799 return NULL;
26800 }
26801 _children = _new_children;
26802 }
26803 _children[_n++] = _res;
26804 _mark = p->mark;
26805 }
26806 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026807 D(fprintf(stderr, "%*c%s _loop1_93[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026808 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
26809 }
26810 if (_n == 0 || p->error_indicator) {
26811 PyMem_Free(_children);
26812 D(p->level--);
26813 return NULL;
26814 }
26815 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
26816 if (!_seq) {
26817 PyMem_Free(_children);
26818 p->error_indicator = 1;
26819 PyErr_NoMemory();
26820 D(p->level--);
26821 return NULL;
26822 }
26823 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
26824 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026825 _PyPegen_insert_memo(p, _start_mark, _loop1_93_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026826 D(p->level--);
26827 return _seq;
26828}
26829
Brandt Bucher145bf262021-02-26 14:51:55 -080026830// _loop0_94: lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026831static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026832_loop0_94_rule(Parser *p)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026833{
26834 D(p->level++);
26835 if (p->error_indicator) {
26836 D(p->level--);
26837 return NULL;
26838 }
26839 void *_res = NULL;
26840 int _mark = p->mark;
26841 int _start_mark = p->mark;
26842 void **_children = PyMem_Malloc(sizeof(void *));
26843 if (!_children) {
26844 p->error_indicator = 1;
26845 PyErr_NoMemory();
26846 D(p->level--);
26847 return NULL;
26848 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026849 Py_ssize_t _children_capacity = 1;
26850 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026851 { // lambda_param_with_default
26852 if (p->error_indicator) {
26853 D(p->level--);
26854 return NULL;
26855 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026856 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 +030026857 NameDefaultPair* lambda_param_with_default_var;
26858 while (
26859 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
26860 )
26861 {
26862 _res = lambda_param_with_default_var;
26863 if (_n == _children_capacity) {
26864 _children_capacity *= 2;
26865 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26866 if (!_new_children) {
26867 p->error_indicator = 1;
26868 PyErr_NoMemory();
26869 D(p->level--);
26870 return NULL;
26871 }
26872 _children = _new_children;
26873 }
26874 _children[_n++] = _res;
26875 _mark = p->mark;
26876 }
26877 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026878 D(fprintf(stderr, "%*c%s _loop0_94[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026879 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
26880 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026881 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026882 if (!_seq) {
26883 PyMem_Free(_children);
26884 p->error_indicator = 1;
26885 PyErr_NoMemory();
26886 D(p->level--);
26887 return NULL;
26888 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026889 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026890 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026891 _PyPegen_insert_memo(p, _start_mark, _loop0_94_type, _seq);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026892 D(p->level--);
26893 return _seq;
26894}
26895
Brandt Bucher145bf262021-02-26 14:51:55 -080026896// _loop1_95: lambda_param_with_default
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026897static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026898_loop1_95_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026899{
26900 D(p->level++);
26901 if (p->error_indicator) {
26902 D(p->level--);
26903 return NULL;
26904 }
26905 void *_res = NULL;
26906 int _mark = p->mark;
26907 int _start_mark = p->mark;
26908 void **_children = PyMem_Malloc(sizeof(void *));
26909 if (!_children) {
26910 p->error_indicator = 1;
26911 PyErr_NoMemory();
26912 D(p->level--);
26913 return NULL;
26914 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026915 Py_ssize_t _children_capacity = 1;
26916 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026917 { // lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026918 if (p->error_indicator) {
26919 D(p->level--);
26920 return NULL;
26921 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026922 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 +000026923 NameDefaultPair* lambda_param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026924 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026925 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026926 )
26927 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026928 _res = lambda_param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026929 if (_n == _children_capacity) {
26930 _children_capacity *= 2;
26931 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26932 if (!_new_children) {
26933 p->error_indicator = 1;
26934 PyErr_NoMemory();
26935 D(p->level--);
26936 return NULL;
26937 }
26938 _children = _new_children;
26939 }
26940 _children[_n++] = _res;
26941 _mark = p->mark;
26942 }
26943 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026944 D(fprintf(stderr, "%*c%s _loop1_95[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026945 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026946 }
26947 if (_n == 0 || p->error_indicator) {
26948 PyMem_Free(_children);
26949 D(p->level--);
26950 return NULL;
26951 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026952 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026953 if (!_seq) {
26954 PyMem_Free(_children);
26955 p->error_indicator = 1;
26956 PyErr_NoMemory();
26957 D(p->level--);
26958 return NULL;
26959 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026960 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026961 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026962 _PyPegen_insert_memo(p, _start_mark, _loop1_95_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026963 D(p->level--);
26964 return _seq;
26965}
26966
Brandt Bucher145bf262021-02-26 14:51:55 -080026967// _loop1_96: lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026968static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026969_loop1_96_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026970{
26971 D(p->level++);
26972 if (p->error_indicator) {
26973 D(p->level--);
26974 return NULL;
26975 }
26976 void *_res = NULL;
26977 int _mark = p->mark;
26978 int _start_mark = p->mark;
26979 void **_children = PyMem_Malloc(sizeof(void *));
26980 if (!_children) {
26981 p->error_indicator = 1;
26982 PyErr_NoMemory();
26983 D(p->level--);
26984 return NULL;
26985 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026986 Py_ssize_t _children_capacity = 1;
26987 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026988 { // lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026989 if (p->error_indicator) {
26990 D(p->level--);
26991 return NULL;
26992 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026993 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 +000026994 arg_ty lambda_param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026995 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026996 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026997 )
26998 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026999 _res = lambda_param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027000 if (_n == _children_capacity) {
27001 _children_capacity *= 2;
27002 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27003 if (!_new_children) {
27004 p->error_indicator = 1;
27005 PyErr_NoMemory();
27006 D(p->level--);
27007 return NULL;
27008 }
27009 _children = _new_children;
27010 }
27011 _children[_n++] = _res;
27012 _mark = p->mark;
27013 }
27014 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027015 D(fprintf(stderr, "%*c%s _loop1_96[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027016 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
27017 }
27018 if (_n == 0 || p->error_indicator) {
27019 PyMem_Free(_children);
27020 D(p->level--);
27021 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027022 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027023 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027024 if (!_seq) {
27025 PyMem_Free(_children);
27026 p->error_indicator = 1;
27027 PyErr_NoMemory();
27028 D(p->level--);
27029 return NULL;
27030 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027031 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027032 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080027033 _PyPegen_insert_memo(p, _start_mark, _loop1_96_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027034 D(p->level--);
27035 return _seq;
27036}
27037
Brandt Bucher145bf262021-02-26 14:51:55 -080027038// _loop1_97: lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027039static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027040_loop1_97_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027041{
27042 D(p->level++);
27043 if (p->error_indicator) {
27044 D(p->level--);
27045 return NULL;
27046 }
27047 void *_res = NULL;
27048 int _mark = p->mark;
27049 int _start_mark = p->mark;
27050 void **_children = PyMem_Malloc(sizeof(void *));
27051 if (!_children) {
27052 p->error_indicator = 1;
27053 PyErr_NoMemory();
27054 D(p->level--);
27055 return NULL;
27056 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027057 Py_ssize_t _children_capacity = 1;
27058 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027059 { // lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027060 if (p->error_indicator) {
27061 D(p->level--);
27062 return NULL;
27063 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027064 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 +000027065 arg_ty lambda_param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027066 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027067 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027068 )
27069 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027070 _res = lambda_param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027071 if (_n == _children_capacity) {
27072 _children_capacity *= 2;
27073 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27074 if (!_new_children) {
27075 p->error_indicator = 1;
27076 PyErr_NoMemory();
27077 D(p->level--);
27078 return NULL;
27079 }
27080 _children = _new_children;
27081 }
27082 _children[_n++] = _res;
27083 _mark = p->mark;
27084 }
27085 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027086 D(fprintf(stderr, "%*c%s _loop1_97[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027087 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027088 }
27089 if (_n == 0 || p->error_indicator) {
27090 PyMem_Free(_children);
27091 D(p->level--);
27092 return NULL;
27093 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027094 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027095 if (!_seq) {
27096 PyMem_Free(_children);
27097 p->error_indicator = 1;
27098 PyErr_NoMemory();
27099 D(p->level--);
27100 return NULL;
27101 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027102 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027103 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080027104 _PyPegen_insert_memo(p, _start_mark, _loop1_97_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027105 D(p->level--);
27106 return _seq;
27107}
27108
Brandt Bucher145bf262021-02-26 14:51:55 -080027109// _loop0_98: lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027110static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027111_loop0_98_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027112{
27113 D(p->level++);
27114 if (p->error_indicator) {
27115 D(p->level--);
27116 return NULL;
27117 }
27118 void *_res = NULL;
27119 int _mark = p->mark;
27120 int _start_mark = p->mark;
27121 void **_children = PyMem_Malloc(sizeof(void *));
27122 if (!_children) {
27123 p->error_indicator = 1;
27124 PyErr_NoMemory();
27125 D(p->level--);
27126 return NULL;
27127 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027128 Py_ssize_t _children_capacity = 1;
27129 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027130 { // lambda_param_no_default
27131 if (p->error_indicator) {
27132 D(p->level--);
27133 return NULL;
27134 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027135 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 +010027136 arg_ty lambda_param_no_default_var;
27137 while (
27138 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
27139 )
27140 {
27141 _res = lambda_param_no_default_var;
27142 if (_n == _children_capacity) {
27143 _children_capacity *= 2;
27144 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27145 if (!_new_children) {
27146 p->error_indicator = 1;
27147 PyErr_NoMemory();
27148 D(p->level--);
27149 return NULL;
27150 }
27151 _children = _new_children;
27152 }
27153 _children[_n++] = _res;
27154 _mark = p->mark;
27155 }
27156 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027157 D(fprintf(stderr, "%*c%s _loop0_98[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027158 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
27159 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027160 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027161 if (!_seq) {
27162 PyMem_Free(_children);
27163 p->error_indicator = 1;
27164 PyErr_NoMemory();
27165 D(p->level--);
27166 return NULL;
27167 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027168 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027169 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080027170 _PyPegen_insert_memo(p, _start_mark, _loop0_98_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027171 D(p->level--);
27172 return _seq;
27173}
27174
Brandt Bucher145bf262021-02-26 14:51:55 -080027175// _loop1_99: lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027176static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027177_loop1_99_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027178{
27179 D(p->level++);
27180 if (p->error_indicator) {
27181 D(p->level--);
27182 return NULL;
27183 }
27184 void *_res = NULL;
27185 int _mark = p->mark;
27186 int _start_mark = p->mark;
27187 void **_children = PyMem_Malloc(sizeof(void *));
27188 if (!_children) {
27189 p->error_indicator = 1;
27190 PyErr_NoMemory();
27191 D(p->level--);
27192 return NULL;
27193 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027194 Py_ssize_t _children_capacity = 1;
27195 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027196 { // lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027197 if (p->error_indicator) {
27198 D(p->level--);
27199 return NULL;
27200 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027201 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 +000027202 NameDefaultPair* lambda_param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027203 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027204 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027205 )
27206 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027207 _res = lambda_param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027208 if (_n == _children_capacity) {
27209 _children_capacity *= 2;
27210 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27211 if (!_new_children) {
27212 p->error_indicator = 1;
27213 PyErr_NoMemory();
27214 D(p->level--);
27215 return NULL;
27216 }
27217 _children = _new_children;
27218 }
27219 _children[_n++] = _res;
27220 _mark = p->mark;
27221 }
27222 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027223 D(fprintf(stderr, "%*c%s _loop1_99[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027224 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027225 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027226 if (_n == 0 || p->error_indicator) {
27227 PyMem_Free(_children);
27228 D(p->level--);
27229 return NULL;
27230 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027231 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027232 if (!_seq) {
27233 PyMem_Free(_children);
27234 p->error_indicator = 1;
27235 PyErr_NoMemory();
27236 D(p->level--);
27237 return NULL;
27238 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027239 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027240 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080027241 _PyPegen_insert_memo(p, _start_mark, _loop1_99_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027242 D(p->level--);
27243 return _seq;
27244}
27245
Brandt Bucher145bf262021-02-26 14:51:55 -080027246// _loop0_100: lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027247static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027248_loop0_100_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027249{
27250 D(p->level++);
27251 if (p->error_indicator) {
27252 D(p->level--);
27253 return NULL;
27254 }
27255 void *_res = NULL;
27256 int _mark = p->mark;
27257 int _start_mark = p->mark;
27258 void **_children = PyMem_Malloc(sizeof(void *));
27259 if (!_children) {
27260 p->error_indicator = 1;
27261 PyErr_NoMemory();
27262 D(p->level--);
27263 return NULL;
27264 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027265 Py_ssize_t _children_capacity = 1;
27266 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027267 { // lambda_param_no_default
27268 if (p->error_indicator) {
27269 D(p->level--);
27270 return NULL;
27271 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027272 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 +010027273 arg_ty lambda_param_no_default_var;
27274 while (
27275 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
27276 )
27277 {
27278 _res = lambda_param_no_default_var;
27279 if (_n == _children_capacity) {
27280 _children_capacity *= 2;
27281 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27282 if (!_new_children) {
27283 p->error_indicator = 1;
27284 PyErr_NoMemory();
27285 D(p->level--);
27286 return NULL;
27287 }
27288 _children = _new_children;
27289 }
27290 _children[_n++] = _res;
27291 _mark = p->mark;
27292 }
27293 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027294 D(fprintf(stderr, "%*c%s _loop0_100[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027295 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
27296 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027297 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027298 if (!_seq) {
27299 PyMem_Free(_children);
27300 p->error_indicator = 1;
27301 PyErr_NoMemory();
27302 D(p->level--);
27303 return NULL;
27304 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027305 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027306 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080027307 _PyPegen_insert_memo(p, _start_mark, _loop0_100_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027308 D(p->level--);
27309 return _seq;
27310}
27311
Brandt Bucher145bf262021-02-26 14:51:55 -080027312// _loop1_101: lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027313static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027314_loop1_101_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027315{
27316 D(p->level++);
27317 if (p->error_indicator) {
27318 D(p->level--);
27319 return NULL;
27320 }
27321 void *_res = NULL;
27322 int _mark = p->mark;
27323 int _start_mark = p->mark;
27324 void **_children = PyMem_Malloc(sizeof(void *));
27325 if (!_children) {
27326 p->error_indicator = 1;
27327 PyErr_NoMemory();
27328 D(p->level--);
27329 return NULL;
27330 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027331 Py_ssize_t _children_capacity = 1;
27332 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027333 { // lambda_param_with_default
27334 if (p->error_indicator) {
27335 D(p->level--);
27336 return NULL;
27337 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027338 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 +010027339 NameDefaultPair* lambda_param_with_default_var;
27340 while (
27341 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
27342 )
27343 {
27344 _res = lambda_param_with_default_var;
27345 if (_n == _children_capacity) {
27346 _children_capacity *= 2;
27347 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27348 if (!_new_children) {
27349 p->error_indicator = 1;
27350 PyErr_NoMemory();
27351 D(p->level--);
27352 return NULL;
27353 }
27354 _children = _new_children;
27355 }
27356 _children[_n++] = _res;
27357 _mark = p->mark;
27358 }
27359 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027360 D(fprintf(stderr, "%*c%s _loop1_101[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027361 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
27362 }
27363 if (_n == 0 || p->error_indicator) {
27364 PyMem_Free(_children);
27365 D(p->level--);
27366 return NULL;
27367 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027368 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027369 if (!_seq) {
27370 PyMem_Free(_children);
27371 p->error_indicator = 1;
27372 PyErr_NoMemory();
27373 D(p->level--);
27374 return NULL;
27375 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027376 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027377 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080027378 _PyPegen_insert_memo(p, _start_mark, _loop1_101_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027379 D(p->level--);
27380 return _seq;
27381}
27382
Brandt Bucher145bf262021-02-26 14:51:55 -080027383// _loop0_102: lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027384static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027385_loop0_102_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027386{
27387 D(p->level++);
27388 if (p->error_indicator) {
27389 D(p->level--);
27390 return NULL;
27391 }
27392 void *_res = NULL;
27393 int _mark = p->mark;
27394 int _start_mark = p->mark;
27395 void **_children = PyMem_Malloc(sizeof(void *));
27396 if (!_children) {
27397 p->error_indicator = 1;
27398 PyErr_NoMemory();
27399 D(p->level--);
27400 return NULL;
27401 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027402 Py_ssize_t _children_capacity = 1;
27403 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027404 { // lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027405 if (p->error_indicator) {
27406 D(p->level--);
27407 return NULL;
27408 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027409 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 +000027410 NameDefaultPair* lambda_param_maybe_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027411 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027412 (lambda_param_maybe_default_var = lambda_param_maybe_default_rule(p)) // lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027413 )
27414 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027415 _res = lambda_param_maybe_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027416 if (_n == _children_capacity) {
27417 _children_capacity *= 2;
27418 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27419 if (!_new_children) {
27420 p->error_indicator = 1;
27421 PyErr_NoMemory();
27422 D(p->level--);
27423 return NULL;
27424 }
27425 _children = _new_children;
27426 }
27427 _children[_n++] = _res;
27428 _mark = p->mark;
27429 }
27430 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027431 D(fprintf(stderr, "%*c%s _loop0_102[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027432 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_maybe_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027433 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027434 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027435 if (!_seq) {
27436 PyMem_Free(_children);
27437 p->error_indicator = 1;
27438 PyErr_NoMemory();
27439 D(p->level--);
27440 return NULL;
27441 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027442 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027443 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080027444 _PyPegen_insert_memo(p, _start_mark, _loop0_102_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027445 D(p->level--);
27446 return _seq;
27447}
27448
Brandt Bucher145bf262021-02-26 14:51:55 -080027449// _loop1_103: lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027450static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027451_loop1_103_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027452{
27453 D(p->level++);
27454 if (p->error_indicator) {
27455 D(p->level--);
27456 return NULL;
27457 }
27458 void *_res = NULL;
27459 int _mark = p->mark;
27460 int _start_mark = p->mark;
27461 void **_children = PyMem_Malloc(sizeof(void *));
27462 if (!_children) {
27463 p->error_indicator = 1;
27464 PyErr_NoMemory();
27465 D(p->level--);
27466 return NULL;
27467 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027468 Py_ssize_t _children_capacity = 1;
27469 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027470 { // lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027471 if (p->error_indicator) {
27472 D(p->level--);
27473 return NULL;
27474 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027475 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 +000027476 NameDefaultPair* lambda_param_maybe_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027477 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027478 (lambda_param_maybe_default_var = lambda_param_maybe_default_rule(p)) // lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027479 )
27480 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027481 _res = lambda_param_maybe_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027482 if (_n == _children_capacity) {
27483 _children_capacity *= 2;
27484 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27485 if (!_new_children) {
27486 p->error_indicator = 1;
27487 PyErr_NoMemory();
27488 D(p->level--);
27489 return NULL;
27490 }
27491 _children = _new_children;
27492 }
27493 _children[_n++] = _res;
27494 _mark = p->mark;
27495 }
27496 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027497 D(fprintf(stderr, "%*c%s _loop1_103[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027498 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_maybe_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027499 }
27500 if (_n == 0 || p->error_indicator) {
27501 PyMem_Free(_children);
27502 D(p->level--);
27503 return NULL;
27504 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027505 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027506 if (!_seq) {
27507 PyMem_Free(_children);
27508 p->error_indicator = 1;
27509 PyErr_NoMemory();
27510 D(p->level--);
27511 return NULL;
27512 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027513 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027514 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080027515 _PyPegen_insert_memo(p, _start_mark, _loop1_103_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027516 D(p->level--);
27517 return _seq;
27518}
27519
Brandt Bucher145bf262021-02-26 14:51:55 -080027520// _loop1_104: ('or' conjunction)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030027521static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027522_loop1_104_rule(Parser *p)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030027523{
27524 D(p->level++);
27525 if (p->error_indicator) {
27526 D(p->level--);
27527 return NULL;
27528 }
27529 void *_res = NULL;
27530 int _mark = p->mark;
27531 int _start_mark = p->mark;
27532 void **_children = PyMem_Malloc(sizeof(void *));
27533 if (!_children) {
27534 p->error_indicator = 1;
27535 PyErr_NoMemory();
27536 D(p->level--);
27537 return NULL;
27538 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027539 Py_ssize_t _children_capacity = 1;
27540 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027541 { // ('or' conjunction)
27542 if (p->error_indicator) {
27543 D(p->level--);
27544 return NULL;
27545 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027546 D(fprintf(stderr, "%*c> _loop1_104[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('or' conjunction)"));
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000027547 void *_tmp_187_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027548 while (
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000027549 (_tmp_187_var = _tmp_187_rule(p)) // 'or' conjunction
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027550 )
27551 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000027552 _res = _tmp_187_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027553 if (_n == _children_capacity) {
27554 _children_capacity *= 2;
27555 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27556 if (!_new_children) {
27557 p->error_indicator = 1;
27558 PyErr_NoMemory();
27559 D(p->level--);
27560 return NULL;
27561 }
27562 _children = _new_children;
27563 }
27564 _children[_n++] = _res;
27565 _mark = p->mark;
27566 }
27567 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027568 D(fprintf(stderr, "%*c%s _loop1_104[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027569 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('or' conjunction)"));
27570 }
27571 if (_n == 0 || p->error_indicator) {
27572 PyMem_Free(_children);
27573 D(p->level--);
27574 return NULL;
27575 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027576 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027577 if (!_seq) {
27578 PyMem_Free(_children);
27579 p->error_indicator = 1;
27580 PyErr_NoMemory();
27581 D(p->level--);
27582 return NULL;
27583 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027584 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027585 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080027586 _PyPegen_insert_memo(p, _start_mark, _loop1_104_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027587 D(p->level--);
27588 return _seq;
27589}
27590
Brandt Bucher145bf262021-02-26 14:51:55 -080027591// _loop1_105: ('and' inversion)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027592static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027593_loop1_105_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027594{
27595 D(p->level++);
27596 if (p->error_indicator) {
27597 D(p->level--);
27598 return NULL;
27599 }
27600 void *_res = NULL;
27601 int _mark = p->mark;
27602 int _start_mark = p->mark;
27603 void **_children = PyMem_Malloc(sizeof(void *));
27604 if (!_children) {
27605 p->error_indicator = 1;
27606 PyErr_NoMemory();
27607 D(p->level--);
27608 return NULL;
27609 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027610 Py_ssize_t _children_capacity = 1;
27611 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027612 { // ('and' inversion)
27613 if (p->error_indicator) {
27614 D(p->level--);
27615 return NULL;
27616 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027617 D(fprintf(stderr, "%*c> _loop1_105[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('and' inversion)"));
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000027618 void *_tmp_188_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027619 while (
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000027620 (_tmp_188_var = _tmp_188_rule(p)) // 'and' inversion
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027621 )
27622 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000027623 _res = _tmp_188_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027624 if (_n == _children_capacity) {
27625 _children_capacity *= 2;
27626 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27627 if (!_new_children) {
27628 p->error_indicator = 1;
27629 PyErr_NoMemory();
27630 D(p->level--);
27631 return NULL;
27632 }
27633 _children = _new_children;
27634 }
27635 _children[_n++] = _res;
27636 _mark = p->mark;
27637 }
27638 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027639 D(fprintf(stderr, "%*c%s _loop1_105[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027640 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('and' inversion)"));
27641 }
27642 if (_n == 0 || p->error_indicator) {
27643 PyMem_Free(_children);
27644 D(p->level--);
27645 return NULL;
27646 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027647 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027648 if (!_seq) {
27649 PyMem_Free(_children);
27650 p->error_indicator = 1;
27651 PyErr_NoMemory();
27652 D(p->level--);
27653 return NULL;
27654 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027655 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027656 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080027657 _PyPegen_insert_memo(p, _start_mark, _loop1_105_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027658 D(p->level--);
27659 return _seq;
27660}
27661
Brandt Bucher145bf262021-02-26 14:51:55 -080027662// _loop1_106: compare_op_bitwise_or_pair
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027663static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027664_loop1_106_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027665{
27666 D(p->level++);
27667 if (p->error_indicator) {
27668 D(p->level--);
27669 return NULL;
27670 }
27671 void *_res = NULL;
27672 int _mark = p->mark;
27673 int _start_mark = p->mark;
27674 void **_children = PyMem_Malloc(sizeof(void *));
27675 if (!_children) {
27676 p->error_indicator = 1;
27677 PyErr_NoMemory();
27678 D(p->level--);
27679 return NULL;
27680 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027681 Py_ssize_t _children_capacity = 1;
27682 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027683 { // compare_op_bitwise_or_pair
27684 if (p->error_indicator) {
27685 D(p->level--);
27686 return NULL;
27687 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027688 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 +010027689 CmpopExprPair* compare_op_bitwise_or_pair_var;
27690 while (
27691 (compare_op_bitwise_or_pair_var = compare_op_bitwise_or_pair_rule(p)) // compare_op_bitwise_or_pair
27692 )
27693 {
27694 _res = compare_op_bitwise_or_pair_var;
27695 if (_n == _children_capacity) {
27696 _children_capacity *= 2;
27697 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27698 if (!_new_children) {
27699 p->error_indicator = 1;
27700 PyErr_NoMemory();
27701 D(p->level--);
27702 return NULL;
27703 }
27704 _children = _new_children;
27705 }
27706 _children[_n++] = _res;
27707 _mark = p->mark;
27708 }
27709 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027710 D(fprintf(stderr, "%*c%s _loop1_106[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027711 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "compare_op_bitwise_or_pair"));
27712 }
27713 if (_n == 0 || p->error_indicator) {
27714 PyMem_Free(_children);
27715 D(p->level--);
27716 return NULL;
27717 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027718 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027719 if (!_seq) {
27720 PyMem_Free(_children);
27721 p->error_indicator = 1;
27722 PyErr_NoMemory();
27723 D(p->level--);
27724 return NULL;
27725 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027726 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027727 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080027728 _PyPegen_insert_memo(p, _start_mark, _loop1_106_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027729 D(p->level--);
27730 return _seq;
27731}
27732
Brandt Bucher145bf262021-02-26 14:51:55 -080027733// _tmp_107: '!='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027734static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080027735_tmp_107_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027736{
27737 D(p->level++);
27738 if (p->error_indicator) {
27739 D(p->level--);
27740 return NULL;
27741 }
27742 void * _res = NULL;
27743 int _mark = p->mark;
27744 { // '!='
27745 if (p->error_indicator) {
27746 D(p->level--);
27747 return NULL;
27748 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027749 D(fprintf(stderr, "%*c> _tmp_107[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'!='"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027750 Token * tok;
27751 if (
27752 (tok = _PyPegen_expect_token(p, 28)) // token='!='
27753 )
27754 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027755 D(fprintf(stderr, "%*c+ _tmp_107[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'!='"));
Pablo Galindo06f8c332020-10-30 23:48:42 +000027756 _res = _PyPegen_check_barry_as_flufl ( p , tok ) ? NULL : tok;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027757 if (_res == NULL && PyErr_Occurred()) {
27758 p->error_indicator = 1;
27759 D(p->level--);
27760 return NULL;
27761 }
27762 goto done;
27763 }
27764 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027765 D(fprintf(stderr, "%*c%s _tmp_107[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027766 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'!='"));
27767 }
27768 _res = NULL;
27769 done:
27770 D(p->level--);
27771 return _res;
27772}
27773
Brandt Bucher145bf262021-02-26 14:51:55 -080027774// _loop0_109: ',' slice
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027775static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027776_loop0_109_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027777{
27778 D(p->level++);
27779 if (p->error_indicator) {
27780 D(p->level--);
27781 return NULL;
27782 }
27783 void *_res = NULL;
27784 int _mark = p->mark;
27785 int _start_mark = p->mark;
27786 void **_children = PyMem_Malloc(sizeof(void *));
27787 if (!_children) {
27788 p->error_indicator = 1;
27789 PyErr_NoMemory();
27790 D(p->level--);
27791 return NULL;
27792 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027793 Py_ssize_t _children_capacity = 1;
27794 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027795 { // ',' slice
27796 if (p->error_indicator) {
27797 D(p->level--);
27798 return NULL;
27799 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027800 D(fprintf(stderr, "%*c> _loop0_109[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' slice"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027801 Token * _literal;
27802 expr_ty elem;
27803 while (
27804 (_literal = _PyPegen_expect_token(p, 12)) // token=','
27805 &&
27806 (elem = slice_rule(p)) // slice
27807 )
27808 {
27809 _res = elem;
27810 if (_res == NULL && PyErr_Occurred()) {
27811 p->error_indicator = 1;
27812 PyMem_Free(_children);
27813 D(p->level--);
27814 return NULL;
27815 }
27816 if (_n == _children_capacity) {
27817 _children_capacity *= 2;
27818 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27819 if (!_new_children) {
27820 p->error_indicator = 1;
27821 PyErr_NoMemory();
27822 D(p->level--);
27823 return NULL;
27824 }
27825 _children = _new_children;
27826 }
27827 _children[_n++] = _res;
27828 _mark = p->mark;
27829 }
27830 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027831 D(fprintf(stderr, "%*c%s _loop0_109[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027832 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' slice"));
27833 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027834 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027835 if (!_seq) {
27836 PyMem_Free(_children);
27837 p->error_indicator = 1;
27838 PyErr_NoMemory();
27839 D(p->level--);
27840 return NULL;
27841 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027842 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027843 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080027844 _PyPegen_insert_memo(p, _start_mark, _loop0_109_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027845 D(p->level--);
27846 return _seq;
27847}
27848
Brandt Bucher145bf262021-02-26 14:51:55 -080027849// _gather_108: slice _loop0_109
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027850static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027851_gather_108_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027852{
27853 D(p->level++);
27854 if (p->error_indicator) {
27855 D(p->level--);
27856 return NULL;
27857 }
27858 asdl_seq * _res = NULL;
27859 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027860 { // slice _loop0_109
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027861 if (p->error_indicator) {
27862 D(p->level--);
27863 return NULL;
27864 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027865 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 +010027866 expr_ty elem;
27867 asdl_seq * seq;
27868 if (
27869 (elem = slice_rule(p)) // slice
27870 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080027871 (seq = _loop0_109_rule(p)) // _loop0_109
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027872 )
27873 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027874 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 +010027875 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
27876 goto done;
27877 }
27878 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027879 D(fprintf(stderr, "%*c%s _gather_108[%d-%d]: %s failed!\n", p->level, ' ',
27880 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slice _loop0_109"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027881 }
27882 _res = NULL;
27883 done:
27884 D(p->level--);
27885 return _res;
27886}
27887
Brandt Bucher145bf262021-02-26 14:51:55 -080027888// _tmp_110: ':' expression?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027889static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080027890_tmp_110_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027891{
27892 D(p->level++);
27893 if (p->error_indicator) {
27894 D(p->level--);
27895 return NULL;
27896 }
27897 void * _res = NULL;
27898 int _mark = p->mark;
27899 { // ':' expression?
27900 if (p->error_indicator) {
27901 D(p->level--);
27902 return NULL;
27903 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027904 D(fprintf(stderr, "%*c> _tmp_110[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':' expression?"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027905 Token * _literal;
27906 void *d;
27907 if (
27908 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
27909 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +020027910 (d = expression_rule(p), !p->error_indicator) // expression?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027911 )
27912 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027913 D(fprintf(stderr, "%*c+ _tmp_110[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':' expression?"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027914 _res = d;
27915 if (_res == NULL && PyErr_Occurred()) {
27916 p->error_indicator = 1;
27917 D(p->level--);
27918 return NULL;
27919 }
27920 goto done;
27921 }
27922 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027923 D(fprintf(stderr, "%*c%s _tmp_110[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027924 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':' expression?"));
27925 }
27926 _res = NULL;
27927 done:
27928 D(p->level--);
27929 return _res;
27930}
27931
Brandt Bucher145bf262021-02-26 14:51:55 -080027932// _tmp_111: tuple | group | genexp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027933static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080027934_tmp_111_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027935{
27936 D(p->level++);
27937 if (p->error_indicator) {
27938 D(p->level--);
27939 return NULL;
27940 }
27941 void * _res = NULL;
27942 int _mark = p->mark;
27943 { // tuple
27944 if (p->error_indicator) {
27945 D(p->level--);
27946 return NULL;
27947 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027948 D(fprintf(stderr, "%*c> _tmp_111[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "tuple"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027949 expr_ty tuple_var;
27950 if (
27951 (tuple_var = tuple_rule(p)) // tuple
27952 )
27953 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027954 D(fprintf(stderr, "%*c+ _tmp_111[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "tuple"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027955 _res = tuple_var;
27956 goto done;
27957 }
27958 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027959 D(fprintf(stderr, "%*c%s _tmp_111[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027960 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "tuple"));
27961 }
27962 { // group
27963 if (p->error_indicator) {
27964 D(p->level--);
27965 return NULL;
27966 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027967 D(fprintf(stderr, "%*c> _tmp_111[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "group"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027968 expr_ty group_var;
27969 if (
27970 (group_var = group_rule(p)) // group
27971 )
27972 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027973 D(fprintf(stderr, "%*c+ _tmp_111[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "group"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027974 _res = group_var;
27975 goto done;
27976 }
27977 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027978 D(fprintf(stderr, "%*c%s _tmp_111[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027979 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "group"));
27980 }
27981 { // genexp
27982 if (p->error_indicator) {
27983 D(p->level--);
27984 return NULL;
27985 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027986 D(fprintf(stderr, "%*c> _tmp_111[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "genexp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027987 expr_ty genexp_var;
27988 if (
27989 (genexp_var = genexp_rule(p)) // genexp
27990 )
27991 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027992 D(fprintf(stderr, "%*c+ _tmp_111[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "genexp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027993 _res = genexp_var;
27994 goto done;
27995 }
27996 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027997 D(fprintf(stderr, "%*c%s _tmp_111[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027998 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "genexp"));
27999 }
28000 _res = NULL;
28001 done:
28002 D(p->level--);
28003 return _res;
28004}
28005
Brandt Bucher145bf262021-02-26 14:51:55 -080028006// _tmp_112: list | listcomp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028007static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080028008_tmp_112_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028009{
28010 D(p->level++);
28011 if (p->error_indicator) {
28012 D(p->level--);
28013 return NULL;
28014 }
28015 void * _res = NULL;
28016 int _mark = p->mark;
28017 { // list
28018 if (p->error_indicator) {
28019 D(p->level--);
28020 return NULL;
28021 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028022 D(fprintf(stderr, "%*c> _tmp_112[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "list"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028023 expr_ty list_var;
28024 if (
28025 (list_var = list_rule(p)) // list
28026 )
28027 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028028 D(fprintf(stderr, "%*c+ _tmp_112[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "list"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028029 _res = list_var;
28030 goto done;
28031 }
28032 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028033 D(fprintf(stderr, "%*c%s _tmp_112[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028034 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "list"));
28035 }
28036 { // listcomp
28037 if (p->error_indicator) {
28038 D(p->level--);
28039 return NULL;
28040 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028041 D(fprintf(stderr, "%*c> _tmp_112[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "listcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028042 expr_ty listcomp_var;
28043 if (
28044 (listcomp_var = listcomp_rule(p)) // listcomp
28045 )
28046 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028047 D(fprintf(stderr, "%*c+ _tmp_112[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "listcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028048 _res = listcomp_var;
28049 goto done;
28050 }
28051 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028052 D(fprintf(stderr, "%*c%s _tmp_112[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028053 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "listcomp"));
28054 }
28055 _res = NULL;
28056 done:
28057 D(p->level--);
28058 return _res;
28059}
28060
Brandt Bucher145bf262021-02-26 14:51:55 -080028061// _tmp_113: dict | set | dictcomp | setcomp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028062static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080028063_tmp_113_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028064{
28065 D(p->level++);
28066 if (p->error_indicator) {
28067 D(p->level--);
28068 return NULL;
28069 }
28070 void * _res = NULL;
28071 int _mark = p->mark;
28072 { // dict
28073 if (p->error_indicator) {
28074 D(p->level--);
28075 return NULL;
28076 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028077 D(fprintf(stderr, "%*c> _tmp_113[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dict"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028078 expr_ty dict_var;
28079 if (
28080 (dict_var = dict_rule(p)) // dict
28081 )
28082 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028083 D(fprintf(stderr, "%*c+ _tmp_113[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dict"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028084 _res = dict_var;
28085 goto done;
28086 }
28087 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028088 D(fprintf(stderr, "%*c%s _tmp_113[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028089 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dict"));
28090 }
28091 { // set
28092 if (p->error_indicator) {
28093 D(p->level--);
28094 return NULL;
28095 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028096 D(fprintf(stderr, "%*c> _tmp_113[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "set"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028097 expr_ty set_var;
28098 if (
28099 (set_var = set_rule(p)) // set
28100 )
28101 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028102 D(fprintf(stderr, "%*c+ _tmp_113[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "set"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028103 _res = set_var;
28104 goto done;
28105 }
28106 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028107 D(fprintf(stderr, "%*c%s _tmp_113[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028108 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "set"));
28109 }
28110 { // dictcomp
28111 if (p->error_indicator) {
28112 D(p->level--);
28113 return NULL;
28114 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028115 D(fprintf(stderr, "%*c> _tmp_113[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dictcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028116 expr_ty dictcomp_var;
28117 if (
28118 (dictcomp_var = dictcomp_rule(p)) // dictcomp
28119 )
28120 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028121 D(fprintf(stderr, "%*c+ _tmp_113[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dictcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028122 _res = dictcomp_var;
28123 goto done;
28124 }
28125 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028126 D(fprintf(stderr, "%*c%s _tmp_113[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028127 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dictcomp"));
28128 }
28129 { // setcomp
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> _tmp_113[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "setcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028135 expr_ty setcomp_var;
28136 if (
28137 (setcomp_var = setcomp_rule(p)) // setcomp
28138 )
28139 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028140 D(fprintf(stderr, "%*c+ _tmp_113[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "setcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028141 _res = setcomp_var;
28142 goto done;
28143 }
28144 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028145 D(fprintf(stderr, "%*c%s _tmp_113[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028146 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "setcomp"));
28147 }
28148 _res = NULL;
28149 done:
28150 D(p->level--);
28151 return _res;
28152}
28153
Brandt Bucher145bf262021-02-26 14:51:55 -080028154// _loop1_114: STRING
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028155static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080028156_loop1_114_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028157{
28158 D(p->level++);
28159 if (p->error_indicator) {
28160 D(p->level--);
28161 return NULL;
28162 }
28163 void *_res = NULL;
28164 int _mark = p->mark;
28165 int _start_mark = p->mark;
28166 void **_children = PyMem_Malloc(sizeof(void *));
28167 if (!_children) {
28168 p->error_indicator = 1;
28169 PyErr_NoMemory();
28170 D(p->level--);
28171 return NULL;
28172 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010028173 Py_ssize_t _children_capacity = 1;
28174 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028175 { // STRING
28176 if (p->error_indicator) {
28177 D(p->level--);
28178 return NULL;
28179 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028180 D(fprintf(stderr, "%*c> _loop1_114[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "STRING"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028181 expr_ty string_var;
28182 while (
28183 (string_var = _PyPegen_string_token(p)) // STRING
28184 )
28185 {
28186 _res = string_var;
28187 if (_n == _children_capacity) {
28188 _children_capacity *= 2;
28189 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28190 if (!_new_children) {
28191 p->error_indicator = 1;
28192 PyErr_NoMemory();
28193 D(p->level--);
28194 return NULL;
28195 }
28196 _children = _new_children;
28197 }
28198 _children[_n++] = _res;
28199 _mark = p->mark;
28200 }
28201 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028202 D(fprintf(stderr, "%*c%s _loop1_114[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028203 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "STRING"));
28204 }
28205 if (_n == 0 || p->error_indicator) {
28206 PyMem_Free(_children);
28207 D(p->level--);
28208 return NULL;
28209 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010028210 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028211 if (!_seq) {
28212 PyMem_Free(_children);
28213 p->error_indicator = 1;
28214 PyErr_NoMemory();
28215 D(p->level--);
28216 return NULL;
28217 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010028218 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028219 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080028220 _PyPegen_insert_memo(p, _start_mark, _loop1_114_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028221 D(p->level--);
28222 return _seq;
28223}
28224
Brandt Bucher145bf262021-02-26 14:51:55 -080028225// _tmp_115: star_named_expression ',' star_named_expressions?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028226static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080028227_tmp_115_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028228{
28229 D(p->level++);
28230 if (p->error_indicator) {
28231 D(p->level--);
28232 return NULL;
28233 }
28234 void * _res = NULL;
28235 int _mark = p->mark;
28236 { // star_named_expression ',' star_named_expressions?
28237 if (p->error_indicator) {
28238 D(p->level--);
28239 return NULL;
28240 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028241 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 +010028242 Token * _literal;
28243 expr_ty y;
28244 void *z;
28245 if (
28246 (y = star_named_expression_rule(p)) // star_named_expression
28247 &&
28248 (_literal = _PyPegen_expect_token(p, 12)) // token=','
28249 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +020028250 (z = star_named_expressions_rule(p), !p->error_indicator) // star_named_expressions?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028251 )
28252 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028253 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 +010028254 _res = _PyPegen_seq_insert_in_front ( p , y , z );
28255 if (_res == NULL && PyErr_Occurred()) {
28256 p->error_indicator = 1;
28257 D(p->level--);
28258 return NULL;
28259 }
28260 goto done;
28261 }
28262 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028263 D(fprintf(stderr, "%*c%s _tmp_115[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028264 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression ',' star_named_expressions?"));
28265 }
28266 _res = NULL;
28267 done:
28268 D(p->level--);
28269 return _res;
28270}
28271
Brandt Bucher145bf262021-02-26 14:51:55 -080028272// _tmp_116: yield_expr | named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028273static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080028274_tmp_116_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028275{
28276 D(p->level++);
28277 if (p->error_indicator) {
28278 D(p->level--);
28279 return NULL;
28280 }
28281 void * _res = NULL;
28282 int _mark = p->mark;
28283 { // yield_expr
28284 if (p->error_indicator) {
28285 D(p->level--);
28286 return NULL;
28287 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028288 D(fprintf(stderr, "%*c> _tmp_116[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028289 expr_ty yield_expr_var;
28290 if (
28291 (yield_expr_var = yield_expr_rule(p)) // yield_expr
28292 )
28293 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028294 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 +010028295 _res = yield_expr_var;
28296 goto done;
28297 }
28298 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028299 D(fprintf(stderr, "%*c%s _tmp_116[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028300 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
28301 }
28302 { // named_expression
28303 if (p->error_indicator) {
28304 D(p->level--);
28305 return NULL;
28306 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028307 D(fprintf(stderr, "%*c> _tmp_116[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028308 expr_ty named_expression_var;
28309 if (
28310 (named_expression_var = named_expression_rule(p)) // named_expression
28311 )
28312 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028313 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 +010028314 _res = named_expression_var;
28315 goto done;
28316 }
28317 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028318 D(fprintf(stderr, "%*c%s _tmp_116[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028319 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression"));
28320 }
28321 _res = NULL;
28322 done:
28323 D(p->level--);
28324 return _res;
28325}
28326
Pablo Galindo Salgado0e34a592021-11-04 23:19:27 +000028327// _tmp_117: assignment_expression | expression !':='
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028328static void *
28329_tmp_117_rule(Parser *p)
28330{
28331 D(p->level++);
28332 if (p->error_indicator) {
28333 D(p->level--);
28334 return NULL;
28335 }
28336 void * _res = NULL;
28337 int _mark = p->mark;
Pablo Galindo Salgado0e34a592021-11-04 23:19:27 +000028338 { // assignment_expression
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028339 if (p->error_indicator) {
28340 D(p->level--);
28341 return NULL;
28342 }
Pablo Galindo Salgado0e34a592021-11-04 23:19:27 +000028343 D(fprintf(stderr, "%*c> _tmp_117[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "assignment_expression"));
28344 expr_ty assignment_expression_var;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028345 if (
Pablo Galindo Salgado0e34a592021-11-04 23:19:27 +000028346 (assignment_expression_var = assignment_expression_rule(p)) // assignment_expression
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028347 )
28348 {
Pablo Galindo Salgado0e34a592021-11-04 23:19:27 +000028349 D(fprintf(stderr, "%*c+ _tmp_117[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "assignment_expression"));
28350 _res = assignment_expression_var;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028351 goto done;
28352 }
28353 p->mark = _mark;
28354 D(fprintf(stderr, "%*c%s _tmp_117[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo Salgado0e34a592021-11-04 23:19:27 +000028355 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "assignment_expression"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028356 }
28357 { // expression !':='
28358 if (p->error_indicator) {
28359 D(p->level--);
28360 return NULL;
28361 }
28362 D(fprintf(stderr, "%*c> _tmp_117[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression !':='"));
28363 expr_ty expression_var;
28364 if (
28365 (expression_var = expression_rule(p)) // expression
28366 &&
28367 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 53) // token=':='
28368 )
28369 {
28370 D(fprintf(stderr, "%*c+ _tmp_117[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression !':='"));
28371 _res = expression_var;
28372 goto done;
28373 }
28374 p->mark = _mark;
28375 D(fprintf(stderr, "%*c%s _tmp_117[%d-%d]: %s failed!\n", p->level, ' ',
28376 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression !':='"));
28377 }
28378 _res = NULL;
28379 done:
28380 D(p->level--);
28381 return _res;
28382}
28383
28384// _loop0_119: ',' double_starred_kvpair
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028385static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028386_loop0_119_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028387{
28388 D(p->level++);
28389 if (p->error_indicator) {
28390 D(p->level--);
28391 return NULL;
28392 }
28393 void *_res = NULL;
28394 int _mark = p->mark;
28395 int _start_mark = p->mark;
28396 void **_children = PyMem_Malloc(sizeof(void *));
28397 if (!_children) {
28398 p->error_indicator = 1;
28399 PyErr_NoMemory();
28400 D(p->level--);
28401 return NULL;
28402 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010028403 Py_ssize_t _children_capacity = 1;
28404 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028405 { // ',' double_starred_kvpair
28406 if (p->error_indicator) {
28407 D(p->level--);
28408 return NULL;
28409 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028410 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 +010028411 Token * _literal;
28412 KeyValuePair* elem;
28413 while (
28414 (_literal = _PyPegen_expect_token(p, 12)) // token=','
28415 &&
28416 (elem = double_starred_kvpair_rule(p)) // double_starred_kvpair
28417 )
28418 {
28419 _res = elem;
28420 if (_res == NULL && PyErr_Occurred()) {
28421 p->error_indicator = 1;
28422 PyMem_Free(_children);
28423 D(p->level--);
28424 return NULL;
28425 }
28426 if (_n == _children_capacity) {
28427 _children_capacity *= 2;
28428 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28429 if (!_new_children) {
28430 p->error_indicator = 1;
28431 PyErr_NoMemory();
28432 D(p->level--);
28433 return NULL;
28434 }
28435 _children = _new_children;
28436 }
28437 _children[_n++] = _res;
28438 _mark = p->mark;
28439 }
28440 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028441 D(fprintf(stderr, "%*c%s _loop0_119[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028442 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' double_starred_kvpair"));
28443 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010028444 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028445 if (!_seq) {
28446 PyMem_Free(_children);
28447 p->error_indicator = 1;
28448 PyErr_NoMemory();
28449 D(p->level--);
28450 return NULL;
28451 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010028452 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028453 PyMem_Free(_children);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028454 _PyPegen_insert_memo(p, _start_mark, _loop0_119_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028455 D(p->level--);
28456 return _seq;
28457}
28458
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028459// _gather_118: double_starred_kvpair _loop0_119
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028460static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028461_gather_118_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028462{
28463 D(p->level++);
28464 if (p->error_indicator) {
28465 D(p->level--);
28466 return NULL;
28467 }
28468 asdl_seq * _res = NULL;
28469 int _mark = p->mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028470 { // double_starred_kvpair _loop0_119
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028471 if (p->error_indicator) {
28472 D(p->level--);
28473 return NULL;
28474 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028475 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 +010028476 KeyValuePair* elem;
28477 asdl_seq * seq;
28478 if (
28479 (elem = double_starred_kvpair_rule(p)) // double_starred_kvpair
28480 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028481 (seq = _loop0_119_rule(p)) // _loop0_119
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028482 )
28483 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028484 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 +010028485 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
28486 goto done;
28487 }
28488 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028489 D(fprintf(stderr, "%*c%s _gather_118[%d-%d]: %s failed!\n", p->level, ' ',
28490 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "double_starred_kvpair _loop0_119"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028491 }
28492 _res = NULL;
28493 done:
28494 D(p->level--);
28495 return _res;
28496}
28497
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028498// _loop1_120: for_if_clause
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028499static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028500_loop1_120_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028501{
28502 D(p->level++);
28503 if (p->error_indicator) {
28504 D(p->level--);
28505 return NULL;
28506 }
28507 void *_res = NULL;
28508 int _mark = p->mark;
28509 int _start_mark = p->mark;
28510 void **_children = PyMem_Malloc(sizeof(void *));
28511 if (!_children) {
28512 p->error_indicator = 1;
28513 PyErr_NoMemory();
28514 D(p->level--);
28515 return NULL;
28516 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010028517 Py_ssize_t _children_capacity = 1;
28518 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028519 { // for_if_clause
28520 if (p->error_indicator) {
28521 D(p->level--);
28522 return NULL;
28523 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028524 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 +010028525 comprehension_ty for_if_clause_var;
28526 while (
28527 (for_if_clause_var = for_if_clause_rule(p)) // for_if_clause
28528 )
28529 {
28530 _res = for_if_clause_var;
28531 if (_n == _children_capacity) {
28532 _children_capacity *= 2;
28533 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28534 if (!_new_children) {
28535 p->error_indicator = 1;
28536 PyErr_NoMemory();
28537 D(p->level--);
28538 return NULL;
28539 }
28540 _children = _new_children;
28541 }
28542 _children[_n++] = _res;
28543 _mark = p->mark;
28544 }
28545 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028546 D(fprintf(stderr, "%*c%s _loop1_120[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028547 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "for_if_clause"));
28548 }
28549 if (_n == 0 || p->error_indicator) {
28550 PyMem_Free(_children);
28551 D(p->level--);
28552 return NULL;
28553 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010028554 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028555 if (!_seq) {
28556 PyMem_Free(_children);
28557 p->error_indicator = 1;
28558 PyErr_NoMemory();
28559 D(p->level--);
28560 return NULL;
28561 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010028562 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028563 PyMem_Free(_children);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028564 _PyPegen_insert_memo(p, _start_mark, _loop1_120_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028565 D(p->level--);
28566 return _seq;
28567}
28568
Brandt Bucher145bf262021-02-26 14:51:55 -080028569// _loop0_121: ('if' disjunction)
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028570static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080028571_loop0_121_rule(Parser *p)
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028572{
28573 D(p->level++);
28574 if (p->error_indicator) {
28575 D(p->level--);
28576 return NULL;
28577 }
28578 void *_res = NULL;
28579 int _mark = p->mark;
28580 int _start_mark = p->mark;
28581 void **_children = PyMem_Malloc(sizeof(void *));
28582 if (!_children) {
28583 p->error_indicator = 1;
28584 PyErr_NoMemory();
28585 D(p->level--);
28586 return NULL;
28587 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010028588 Py_ssize_t _children_capacity = 1;
28589 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028590 { // ('if' disjunction)
28591 if (p->error_indicator) {
28592 D(p->level--);
28593 return NULL;
28594 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028595 D(fprintf(stderr, "%*c> _loop0_121[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('if' disjunction)"));
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000028596 void *_tmp_189_var;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028597 while (
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000028598 (_tmp_189_var = _tmp_189_rule(p)) // 'if' disjunction
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028599 )
28600 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000028601 _res = _tmp_189_var;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028602 if (_n == _children_capacity) {
28603 _children_capacity *= 2;
28604 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28605 if (!_new_children) {
28606 p->error_indicator = 1;
28607 PyErr_NoMemory();
28608 D(p->level--);
28609 return NULL;
28610 }
28611 _children = _new_children;
28612 }
28613 _children[_n++] = _res;
28614 _mark = p->mark;
28615 }
28616 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028617 D(fprintf(stderr, "%*c%s _loop0_121[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028618 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('if' disjunction)"));
28619 }
28620 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
28621 if (!_seq) {
28622 PyMem_Free(_children);
28623 p->error_indicator = 1;
28624 PyErr_NoMemory();
28625 D(p->level--);
28626 return NULL;
28627 }
28628 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
28629 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080028630 _PyPegen_insert_memo(p, _start_mark, _loop0_121_type, _seq);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028631 D(p->level--);
28632 return _seq;
28633}
28634
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028635// _loop0_122: ('if' disjunction)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030028636static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028637_loop0_122_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028638{
28639 D(p->level++);
28640 if (p->error_indicator) {
28641 D(p->level--);
28642 return NULL;
28643 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030028644 void *_res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028645 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030028646 int _start_mark = p->mark;
28647 void **_children = PyMem_Malloc(sizeof(void *));
28648 if (!_children) {
28649 p->error_indicator = 1;
28650 PyErr_NoMemory();
28651 D(p->level--);
28652 return NULL;
28653 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010028654 Py_ssize_t _children_capacity = 1;
28655 Py_ssize_t _n = 0;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028656 { // ('if' disjunction)
Pablo Galindo4a97b152020-09-02 17:44:19 +010028657 if (p->error_indicator) {
28658 D(p->level--);
28659 return NULL;
28660 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028661 D(fprintf(stderr, "%*c> _loop0_122[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('if' disjunction)"));
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000028662 void *_tmp_190_var;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028663 while (
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000028664 (_tmp_190_var = _tmp_190_rule(p)) // 'if' disjunction
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028665 )
28666 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000028667 _res = _tmp_190_var;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028668 if (_n == _children_capacity) {
28669 _children_capacity *= 2;
28670 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28671 if (!_new_children) {
28672 p->error_indicator = 1;
28673 PyErr_NoMemory();
28674 D(p->level--);
28675 return NULL;
28676 }
28677 _children = _new_children;
28678 }
28679 _children[_n++] = _res;
28680 _mark = p->mark;
28681 }
28682 p->mark = _mark;
28683 D(fprintf(stderr, "%*c%s _loop0_122[%d-%d]: %s failed!\n", p->level, ' ',
28684 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('if' disjunction)"));
28685 }
28686 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
28687 if (!_seq) {
28688 PyMem_Free(_children);
28689 p->error_indicator = 1;
28690 PyErr_NoMemory();
28691 D(p->level--);
28692 return NULL;
28693 }
28694 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
28695 PyMem_Free(_children);
28696 _PyPegen_insert_memo(p, _start_mark, _loop0_122_type, _seq);
28697 D(p->level--);
28698 return _seq;
28699}
28700
Pablo Galindo Salgado0e34a592021-11-04 23:19:27 +000028701// _loop0_124: ',' (starred_expression | (assignment_expression | expression !':=') !'=')
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028702static asdl_seq *
28703_loop0_124_rule(Parser *p)
28704{
28705 D(p->level++);
28706 if (p->error_indicator) {
28707 D(p->level--);
28708 return NULL;
28709 }
28710 void *_res = NULL;
28711 int _mark = p->mark;
28712 int _start_mark = p->mark;
28713 void **_children = PyMem_Malloc(sizeof(void *));
28714 if (!_children) {
28715 p->error_indicator = 1;
28716 PyErr_NoMemory();
28717 D(p->level--);
28718 return NULL;
28719 }
28720 Py_ssize_t _children_capacity = 1;
28721 Py_ssize_t _n = 0;
Pablo Galindo Salgado0e34a592021-11-04 23:19:27 +000028722 { // ',' (starred_expression | (assignment_expression | expression !':=') !'=')
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028723 if (p->error_indicator) {
28724 D(p->level--);
28725 return NULL;
28726 }
Pablo Galindo Salgado0e34a592021-11-04 23:19:27 +000028727 D(fprintf(stderr, "%*c> _loop0_124[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (starred_expression | (assignment_expression | expression !':=') !'=')"));
Pablo Galindo4a97b152020-09-02 17:44:19 +010028728 Token * _literal;
28729 void *elem;
28730 while (
28731 (_literal = _PyPegen_expect_token(p, 12)) // token=','
28732 &&
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000028733 (elem = _tmp_191_rule(p)) // starred_expression | (assignment_expression | expression !':=') !'='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028734 )
28735 {
28736 _res = elem;
28737 if (_res == NULL && PyErr_Occurred()) {
28738 p->error_indicator = 1;
28739 PyMem_Free(_children);
28740 D(p->level--);
28741 return NULL;
28742 }
28743 if (_n == _children_capacity) {
28744 _children_capacity *= 2;
28745 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28746 if (!_new_children) {
28747 p->error_indicator = 1;
28748 PyErr_NoMemory();
28749 D(p->level--);
28750 return NULL;
28751 }
28752 _children = _new_children;
28753 }
28754 _children[_n++] = _res;
28755 _mark = p->mark;
28756 }
28757 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028758 D(fprintf(stderr, "%*c%s _loop0_124[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo Salgado0e34a592021-11-04 23:19:27 +000028759 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (starred_expression | (assignment_expression | expression !':=') !'=')"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028760 }
28761 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
28762 if (!_seq) {
28763 PyMem_Free(_children);
28764 p->error_indicator = 1;
28765 PyErr_NoMemory();
28766 D(p->level--);
28767 return NULL;
28768 }
28769 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
28770 PyMem_Free(_children);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028771 _PyPegen_insert_memo(p, _start_mark, _loop0_124_type, _seq);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028772 D(p->level--);
28773 return _seq;
28774}
28775
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028776// _gather_123:
Pablo Galindo Salgado0e34a592021-11-04 23:19:27 +000028777// | (starred_expression | (assignment_expression | expression !':=') !'=') _loop0_124
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028778static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028779_gather_123_rule(Parser *p)
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028780{
28781 D(p->level++);
28782 if (p->error_indicator) {
28783 D(p->level--);
28784 return NULL;
28785 }
28786 asdl_seq * _res = NULL;
28787 int _mark = p->mark;
Pablo Galindo Salgado0e34a592021-11-04 23:19:27 +000028788 { // (starred_expression | (assignment_expression | expression !':=') !'=') _loop0_124
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028789 if (p->error_indicator) {
28790 D(p->level--);
28791 return NULL;
28792 }
Pablo Galindo Salgado0e34a592021-11-04 23:19:27 +000028793 D(fprintf(stderr, "%*c> _gather_123[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(starred_expression | (assignment_expression | expression !':=') !'=') _loop0_124"));
Brandt Bucher145bf262021-02-26 14:51:55 -080028794 void *elem;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028795 asdl_seq * seq;
28796 if (
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000028797 (elem = _tmp_191_rule(p)) // starred_expression | (assignment_expression | expression !':=') !'='
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028798 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028799 (seq = _loop0_124_rule(p)) // _loop0_124
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028800 )
28801 {
Pablo Galindo Salgado0e34a592021-11-04 23:19:27 +000028802 D(fprintf(stderr, "%*c+ _gather_123[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(starred_expression | (assignment_expression | expression !':=') !'=') _loop0_124"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028803 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
28804 goto done;
28805 }
28806 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028807 D(fprintf(stderr, "%*c%s _gather_123[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo Salgado0e34a592021-11-04 23:19:27 +000028808 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(starred_expression | (assignment_expression | expression !':=') !'=') _loop0_124"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028809 }
28810 _res = NULL;
28811 done:
28812 D(p->level--);
28813 return _res;
28814}
28815
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028816// _tmp_125: ',' kwargs
Brandt Bucher145bf262021-02-26 14:51:55 -080028817static void *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028818_tmp_125_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080028819{
28820 D(p->level++);
28821 if (p->error_indicator) {
28822 D(p->level--);
28823 return NULL;
28824 }
28825 void * _res = NULL;
28826 int _mark = p->mark;
28827 { // ',' kwargs
28828 if (p->error_indicator) {
28829 D(p->level--);
28830 return NULL;
28831 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028832 D(fprintf(stderr, "%*c> _tmp_125[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwargs"));
Brandt Bucher145bf262021-02-26 14:51:55 -080028833 Token * _literal;
28834 asdl_seq* k;
28835 if (
28836 (_literal = _PyPegen_expect_token(p, 12)) // token=','
28837 &&
28838 (k = kwargs_rule(p)) // kwargs
28839 )
28840 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028841 D(fprintf(stderr, "%*c+ _tmp_125[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' kwargs"));
Brandt Bucher145bf262021-02-26 14:51:55 -080028842 _res = k;
28843 if (_res == NULL && PyErr_Occurred()) {
28844 p->error_indicator = 1;
28845 D(p->level--);
28846 return NULL;
28847 }
28848 goto done;
28849 }
28850 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028851 D(fprintf(stderr, "%*c%s _tmp_125[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080028852 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwargs"));
28853 }
28854 _res = NULL;
28855 done:
28856 D(p->level--);
28857 return _res;
28858}
28859
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028860// _loop0_127: ',' kwarg_or_starred
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028861static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028862_loop0_127_rule(Parser *p)
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028863{
28864 D(p->level++);
28865 if (p->error_indicator) {
28866 D(p->level--);
28867 return NULL;
28868 }
28869 void *_res = NULL;
28870 int _mark = p->mark;
28871 int _start_mark = p->mark;
28872 void **_children = PyMem_Malloc(sizeof(void *));
28873 if (!_children) {
28874 p->error_indicator = 1;
28875 PyErr_NoMemory();
28876 D(p->level--);
28877 return NULL;
28878 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010028879 Py_ssize_t _children_capacity = 1;
28880 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080028881 { // ',' kwarg_or_starred
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028882 if (p->error_indicator) {
28883 D(p->level--);
28884 return NULL;
28885 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028886 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 +000028887 Token * _literal;
Brandt Bucher145bf262021-02-26 14:51:55 -080028888 KeywordOrStarred* elem;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028889 while (
28890 (_literal = _PyPegen_expect_token(p, 12)) // token=','
28891 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080028892 (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028893 )
28894 {
28895 _res = elem;
28896 if (_res == NULL && PyErr_Occurred()) {
28897 p->error_indicator = 1;
28898 PyMem_Free(_children);
28899 D(p->level--);
28900 return NULL;
28901 }
28902 if (_n == _children_capacity) {
28903 _children_capacity *= 2;
28904 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28905 if (!_new_children) {
28906 p->error_indicator = 1;
28907 PyErr_NoMemory();
28908 D(p->level--);
28909 return NULL;
28910 }
28911 _children = _new_children;
28912 }
28913 _children[_n++] = _res;
28914 _mark = p->mark;
28915 }
28916 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028917 D(fprintf(stderr, "%*c%s _loop0_127[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080028918 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_starred"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028919 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010028920 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028921 if (!_seq) {
28922 PyMem_Free(_children);
28923 p->error_indicator = 1;
28924 PyErr_NoMemory();
28925 D(p->level--);
28926 return NULL;
28927 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010028928 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028929 PyMem_Free(_children);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028930 _PyPegen_insert_memo(p, _start_mark, _loop0_127_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028931 D(p->level--);
28932 return _seq;
28933}
28934
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028935// _gather_126: kwarg_or_starred _loop0_127
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028936static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028937_gather_126_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028938{
28939 D(p->level++);
28940 if (p->error_indicator) {
28941 D(p->level--);
28942 return NULL;
28943 }
28944 asdl_seq * _res = NULL;
28945 int _mark = p->mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028946 { // kwarg_or_starred _loop0_127
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028947 if (p->error_indicator) {
28948 D(p->level--);
28949 return NULL;
28950 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028951 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 -080028952 KeywordOrStarred* elem;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028953 asdl_seq * seq;
28954 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080028955 (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028956 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028957 (seq = _loop0_127_rule(p)) // _loop0_127
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028958 )
28959 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028960 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 +010028961 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
28962 goto done;
28963 }
28964 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028965 D(fprintf(stderr, "%*c%s _gather_126[%d-%d]: %s failed!\n", p->level, ' ',
28966 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_starred _loop0_127"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028967 }
28968 _res = NULL;
28969 done:
28970 D(p->level--);
28971 return _res;
28972}
28973
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028974// _loop0_129: ',' kwarg_or_double_starred
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028975static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028976_loop0_129_rule(Parser *p)
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028977{
28978 D(p->level++);
28979 if (p->error_indicator) {
28980 D(p->level--);
28981 return NULL;
28982 }
28983 void *_res = NULL;
28984 int _mark = p->mark;
28985 int _start_mark = p->mark;
28986 void **_children = PyMem_Malloc(sizeof(void *));
28987 if (!_children) {
28988 p->error_indicator = 1;
28989 PyErr_NoMemory();
28990 D(p->level--);
28991 return NULL;
28992 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010028993 Py_ssize_t _children_capacity = 1;
28994 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080028995 { // ',' kwarg_or_double_starred
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028996 if (p->error_indicator) {
28997 D(p->level--);
28998 return NULL;
28999 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029000 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 -080029001 Token * _literal;
29002 KeywordOrStarred* elem;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000029003 while (
Brandt Bucher145bf262021-02-26 14:51:55 -080029004 (_literal = _PyPegen_expect_token(p, 12)) // token=','
29005 &&
29006 (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
Pablo Galindob0aba1f2020-11-17 01:17:12 +000029007 )
29008 {
Brandt Bucher145bf262021-02-26 14:51:55 -080029009 _res = elem;
29010 if (_res == NULL && PyErr_Occurred()) {
29011 p->error_indicator = 1;
29012 PyMem_Free(_children);
29013 D(p->level--);
29014 return NULL;
29015 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000029016 if (_n == _children_capacity) {
29017 _children_capacity *= 2;
29018 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
29019 if (!_new_children) {
29020 p->error_indicator = 1;
29021 PyErr_NoMemory();
29022 D(p->level--);
29023 return NULL;
29024 }
29025 _children = _new_children;
29026 }
29027 _children[_n++] = _res;
29028 _mark = p->mark;
29029 }
29030 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029031 D(fprintf(stderr, "%*c%s _loop0_129[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080029032 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_double_starred"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000029033 }
29034 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
29035 if (!_seq) {
29036 PyMem_Free(_children);
29037 p->error_indicator = 1;
29038 PyErr_NoMemory();
29039 D(p->level--);
29040 return NULL;
29041 }
29042 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
29043 PyMem_Free(_children);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029044 _PyPegen_insert_memo(p, _start_mark, _loop0_129_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029045 D(p->level--);
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030029046 return _seq;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029047}
29048
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029049// _gather_128: kwarg_or_double_starred _loop0_129
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020029050static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029051_gather_128_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080029052{
29053 D(p->level++);
29054 if (p->error_indicator) {
29055 D(p->level--);
29056 return NULL;
29057 }
29058 asdl_seq * _res = NULL;
29059 int _mark = p->mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029060 { // kwarg_or_double_starred _loop0_129
Brandt Bucher145bf262021-02-26 14:51:55 -080029061 if (p->error_indicator) {
29062 D(p->level--);
29063 return NULL;
29064 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029065 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 -080029066 KeywordOrStarred* elem;
29067 asdl_seq * seq;
29068 if (
29069 (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
29070 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029071 (seq = _loop0_129_rule(p)) // _loop0_129
Brandt Bucher145bf262021-02-26 14:51:55 -080029072 )
29073 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029074 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 -080029075 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
29076 goto done;
29077 }
29078 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029079 D(fprintf(stderr, "%*c%s _gather_128[%d-%d]: %s failed!\n", p->level, ' ',
29080 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_double_starred _loop0_129"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029081 }
29082 _res = NULL;
29083 done:
29084 D(p->level--);
29085 return _res;
29086}
29087
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029088// _loop0_131: ',' kwarg_or_starred
Brandt Bucher145bf262021-02-26 14:51:55 -080029089static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029090_loop0_131_rule(Parser *p)
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020029091{
29092 D(p->level++);
29093 if (p->error_indicator) {
29094 D(p->level--);
29095 return NULL;
29096 }
29097 void *_res = NULL;
29098 int _mark = p->mark;
29099 int _start_mark = p->mark;
29100 void **_children = PyMem_Malloc(sizeof(void *));
29101 if (!_children) {
29102 p->error_indicator = 1;
29103 PyErr_NoMemory();
29104 D(p->level--);
29105 return NULL;
29106 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010029107 Py_ssize_t _children_capacity = 1;
29108 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080029109 { // ',' kwarg_or_starred
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020029110 if (p->error_indicator) {
29111 D(p->level--);
29112 return NULL;
29113 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029114 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 -080029115 Token * _literal;
29116 KeywordOrStarred* elem;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020029117 while (
Brandt Bucher145bf262021-02-26 14:51:55 -080029118 (_literal = _PyPegen_expect_token(p, 12)) // token=','
29119 &&
29120 (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020029121 )
29122 {
Brandt Bucher145bf262021-02-26 14:51:55 -080029123 _res = elem;
29124 if (_res == NULL && PyErr_Occurred()) {
29125 p->error_indicator = 1;
29126 PyMem_Free(_children);
29127 D(p->level--);
29128 return NULL;
29129 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020029130 if (_n == _children_capacity) {
29131 _children_capacity *= 2;
29132 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
29133 if (!_new_children) {
29134 p->error_indicator = 1;
29135 PyErr_NoMemory();
29136 D(p->level--);
29137 return NULL;
29138 }
29139 _children = _new_children;
29140 }
29141 _children[_n++] = _res;
29142 _mark = p->mark;
29143 }
29144 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029145 D(fprintf(stderr, "%*c%s _loop0_131[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080029146 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_starred"));
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020029147 }
29148 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
29149 if (!_seq) {
29150 PyMem_Free(_children);
29151 p->error_indicator = 1;
29152 PyErr_NoMemory();
29153 D(p->level--);
29154 return NULL;
29155 }
29156 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
29157 PyMem_Free(_children);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029158 _PyPegen_insert_memo(p, _start_mark, _loop0_131_type, _seq);
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020029159 D(p->level--);
29160 return _seq;
29161}
29162
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029163// _gather_130: kwarg_or_starred _loop0_131
Brandt Bucher145bf262021-02-26 14:51:55 -080029164static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029165_gather_130_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029166{
29167 D(p->level++);
29168 if (p->error_indicator) {
29169 D(p->level--);
29170 return NULL;
29171 }
Brandt Bucher145bf262021-02-26 14:51:55 -080029172 asdl_seq * _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029173 int _mark = p->mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029174 { // kwarg_or_starred _loop0_131
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029175 if (p->error_indicator) {
29176 D(p->level--);
29177 return NULL;
29178 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029179 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 -080029180 KeywordOrStarred* elem;
29181 asdl_seq * seq;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029182 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080029183 (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
29184 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029185 (seq = _loop0_131_rule(p)) // _loop0_131
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029186 )
29187 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029188 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 -080029189 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029190 goto done;
29191 }
29192 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029193 D(fprintf(stderr, "%*c%s _gather_130[%d-%d]: %s failed!\n", p->level, ' ',
29194 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_starred _loop0_131"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029195 }
29196 _res = NULL;
29197 done:
29198 D(p->level--);
29199 return _res;
29200}
29201
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029202// _loop0_133: ',' kwarg_or_double_starred
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029203static asdl_seq *
Pablo Galindo835f14f2021-01-31 22:52:56 +000029204_loop0_133_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029205{
29206 D(p->level++);
29207 if (p->error_indicator) {
29208 D(p->level--);
29209 return NULL;
29210 }
29211 void *_res = NULL;
29212 int _mark = p->mark;
29213 int _start_mark = p->mark;
29214 void **_children = PyMem_Malloc(sizeof(void *));
29215 if (!_children) {
29216 p->error_indicator = 1;
29217 PyErr_NoMemory();
29218 D(p->level--);
29219 return NULL;
29220 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010029221 Py_ssize_t _children_capacity = 1;
29222 Py_ssize_t _n = 0;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029223 { // ',' kwarg_or_double_starred
29224 if (p->error_indicator) {
29225 D(p->level--);
29226 return NULL;
29227 }
29228 D(fprintf(stderr, "%*c> _loop0_133[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwarg_or_double_starred"));
29229 Token * _literal;
29230 KeywordOrStarred* elem;
29231 while (
29232 (_literal = _PyPegen_expect_token(p, 12)) // token=','
29233 &&
29234 (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
29235 )
29236 {
29237 _res = elem;
29238 if (_res == NULL && PyErr_Occurred()) {
29239 p->error_indicator = 1;
29240 PyMem_Free(_children);
29241 D(p->level--);
29242 return NULL;
29243 }
29244 if (_n == _children_capacity) {
29245 _children_capacity *= 2;
29246 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
29247 if (!_new_children) {
29248 p->error_indicator = 1;
29249 PyErr_NoMemory();
29250 D(p->level--);
29251 return NULL;
29252 }
29253 _children = _new_children;
29254 }
29255 _children[_n++] = _res;
29256 _mark = p->mark;
29257 }
29258 p->mark = _mark;
29259 D(fprintf(stderr, "%*c%s _loop0_133[%d-%d]: %s failed!\n", p->level, ' ',
29260 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_double_starred"));
29261 }
29262 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
29263 if (!_seq) {
29264 PyMem_Free(_children);
29265 p->error_indicator = 1;
29266 PyErr_NoMemory();
29267 D(p->level--);
29268 return NULL;
29269 }
29270 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
29271 PyMem_Free(_children);
29272 _PyPegen_insert_memo(p, _start_mark, _loop0_133_type, _seq);
29273 D(p->level--);
29274 return _seq;
29275}
29276
29277// _gather_132: kwarg_or_double_starred _loop0_133
29278static asdl_seq *
29279_gather_132_rule(Parser *p)
29280{
29281 D(p->level++);
29282 if (p->error_indicator) {
29283 D(p->level--);
29284 return NULL;
29285 }
29286 asdl_seq * _res = NULL;
29287 int _mark = p->mark;
29288 { // kwarg_or_double_starred _loop0_133
29289 if (p->error_indicator) {
29290 D(p->level--);
29291 return NULL;
29292 }
29293 D(fprintf(stderr, "%*c> _gather_132[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwarg_or_double_starred _loop0_133"));
29294 KeywordOrStarred* elem;
29295 asdl_seq * seq;
29296 if (
29297 (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
29298 &&
29299 (seq = _loop0_133_rule(p)) // _loop0_133
29300 )
29301 {
29302 D(fprintf(stderr, "%*c+ _gather_132[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwarg_or_double_starred _loop0_133"));
29303 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
29304 goto done;
29305 }
29306 p->mark = _mark;
29307 D(fprintf(stderr, "%*c%s _gather_132[%d-%d]: %s failed!\n", p->level, ' ',
29308 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_double_starred _loop0_133"));
29309 }
29310 _res = NULL;
29311 done:
29312 D(p->level--);
29313 return _res;
29314}
29315
29316// _loop0_134: (',' star_target)
29317static asdl_seq *
29318_loop0_134_rule(Parser *p)
29319{
29320 D(p->level++);
29321 if (p->error_indicator) {
29322 D(p->level--);
29323 return NULL;
29324 }
29325 void *_res = NULL;
29326 int _mark = p->mark;
29327 int _start_mark = p->mark;
29328 void **_children = PyMem_Malloc(sizeof(void *));
29329 if (!_children) {
29330 p->error_indicator = 1;
29331 PyErr_NoMemory();
29332 D(p->level--);
29333 return NULL;
29334 }
29335 Py_ssize_t _children_capacity = 1;
29336 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080029337 { // (',' star_target)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029338 if (p->error_indicator) {
29339 D(p->level--);
29340 return NULL;
29341 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029342 D(fprintf(stderr, "%*c> _loop0_134[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' star_target)"));
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000029343 void *_tmp_192_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029344 while (
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000029345 (_tmp_192_var = _tmp_192_rule(p)) // ',' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029346 )
29347 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000029348 _res = _tmp_192_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029349 if (_n == _children_capacity) {
29350 _children_capacity *= 2;
29351 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
29352 if (!_new_children) {
29353 p->error_indicator = 1;
29354 PyErr_NoMemory();
29355 D(p->level--);
29356 return NULL;
29357 }
29358 _children = _new_children;
29359 }
29360 _children[_n++] = _res;
29361 _mark = p->mark;
29362 }
29363 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029364 D(fprintf(stderr, "%*c%s _loop0_134[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080029365 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' star_target)"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029366 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010029367 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029368 if (!_seq) {
29369 PyMem_Free(_children);
29370 p->error_indicator = 1;
29371 PyErr_NoMemory();
29372 D(p->level--);
29373 return NULL;
29374 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010029375 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029376 PyMem_Free(_children);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029377 _PyPegen_insert_memo(p, _start_mark, _loop0_134_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029378 D(p->level--);
29379 return _seq;
29380}
29381
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029382// _loop0_136: ',' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029383static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029384_loop0_136_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029385{
29386 D(p->level++);
29387 if (p->error_indicator) {
29388 D(p->level--);
29389 return NULL;
29390 }
29391 void *_res = NULL;
29392 int _mark = p->mark;
29393 int _start_mark = p->mark;
29394 void **_children = PyMem_Malloc(sizeof(void *));
29395 if (!_children) {
29396 p->error_indicator = 1;
29397 PyErr_NoMemory();
29398 D(p->level--);
29399 return NULL;
29400 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010029401 Py_ssize_t _children_capacity = 1;
29402 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080029403 { // ',' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029404 if (p->error_indicator) {
29405 D(p->level--);
29406 return NULL;
29407 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029408 D(fprintf(stderr, "%*c> _loop0_136[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_target"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029409 Token * _literal;
29410 expr_ty elem;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029411 while (
Brandt Bucher145bf262021-02-26 14:51:55 -080029412 (_literal = _PyPegen_expect_token(p, 12)) // token=','
29413 &&
29414 (elem = star_target_rule(p)) // star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029415 )
29416 {
Brandt Bucher145bf262021-02-26 14:51:55 -080029417 _res = elem;
29418 if (_res == NULL && PyErr_Occurred()) {
29419 p->error_indicator = 1;
29420 PyMem_Free(_children);
29421 D(p->level--);
29422 return NULL;
29423 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029424 if (_n == _children_capacity) {
29425 _children_capacity *= 2;
29426 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
29427 if (!_new_children) {
29428 p->error_indicator = 1;
29429 PyErr_NoMemory();
29430 D(p->level--);
29431 return NULL;
29432 }
29433 _children = _new_children;
29434 }
29435 _children[_n++] = _res;
29436 _mark = p->mark;
29437 }
29438 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029439 D(fprintf(stderr, "%*c%s _loop0_136[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080029440 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029441 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010029442 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029443 if (!_seq) {
29444 PyMem_Free(_children);
29445 p->error_indicator = 1;
29446 PyErr_NoMemory();
29447 D(p->level--);
29448 return NULL;
29449 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010029450 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029451 PyMem_Free(_children);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029452 _PyPegen_insert_memo(p, _start_mark, _loop0_136_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029453 D(p->level--);
29454 return _seq;
29455}
29456
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029457// _gather_135: star_target _loop0_136
Brandt Bucher145bf262021-02-26 14:51:55 -080029458static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029459_gather_135_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080029460{
29461 D(p->level++);
29462 if (p->error_indicator) {
29463 D(p->level--);
29464 return NULL;
29465 }
29466 asdl_seq * _res = NULL;
29467 int _mark = p->mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029468 { // star_target _loop0_136
Brandt Bucher145bf262021-02-26 14:51:55 -080029469 if (p->error_indicator) {
29470 D(p->level--);
29471 return NULL;
29472 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029473 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 -080029474 expr_ty elem;
29475 asdl_seq * seq;
29476 if (
29477 (elem = star_target_rule(p)) // star_target
29478 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029479 (seq = _loop0_136_rule(p)) // _loop0_136
Brandt Bucher145bf262021-02-26 14:51:55 -080029480 )
29481 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029482 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 -080029483 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
29484 goto done;
29485 }
29486 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029487 D(fprintf(stderr, "%*c%s _gather_135[%d-%d]: %s failed!\n", p->level, ' ',
29488 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target _loop0_136"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029489 }
29490 _res = NULL;
29491 done:
29492 D(p->level--);
29493 return _res;
29494}
29495
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029496// _loop1_137: (',' star_target)
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020029497static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029498_loop1_137_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029499{
29500 D(p->level++);
29501 if (p->error_indicator) {
29502 D(p->level--);
29503 return NULL;
29504 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020029505 void *_res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029506 int _mark = p->mark;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020029507 int _start_mark = p->mark;
29508 void **_children = PyMem_Malloc(sizeof(void *));
29509 if (!_children) {
29510 p->error_indicator = 1;
29511 PyErr_NoMemory();
29512 D(p->level--);
29513 return NULL;
29514 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010029515 Py_ssize_t _children_capacity = 1;
29516 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080029517 { // (',' star_target)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029518 if (p->error_indicator) {
29519 D(p->level--);
29520 return NULL;
29521 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029522 D(fprintf(stderr, "%*c> _loop1_137[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' star_target)"));
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000029523 void *_tmp_193_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020029524 while (
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000029525 (_tmp_193_var = _tmp_193_rule(p)) // ',' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029526 )
29527 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000029528 _res = _tmp_193_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020029529 if (_n == _children_capacity) {
29530 _children_capacity *= 2;
29531 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
29532 if (!_new_children) {
29533 p->error_indicator = 1;
29534 PyErr_NoMemory();
29535 D(p->level--);
29536 return NULL;
29537 }
29538 _children = _new_children;
29539 }
29540 _children[_n++] = _res;
29541 _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029542 }
29543 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029544 D(fprintf(stderr, "%*c%s _loop1_137[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080029545 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' star_target)"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029546 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020029547 if (_n == 0 || p->error_indicator) {
29548 PyMem_Free(_children);
29549 D(p->level--);
29550 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029551 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020029552 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
29553 if (!_seq) {
29554 PyMem_Free(_children);
29555 p->error_indicator = 1;
29556 PyErr_NoMemory();
29557 D(p->level--);
29558 return NULL;
29559 }
29560 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
29561 PyMem_Free(_children);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029562 _PyPegen_insert_memo(p, _start_mark, _loop1_137_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029563 D(p->level--);
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020029564 return _seq;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029565}
29566
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029567// _tmp_138: !'*' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029568static void *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029569_tmp_138_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029570{
29571 D(p->level++);
29572 if (p->error_indicator) {
29573 D(p->level--);
29574 return NULL;
29575 }
29576 void * _res = NULL;
29577 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080029578 { // !'*' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029579 if (p->error_indicator) {
29580 D(p->level--);
29581 return NULL;
29582 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029583 D(fprintf(stderr, "%*c> _tmp_138[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "!'*' star_target"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029584 expr_ty star_target_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029585 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080029586 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 16) // token='*'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029587 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080029588 (star_target_var = star_target_rule(p)) // star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029589 )
29590 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029591 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 -080029592 _res = star_target_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029593 goto done;
29594 }
29595 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029596 D(fprintf(stderr, "%*c%s _tmp_138[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080029597 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "!'*' star_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029598 }
29599 _res = NULL;
29600 done:
29601 D(p->level--);
29602 return _res;
29603}
29604
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029605// _loop0_140: ',' del_target
Brandt Bucher145bf262021-02-26 14:51:55 -080029606static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029607_loop0_140_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029608{
29609 D(p->level++);
29610 if (p->error_indicator) {
29611 D(p->level--);
29612 return NULL;
29613 }
Brandt Bucher145bf262021-02-26 14:51:55 -080029614 void *_res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029615 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080029616 int _start_mark = p->mark;
29617 void **_children = PyMem_Malloc(sizeof(void *));
29618 if (!_children) {
29619 p->error_indicator = 1;
29620 PyErr_NoMemory();
29621 D(p->level--);
29622 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029623 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010029624 Py_ssize_t _children_capacity = 1;
29625 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080029626 { // ',' del_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029627 if (p->error_indicator) {
29628 D(p->level--);
29629 return NULL;
29630 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029631 D(fprintf(stderr, "%*c> _loop0_140[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' del_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029632 Token * _literal;
Brandt Bucher145bf262021-02-26 14:51:55 -080029633 expr_ty elem;
29634 while (
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029635 (_literal = _PyPegen_expect_token(p, 12)) // token=','
29636 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080029637 (elem = del_target_rule(p)) // del_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029638 )
29639 {
Brandt Bucher145bf262021-02-26 14:51:55 -080029640 _res = elem;
29641 if (_res == NULL && PyErr_Occurred()) {
29642 p->error_indicator = 1;
29643 PyMem_Free(_children);
29644 D(p->level--);
29645 return NULL;
29646 }
29647 if (_n == _children_capacity) {
29648 _children_capacity *= 2;
29649 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
29650 if (!_new_children) {
29651 p->error_indicator = 1;
29652 PyErr_NoMemory();
29653 D(p->level--);
29654 return NULL;
29655 }
29656 _children = _new_children;
29657 }
29658 _children[_n++] = _res;
29659 _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029660 }
29661 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029662 D(fprintf(stderr, "%*c%s _loop0_140[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080029663 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' del_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029664 }
Brandt Bucher145bf262021-02-26 14:51:55 -080029665 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
29666 if (!_seq) {
29667 PyMem_Free(_children);
29668 p->error_indicator = 1;
29669 PyErr_NoMemory();
29670 D(p->level--);
29671 return NULL;
29672 }
29673 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
29674 PyMem_Free(_children);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029675 _PyPegen_insert_memo(p, _start_mark, _loop0_140_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029676 D(p->level--);
Brandt Bucher145bf262021-02-26 14:51:55 -080029677 return _seq;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029678}
29679
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029680// _gather_139: del_target _loop0_140
Brandt Bucher145bf262021-02-26 14:51:55 -080029681static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029682_gather_139_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029683{
29684 D(p->level++);
29685 if (p->error_indicator) {
29686 D(p->level--);
29687 return NULL;
29688 }
Brandt Bucher145bf262021-02-26 14:51:55 -080029689 asdl_seq * _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029690 int _mark = p->mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029691 { // del_target _loop0_140
Pablo Galindo58fb1562021-02-02 19:54:22 +000029692 if (p->error_indicator) {
29693 D(p->level--);
29694 return NULL;
29695 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029696 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 -080029697 expr_ty elem;
29698 asdl_seq * seq;
Pablo Galindo58fb1562021-02-02 19:54:22 +000029699 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080029700 (elem = del_target_rule(p)) // del_target
29701 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029702 (seq = _loop0_140_rule(p)) // _loop0_140
Pablo Galindo58fb1562021-02-02 19:54:22 +000029703 )
29704 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029705 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 -080029706 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindo58fb1562021-02-02 19:54:22 +000029707 goto done;
29708 }
29709 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029710 D(fprintf(stderr, "%*c%s _gather_139[%d-%d]: %s failed!\n", p->level, ' ',
29711 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "del_target _loop0_140"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000029712 }
29713 _res = NULL;
29714 done:
29715 D(p->level--);
29716 return _res;
29717}
29718
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029719// _tmp_141: args | expression for_if_clauses
Brandt Bucher145bf262021-02-26 14:51:55 -080029720static void *
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029721_tmp_141_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080029722{
29723 D(p->level++);
29724 if (p->error_indicator) {
29725 D(p->level--);
29726 return NULL;
29727 }
29728 void * _res = NULL;
29729 int _mark = p->mark;
29730 { // args
29731 if (p->error_indicator) {
29732 D(p->level--);
29733 return NULL;
29734 }
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029735 D(fprintf(stderr, "%*c> _tmp_141[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029736 expr_ty args_var;
29737 if (
29738 (args_var = args_rule(p)) // args
29739 )
29740 {
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029741 D(fprintf(stderr, "%*c+ _tmp_141[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029742 _res = args_var;
29743 goto done;
29744 }
29745 p->mark = _mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029746 D(fprintf(stderr, "%*c%s _tmp_141[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080029747 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args"));
29748 }
29749 { // expression for_if_clauses
29750 if (p->error_indicator) {
29751 D(p->level--);
29752 return NULL;
29753 }
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029754 D(fprintf(stderr, "%*c> _tmp_141[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression for_if_clauses"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029755 expr_ty expression_var;
29756 asdl_comprehension_seq* for_if_clauses_var;
29757 if (
29758 (expression_var = expression_rule(p)) // expression
29759 &&
29760 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
29761 )
29762 {
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029763 D(fprintf(stderr, "%*c+ _tmp_141[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression for_if_clauses"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029764 _res = _PyPegen_dummy_name(p, expression_var, for_if_clauses_var);
29765 goto done;
29766 }
29767 p->mark = _mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029768 D(fprintf(stderr, "%*c%s _tmp_141[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080029769 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression for_if_clauses"));
29770 }
29771 _res = NULL;
29772 done:
29773 D(p->level--);
29774 return _res;
29775}
29776
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000029777// _tmp_142: 'True' | 'False' | 'None'
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029778static void *
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029779_tmp_142_rule(Parser *p)
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029780{
29781 D(p->level++);
29782 if (p->error_indicator) {
29783 D(p->level--);
29784 return NULL;
29785 }
29786 void * _res = NULL;
29787 int _mark = p->mark;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000029788 { // 'True'
29789 if (p->error_indicator) {
29790 D(p->level--);
29791 return NULL;
29792 }
29793 D(fprintf(stderr, "%*c> _tmp_142[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'True'"));
29794 Token * _keyword;
29795 if (
29796 (_keyword = _PyPegen_expect_token(p, 524)) // token='True'
29797 )
29798 {
29799 D(fprintf(stderr, "%*c+ _tmp_142[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'"));
29800 _res = _keyword;
29801 goto done;
29802 }
29803 p->mark = _mark;
29804 D(fprintf(stderr, "%*c%s _tmp_142[%d-%d]: %s failed!\n", p->level, ' ',
29805 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'True'"));
29806 }
29807 { // 'False'
29808 if (p->error_indicator) {
29809 D(p->level--);
29810 return NULL;
29811 }
29812 D(fprintf(stderr, "%*c> _tmp_142[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False'"));
29813 Token * _keyword;
29814 if (
29815 (_keyword = _PyPegen_expect_token(p, 525)) // token='False'
29816 )
29817 {
29818 D(fprintf(stderr, "%*c+ _tmp_142[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'"));
29819 _res = _keyword;
29820 goto done;
29821 }
29822 p->mark = _mark;
29823 D(fprintf(stderr, "%*c%s _tmp_142[%d-%d]: %s failed!\n", p->level, ' ',
29824 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'False'"));
29825 }
29826 { // 'None'
29827 if (p->error_indicator) {
29828 D(p->level--);
29829 return NULL;
29830 }
29831 D(fprintf(stderr, "%*c> _tmp_142[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'None'"));
29832 Token * _keyword;
29833 if (
29834 (_keyword = _PyPegen_expect_token(p, 523)) // token='None'
29835 )
29836 {
29837 D(fprintf(stderr, "%*c+ _tmp_142[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'"));
29838 _res = _keyword;
29839 goto done;
29840 }
29841 p->mark = _mark;
29842 D(fprintf(stderr, "%*c%s _tmp_142[%d-%d]: %s failed!\n", p->level, ' ',
29843 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'None'"));
29844 }
29845 _res = NULL;
29846 done:
29847 D(p->level--);
29848 return _res;
29849}
29850
29851// _tmp_143: NAME '='
29852static void *
29853_tmp_143_rule(Parser *p)
29854{
29855 D(p->level++);
29856 if (p->error_indicator) {
29857 D(p->level--);
29858 return NULL;
29859 }
29860 void * _res = NULL;
29861 int _mark = p->mark;
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070029862 { // NAME '='
29863 if (p->error_indicator) {
29864 D(p->level--);
29865 return NULL;
29866 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000029867 D(fprintf(stderr, "%*c> _tmp_143[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME '='"));
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070029868 Token * _literal;
29869 expr_ty name_var;
29870 if (
29871 (name_var = _PyPegen_name_token(p)) // NAME
29872 &&
29873 (_literal = _PyPegen_expect_token(p, 22)) // token='='
29874 )
29875 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000029876 D(fprintf(stderr, "%*c+ _tmp_143[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '='"));
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070029877 _res = _PyPegen_dummy_name(p, name_var, _literal);
29878 goto done;
29879 }
29880 p->mark = _mark;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000029881 D(fprintf(stderr, "%*c%s _tmp_143[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070029882 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '='"));
29883 }
29884 _res = NULL;
29885 done:
29886 D(p->level--);
29887 return _res;
29888}
29889
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000029890// _tmp_144: NAME STRING | SOFT_KEYWORD
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070029891static void *
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000029892_tmp_144_rule(Parser *p)
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070029893{
29894 D(p->level++);
29895 if (p->error_indicator) {
29896 D(p->level--);
29897 return NULL;
29898 }
29899 void * _res = NULL;
29900 int _mark = p->mark;
Pablo Galindob2802482021-04-15 21:38:45 +010029901 { // NAME STRING
29902 if (p->error_indicator) {
29903 D(p->level--);
29904 return NULL;
29905 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000029906 D(fprintf(stderr, "%*c> _tmp_144[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME STRING"));
Pablo Galindob2802482021-04-15 21:38:45 +010029907 expr_ty name_var;
29908 expr_ty string_var;
29909 if (
29910 (name_var = _PyPegen_name_token(p)) // NAME
29911 &&
29912 (string_var = _PyPegen_string_token(p)) // STRING
29913 )
29914 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000029915 D(fprintf(stderr, "%*c+ _tmp_144[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME STRING"));
Pablo Galindob2802482021-04-15 21:38:45 +010029916 _res = _PyPegen_dummy_name(p, name_var, string_var);
29917 goto done;
29918 }
29919 p->mark = _mark;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000029920 D(fprintf(stderr, "%*c%s _tmp_144[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob2802482021-04-15 21:38:45 +010029921 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME STRING"));
29922 }
29923 { // SOFT_KEYWORD
29924 if (p->error_indicator) {
29925 D(p->level--);
29926 return NULL;
29927 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000029928 D(fprintf(stderr, "%*c> _tmp_144[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "SOFT_KEYWORD"));
Pablo Galindob2802482021-04-15 21:38:45 +010029929 expr_ty soft_keyword_var;
29930 if (
29931 (soft_keyword_var = _PyPegen_soft_keyword_token(p)) // SOFT_KEYWORD
29932 )
29933 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000029934 D(fprintf(stderr, "%*c+ _tmp_144[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "SOFT_KEYWORD"));
Pablo Galindob2802482021-04-15 21:38:45 +010029935 _res = soft_keyword_var;
29936 goto done;
29937 }
29938 p->mark = _mark;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000029939 D(fprintf(stderr, "%*c%s _tmp_144[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob2802482021-04-15 21:38:45 +010029940 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "SOFT_KEYWORD"));
29941 }
29942 _res = NULL;
29943 done:
29944 D(p->level--);
29945 return _res;
29946}
29947
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000029948// _tmp_145: 'else' | ':'
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029949static void *
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000029950_tmp_145_rule(Parser *p)
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029951{
29952 D(p->level++);
29953 if (p->error_indicator) {
29954 D(p->level--);
29955 return NULL;
29956 }
29957 void * _res = NULL;
29958 int _mark = p->mark;
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010029959 { // 'else'
29960 if (p->error_indicator) {
29961 D(p->level--);
29962 return NULL;
29963 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000029964 D(fprintf(stderr, "%*c> _tmp_145[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'else'"));
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010029965 Token * _keyword;
29966 if (
29967 (_keyword = _PyPegen_expect_token(p, 516)) // token='else'
29968 )
29969 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000029970 D(fprintf(stderr, "%*c+ _tmp_145[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'else'"));
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010029971 _res = _keyword;
29972 goto done;
29973 }
29974 p->mark = _mark;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000029975 D(fprintf(stderr, "%*c%s _tmp_145[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010029976 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'else'"));
29977 }
29978 { // ':'
29979 if (p->error_indicator) {
29980 D(p->level--);
29981 return NULL;
29982 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000029983 D(fprintf(stderr, "%*c> _tmp_145[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010029984 Token * _literal;
29985 if (
29986 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
29987 )
29988 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000029989 D(fprintf(stderr, "%*c+ _tmp_145[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010029990 _res = _literal;
29991 goto done;
29992 }
29993 p->mark = _mark;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000029994 D(fprintf(stderr, "%*c%s _tmp_145[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010029995 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
29996 }
29997 _res = NULL;
29998 done:
29999 D(p->level--);
30000 return _res;
30001}
30002
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030003// _tmp_146: '=' | ':='
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010030004static void *
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030005_tmp_146_rule(Parser *p)
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010030006{
30007 D(p->level++);
30008 if (p->error_indicator) {
30009 D(p->level--);
30010 return NULL;
30011 }
30012 void * _res = NULL;
30013 int _mark = p->mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030014 { // '='
30015 if (p->error_indicator) {
30016 D(p->level--);
30017 return NULL;
30018 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030019 D(fprintf(stderr, "%*c> _tmp_146[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'='"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030020 Token * _literal;
30021 if (
30022 (_literal = _PyPegen_expect_token(p, 22)) // token='='
30023 )
30024 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030025 D(fprintf(stderr, "%*c+ _tmp_146[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'='"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030026 _res = _literal;
30027 goto done;
30028 }
30029 p->mark = _mark;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030030 D(fprintf(stderr, "%*c%s _tmp_146[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030031 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'='"));
30032 }
30033 { // ':='
30034 if (p->error_indicator) {
30035 D(p->level--);
30036 return NULL;
30037 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030038 D(fprintf(stderr, "%*c> _tmp_146[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':='"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030039 Token * _literal;
30040 if (
30041 (_literal = _PyPegen_expect_token(p, 53)) // token=':='
30042 )
30043 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030044 D(fprintf(stderr, "%*c+ _tmp_146[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':='"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030045 _res = _literal;
30046 goto done;
30047 }
30048 p->mark = _mark;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030049 D(fprintf(stderr, "%*c%s _tmp_146[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030050 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':='"));
30051 }
30052 _res = NULL;
30053 done:
30054 D(p->level--);
30055 return _res;
30056}
30057
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030058// _tmp_147: list | tuple | genexp | 'True' | 'None' | 'False'
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030059static void *
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030060_tmp_147_rule(Parser *p)
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030061{
30062 D(p->level++);
30063 if (p->error_indicator) {
30064 D(p->level--);
30065 return NULL;
30066 }
30067 void * _res = NULL;
30068 int _mark = p->mark;
30069 { // list
30070 if (p->error_indicator) {
30071 D(p->level--);
30072 return NULL;
30073 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030074 D(fprintf(stderr, "%*c> _tmp_147[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "list"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030075 expr_ty list_var;
30076 if (
30077 (list_var = list_rule(p)) // list
30078 )
30079 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030080 D(fprintf(stderr, "%*c+ _tmp_147[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "list"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030081 _res = list_var;
30082 goto done;
30083 }
30084 p->mark = _mark;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030085 D(fprintf(stderr, "%*c%s _tmp_147[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030086 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "list"));
30087 }
30088 { // tuple
30089 if (p->error_indicator) {
30090 D(p->level--);
30091 return NULL;
30092 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030093 D(fprintf(stderr, "%*c> _tmp_147[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "tuple"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030094 expr_ty tuple_var;
30095 if (
30096 (tuple_var = tuple_rule(p)) // tuple
30097 )
30098 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030099 D(fprintf(stderr, "%*c+ _tmp_147[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "tuple"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030100 _res = tuple_var;
30101 goto done;
30102 }
30103 p->mark = _mark;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030104 D(fprintf(stderr, "%*c%s _tmp_147[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030105 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "tuple"));
30106 }
30107 { // genexp
30108 if (p->error_indicator) {
30109 D(p->level--);
30110 return NULL;
30111 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030112 D(fprintf(stderr, "%*c> _tmp_147[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "genexp"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030113 expr_ty genexp_var;
30114 if (
30115 (genexp_var = genexp_rule(p)) // genexp
30116 )
30117 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030118 D(fprintf(stderr, "%*c+ _tmp_147[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "genexp"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030119 _res = genexp_var;
30120 goto done;
30121 }
30122 p->mark = _mark;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030123 D(fprintf(stderr, "%*c%s _tmp_147[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030124 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "genexp"));
30125 }
30126 { // 'True'
30127 if (p->error_indicator) {
30128 D(p->level--);
30129 return NULL;
30130 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030131 D(fprintf(stderr, "%*c> _tmp_147[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'True'"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030132 Token * _keyword;
30133 if (
30134 (_keyword = _PyPegen_expect_token(p, 524)) // token='True'
30135 )
30136 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030137 D(fprintf(stderr, "%*c+ _tmp_147[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030138 _res = _keyword;
30139 goto done;
30140 }
30141 p->mark = _mark;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030142 D(fprintf(stderr, "%*c%s _tmp_147[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030143 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'True'"));
30144 }
30145 { // 'None'
30146 if (p->error_indicator) {
30147 D(p->level--);
30148 return NULL;
30149 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030150 D(fprintf(stderr, "%*c> _tmp_147[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'None'"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030151 Token * _keyword;
30152 if (
30153 (_keyword = _PyPegen_expect_token(p, 523)) // token='None'
30154 )
30155 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030156 D(fprintf(stderr, "%*c+ _tmp_147[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030157 _res = _keyword;
30158 goto done;
30159 }
30160 p->mark = _mark;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030161 D(fprintf(stderr, "%*c%s _tmp_147[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030162 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'None'"));
30163 }
30164 { // 'False'
30165 if (p->error_indicator) {
30166 D(p->level--);
30167 return NULL;
30168 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030169 D(fprintf(stderr, "%*c> _tmp_147[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False'"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030170 Token * _keyword;
30171 if (
30172 (_keyword = _PyPegen_expect_token(p, 525)) // token='False'
30173 )
30174 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030175 D(fprintf(stderr, "%*c+ _tmp_147[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030176 _res = _keyword;
30177 goto done;
30178 }
30179 p->mark = _mark;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030180 D(fprintf(stderr, "%*c%s _tmp_147[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030181 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'False'"));
30182 }
30183 _res = NULL;
30184 done:
30185 D(p->level--);
30186 return _res;
30187}
30188
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030189// _tmp_148: '=' | ':='
Pablo Galindob2802482021-04-15 21:38:45 +010030190static void *
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030191_tmp_148_rule(Parser *p)
Pablo Galindob2802482021-04-15 21:38:45 +010030192{
30193 D(p->level++);
30194 if (p->error_indicator) {
30195 D(p->level--);
30196 return NULL;
30197 }
30198 void * _res = NULL;
30199 int _mark = p->mark;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030200 { // '='
30201 if (p->error_indicator) {
30202 D(p->level--);
30203 return NULL;
30204 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030205 D(fprintf(stderr, "%*c> _tmp_148[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'='"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030206 Token * _literal;
30207 if (
30208 (_literal = _PyPegen_expect_token(p, 22)) // token='='
30209 )
30210 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030211 D(fprintf(stderr, "%*c+ _tmp_148[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'='"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030212 _res = _literal;
30213 goto done;
30214 }
30215 p->mark = _mark;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030216 D(fprintf(stderr, "%*c%s _tmp_148[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030217 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'='"));
30218 }
30219 { // ':='
30220 if (p->error_indicator) {
30221 D(p->level--);
30222 return NULL;
30223 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030224 D(fprintf(stderr, "%*c> _tmp_148[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':='"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030225 Token * _literal;
30226 if (
30227 (_literal = _PyPegen_expect_token(p, 53)) // token=':='
30228 )
30229 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030230 D(fprintf(stderr, "%*c+ _tmp_148[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':='"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030231 _res = _literal;
30232 goto done;
30233 }
30234 p->mark = _mark;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030235 D(fprintf(stderr, "%*c%s _tmp_148[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030236 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':='"));
30237 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030238 _res = NULL;
30239 done:
30240 D(p->level--);
30241 return _res;
30242}
30243
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030244// _loop0_149: star_named_expressions
Pablo Galindo58fb1562021-02-02 19:54:22 +000030245static asdl_seq *
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030246_loop0_149_rule(Parser *p)
Pablo Galindo58fb1562021-02-02 19:54:22 +000030247{
30248 D(p->level++);
30249 if (p->error_indicator) {
30250 D(p->level--);
30251 return NULL;
30252 }
30253 void *_res = NULL;
30254 int _mark = p->mark;
30255 int _start_mark = p->mark;
30256 void **_children = PyMem_Malloc(sizeof(void *));
30257 if (!_children) {
30258 p->error_indicator = 1;
30259 PyErr_NoMemory();
30260 D(p->level--);
30261 return NULL;
30262 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010030263 Py_ssize_t _children_capacity = 1;
30264 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080030265 { // star_named_expressions
Pablo Galindo58fb1562021-02-02 19:54:22 +000030266 if (p->error_indicator) {
30267 D(p->level--);
30268 return NULL;
30269 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030270 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 -080030271 asdl_expr_seq* star_named_expressions_var;
30272 while (
30273 (star_named_expressions_var = star_named_expressions_rule(p)) // star_named_expressions
30274 )
30275 {
30276 _res = star_named_expressions_var;
30277 if (_n == _children_capacity) {
30278 _children_capacity *= 2;
30279 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
30280 if (!_new_children) {
30281 p->error_indicator = 1;
30282 PyErr_NoMemory();
30283 D(p->level--);
30284 return NULL;
30285 }
30286 _children = _new_children;
30287 }
30288 _children[_n++] = _res;
30289 _mark = p->mark;
30290 }
30291 p->mark = _mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030292 D(fprintf(stderr, "%*c%s _loop0_149[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030293 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expressions"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030294 }
30295 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
30296 if (!_seq) {
30297 PyMem_Free(_children);
30298 p->error_indicator = 1;
30299 PyErr_NoMemory();
30300 D(p->level--);
30301 return NULL;
30302 }
30303 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
30304 PyMem_Free(_children);
Pablo Galindob2802482021-04-15 21:38:45 +010030305 _PyPegen_insert_memo(p, _start_mark, _loop0_149_type, _seq);
30306 D(p->level--);
30307 return _seq;
30308}
30309
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010030310// _loop0_150: (star_targets '=')
30311static asdl_seq *
30312_loop0_150_rule(Parser *p)
30313{
30314 D(p->level++);
30315 if (p->error_indicator) {
30316 D(p->level--);
30317 return NULL;
30318 }
30319 void *_res = NULL;
30320 int _mark = p->mark;
30321 int _start_mark = p->mark;
30322 void **_children = PyMem_Malloc(sizeof(void *));
30323 if (!_children) {
30324 p->error_indicator = 1;
30325 PyErr_NoMemory();
30326 D(p->level--);
30327 return NULL;
30328 }
30329 Py_ssize_t _children_capacity = 1;
30330 Py_ssize_t _n = 0;
30331 { // (star_targets '=')
30332 if (p->error_indicator) {
30333 D(p->level--);
30334 return NULL;
30335 }
30336 D(fprintf(stderr, "%*c> _loop0_150[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')"));
30337 void *_tmp_194_var;
30338 while (
30339 (_tmp_194_var = _tmp_194_rule(p)) // star_targets '='
30340 )
30341 {
30342 _res = _tmp_194_var;
30343 if (_n == _children_capacity) {
30344 _children_capacity *= 2;
30345 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
30346 if (!_new_children) {
30347 p->error_indicator = 1;
30348 PyErr_NoMemory();
30349 D(p->level--);
30350 return NULL;
30351 }
30352 _children = _new_children;
30353 }
30354 _children[_n++] = _res;
30355 _mark = p->mark;
30356 }
30357 p->mark = _mark;
30358 D(fprintf(stderr, "%*c%s _loop0_150[%d-%d]: %s failed!\n", p->level, ' ',
30359 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(star_targets '=')"));
30360 }
30361 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
30362 if (!_seq) {
30363 PyMem_Free(_children);
30364 p->error_indicator = 1;
30365 PyErr_NoMemory();
30366 D(p->level--);
30367 return NULL;
30368 }
30369 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
30370 PyMem_Free(_children);
30371 _PyPegen_insert_memo(p, _start_mark, _loop0_150_type, _seq);
30372 D(p->level--);
30373 return _seq;
30374}
30375
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030376// _loop0_151: (star_targets '=')
30377static asdl_seq *
30378_loop0_151_rule(Parser *p)
30379{
30380 D(p->level++);
30381 if (p->error_indicator) {
30382 D(p->level--);
30383 return NULL;
30384 }
30385 void *_res = NULL;
30386 int _mark = p->mark;
30387 int _start_mark = p->mark;
30388 void **_children = PyMem_Malloc(sizeof(void *));
30389 if (!_children) {
30390 p->error_indicator = 1;
30391 PyErr_NoMemory();
30392 D(p->level--);
30393 return NULL;
30394 }
30395 Py_ssize_t _children_capacity = 1;
30396 Py_ssize_t _n = 0;
30397 { // (star_targets '=')
30398 if (p->error_indicator) {
30399 D(p->level--);
30400 return NULL;
30401 }
30402 D(fprintf(stderr, "%*c> _loop0_151[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')"));
30403 void *_tmp_195_var;
30404 while (
30405 (_tmp_195_var = _tmp_195_rule(p)) // star_targets '='
30406 )
30407 {
30408 _res = _tmp_195_var;
30409 if (_n == _children_capacity) {
30410 _children_capacity *= 2;
30411 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
30412 if (!_new_children) {
30413 p->error_indicator = 1;
30414 PyErr_NoMemory();
30415 D(p->level--);
30416 return NULL;
30417 }
30418 _children = _new_children;
30419 }
30420 _children[_n++] = _res;
30421 _mark = p->mark;
30422 }
30423 p->mark = _mark;
30424 D(fprintf(stderr, "%*c%s _loop0_151[%d-%d]: %s failed!\n", p->level, ' ',
30425 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(star_targets '=')"));
30426 }
30427 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
30428 if (!_seq) {
30429 PyMem_Free(_children);
30430 p->error_indicator = 1;
30431 PyErr_NoMemory();
30432 D(p->level--);
30433 return NULL;
30434 }
30435 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
30436 PyMem_Free(_children);
30437 _PyPegen_insert_memo(p, _start_mark, _loop0_151_type, _seq);
30438 D(p->level--);
30439 return _seq;
30440}
30441
30442// _tmp_152: yield_expr | star_expressions
Brandt Bucher145bf262021-02-26 14:51:55 -080030443static void *
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030444_tmp_152_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080030445{
30446 D(p->level++);
30447 if (p->error_indicator) {
30448 D(p->level--);
30449 return NULL;
30450 }
30451 void * _res = NULL;
30452 int _mark = p->mark;
30453 { // yield_expr
30454 if (p->error_indicator) {
30455 D(p->level--);
30456 return NULL;
30457 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030458 D(fprintf(stderr, "%*c> _tmp_152[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
Brandt Bucher145bf262021-02-26 14:51:55 -080030459 expr_ty yield_expr_var;
30460 if (
30461 (yield_expr_var = yield_expr_rule(p)) // yield_expr
30462 )
30463 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030464 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 -080030465 _res = yield_expr_var;
30466 goto done;
30467 }
30468 p->mark = _mark;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030469 D(fprintf(stderr, "%*c%s _tmp_152[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080030470 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
30471 }
30472 { // star_expressions
30473 if (p->error_indicator) {
30474 D(p->level--);
30475 return NULL;
30476 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030477 D(fprintf(stderr, "%*c> _tmp_152[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
Brandt Bucher145bf262021-02-26 14:51:55 -080030478 expr_ty star_expressions_var;
30479 if (
30480 (star_expressions_var = star_expressions_rule(p)) // star_expressions
30481 )
30482 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030483 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 -080030484 _res = star_expressions_var;
30485 goto done;
30486 }
30487 p->mark = _mark;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030488 D(fprintf(stderr, "%*c%s _tmp_152[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080030489 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
30490 }
30491 _res = NULL;
30492 done:
30493 D(p->level--);
30494 return _res;
30495}
30496
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030497// _tmp_153: '[' | '(' | '{'
Pablo Galindoa77aac42021-04-23 14:27:05 +010030498static void *
30499_tmp_153_rule(Parser *p)
30500{
30501 D(p->level++);
30502 if (p->error_indicator) {
30503 D(p->level--);
30504 return NULL;
30505 }
30506 void * _res = NULL;
30507 int _mark = p->mark;
30508 { // '['
30509 if (p->error_indicator) {
30510 D(p->level--);
30511 return NULL;
30512 }
30513 D(fprintf(stderr, "%*c> _tmp_153[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['"));
30514 Token * _literal;
30515 if (
30516 (_literal = _PyPegen_expect_token(p, 9)) // token='['
30517 )
30518 {
30519 D(fprintf(stderr, "%*c+ _tmp_153[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['"));
30520 _res = _literal;
30521 goto done;
30522 }
30523 p->mark = _mark;
30524 D(fprintf(stderr, "%*c%s _tmp_153[%d-%d]: %s failed!\n", p->level, ' ',
30525 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'['"));
30526 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030527 { // '('
30528 if (p->error_indicator) {
30529 D(p->level--);
30530 return NULL;
30531 }
30532 D(fprintf(stderr, "%*c> _tmp_153[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'('"));
30533 Token * _literal;
30534 if (
30535 (_literal = _PyPegen_expect_token(p, 7)) // token='('
30536 )
30537 {
30538 D(fprintf(stderr, "%*c+ _tmp_153[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'('"));
30539 _res = _literal;
30540 goto done;
30541 }
30542 p->mark = _mark;
30543 D(fprintf(stderr, "%*c%s _tmp_153[%d-%d]: %s failed!\n", p->level, ' ',
30544 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'('"));
30545 }
Pablo Galindoa77aac42021-04-23 14:27:05 +010030546 { // '{'
30547 if (p->error_indicator) {
30548 D(p->level--);
30549 return NULL;
30550 }
30551 D(fprintf(stderr, "%*c> _tmp_153[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{'"));
30552 Token * _literal;
30553 if (
30554 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
30555 )
30556 {
30557 D(fprintf(stderr, "%*c+ _tmp_153[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{'"));
30558 _res = _literal;
30559 goto done;
30560 }
30561 p->mark = _mark;
30562 D(fprintf(stderr, "%*c%s _tmp_153[%d-%d]: %s failed!\n", p->level, ' ',
30563 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{'"));
30564 }
30565 _res = NULL;
30566 done:
30567 D(p->level--);
30568 return _res;
30569}
30570
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010030571// _tmp_154: '[' | '{'
30572static void *
30573_tmp_154_rule(Parser *p)
30574{
30575 D(p->level++);
30576 if (p->error_indicator) {
30577 D(p->level--);
30578 return NULL;
30579 }
30580 void * _res = NULL;
30581 int _mark = p->mark;
30582 { // '['
30583 if (p->error_indicator) {
30584 D(p->level--);
30585 return NULL;
30586 }
30587 D(fprintf(stderr, "%*c> _tmp_154[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['"));
30588 Token * _literal;
30589 if (
30590 (_literal = _PyPegen_expect_token(p, 9)) // token='['
30591 )
30592 {
30593 D(fprintf(stderr, "%*c+ _tmp_154[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['"));
30594 _res = _literal;
30595 goto done;
30596 }
30597 p->mark = _mark;
30598 D(fprintf(stderr, "%*c%s _tmp_154[%d-%d]: %s failed!\n", p->level, ' ',
30599 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'['"));
30600 }
30601 { // '{'
30602 if (p->error_indicator) {
30603 D(p->level--);
30604 return NULL;
30605 }
30606 D(fprintf(stderr, "%*c> _tmp_154[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{'"));
30607 Token * _literal;
30608 if (
30609 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
30610 )
30611 {
30612 D(fprintf(stderr, "%*c+ _tmp_154[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{'"));
30613 _res = _literal;
30614 goto done;
30615 }
30616 p->mark = _mark;
30617 D(fprintf(stderr, "%*c%s _tmp_154[%d-%d]: %s failed!\n", p->level, ' ',
30618 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{'"));
30619 }
30620 _res = NULL;
30621 done:
30622 D(p->level--);
30623 return _res;
30624}
30625
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030626// _tmp_155: '[' | '{'
30627static void *
30628_tmp_155_rule(Parser *p)
30629{
30630 D(p->level++);
30631 if (p->error_indicator) {
30632 D(p->level--);
30633 return NULL;
30634 }
30635 void * _res = NULL;
30636 int _mark = p->mark;
30637 { // '['
30638 if (p->error_indicator) {
30639 D(p->level--);
30640 return NULL;
30641 }
30642 D(fprintf(stderr, "%*c> _tmp_155[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['"));
30643 Token * _literal;
30644 if (
30645 (_literal = _PyPegen_expect_token(p, 9)) // token='['
30646 )
30647 {
30648 D(fprintf(stderr, "%*c+ _tmp_155[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['"));
30649 _res = _literal;
30650 goto done;
30651 }
30652 p->mark = _mark;
30653 D(fprintf(stderr, "%*c%s _tmp_155[%d-%d]: %s failed!\n", p->level, ' ',
30654 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'['"));
30655 }
30656 { // '{'
30657 if (p->error_indicator) {
30658 D(p->level--);
30659 return NULL;
30660 }
30661 D(fprintf(stderr, "%*c> _tmp_155[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{'"));
30662 Token * _literal;
30663 if (
30664 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
30665 )
30666 {
30667 D(fprintf(stderr, "%*c+ _tmp_155[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{'"));
30668 _res = _literal;
30669 goto done;
30670 }
30671 p->mark = _mark;
30672 D(fprintf(stderr, "%*c%s _tmp_155[%d-%d]: %s failed!\n", p->level, ' ',
30673 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{'"));
30674 }
30675 _res = NULL;
30676 done:
30677 D(p->level--);
30678 return _res;
30679}
30680
30681// _loop0_156: param_no_default
Brandt Bucher145bf262021-02-26 14:51:55 -080030682static asdl_seq *
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030683_loop0_156_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080030684{
30685 D(p->level++);
30686 if (p->error_indicator) {
30687 D(p->level--);
30688 return NULL;
30689 }
30690 void *_res = NULL;
30691 int _mark = p->mark;
30692 int _start_mark = p->mark;
30693 void **_children = PyMem_Malloc(sizeof(void *));
30694 if (!_children) {
30695 p->error_indicator = 1;
30696 PyErr_NoMemory();
30697 D(p->level--);
30698 return NULL;
30699 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010030700 Py_ssize_t _children_capacity = 1;
30701 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080030702 { // param_no_default
30703 if (p->error_indicator) {
30704 D(p->level--);
30705 return NULL;
30706 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030707 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 -080030708 arg_ty param_no_default_var;
30709 while (
30710 (param_no_default_var = param_no_default_rule(p)) // param_no_default
30711 )
30712 {
30713 _res = param_no_default_var;
30714 if (_n == _children_capacity) {
30715 _children_capacity *= 2;
30716 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
30717 if (!_new_children) {
30718 p->error_indicator = 1;
30719 PyErr_NoMemory();
30720 D(p->level--);
30721 return NULL;
30722 }
30723 _children = _new_children;
30724 }
30725 _children[_n++] = _res;
30726 _mark = p->mark;
30727 }
30728 p->mark = _mark;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030729 D(fprintf(stderr, "%*c%s _loop0_156[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080030730 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
30731 }
30732 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
30733 if (!_seq) {
30734 PyMem_Free(_children);
30735 p->error_indicator = 1;
30736 PyErr_NoMemory();
30737 D(p->level--);
30738 return NULL;
30739 }
30740 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
30741 PyMem_Free(_children);
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030742 _PyPegen_insert_memo(p, _start_mark, _loop0_156_type, _seq);
Brandt Bucher145bf262021-02-26 14:51:55 -080030743 D(p->level--);
30744 return _seq;
30745}
30746
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030747// _loop1_157: param_with_default
Brandt Bucher145bf262021-02-26 14:51:55 -080030748static asdl_seq *
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030749_loop1_157_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080030750{
30751 D(p->level++);
30752 if (p->error_indicator) {
30753 D(p->level--);
30754 return NULL;
30755 }
30756 void *_res = NULL;
30757 int _mark = p->mark;
30758 int _start_mark = p->mark;
30759 void **_children = PyMem_Malloc(sizeof(void *));
30760 if (!_children) {
30761 p->error_indicator = 1;
30762 PyErr_NoMemory();
30763 D(p->level--);
30764 return NULL;
30765 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010030766 Py_ssize_t _children_capacity = 1;
30767 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080030768 { // param_with_default
30769 if (p->error_indicator) {
30770 D(p->level--);
30771 return NULL;
30772 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030773 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 -080030774 NameDefaultPair* param_with_default_var;
30775 while (
30776 (param_with_default_var = param_with_default_rule(p)) // param_with_default
30777 )
30778 {
30779 _res = param_with_default_var;
30780 if (_n == _children_capacity) {
30781 _children_capacity *= 2;
30782 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
30783 if (!_new_children) {
30784 p->error_indicator = 1;
30785 PyErr_NoMemory();
30786 D(p->level--);
30787 return NULL;
30788 }
30789 _children = _new_children;
30790 }
30791 _children[_n++] = _res;
30792 _mark = p->mark;
30793 }
30794 p->mark = _mark;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030795 D(fprintf(stderr, "%*c%s _loop1_157[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080030796 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
30797 }
30798 if (_n == 0 || p->error_indicator) {
30799 PyMem_Free(_children);
30800 D(p->level--);
30801 return NULL;
30802 }
30803 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
30804 if (!_seq) {
30805 PyMem_Free(_children);
30806 p->error_indicator = 1;
30807 PyErr_NoMemory();
30808 D(p->level--);
30809 return NULL;
30810 }
30811 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
30812 PyMem_Free(_children);
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030813 _PyPegen_insert_memo(p, _start_mark, _loop1_157_type, _seq);
Brandt Bucher145bf262021-02-26 14:51:55 -080030814 D(p->level--);
30815 return _seq;
30816}
30817
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030818// _loop0_158: lambda_param_no_default
Brandt Bucher145bf262021-02-26 14:51:55 -080030819static asdl_seq *
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030820_loop0_158_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080030821{
30822 D(p->level++);
30823 if (p->error_indicator) {
30824 D(p->level--);
30825 return NULL;
30826 }
30827 void *_res = NULL;
30828 int _mark = p->mark;
30829 int _start_mark = p->mark;
30830 void **_children = PyMem_Malloc(sizeof(void *));
30831 if (!_children) {
30832 p->error_indicator = 1;
30833 PyErr_NoMemory();
30834 D(p->level--);
30835 return NULL;
30836 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010030837 Py_ssize_t _children_capacity = 1;
30838 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080030839 { // lambda_param_no_default
30840 if (p->error_indicator) {
30841 D(p->level--);
30842 return NULL;
30843 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030844 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 -080030845 arg_ty lambda_param_no_default_var;
30846 while (
30847 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
30848 )
30849 {
30850 _res = lambda_param_no_default_var;
30851 if (_n == _children_capacity) {
30852 _children_capacity *= 2;
30853 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
30854 if (!_new_children) {
30855 p->error_indicator = 1;
30856 PyErr_NoMemory();
30857 D(p->level--);
30858 return NULL;
30859 }
30860 _children = _new_children;
30861 }
30862 _children[_n++] = _res;
30863 _mark = p->mark;
30864 }
30865 p->mark = _mark;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030866 D(fprintf(stderr, "%*c%s _loop0_158[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080030867 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
30868 }
30869 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
30870 if (!_seq) {
30871 PyMem_Free(_children);
30872 p->error_indicator = 1;
30873 PyErr_NoMemory();
30874 D(p->level--);
30875 return NULL;
30876 }
30877 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
30878 PyMem_Free(_children);
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030879 _PyPegen_insert_memo(p, _start_mark, _loop0_158_type, _seq);
Brandt Bucher145bf262021-02-26 14:51:55 -080030880 D(p->level--);
30881 return _seq;
30882}
30883
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030884// _loop1_159: lambda_param_with_default
Brandt Bucher145bf262021-02-26 14:51:55 -080030885static asdl_seq *
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030886_loop1_159_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080030887{
30888 D(p->level++);
30889 if (p->error_indicator) {
30890 D(p->level--);
30891 return NULL;
30892 }
30893 void *_res = NULL;
30894 int _mark = p->mark;
30895 int _start_mark = p->mark;
30896 void **_children = PyMem_Malloc(sizeof(void *));
30897 if (!_children) {
30898 p->error_indicator = 1;
30899 PyErr_NoMemory();
30900 D(p->level--);
30901 return NULL;
30902 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010030903 Py_ssize_t _children_capacity = 1;
30904 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080030905 { // lambda_param_with_default
30906 if (p->error_indicator) {
30907 D(p->level--);
30908 return NULL;
30909 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030910 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 -080030911 NameDefaultPair* lambda_param_with_default_var;
30912 while (
30913 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
30914 )
30915 {
30916 _res = lambda_param_with_default_var;
30917 if (_n == _children_capacity) {
30918 _children_capacity *= 2;
30919 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
30920 if (!_new_children) {
30921 p->error_indicator = 1;
30922 PyErr_NoMemory();
30923 D(p->level--);
30924 return NULL;
30925 }
30926 _children = _new_children;
30927 }
30928 _children[_n++] = _res;
30929 _mark = p->mark;
30930 }
30931 p->mark = _mark;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030932 D(fprintf(stderr, "%*c%s _loop1_159[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080030933 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
30934 }
30935 if (_n == 0 || p->error_indicator) {
30936 PyMem_Free(_children);
30937 D(p->level--);
30938 return NULL;
30939 }
30940 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
30941 if (!_seq) {
30942 PyMem_Free(_children);
30943 p->error_indicator = 1;
30944 PyErr_NoMemory();
30945 D(p->level--);
30946 return NULL;
30947 }
30948 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
30949 PyMem_Free(_children);
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030950 _PyPegen_insert_memo(p, _start_mark, _loop1_159_type, _seq);
Brandt Bucher145bf262021-02-26 14:51:55 -080030951 D(p->level--);
30952 return _seq;
30953}
30954
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030955// _tmp_160: ')' | ',' (')' | '**')
Pablo Galindo56c95df2021-04-21 15:28:21 +010030956static void *
Pablo Galindoa77aac42021-04-23 14:27:05 +010030957_tmp_160_rule(Parser *p)
Pablo Galindo56c95df2021-04-21 15:28:21 +010030958{
30959 D(p->level++);
30960 if (p->error_indicator) {
30961 D(p->level--);
30962 return NULL;
30963 }
30964 void * _res = NULL;
30965 int _mark = p->mark;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030966 { // ')'
Pablo Galindoa77aac42021-04-23 14:27:05 +010030967 if (p->error_indicator) {
30968 D(p->level--);
30969 return NULL;
30970 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030971 D(fprintf(stderr, "%*c> _tmp_160[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010030972 Token * _literal;
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070030973 if (
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030974 (_literal = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoa77aac42021-04-23 14:27:05 +010030975 )
30976 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030977 D(fprintf(stderr, "%*c+ _tmp_160[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030978 _res = _literal;
Pablo Galindoa77aac42021-04-23 14:27:05 +010030979 goto done;
30980 }
30981 p->mark = _mark;
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070030982 D(fprintf(stderr, "%*c%s _tmp_160[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030983 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030984 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030985 { // ',' (')' | '**')
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030986 if (p->error_indicator) {
30987 D(p->level--);
30988 return NULL;
30989 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030990 D(fprintf(stderr, "%*c> _tmp_160[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (')' | '**')"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030991 Token * _literal;
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010030992 void *_tmp_196_var;
30993 if (
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030994 (_literal = _PyPegen_expect_token(p, 12)) // token=','
30995 &&
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030996 (_tmp_196_var = _tmp_196_rule(p)) // ')' | '**'
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030997 )
30998 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030999 D(fprintf(stderr, "%*c+ _tmp_160[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' (')' | '**')"));
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010031000 _res = _PyPegen_dummy_name(p, _literal, _tmp_196_var);
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031001 goto done;
31002 }
31003 p->mark = _mark;
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010031004 D(fprintf(stderr, "%*c%s _tmp_160[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031005 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (')' | '**')"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031006 }
31007 _res = NULL;
31008 done:
31009 D(p->level--);
31010 return _res;
31011}
31012
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031013// _tmp_161: ':' | ',' (':' | '**')
Pablo Galindo56c95df2021-04-21 15:28:21 +010031014static void *
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010031015_tmp_161_rule(Parser *p)
31016{
31017 D(p->level++);
31018 if (p->error_indicator) {
31019 D(p->level--);
31020 return NULL;
31021 }
31022 void * _res = NULL;
31023 int _mark = p->mark;
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010031024 { // ':'
31025 if (p->error_indicator) {
31026 D(p->level--);
31027 return NULL;
31028 }
31029 D(fprintf(stderr, "%*c> _tmp_161[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
31030 Token * _literal;
31031 if (
31032 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
31033 )
31034 {
31035 D(fprintf(stderr, "%*c+ _tmp_161[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
31036 _res = _literal;
31037 goto done;
31038 }
31039 p->mark = _mark;
31040 D(fprintf(stderr, "%*c%s _tmp_161[%d-%d]: %s failed!\n", p->level, ' ',
31041 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
31042 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031043 { // ',' (':' | '**')
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010031044 if (p->error_indicator) {
31045 D(p->level--);
31046 return NULL;
31047 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031048 D(fprintf(stderr, "%*c> _tmp_161[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (':' | '**')"));
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010031049 Token * _literal;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031050 void *_tmp_197_var;
31051 if (
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010031052 (_literal = _PyPegen_expect_token(p, 12)) // token=','
31053 &&
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031054 (_tmp_197_var = _tmp_197_rule(p)) // ':' | '**'
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010031055 )
31056 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031057 D(fprintf(stderr, "%*c+ _tmp_161[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' (':' | '**')"));
31058 _res = _PyPegen_dummy_name(p, _literal, _tmp_197_var);
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010031059 goto done;
31060 }
31061 p->mark = _mark;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031062 D(fprintf(stderr, "%*c%s _tmp_161[%d-%d]: %s failed!\n", p->level, ' ',
31063 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (':' | '**')"));
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010031064 }
31065 _res = NULL;
31066 done:
31067 D(p->level--);
31068 return _res;
31069}
31070
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031071// _tmp_162: ',' | ')' | ':'
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010031072static void *
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031073_tmp_162_rule(Parser *p)
31074{
31075 D(p->level++);
31076 if (p->error_indicator) {
31077 D(p->level--);
31078 return NULL;
31079 }
31080 void * _res = NULL;
31081 int _mark = p->mark;
31082 { // ','
31083 if (p->error_indicator) {
31084 D(p->level--);
31085 return NULL;
31086 }
31087 D(fprintf(stderr, "%*c> _tmp_162[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','"));
31088 Token * _literal;
31089 if (
31090 (_literal = _PyPegen_expect_token(p, 12)) // token=','
31091 )
31092 {
31093 D(fprintf(stderr, "%*c+ _tmp_162[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','"));
31094 _res = _literal;
31095 goto done;
31096 }
31097 p->mark = _mark;
31098 D(fprintf(stderr, "%*c%s _tmp_162[%d-%d]: %s failed!\n", p->level, ' ',
31099 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','"));
31100 }
31101 { // ')'
31102 if (p->error_indicator) {
31103 D(p->level--);
31104 return NULL;
31105 }
31106 D(fprintf(stderr, "%*c> _tmp_162[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
31107 Token * _literal;
31108 if (
31109 (_literal = _PyPegen_expect_token(p, 8)) // token=')'
31110 )
31111 {
31112 D(fprintf(stderr, "%*c+ _tmp_162[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
31113 _res = _literal;
31114 goto done;
31115 }
31116 p->mark = _mark;
31117 D(fprintf(stderr, "%*c%s _tmp_162[%d-%d]: %s failed!\n", p->level, ' ',
31118 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
31119 }
31120 { // ':'
31121 if (p->error_indicator) {
31122 D(p->level--);
31123 return NULL;
31124 }
31125 D(fprintf(stderr, "%*c> _tmp_162[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
31126 Token * _literal;
31127 if (
31128 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
31129 )
31130 {
31131 D(fprintf(stderr, "%*c+ _tmp_162[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
31132 _res = _literal;
31133 goto done;
31134 }
31135 p->mark = _mark;
31136 D(fprintf(stderr, "%*c%s _tmp_162[%d-%d]: %s failed!\n", p->level, ' ',
31137 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
31138 }
31139 _res = NULL;
31140 done:
31141 D(p->level--);
31142 return _res;
31143}
31144
31145// _loop0_164: ',' (expression ['as' star_target])
31146static asdl_seq *
31147_loop0_164_rule(Parser *p)
31148{
31149 D(p->level++);
31150 if (p->error_indicator) {
31151 D(p->level--);
31152 return NULL;
31153 }
31154 void *_res = NULL;
31155 int _mark = p->mark;
31156 int _start_mark = p->mark;
31157 void **_children = PyMem_Malloc(sizeof(void *));
31158 if (!_children) {
31159 p->error_indicator = 1;
31160 PyErr_NoMemory();
31161 D(p->level--);
31162 return NULL;
31163 }
31164 Py_ssize_t _children_capacity = 1;
31165 Py_ssize_t _n = 0;
31166 { // ',' (expression ['as' star_target])
31167 if (p->error_indicator) {
31168 D(p->level--);
31169 return NULL;
31170 }
31171 D(fprintf(stderr, "%*c> _loop0_164[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (expression ['as' star_target])"));
31172 Token * _literal;
31173 void *elem;
31174 while (
31175 (_literal = _PyPegen_expect_token(p, 12)) // token=','
31176 &&
31177 (elem = _tmp_198_rule(p)) // expression ['as' star_target]
31178 )
31179 {
31180 _res = elem;
31181 if (_res == NULL && PyErr_Occurred()) {
31182 p->error_indicator = 1;
31183 PyMem_Free(_children);
31184 D(p->level--);
31185 return NULL;
31186 }
31187 if (_n == _children_capacity) {
31188 _children_capacity *= 2;
31189 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
31190 if (!_new_children) {
31191 p->error_indicator = 1;
31192 PyErr_NoMemory();
31193 D(p->level--);
31194 return NULL;
31195 }
31196 _children = _new_children;
31197 }
31198 _children[_n++] = _res;
31199 _mark = p->mark;
31200 }
31201 p->mark = _mark;
31202 D(fprintf(stderr, "%*c%s _loop0_164[%d-%d]: %s failed!\n", p->level, ' ',
31203 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (expression ['as' star_target])"));
31204 }
31205 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
31206 if (!_seq) {
31207 PyMem_Free(_children);
31208 p->error_indicator = 1;
31209 PyErr_NoMemory();
31210 D(p->level--);
31211 return NULL;
31212 }
31213 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
31214 PyMem_Free(_children);
31215 _PyPegen_insert_memo(p, _start_mark, _loop0_164_type, _seq);
31216 D(p->level--);
31217 return _seq;
31218}
31219
31220// _gather_163: (expression ['as' star_target]) _loop0_164
31221static asdl_seq *
31222_gather_163_rule(Parser *p)
31223{
31224 D(p->level++);
31225 if (p->error_indicator) {
31226 D(p->level--);
31227 return NULL;
31228 }
31229 asdl_seq * _res = NULL;
31230 int _mark = p->mark;
31231 { // (expression ['as' star_target]) _loop0_164
31232 if (p->error_indicator) {
31233 D(p->level--);
31234 return NULL;
31235 }
31236 D(fprintf(stderr, "%*c> _gather_163[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(expression ['as' star_target]) _loop0_164"));
31237 void *elem;
31238 asdl_seq * seq;
31239 if (
31240 (elem = _tmp_198_rule(p)) // expression ['as' star_target]
31241 &&
31242 (seq = _loop0_164_rule(p)) // _loop0_164
31243 )
31244 {
31245 D(fprintf(stderr, "%*c+ _gather_163[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(expression ['as' star_target]) _loop0_164"));
31246 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
31247 goto done;
31248 }
31249 p->mark = _mark;
31250 D(fprintf(stderr, "%*c%s _gather_163[%d-%d]: %s failed!\n", p->level, ' ',
31251 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(expression ['as' star_target]) _loop0_164"));
31252 }
31253 _res = NULL;
31254 done:
31255 D(p->level--);
31256 return _res;
31257}
31258
31259// _loop0_166: ',' (expressions ['as' star_target])
31260static asdl_seq *
31261_loop0_166_rule(Parser *p)
31262{
31263 D(p->level++);
31264 if (p->error_indicator) {
31265 D(p->level--);
31266 return NULL;
31267 }
31268 void *_res = NULL;
31269 int _mark = p->mark;
31270 int _start_mark = p->mark;
31271 void **_children = PyMem_Malloc(sizeof(void *));
31272 if (!_children) {
31273 p->error_indicator = 1;
31274 PyErr_NoMemory();
31275 D(p->level--);
31276 return NULL;
31277 }
31278 Py_ssize_t _children_capacity = 1;
31279 Py_ssize_t _n = 0;
31280 { // ',' (expressions ['as' star_target])
31281 if (p->error_indicator) {
31282 D(p->level--);
31283 return NULL;
31284 }
31285 D(fprintf(stderr, "%*c> _loop0_166[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (expressions ['as' star_target])"));
31286 Token * _literal;
31287 void *elem;
31288 while (
31289 (_literal = _PyPegen_expect_token(p, 12)) // token=','
31290 &&
31291 (elem = _tmp_199_rule(p)) // expressions ['as' star_target]
31292 )
31293 {
31294 _res = elem;
31295 if (_res == NULL && PyErr_Occurred()) {
31296 p->error_indicator = 1;
31297 PyMem_Free(_children);
31298 D(p->level--);
31299 return NULL;
31300 }
31301 if (_n == _children_capacity) {
31302 _children_capacity *= 2;
31303 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
31304 if (!_new_children) {
31305 p->error_indicator = 1;
31306 PyErr_NoMemory();
31307 D(p->level--);
31308 return NULL;
31309 }
31310 _children = _new_children;
31311 }
31312 _children[_n++] = _res;
31313 _mark = p->mark;
31314 }
31315 p->mark = _mark;
31316 D(fprintf(stderr, "%*c%s _loop0_166[%d-%d]: %s failed!\n", p->level, ' ',
31317 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (expressions ['as' star_target])"));
31318 }
31319 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
31320 if (!_seq) {
31321 PyMem_Free(_children);
31322 p->error_indicator = 1;
31323 PyErr_NoMemory();
31324 D(p->level--);
31325 return NULL;
31326 }
31327 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
31328 PyMem_Free(_children);
31329 _PyPegen_insert_memo(p, _start_mark, _loop0_166_type, _seq);
31330 D(p->level--);
31331 return _seq;
31332}
31333
31334// _gather_165: (expressions ['as' star_target]) _loop0_166
31335static asdl_seq *
31336_gather_165_rule(Parser *p)
31337{
31338 D(p->level++);
31339 if (p->error_indicator) {
31340 D(p->level--);
31341 return NULL;
31342 }
31343 asdl_seq * _res = NULL;
31344 int _mark = p->mark;
31345 { // (expressions ['as' star_target]) _loop0_166
31346 if (p->error_indicator) {
31347 D(p->level--);
31348 return NULL;
31349 }
31350 D(fprintf(stderr, "%*c> _gather_165[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(expressions ['as' star_target]) _loop0_166"));
31351 void *elem;
31352 asdl_seq * seq;
31353 if (
31354 (elem = _tmp_199_rule(p)) // expressions ['as' star_target]
31355 &&
31356 (seq = _loop0_166_rule(p)) // _loop0_166
31357 )
31358 {
31359 D(fprintf(stderr, "%*c+ _gather_165[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(expressions ['as' star_target]) _loop0_166"));
31360 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
31361 goto done;
31362 }
31363 p->mark = _mark;
31364 D(fprintf(stderr, "%*c%s _gather_165[%d-%d]: %s failed!\n", p->level, ' ',
31365 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(expressions ['as' star_target]) _loop0_166"));
31366 }
31367 _res = NULL;
31368 done:
31369 D(p->level--);
31370 return _res;
31371}
31372
31373// _loop0_168: ',' (expression ['as' star_target])
31374static asdl_seq *
31375_loop0_168_rule(Parser *p)
31376{
31377 D(p->level++);
31378 if (p->error_indicator) {
31379 D(p->level--);
31380 return NULL;
31381 }
31382 void *_res = NULL;
31383 int _mark = p->mark;
31384 int _start_mark = p->mark;
31385 void **_children = PyMem_Malloc(sizeof(void *));
31386 if (!_children) {
31387 p->error_indicator = 1;
31388 PyErr_NoMemory();
31389 D(p->level--);
31390 return NULL;
31391 }
31392 Py_ssize_t _children_capacity = 1;
31393 Py_ssize_t _n = 0;
31394 { // ',' (expression ['as' star_target])
31395 if (p->error_indicator) {
31396 D(p->level--);
31397 return NULL;
31398 }
31399 D(fprintf(stderr, "%*c> _loop0_168[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (expression ['as' star_target])"));
31400 Token * _literal;
31401 void *elem;
31402 while (
31403 (_literal = _PyPegen_expect_token(p, 12)) // token=','
31404 &&
31405 (elem = _tmp_200_rule(p)) // expression ['as' star_target]
31406 )
31407 {
31408 _res = elem;
31409 if (_res == NULL && PyErr_Occurred()) {
31410 p->error_indicator = 1;
31411 PyMem_Free(_children);
31412 D(p->level--);
31413 return NULL;
31414 }
31415 if (_n == _children_capacity) {
31416 _children_capacity *= 2;
31417 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
31418 if (!_new_children) {
31419 p->error_indicator = 1;
31420 PyErr_NoMemory();
31421 D(p->level--);
31422 return NULL;
31423 }
31424 _children = _new_children;
31425 }
31426 _children[_n++] = _res;
31427 _mark = p->mark;
31428 }
31429 p->mark = _mark;
31430 D(fprintf(stderr, "%*c%s _loop0_168[%d-%d]: %s failed!\n", p->level, ' ',
31431 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (expression ['as' star_target])"));
31432 }
31433 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
31434 if (!_seq) {
31435 PyMem_Free(_children);
31436 p->error_indicator = 1;
31437 PyErr_NoMemory();
31438 D(p->level--);
31439 return NULL;
31440 }
31441 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
31442 PyMem_Free(_children);
31443 _PyPegen_insert_memo(p, _start_mark, _loop0_168_type, _seq);
31444 D(p->level--);
31445 return _seq;
31446}
31447
31448// _gather_167: (expression ['as' star_target]) _loop0_168
31449static asdl_seq *
31450_gather_167_rule(Parser *p)
31451{
31452 D(p->level++);
31453 if (p->error_indicator) {
31454 D(p->level--);
31455 return NULL;
31456 }
31457 asdl_seq * _res = NULL;
31458 int _mark = p->mark;
31459 { // (expression ['as' star_target]) _loop0_168
31460 if (p->error_indicator) {
31461 D(p->level--);
31462 return NULL;
31463 }
31464 D(fprintf(stderr, "%*c> _gather_167[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(expression ['as' star_target]) _loop0_168"));
31465 void *elem;
31466 asdl_seq * seq;
31467 if (
31468 (elem = _tmp_200_rule(p)) // expression ['as' star_target]
31469 &&
31470 (seq = _loop0_168_rule(p)) // _loop0_168
31471 )
31472 {
31473 D(fprintf(stderr, "%*c+ _gather_167[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(expression ['as' star_target]) _loop0_168"));
31474 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
31475 goto done;
31476 }
31477 p->mark = _mark;
31478 D(fprintf(stderr, "%*c%s _gather_167[%d-%d]: %s failed!\n", p->level, ' ',
31479 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(expression ['as' star_target]) _loop0_168"));
31480 }
31481 _res = NULL;
31482 done:
31483 D(p->level--);
31484 return _res;
31485}
31486
31487// _loop0_170: ',' (expressions ['as' star_target])
31488static asdl_seq *
31489_loop0_170_rule(Parser *p)
31490{
31491 D(p->level++);
31492 if (p->error_indicator) {
31493 D(p->level--);
31494 return NULL;
31495 }
31496 void *_res = NULL;
31497 int _mark = p->mark;
31498 int _start_mark = p->mark;
31499 void **_children = PyMem_Malloc(sizeof(void *));
31500 if (!_children) {
31501 p->error_indicator = 1;
31502 PyErr_NoMemory();
31503 D(p->level--);
31504 return NULL;
31505 }
31506 Py_ssize_t _children_capacity = 1;
31507 Py_ssize_t _n = 0;
31508 { // ',' (expressions ['as' star_target])
31509 if (p->error_indicator) {
31510 D(p->level--);
31511 return NULL;
31512 }
31513 D(fprintf(stderr, "%*c> _loop0_170[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (expressions ['as' star_target])"));
31514 Token * _literal;
31515 void *elem;
31516 while (
31517 (_literal = _PyPegen_expect_token(p, 12)) // token=','
31518 &&
31519 (elem = _tmp_201_rule(p)) // expressions ['as' star_target]
31520 )
31521 {
31522 _res = elem;
31523 if (_res == NULL && PyErr_Occurred()) {
31524 p->error_indicator = 1;
31525 PyMem_Free(_children);
31526 D(p->level--);
31527 return NULL;
31528 }
31529 if (_n == _children_capacity) {
31530 _children_capacity *= 2;
31531 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
31532 if (!_new_children) {
31533 p->error_indicator = 1;
31534 PyErr_NoMemory();
31535 D(p->level--);
31536 return NULL;
31537 }
31538 _children = _new_children;
31539 }
31540 _children[_n++] = _res;
31541 _mark = p->mark;
31542 }
31543 p->mark = _mark;
31544 D(fprintf(stderr, "%*c%s _loop0_170[%d-%d]: %s failed!\n", p->level, ' ',
31545 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (expressions ['as' star_target])"));
31546 }
31547 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
31548 if (!_seq) {
31549 PyMem_Free(_children);
31550 p->error_indicator = 1;
31551 PyErr_NoMemory();
31552 D(p->level--);
31553 return NULL;
31554 }
31555 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
31556 PyMem_Free(_children);
31557 _PyPegen_insert_memo(p, _start_mark, _loop0_170_type, _seq);
31558 D(p->level--);
31559 return _seq;
31560}
31561
31562// _gather_169: (expressions ['as' star_target]) _loop0_170
31563static asdl_seq *
31564_gather_169_rule(Parser *p)
31565{
31566 D(p->level++);
31567 if (p->error_indicator) {
31568 D(p->level--);
31569 return NULL;
31570 }
31571 asdl_seq * _res = NULL;
31572 int _mark = p->mark;
31573 { // (expressions ['as' star_target]) _loop0_170
31574 if (p->error_indicator) {
31575 D(p->level--);
31576 return NULL;
31577 }
31578 D(fprintf(stderr, "%*c> _gather_169[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(expressions ['as' star_target]) _loop0_170"));
31579 void *elem;
31580 asdl_seq * seq;
31581 if (
31582 (elem = _tmp_201_rule(p)) // expressions ['as' star_target]
31583 &&
31584 (seq = _loop0_170_rule(p)) // _loop0_170
31585 )
31586 {
31587 D(fprintf(stderr, "%*c+ _gather_169[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(expressions ['as' star_target]) _loop0_170"));
31588 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
31589 goto done;
31590 }
31591 p->mark = _mark;
31592 D(fprintf(stderr, "%*c%s _gather_169[%d-%d]: %s failed!\n", p->level, ' ',
31593 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(expressions ['as' star_target]) _loop0_170"));
31594 }
31595 _res = NULL;
31596 done:
31597 D(p->level--);
31598 return _res;
31599}
31600
31601// _tmp_171: 'except' | 'finally'
31602static void *
31603_tmp_171_rule(Parser *p)
Pablo Galindo56c95df2021-04-21 15:28:21 +010031604{
31605 D(p->level++);
31606 if (p->error_indicator) {
31607 D(p->level--);
31608 return NULL;
31609 }
31610 void * _res = NULL;
31611 int _mark = p->mark;
Pablo Galindoe53f72a2021-06-04 00:11:43 +010031612 { // 'except'
Pablo Galindoa77aac42021-04-23 14:27:05 +010031613 if (p->error_indicator) {
31614 D(p->level--);
31615 return NULL;
31616 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031617 D(fprintf(stderr, "%*c> _tmp_171[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except'"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010031618 Token * _keyword;
Pablo Galindoa77aac42021-04-23 14:27:05 +010031619 if (
Pablo Galindoe53f72a2021-06-04 00:11:43 +010031620 (_keyword = _PyPegen_expect_token(p, 521)) // token='except'
Pablo Galindoa77aac42021-04-23 14:27:05 +010031621 )
31622 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031623 D(fprintf(stderr, "%*c+ _tmp_171[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except'"));
Pablo Galindoe53f72a2021-06-04 00:11:43 +010031624 _res = _keyword;
Pablo Galindoa77aac42021-04-23 14:27:05 +010031625 goto done;
31626 }
31627 p->mark = _mark;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031628 D(fprintf(stderr, "%*c%s _tmp_171[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindoe53f72a2021-06-04 00:11:43 +010031629 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except'"));
31630 }
31631 { // 'finally'
31632 if (p->error_indicator) {
31633 D(p->level--);
31634 return NULL;
31635 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031636 D(fprintf(stderr, "%*c> _tmp_171[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'finally'"));
Pablo Galindoe53f72a2021-06-04 00:11:43 +010031637 Token * _keyword;
31638 if (
31639 (_keyword = _PyPegen_expect_token(p, 522)) // token='finally'
31640 )
31641 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031642 D(fprintf(stderr, "%*c+ _tmp_171[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'finally'"));
Pablo Galindoe53f72a2021-06-04 00:11:43 +010031643 _res = _keyword;
31644 goto done;
31645 }
31646 p->mark = _mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031647 D(fprintf(stderr, "%*c%s _tmp_171[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031648 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'finally'"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031649 }
31650 _res = NULL;
31651 done:
31652 D(p->level--);
31653 return _res;
31654}
31655
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070031656// _tmp_172: 'as' NAME
Pablo Galindoa77aac42021-04-23 14:27:05 +010031657static void *
31658_tmp_172_rule(Parser *p)
31659{
31660 D(p->level++);
31661 if (p->error_indicator) {
31662 D(p->level--);
31663 return NULL;
31664 }
31665 void * _res = NULL;
31666 int _mark = p->mark;
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070031667 { // 'as' NAME
31668 if (p->error_indicator) {
31669 D(p->level--);
31670 return NULL;
31671 }
31672 D(fprintf(stderr, "%*c> _tmp_172[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
31673 Token * _keyword;
31674 expr_ty name_var;
31675 if (
31676 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
31677 &&
31678 (name_var = _PyPegen_name_token(p)) // NAME
31679 )
31680 {
31681 D(fprintf(stderr, "%*c+ _tmp_172[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
31682 _res = _PyPegen_dummy_name(p, _keyword, name_var);
31683 goto done;
31684 }
31685 p->mark = _mark;
31686 D(fprintf(stderr, "%*c%s _tmp_172[%d-%d]: %s failed!\n", p->level, ' ',
31687 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
31688 }
31689 _res = NULL;
31690 done:
31691 D(p->level--);
31692 return _res;
31693}
31694
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010031695// _tmp_173: 'as' NAME
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070031696static void *
31697_tmp_173_rule(Parser *p)
31698{
31699 D(p->level++);
31700 if (p->error_indicator) {
31701 D(p->level--);
31702 return NULL;
31703 }
31704 void * _res = NULL;
31705 int _mark = p->mark;
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010031706 { // 'as' NAME
31707 if (p->error_indicator) {
31708 D(p->level--);
31709 return NULL;
31710 }
31711 D(fprintf(stderr, "%*c> _tmp_173[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
31712 Token * _keyword;
31713 expr_ty name_var;
31714 if (
31715 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
31716 &&
31717 (name_var = _PyPegen_name_token(p)) // NAME
31718 )
31719 {
31720 D(fprintf(stderr, "%*c+ _tmp_173[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
31721 _res = _PyPegen_dummy_name(p, _keyword, name_var);
31722 goto done;
31723 }
31724 p->mark = _mark;
31725 D(fprintf(stderr, "%*c%s _tmp_173[%d-%d]: %s failed!\n", p->level, ' ',
31726 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
31727 }
31728 _res = NULL;
31729 done:
31730 D(p->level--);
31731 return _res;
31732}
31733
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031734// _tmp_174: 'as' NAME
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010031735static void *
31736_tmp_174_rule(Parser *p)
31737{
31738 D(p->level++);
31739 if (p->error_indicator) {
31740 D(p->level--);
31741 return NULL;
31742 }
31743 void * _res = NULL;
31744 int _mark = p->mark;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031745 { // 'as' NAME
31746 if (p->error_indicator) {
31747 D(p->level--);
31748 return NULL;
31749 }
31750 D(fprintf(stderr, "%*c> _tmp_174[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
31751 Token * _keyword;
31752 expr_ty name_var;
31753 if (
31754 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
31755 &&
31756 (name_var = _PyPegen_name_token(p)) // NAME
31757 )
31758 {
31759 D(fprintf(stderr, "%*c+ _tmp_174[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
31760 _res = _PyPegen_dummy_name(p, _keyword, name_var);
31761 goto done;
31762 }
31763 p->mark = _mark;
31764 D(fprintf(stderr, "%*c%s _tmp_174[%d-%d]: %s failed!\n", p->level, ' ',
31765 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
31766 }
31767 _res = NULL;
31768 done:
31769 D(p->level--);
31770 return _res;
31771}
31772
31773// _tmp_175: positional_patterns ','
31774static void *
31775_tmp_175_rule(Parser *p)
31776{
31777 D(p->level++);
31778 if (p->error_indicator) {
31779 D(p->level--);
31780 return NULL;
31781 }
31782 void * _res = NULL;
31783 int _mark = p->mark;
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070031784 { // positional_patterns ','
31785 if (p->error_indicator) {
31786 D(p->level--);
31787 return NULL;
31788 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031789 D(fprintf(stderr, "%*c> _tmp_175[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "positional_patterns ','"));
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070031790 Token * _literal;
31791 asdl_pattern_seq* positional_patterns_var;
31792 if (
31793 (positional_patterns_var = positional_patterns_rule(p)) // positional_patterns
31794 &&
31795 (_literal = _PyPegen_expect_token(p, 12)) // token=','
31796 )
31797 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031798 D(fprintf(stderr, "%*c+ _tmp_175[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "positional_patterns ','"));
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070031799 _res = _PyPegen_dummy_name(p, positional_patterns_var, _literal);
31800 goto done;
31801 }
31802 p->mark = _mark;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031803 D(fprintf(stderr, "%*c%s _tmp_175[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070031804 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "positional_patterns ','"));
31805 }
31806 _res = NULL;
31807 done:
31808 D(p->level--);
31809 return _res;
31810}
31811
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031812// _tmp_176: '->' expression
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070031813static void *
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031814_tmp_176_rule(Parser *p)
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070031815{
31816 D(p->level++);
31817 if (p->error_indicator) {
31818 D(p->level--);
31819 return NULL;
31820 }
31821 void * _res = NULL;
31822 int _mark = p->mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +010031823 { // '->' expression
31824 if (p->error_indicator) {
31825 D(p->level--);
31826 return NULL;
31827 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031828 D(fprintf(stderr, "%*c> _tmp_176[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'->' expression"));
Pablo Galindo56c95df2021-04-21 15:28:21 +010031829 Token * _literal;
31830 expr_ty expression_var;
31831 if (
31832 (_literal = _PyPegen_expect_token(p, 51)) // token='->'
31833 &&
31834 (expression_var = expression_rule(p)) // expression
31835 )
31836 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031837 D(fprintf(stderr, "%*c+ _tmp_176[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'->' expression"));
Pablo Galindo56c95df2021-04-21 15:28:21 +010031838 _res = _PyPegen_dummy_name(p, _literal, expression_var);
31839 goto done;
31840 }
31841 p->mark = _mark;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031842 D(fprintf(stderr, "%*c%s _tmp_176[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo56c95df2021-04-21 15:28:21 +010031843 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'->' expression"));
31844 }
31845 _res = NULL;
31846 done:
31847 D(p->level--);
31848 return _res;
31849}
31850
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031851// _tmp_177: '(' arguments? ')'
Pablo Galindo56c95df2021-04-21 15:28:21 +010031852static void *
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031853_tmp_177_rule(Parser *p)
Pablo Galindo56c95df2021-04-21 15:28:21 +010031854{
31855 D(p->level++);
31856 if (p->error_indicator) {
31857 D(p->level--);
31858 return NULL;
31859 }
31860 void * _res = NULL;
31861 int _mark = p->mark;
31862 { // '(' arguments? ')'
31863 if (p->error_indicator) {
31864 D(p->level--);
31865 return NULL;
31866 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031867 D(fprintf(stderr, "%*c> _tmp_177[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'"));
Pablo Galindo56c95df2021-04-21 15:28:21 +010031868 Token * _literal;
31869 Token * _literal_1;
31870 void *_opt_var;
31871 UNUSED(_opt_var); // Silence compiler warnings
31872 if (
31873 (_literal = _PyPegen_expect_token(p, 7)) // token='('
31874 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +020031875 (_opt_var = arguments_rule(p), !p->error_indicator) // arguments?
Pablo Galindo56c95df2021-04-21 15:28:21 +010031876 &&
31877 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
31878 )
31879 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031880 D(fprintf(stderr, "%*c+ _tmp_177[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'"));
Pablo Galindo56c95df2021-04-21 15:28:21 +010031881 _res = _PyPegen_dummy_name(p, _literal, _opt_var, _literal_1);
31882 goto done;
31883 }
31884 p->mark = _mark;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031885 D(fprintf(stderr, "%*c%s _tmp_177[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo56c95df2021-04-21 15:28:21 +010031886 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' arguments? ')'"));
31887 }
31888 _res = NULL;
31889 done:
31890 D(p->level--);
31891 return _res;
31892}
31893
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031894// _loop0_179: ',' double_starred_kvpair
Pablo Galindo56c95df2021-04-21 15:28:21 +010031895static asdl_seq *
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031896_loop0_179_rule(Parser *p)
Pablo Galindo56c95df2021-04-21 15:28:21 +010031897{
31898 D(p->level++);
31899 if (p->error_indicator) {
31900 D(p->level--);
31901 return NULL;
31902 }
31903 void *_res = NULL;
31904 int _mark = p->mark;
31905 int _start_mark = p->mark;
31906 void **_children = PyMem_Malloc(sizeof(void *));
31907 if (!_children) {
31908 p->error_indicator = 1;
31909 PyErr_NoMemory();
31910 D(p->level--);
31911 return NULL;
31912 }
31913 Py_ssize_t _children_capacity = 1;
31914 Py_ssize_t _n = 0;
Pablo Galindoda743502021-04-15 14:06:39 +010031915 { // ',' double_starred_kvpair
31916 if (p->error_indicator) {
31917 D(p->level--);
31918 return NULL;
31919 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031920 D(fprintf(stderr, "%*c> _loop0_179[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' double_starred_kvpair"));
Pablo Galindoda743502021-04-15 14:06:39 +010031921 Token * _literal;
31922 KeyValuePair* elem;
31923 while (
31924 (_literal = _PyPegen_expect_token(p, 12)) // token=','
31925 &&
31926 (elem = double_starred_kvpair_rule(p)) // double_starred_kvpair
31927 )
31928 {
31929 _res = elem;
31930 if (_res == NULL && PyErr_Occurred()) {
31931 p->error_indicator = 1;
31932 PyMem_Free(_children);
31933 D(p->level--);
31934 return NULL;
31935 }
31936 if (_n == _children_capacity) {
31937 _children_capacity *= 2;
31938 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
31939 if (!_new_children) {
31940 p->error_indicator = 1;
31941 PyErr_NoMemory();
31942 D(p->level--);
31943 return NULL;
31944 }
31945 _children = _new_children;
31946 }
31947 _children[_n++] = _res;
31948 _mark = p->mark;
31949 }
31950 p->mark = _mark;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031951 D(fprintf(stderr, "%*c%s _loop0_179[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindoda743502021-04-15 14:06:39 +010031952 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' double_starred_kvpair"));
31953 }
31954 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
31955 if (!_seq) {
31956 PyMem_Free(_children);
31957 p->error_indicator = 1;
31958 PyErr_NoMemory();
31959 D(p->level--);
31960 return NULL;
31961 }
31962 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
31963 PyMem_Free(_children);
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031964 _PyPegen_insert_memo(p, _start_mark, _loop0_179_type, _seq);
Pablo Galindoda743502021-04-15 14:06:39 +010031965 D(p->level--);
31966 return _seq;
31967}
31968
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031969// _gather_178: double_starred_kvpair _loop0_179
Pablo Galindoda743502021-04-15 14:06:39 +010031970static asdl_seq *
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031971_gather_178_rule(Parser *p)
Pablo Galindoda743502021-04-15 14:06:39 +010031972{
31973 D(p->level++);
31974 if (p->error_indicator) {
31975 D(p->level--);
31976 return NULL;
31977 }
31978 asdl_seq * _res = NULL;
31979 int _mark = p->mark;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031980 { // double_starred_kvpair _loop0_179
Pablo Galindoda743502021-04-15 14:06:39 +010031981 if (p->error_indicator) {
31982 D(p->level--);
31983 return NULL;
31984 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031985 D(fprintf(stderr, "%*c> _gather_178[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "double_starred_kvpair _loop0_179"));
Pablo Galindoda743502021-04-15 14:06:39 +010031986 KeyValuePair* elem;
31987 asdl_seq * seq;
31988 if (
31989 (elem = double_starred_kvpair_rule(p)) // double_starred_kvpair
31990 &&
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031991 (seq = _loop0_179_rule(p)) // _loop0_179
Pablo Galindoda743502021-04-15 14:06:39 +010031992 )
31993 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031994 D(fprintf(stderr, "%*c+ _gather_178[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "double_starred_kvpair _loop0_179"));
Pablo Galindoda743502021-04-15 14:06:39 +010031995 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
31996 goto done;
31997 }
31998 p->mark = _mark;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031999 D(fprintf(stderr, "%*c%s _gather_178[%d-%d]: %s failed!\n", p->level, ' ',
32000 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "double_starred_kvpair _loop0_179"));
Pablo Galindoda743502021-04-15 14:06:39 +010032001 }
32002 _res = NULL;
32003 done:
32004 D(p->level--);
32005 return _res;
32006}
32007
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032008// _tmp_180: '}' | ','
Pablo Galindo206cbda2021-02-07 18:42:21 +000032009static void *
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032010_tmp_180_rule(Parser *p)
Pablo Galindoda743502021-04-15 14:06:39 +010032011{
32012 D(p->level++);
32013 if (p->error_indicator) {
32014 D(p->level--);
32015 return NULL;
32016 }
32017 void * _res = NULL;
32018 int _mark = p->mark;
32019 { // '}'
32020 if (p->error_indicator) {
32021 D(p->level--);
32022 return NULL;
32023 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032024 D(fprintf(stderr, "%*c> _tmp_180[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'}'"));
Pablo Galindoda743502021-04-15 14:06:39 +010032025 Token * _literal;
32026 if (
32027 (_literal = _PyPegen_expect_token(p, 26)) // token='}'
32028 )
32029 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032030 D(fprintf(stderr, "%*c+ _tmp_180[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'}'"));
Pablo Galindoda743502021-04-15 14:06:39 +010032031 _res = _literal;
32032 goto done;
32033 }
32034 p->mark = _mark;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032035 D(fprintf(stderr, "%*c%s _tmp_180[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindoda743502021-04-15 14:06:39 +010032036 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'}'"));
32037 }
32038 { // ','
32039 if (p->error_indicator) {
32040 D(p->level--);
32041 return NULL;
32042 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032043 D(fprintf(stderr, "%*c> _tmp_180[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','"));
Pablo Galindoda743502021-04-15 14:06:39 +010032044 Token * _literal;
32045 if (
32046 (_literal = _PyPegen_expect_token(p, 12)) // token=','
32047 )
32048 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032049 D(fprintf(stderr, "%*c+ _tmp_180[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','"));
Pablo Galindoda743502021-04-15 14:06:39 +010032050 _res = _literal;
32051 goto done;
32052 }
32053 p->mark = _mark;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032054 D(fprintf(stderr, "%*c%s _tmp_180[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindoda743502021-04-15 14:06:39 +010032055 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','"));
32056 }
32057 _res = NULL;
32058 done:
32059 D(p->level--);
32060 return _res;
32061}
32062
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032063// _tmp_181: star_targets '='
Pablo Galindoda743502021-04-15 14:06:39 +010032064static void *
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032065_tmp_181_rule(Parser *p)
Pablo Galindo206cbda2021-02-07 18:42:21 +000032066{
32067 D(p->level++);
32068 if (p->error_indicator) {
32069 D(p->level--);
32070 return NULL;
32071 }
32072 void * _res = NULL;
32073 int _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032074 { // star_targets '='
32075 if (p->error_indicator) {
32076 D(p->level--);
32077 return NULL;
32078 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032079 D(fprintf(stderr, "%*c> _tmp_181[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032080 Token * _literal;
32081 expr_ty z;
32082 if (
32083 (z = star_targets_rule(p)) // star_targets
32084 &&
32085 (_literal = _PyPegen_expect_token(p, 22)) // token='='
32086 )
32087 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032088 D(fprintf(stderr, "%*c+ _tmp_181[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032089 _res = z;
32090 if (_res == NULL && PyErr_Occurred()) {
32091 p->error_indicator = 1;
32092 D(p->level--);
32093 return NULL;
32094 }
32095 goto done;
32096 }
32097 p->mark = _mark;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032098 D(fprintf(stderr, "%*c%s _tmp_181[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032099 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_targets '='"));
32100 }
32101 _res = NULL;
32102 done:
32103 D(p->level--);
32104 return _res;
32105}
32106
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010032107// _tmp_182: '.' | '...'
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032108static void *
32109_tmp_182_rule(Parser *p)
32110{
32111 D(p->level++);
32112 if (p->error_indicator) {
32113 D(p->level--);
32114 return NULL;
32115 }
32116 void * _res = NULL;
32117 int _mark = p->mark;
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010032118 { // '.'
32119 if (p->error_indicator) {
32120 D(p->level--);
32121 return NULL;
32122 }
32123 D(fprintf(stderr, "%*c> _tmp_182[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
32124 Token * _literal;
32125 if (
32126 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
32127 )
32128 {
32129 D(fprintf(stderr, "%*c+ _tmp_182[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
32130 _res = _literal;
32131 goto done;
32132 }
32133 p->mark = _mark;
32134 D(fprintf(stderr, "%*c%s _tmp_182[%d-%d]: %s failed!\n", p->level, ' ',
32135 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
32136 }
32137 { // '...'
32138 if (p->error_indicator) {
32139 D(p->level--);
32140 return NULL;
32141 }
32142 D(fprintf(stderr, "%*c> _tmp_182[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'"));
32143 Token * _literal;
32144 if (
32145 (_literal = _PyPegen_expect_token(p, 52)) // token='...'
32146 )
32147 {
32148 D(fprintf(stderr, "%*c+ _tmp_182[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'"));
32149 _res = _literal;
32150 goto done;
32151 }
32152 p->mark = _mark;
32153 D(fprintf(stderr, "%*c%s _tmp_182[%d-%d]: %s failed!\n", p->level, ' ',
32154 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'...'"));
32155 }
32156 _res = NULL;
32157 done:
32158 D(p->level--);
32159 return _res;
32160}
32161
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032162// _tmp_183: '.' | '...'
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010032163static void *
32164_tmp_183_rule(Parser *p)
32165{
32166 D(p->level++);
32167 if (p->error_indicator) {
32168 D(p->level--);
32169 return NULL;
32170 }
32171 void * _res = NULL;
32172 int _mark = p->mark;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032173 { // '.'
32174 if (p->error_indicator) {
32175 D(p->level--);
32176 return NULL;
32177 }
32178 D(fprintf(stderr, "%*c> _tmp_183[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
32179 Token * _literal;
32180 if (
32181 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
32182 )
32183 {
32184 D(fprintf(stderr, "%*c+ _tmp_183[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
32185 _res = _literal;
32186 goto done;
32187 }
32188 p->mark = _mark;
32189 D(fprintf(stderr, "%*c%s _tmp_183[%d-%d]: %s failed!\n", p->level, ' ',
32190 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
32191 }
32192 { // '...'
32193 if (p->error_indicator) {
32194 D(p->level--);
32195 return NULL;
32196 }
32197 D(fprintf(stderr, "%*c> _tmp_183[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'"));
32198 Token * _literal;
32199 if (
32200 (_literal = _PyPegen_expect_token(p, 52)) // token='...'
32201 )
32202 {
32203 D(fprintf(stderr, "%*c+ _tmp_183[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'"));
32204 _res = _literal;
32205 goto done;
32206 }
32207 p->mark = _mark;
32208 D(fprintf(stderr, "%*c%s _tmp_183[%d-%d]: %s failed!\n", p->level, ' ',
32209 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'...'"));
32210 }
32211 _res = NULL;
32212 done:
32213 D(p->level--);
32214 return _res;
32215}
32216
32217// _tmp_184: '@' named_expression NEWLINE
32218static void *
32219_tmp_184_rule(Parser *p)
32220{
32221 D(p->level++);
32222 if (p->error_indicator) {
32223 D(p->level--);
32224 return NULL;
32225 }
32226 void * _res = NULL;
32227 int _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032228 { // '@' named_expression NEWLINE
32229 if (p->error_indicator) {
32230 D(p->level--);
32231 return NULL;
32232 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032233 D(fprintf(stderr, "%*c> _tmp_184[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@' named_expression NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032234 Token * _literal;
32235 expr_ty f;
32236 Token * newline_var;
32237 if (
32238 (_literal = _PyPegen_expect_token(p, 49)) // token='@'
32239 &&
32240 (f = named_expression_rule(p)) // named_expression
32241 &&
32242 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
32243 )
32244 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032245 D(fprintf(stderr, "%*c+ _tmp_184[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@' named_expression NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032246 _res = f;
32247 if (_res == NULL && PyErr_Occurred()) {
32248 p->error_indicator = 1;
32249 D(p->level--);
32250 return NULL;
32251 }
32252 goto done;
32253 }
32254 p->mark = _mark;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032255 D(fprintf(stderr, "%*c%s _tmp_184[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032256 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@' named_expression NEWLINE"));
32257 }
32258 _res = NULL;
32259 done:
32260 D(p->level--);
32261 return _res;
32262}
32263
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032264// _tmp_185: ',' star_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032265static void *
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032266_tmp_185_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032267{
32268 D(p->level++);
32269 if (p->error_indicator) {
32270 D(p->level--);
32271 return NULL;
32272 }
32273 void * _res = NULL;
32274 int _mark = p->mark;
32275 { // ',' star_expression
32276 if (p->error_indicator) {
32277 D(p->level--);
32278 return NULL;
32279 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032280 D(fprintf(stderr, "%*c> _tmp_185[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032281 Token * _literal;
32282 expr_ty c;
32283 if (
32284 (_literal = _PyPegen_expect_token(p, 12)) // token=','
32285 &&
32286 (c = star_expression_rule(p)) // star_expression
32287 )
32288 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032289 D(fprintf(stderr, "%*c+ _tmp_185[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032290 _res = c;
32291 if (_res == NULL && PyErr_Occurred()) {
32292 p->error_indicator = 1;
32293 D(p->level--);
32294 return NULL;
32295 }
32296 goto done;
32297 }
32298 p->mark = _mark;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032299 D(fprintf(stderr, "%*c%s _tmp_185[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032300 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_expression"));
32301 }
32302 _res = NULL;
32303 done:
32304 D(p->level--);
32305 return _res;
32306}
32307
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032308// _tmp_186: ',' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032309static void *
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032310_tmp_186_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032311{
32312 D(p->level++);
32313 if (p->error_indicator) {
32314 D(p->level--);
32315 return NULL;
32316 }
32317 void * _res = NULL;
32318 int _mark = p->mark;
32319 { // ',' expression
32320 if (p->error_indicator) {
32321 D(p->level--);
32322 return NULL;
32323 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032324 D(fprintf(stderr, "%*c> _tmp_186[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032325 Token * _literal;
32326 expr_ty c;
32327 if (
32328 (_literal = _PyPegen_expect_token(p, 12)) // token=','
32329 &&
32330 (c = expression_rule(p)) // expression
32331 )
32332 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032333 D(fprintf(stderr, "%*c+ _tmp_186[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032334 _res = c;
32335 if (_res == NULL && PyErr_Occurred()) {
32336 p->error_indicator = 1;
32337 D(p->level--);
32338 return NULL;
32339 }
32340 goto done;
32341 }
32342 p->mark = _mark;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032343 D(fprintf(stderr, "%*c%s _tmp_186[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032344 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
32345 }
32346 _res = NULL;
32347 done:
32348 D(p->level--);
32349 return _res;
32350}
32351
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032352// _tmp_187: 'or' conjunction
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032353static void *
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032354_tmp_187_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032355{
32356 D(p->level++);
32357 if (p->error_indicator) {
32358 D(p->level--);
32359 return NULL;
32360 }
32361 void * _res = NULL;
32362 int _mark = p->mark;
32363 { // 'or' conjunction
32364 if (p->error_indicator) {
32365 D(p->level--);
32366 return NULL;
32367 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032368 D(fprintf(stderr, "%*c> _tmp_187[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'or' conjunction"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032369 Token * _keyword;
32370 expr_ty c;
32371 if (
32372 (_keyword = _PyPegen_expect_token(p, 531)) // token='or'
32373 &&
32374 (c = conjunction_rule(p)) // conjunction
32375 )
32376 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032377 D(fprintf(stderr, "%*c+ _tmp_187[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'or' conjunction"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032378 _res = c;
32379 if (_res == NULL && PyErr_Occurred()) {
32380 p->error_indicator = 1;
32381 D(p->level--);
32382 return NULL;
32383 }
32384 goto done;
32385 }
32386 p->mark = _mark;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032387 D(fprintf(stderr, "%*c%s _tmp_187[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032388 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'or' conjunction"));
32389 }
32390 _res = NULL;
32391 done:
32392 D(p->level--);
32393 return _res;
32394}
32395
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032396// _tmp_188: 'and' inversion
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032397static void *
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032398_tmp_188_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032399{
32400 D(p->level++);
32401 if (p->error_indicator) {
32402 D(p->level--);
32403 return NULL;
32404 }
32405 void * _res = NULL;
32406 int _mark = p->mark;
32407 { // 'and' inversion
32408 if (p->error_indicator) {
32409 D(p->level--);
32410 return NULL;
32411 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032412 D(fprintf(stderr, "%*c> _tmp_188[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'and' inversion"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032413 Token * _keyword;
32414 expr_ty c;
32415 if (
32416 (_keyword = _PyPegen_expect_token(p, 532)) // token='and'
32417 &&
32418 (c = inversion_rule(p)) // inversion
32419 )
32420 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032421 D(fprintf(stderr, "%*c+ _tmp_188[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'and' inversion"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032422 _res = c;
32423 if (_res == NULL && PyErr_Occurred()) {
32424 p->error_indicator = 1;
32425 D(p->level--);
32426 return NULL;
32427 }
32428 goto done;
32429 }
32430 p->mark = _mark;
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032431 D(fprintf(stderr, "%*c%s _tmp_188[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032432 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'and' inversion"));
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032433 }
32434 _res = NULL;
32435 done:
32436 D(p->level--);
32437 return _res;
32438}
32439
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010032440// _tmp_189: 'if' disjunction
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032441static void *
32442_tmp_189_rule(Parser *p)
32443{
32444 D(p->level++);
32445 if (p->error_indicator) {
32446 D(p->level--);
32447 return NULL;
32448 }
32449 void * _res = NULL;
32450 int _mark = p->mark;
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010032451 { // 'if' disjunction
32452 if (p->error_indicator) {
32453 D(p->level--);
32454 return NULL;
32455 }
32456 D(fprintf(stderr, "%*c> _tmp_189[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
32457 Token * _keyword;
32458 expr_ty z;
32459 if (
32460 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
32461 &&
32462 (z = disjunction_rule(p)) // disjunction
32463 )
32464 {
32465 D(fprintf(stderr, "%*c+ _tmp_189[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
32466 _res = z;
32467 if (_res == NULL && PyErr_Occurred()) {
32468 p->error_indicator = 1;
32469 D(p->level--);
32470 return NULL;
32471 }
32472 goto done;
32473 }
32474 p->mark = _mark;
32475 D(fprintf(stderr, "%*c%s _tmp_189[%d-%d]: %s failed!\n", p->level, ' ',
32476 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' disjunction"));
32477 }
32478 _res = NULL;
32479 done:
32480 D(p->level--);
32481 return _res;
32482}
32483
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032484// _tmp_190: 'if' disjunction
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010032485static void *
32486_tmp_190_rule(Parser *p)
32487{
32488 D(p->level++);
32489 if (p->error_indicator) {
32490 D(p->level--);
32491 return NULL;
32492 }
32493 void * _res = NULL;
32494 int _mark = p->mark;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032495 { // 'if' disjunction
32496 if (p->error_indicator) {
32497 D(p->level--);
32498 return NULL;
32499 }
32500 D(fprintf(stderr, "%*c> _tmp_190[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
32501 Token * _keyword;
32502 expr_ty z;
32503 if (
32504 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
32505 &&
32506 (z = disjunction_rule(p)) // disjunction
32507 )
32508 {
32509 D(fprintf(stderr, "%*c+ _tmp_190[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
32510 _res = z;
32511 if (_res == NULL && PyErr_Occurred()) {
32512 p->error_indicator = 1;
32513 D(p->level--);
32514 return NULL;
32515 }
32516 goto done;
32517 }
32518 p->mark = _mark;
32519 D(fprintf(stderr, "%*c%s _tmp_190[%d-%d]: %s failed!\n", p->level, ' ',
32520 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' disjunction"));
32521 }
32522 _res = NULL;
32523 done:
32524 D(p->level--);
32525 return _res;
32526}
32527
32528// _tmp_191: starred_expression | (assignment_expression | expression !':=') !'='
32529static void *
32530_tmp_191_rule(Parser *p)
32531{
32532 D(p->level++);
32533 if (p->error_indicator) {
32534 D(p->level--);
32535 return NULL;
32536 }
32537 void * _res = NULL;
32538 int _mark = p->mark;
Pablo Galindo4a97b152020-09-02 17:44:19 +010032539 { // starred_expression
32540 if (p->error_indicator) {
32541 D(p->level--);
32542 return NULL;
32543 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032544 D(fprintf(stderr, "%*c> _tmp_191[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "starred_expression"));
Pablo Galindo4a97b152020-09-02 17:44:19 +010032545 expr_ty starred_expression_var;
32546 if (
32547 (starred_expression_var = starred_expression_rule(p)) // starred_expression
32548 )
32549 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032550 D(fprintf(stderr, "%*c+ _tmp_191[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "starred_expression"));
Pablo Galindo4a97b152020-09-02 17:44:19 +010032551 _res = starred_expression_var;
32552 goto done;
32553 }
32554 p->mark = _mark;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032555 D(fprintf(stderr, "%*c%s _tmp_191[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo4a97b152020-09-02 17:44:19 +010032556 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "starred_expression"));
32557 }
Pablo Galindo Salgado0e34a592021-11-04 23:19:27 +000032558 { // (assignment_expression | expression !':=') !'='
Pablo Galindo4a97b152020-09-02 17:44:19 +010032559 if (p->error_indicator) {
32560 D(p->level--);
32561 return NULL;
32562 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032563 D(fprintf(stderr, "%*c> _tmp_191[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(assignment_expression | expression !':=') !'='"));
32564 void *_tmp_202_var;
Pablo Galindo4a97b152020-09-02 17:44:19 +010032565 if (
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032566 (_tmp_202_var = _tmp_202_rule(p)) // assignment_expression | expression !':='
Pablo Galindo4a97b152020-09-02 17:44:19 +010032567 &&
32568 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 22) // token='='
32569 )
32570 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032571 D(fprintf(stderr, "%*c+ _tmp_191[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(assignment_expression | expression !':=') !'='"));
32572 _res = _tmp_202_var;
Pablo Galindoa77aac42021-04-23 14:27:05 +010032573 goto done;
32574 }
32575 p->mark = _mark;
32576 D(fprintf(stderr, "%*c%s _tmp_191[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032577 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(assignment_expression | expression !':=') !'='"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010032578 }
32579 _res = NULL;
32580 done:
32581 D(p->level--);
32582 return _res;
32583}
32584
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010032585// _tmp_192: ',' star_target
Pablo Galindoa77aac42021-04-23 14:27:05 +010032586static void *
32587_tmp_192_rule(Parser *p)
32588{
32589 D(p->level++);
32590 if (p->error_indicator) {
32591 D(p->level--);
32592 return NULL;
32593 }
32594 void * _res = NULL;
32595 int _mark = p->mark;
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010032596 { // ',' star_target
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032597 if (p->error_indicator) {
32598 D(p->level--);
32599 return NULL;
32600 }
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010032601 D(fprintf(stderr, "%*c> _tmp_192[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_target"));
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032602 Token * _literal;
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010032603 expr_ty c;
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032604 if (
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010032605 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032606 &&
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010032607 (c = star_target_rule(p)) // star_target
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032608 )
32609 {
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010032610 D(fprintf(stderr, "%*c+ _tmp_192[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_target"));
32611 _res = c;
32612 if (_res == NULL && PyErr_Occurred()) {
32613 p->error_indicator = 1;
32614 D(p->level--);
32615 return NULL;
32616 }
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032617 goto done;
32618 }
32619 p->mark = _mark;
32620 D(fprintf(stderr, "%*c%s _tmp_192[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010032621 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_target"));
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032622 }
32623 _res = NULL;
32624 done:
32625 D(p->level--);
32626 return _res;
32627}
32628
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032629// _tmp_193: ',' star_target
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032630static void *
32631_tmp_193_rule(Parser *p)
32632{
32633 D(p->level++);
32634 if (p->error_indicator) {
32635 D(p->level--);
32636 return NULL;
32637 }
32638 void * _res = NULL;
32639 int _mark = p->mark;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032640 { // ',' star_target
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032641 if (p->error_indicator) {
32642 D(p->level--);
32643 return NULL;
32644 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032645 D(fprintf(stderr, "%*c> _tmp_193[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_target"));
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032646 Token * _literal;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032647 expr_ty c;
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032648 if (
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032649 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032650 &&
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032651 (c = star_target_rule(p)) // star_target
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032652 )
32653 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032654 D(fprintf(stderr, "%*c+ _tmp_193[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_target"));
32655 _res = c;
32656 if (_res == NULL && PyErr_Occurred()) {
32657 p->error_indicator = 1;
32658 D(p->level--);
32659 return NULL;
32660 }
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032661 goto done;
32662 }
32663 p->mark = _mark;
32664 D(fprintf(stderr, "%*c%s _tmp_193[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032665 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_target"));
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032666 }
32667 _res = NULL;
32668 done:
32669 D(p->level--);
32670 return _res;
32671}
32672
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010032673// _tmp_194: star_targets '='
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032674static void *
32675_tmp_194_rule(Parser *p)
32676{
32677 D(p->level++);
32678 if (p->error_indicator) {
32679 D(p->level--);
32680 return NULL;
32681 }
32682 void * _res = NULL;
32683 int _mark = p->mark;
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010032684 { // star_targets '='
32685 if (p->error_indicator) {
32686 D(p->level--);
32687 return NULL;
32688 }
32689 D(fprintf(stderr, "%*c> _tmp_194[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
32690 Token * _literal;
32691 expr_ty star_targets_var;
32692 if (
32693 (star_targets_var = star_targets_rule(p)) // star_targets
32694 &&
32695 (_literal = _PyPegen_expect_token(p, 22)) // token='='
32696 )
32697 {
32698 D(fprintf(stderr, "%*c+ _tmp_194[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
32699 _res = _PyPegen_dummy_name(p, star_targets_var, _literal);
32700 goto done;
32701 }
32702 p->mark = _mark;
32703 D(fprintf(stderr, "%*c%s _tmp_194[%d-%d]: %s failed!\n", p->level, ' ',
32704 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_targets '='"));
32705 }
32706 _res = NULL;
32707 done:
32708 D(p->level--);
32709 return _res;
32710}
32711
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032712// _tmp_195: star_targets '='
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010032713static void *
32714_tmp_195_rule(Parser *p)
32715{
32716 D(p->level++);
32717 if (p->error_indicator) {
32718 D(p->level--);
32719 return NULL;
32720 }
32721 void * _res = NULL;
32722 int _mark = p->mark;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032723 { // star_targets '='
32724 if (p->error_indicator) {
32725 D(p->level--);
32726 return NULL;
32727 }
32728 D(fprintf(stderr, "%*c> _tmp_195[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
32729 Token * _literal;
32730 expr_ty star_targets_var;
32731 if (
32732 (star_targets_var = star_targets_rule(p)) // star_targets
32733 &&
32734 (_literal = _PyPegen_expect_token(p, 22)) // token='='
32735 )
32736 {
32737 D(fprintf(stderr, "%*c+ _tmp_195[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
32738 _res = _PyPegen_dummy_name(p, star_targets_var, _literal);
32739 goto done;
32740 }
32741 p->mark = _mark;
32742 D(fprintf(stderr, "%*c%s _tmp_195[%d-%d]: %s failed!\n", p->level, ' ',
32743 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_targets '='"));
32744 }
32745 _res = NULL;
32746 done:
32747 D(p->level--);
32748 return _res;
32749}
32750
32751// _tmp_196: ')' | '**'
32752static void *
32753_tmp_196_rule(Parser *p)
32754{
32755 D(p->level++);
32756 if (p->error_indicator) {
32757 D(p->level--);
32758 return NULL;
32759 }
32760 void * _res = NULL;
32761 int _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032762 { // ')'
32763 if (p->error_indicator) {
32764 D(p->level--);
32765 return NULL;
32766 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032767 D(fprintf(stderr, "%*c> _tmp_196[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032768 Token * _literal;
32769 if (
32770 (_literal = _PyPegen_expect_token(p, 8)) // token=')'
32771 )
32772 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032773 D(fprintf(stderr, "%*c+ _tmp_196[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010032774 _res = _literal;
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032775 goto done;
32776 }
32777 p->mark = _mark;
32778 D(fprintf(stderr, "%*c%s _tmp_196[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032779 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010032780 }
32781 { // '**'
32782 if (p->error_indicator) {
32783 D(p->level--);
32784 return NULL;
32785 }
32786 D(fprintf(stderr, "%*c> _tmp_196[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**'"));
32787 Token * _literal;
32788 if (
32789 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
32790 )
32791 {
32792 D(fprintf(stderr, "%*c+ _tmp_196[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**'"));
32793 _res = _literal;
32794 goto done;
32795 }
32796 p->mark = _mark;
32797 D(fprintf(stderr, "%*c%s _tmp_196[%d-%d]: %s failed!\n", p->level, ' ',
32798 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**'"));
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032799 }
32800 _res = NULL;
32801 done:
32802 D(p->level--);
32803 return _res;
32804}
32805
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032806// _tmp_197: ':' | '**'
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032807static void *
32808_tmp_197_rule(Parser *p)
32809{
32810 D(p->level++);
32811 if (p->error_indicator) {
32812 D(p->level--);
32813 return NULL;
32814 }
32815 void * _res = NULL;
32816 int _mark = p->mark;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032817 { // ':'
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010032818 if (p->error_indicator) {
32819 D(p->level--);
32820 return NULL;
32821 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032822 D(fprintf(stderr, "%*c> _tmp_197[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
32823 Token * _literal;
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010032824 if (
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032825 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010032826 )
32827 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032828 D(fprintf(stderr, "%*c+ _tmp_197[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
32829 _res = _literal;
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010032830 goto done;
32831 }
32832 p->mark = _mark;
32833 D(fprintf(stderr, "%*c%s _tmp_197[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032834 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
32835 }
32836 { // '**'
32837 if (p->error_indicator) {
32838 D(p->level--);
32839 return NULL;
32840 }
32841 D(fprintf(stderr, "%*c> _tmp_197[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**'"));
32842 Token * _literal;
32843 if (
32844 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
32845 )
32846 {
32847 D(fprintf(stderr, "%*c+ _tmp_197[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**'"));
32848 _res = _literal;
32849 goto done;
32850 }
32851 p->mark = _mark;
32852 D(fprintf(stderr, "%*c%s _tmp_197[%d-%d]: %s failed!\n", p->level, ' ',
32853 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**'"));
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010032854 }
32855 _res = NULL;
32856 done:
32857 D(p->level--);
32858 return _res;
32859}
32860
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032861// _tmp_198: expression ['as' star_target]
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010032862static void *
32863_tmp_198_rule(Parser *p)
32864{
32865 D(p->level++);
32866 if (p->error_indicator) {
32867 D(p->level--);
32868 return NULL;
32869 }
32870 void * _res = NULL;
32871 int _mark = p->mark;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032872 { // expression ['as' star_target]
32873 if (p->error_indicator) {
32874 D(p->level--);
32875 return NULL;
32876 }
32877 D(fprintf(stderr, "%*c> _tmp_198[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]"));
32878 void *_opt_var;
32879 UNUSED(_opt_var); // Silence compiler warnings
32880 expr_ty expression_var;
32881 if (
32882 (expression_var = expression_rule(p)) // expression
32883 &&
32884 (_opt_var = _tmp_203_rule(p), !p->error_indicator) // ['as' star_target]
32885 )
32886 {
32887 D(fprintf(stderr, "%*c+ _tmp_198[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]"));
32888 _res = _PyPegen_dummy_name(p, expression_var, _opt_var);
32889 goto done;
32890 }
32891 p->mark = _mark;
32892 D(fprintf(stderr, "%*c%s _tmp_198[%d-%d]: %s failed!\n", p->level, ' ',
32893 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ['as' star_target]"));
32894 }
32895 _res = NULL;
32896 done:
32897 D(p->level--);
32898 return _res;
32899}
32900
32901// _tmp_199: expressions ['as' star_target]
32902static void *
32903_tmp_199_rule(Parser *p)
32904{
32905 D(p->level++);
32906 if (p->error_indicator) {
32907 D(p->level--);
32908 return NULL;
32909 }
32910 void * _res = NULL;
32911 int _mark = p->mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032912 { // expressions ['as' star_target]
32913 if (p->error_indicator) {
32914 D(p->level--);
32915 return NULL;
32916 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032917 D(fprintf(stderr, "%*c> _tmp_199[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032918 void *_opt_var;
32919 UNUSED(_opt_var); // Silence compiler warnings
32920 expr_ty expressions_var;
32921 if (
32922 (expressions_var = expressions_rule(p)) // expressions
32923 &&
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032924 (_opt_var = _tmp_204_rule(p), !p->error_indicator) // ['as' star_target]
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032925 )
32926 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032927 D(fprintf(stderr, "%*c+ _tmp_199[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032928 _res = _PyPegen_dummy_name(p, expressions_var, _opt_var);
32929 goto done;
32930 }
32931 p->mark = _mark;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032932 D(fprintf(stderr, "%*c%s _tmp_199[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032933 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expressions ['as' star_target]"));
32934 }
32935 _res = NULL;
32936 done:
32937 D(p->level--);
32938 return _res;
32939}
32940
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032941// _tmp_200: expression ['as' star_target]
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032942static void *
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032943_tmp_200_rule(Parser *p)
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032944{
32945 D(p->level++);
32946 if (p->error_indicator) {
32947 D(p->level--);
32948 return NULL;
32949 }
32950 void * _res = NULL;
32951 int _mark = p->mark;
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032952 { // expression ['as' star_target]
32953 if (p->error_indicator) {
32954 D(p->level--);
32955 return NULL;
32956 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032957 D(fprintf(stderr, "%*c> _tmp_200[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]"));
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032958 void *_opt_var;
32959 UNUSED(_opt_var); // Silence compiler warnings
32960 expr_ty expression_var;
32961 if (
32962 (expression_var = expression_rule(p)) // expression
32963 &&
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032964 (_opt_var = _tmp_205_rule(p), !p->error_indicator) // ['as' star_target]
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032965 )
32966 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032967 D(fprintf(stderr, "%*c+ _tmp_200[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]"));
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032968 _res = _PyPegen_dummy_name(p, expression_var, _opt_var);
32969 goto done;
32970 }
32971 p->mark = _mark;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032972 D(fprintf(stderr, "%*c%s _tmp_200[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032973 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ['as' star_target]"));
32974 }
32975 _res = NULL;
32976 done:
32977 D(p->level--);
32978 return _res;
32979}
32980
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032981// _tmp_201: expressions ['as' star_target]
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032982static void *
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032983_tmp_201_rule(Parser *p)
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032984{
32985 D(p->level++);
32986 if (p->error_indicator) {
32987 D(p->level--);
32988 return NULL;
32989 }
32990 void * _res = NULL;
32991 int _mark = p->mark;
Pablo Galindo58fb1562021-02-02 19:54:22 +000032992 { // expressions ['as' star_target]
32993 if (p->error_indicator) {
32994 D(p->level--);
32995 return NULL;
32996 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032997 D(fprintf(stderr, "%*c> _tmp_201[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000032998 void *_opt_var;
32999 UNUSED(_opt_var); // Silence compiler warnings
33000 expr_ty expressions_var;
33001 if (
33002 (expressions_var = expressions_rule(p)) // expressions
33003 &&
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000033004 (_opt_var = _tmp_206_rule(p), !p->error_indicator) // ['as' star_target]
Pablo Galindo58fb1562021-02-02 19:54:22 +000033005 )
33006 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000033007 D(fprintf(stderr, "%*c+ _tmp_201[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000033008 _res = _PyPegen_dummy_name(p, expressions_var, _opt_var);
33009 goto done;
33010 }
33011 p->mark = _mark;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000033012 D(fprintf(stderr, "%*c%s _tmp_201[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob2802482021-04-15 21:38:45 +010033013 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expressions ['as' star_target]"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000033014 }
33015 _res = NULL;
33016 done:
33017 D(p->level--);
33018 return _res;
33019}
33020
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000033021// _tmp_202: assignment_expression | expression !':='
Pablo Galindo58fb1562021-02-02 19:54:22 +000033022static void *
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000033023_tmp_202_rule(Parser *p)
Pablo Galindo56c95df2021-04-21 15:28:21 +010033024{
33025 D(p->level++);
33026 if (p->error_indicator) {
33027 D(p->level--);
33028 return NULL;
33029 }
33030 void * _res = NULL;
33031 int _mark = p->mark;
Pablo Galindo Salgado0e34a592021-11-04 23:19:27 +000033032 { // assignment_expression
Pablo Galindo56c95df2021-04-21 15:28:21 +010033033 if (p->error_indicator) {
33034 D(p->level--);
33035 return NULL;
33036 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000033037 D(fprintf(stderr, "%*c> _tmp_202[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "assignment_expression"));
Pablo Galindo Salgado0e34a592021-11-04 23:19:27 +000033038 expr_ty assignment_expression_var;
Pablo Galindo56c95df2021-04-21 15:28:21 +010033039 if (
Pablo Galindo Salgado0e34a592021-11-04 23:19:27 +000033040 (assignment_expression_var = assignment_expression_rule(p)) // assignment_expression
Pablo Galindo56c95df2021-04-21 15:28:21 +010033041 )
33042 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000033043 D(fprintf(stderr, "%*c+ _tmp_202[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "assignment_expression"));
Pablo Galindo Salgado0e34a592021-11-04 23:19:27 +000033044 _res = assignment_expression_var;
Pablo Galindo56c95df2021-04-21 15:28:21 +010033045 goto done;
33046 }
33047 p->mark = _mark;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000033048 D(fprintf(stderr, "%*c%s _tmp_202[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo Salgado0e34a592021-11-04 23:19:27 +000033049 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "assignment_expression"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070033050 }
33051 { // expression !':='
33052 if (p->error_indicator) {
33053 D(p->level--);
33054 return NULL;
33055 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000033056 D(fprintf(stderr, "%*c> _tmp_202[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression !':='"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070033057 expr_ty expression_var;
33058 if (
33059 (expression_var = expression_rule(p)) // expression
33060 &&
33061 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 53) // token=':='
33062 )
33063 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000033064 D(fprintf(stderr, "%*c+ _tmp_202[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression !':='"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070033065 _res = expression_var;
33066 goto done;
33067 }
33068 p->mark = _mark;
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070033069 D(fprintf(stderr, "%*c%s _tmp_202[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000033070 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression !':='"));
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070033071 }
33072 _res = NULL;
33073 done:
33074 D(p->level--);
33075 return _res;
33076}
33077
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070033078// _tmp_203: 'as' star_target
33079static void *
33080_tmp_203_rule(Parser *p)
33081{
33082 D(p->level++);
33083 if (p->error_indicator) {
33084 D(p->level--);
33085 return NULL;
33086 }
33087 void * _res = NULL;
33088 int _mark = p->mark;
33089 { // 'as' star_target
33090 if (p->error_indicator) {
33091 D(p->level--);
33092 return NULL;
33093 }
33094 D(fprintf(stderr, "%*c> _tmp_203[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
33095 Token * _keyword;
33096 expr_ty star_target_var;
33097 if (
33098 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
33099 &&
33100 (star_target_var = star_target_rule(p)) // star_target
33101 )
33102 {
33103 D(fprintf(stderr, "%*c+ _tmp_203[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
33104 _res = _PyPegen_dummy_name(p, _keyword, star_target_var);
33105 goto done;
33106 }
33107 p->mark = _mark;
33108 D(fprintf(stderr, "%*c%s _tmp_203[%d-%d]: %s failed!\n", p->level, ' ',
33109 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' star_target"));
33110 }
33111 _res = NULL;
33112 done:
33113 D(p->level--);
33114 return _res;
33115}
33116
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070033117// _tmp_204: 'as' star_target
33118static void *
33119_tmp_204_rule(Parser *p)
33120{
33121 D(p->level++);
33122 if (p->error_indicator) {
33123 D(p->level--);
33124 return NULL;
33125 }
33126 void * _res = NULL;
33127 int _mark = p->mark;
33128 { // 'as' star_target
33129 if (p->error_indicator) {
33130 D(p->level--);
33131 return NULL;
33132 }
33133 D(fprintf(stderr, "%*c> _tmp_204[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
33134 Token * _keyword;
33135 expr_ty star_target_var;
33136 if (
33137 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
33138 &&
33139 (star_target_var = star_target_rule(p)) // star_target
33140 )
33141 {
33142 D(fprintf(stderr, "%*c+ _tmp_204[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
33143 _res = _PyPegen_dummy_name(p, _keyword, star_target_var);
33144 goto done;
33145 }
33146 p->mark = _mark;
33147 D(fprintf(stderr, "%*c%s _tmp_204[%d-%d]: %s failed!\n", p->level, ' ',
33148 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' star_target"));
33149 }
33150 _res = NULL;
33151 done:
33152 D(p->level--);
33153 return _res;
33154}
33155
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010033156// _tmp_205: 'as' star_target
33157static void *
33158_tmp_205_rule(Parser *p)
33159{
33160 D(p->level++);
33161 if (p->error_indicator) {
33162 D(p->level--);
33163 return NULL;
33164 }
33165 void * _res = NULL;
33166 int _mark = p->mark;
33167 { // 'as' star_target
33168 if (p->error_indicator) {
33169 D(p->level--);
33170 return NULL;
33171 }
33172 D(fprintf(stderr, "%*c> _tmp_205[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
33173 Token * _keyword;
33174 expr_ty star_target_var;
33175 if (
33176 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
33177 &&
33178 (star_target_var = star_target_rule(p)) // star_target
33179 )
33180 {
33181 D(fprintf(stderr, "%*c+ _tmp_205[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
33182 _res = _PyPegen_dummy_name(p, _keyword, star_target_var);
33183 goto done;
33184 }
33185 p->mark = _mark;
33186 D(fprintf(stderr, "%*c%s _tmp_205[%d-%d]: %s failed!\n", p->level, ' ',
33187 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' star_target"));
33188 }
33189 _res = NULL;
33190 done:
33191 D(p->level--);
33192 return _res;
33193}
33194
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000033195// _tmp_206: 'as' star_target
33196static void *
33197_tmp_206_rule(Parser *p)
33198{
33199 D(p->level++);
33200 if (p->error_indicator) {
33201 D(p->level--);
33202 return NULL;
33203 }
33204 void * _res = NULL;
33205 int _mark = p->mark;
33206 { // 'as' star_target
33207 if (p->error_indicator) {
33208 D(p->level--);
33209 return NULL;
33210 }
33211 D(fprintf(stderr, "%*c> _tmp_206[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
33212 Token * _keyword;
33213 expr_ty star_target_var;
33214 if (
33215 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
33216 &&
33217 (star_target_var = star_target_rule(p)) // star_target
33218 )
33219 {
33220 D(fprintf(stderr, "%*c+ _tmp_206[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
33221 _res = _PyPegen_dummy_name(p, _keyword, star_target_var);
33222 goto done;
33223 }
33224 p->mark = _mark;
33225 D(fprintf(stderr, "%*c%s _tmp_206[%d-%d]: %s failed!\n", p->level, ' ',
33226 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' star_target"));
33227 }
33228 _res = NULL;
33229 done:
33230 D(p->level--);
33231 return _res;
33232}
33233
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010033234void *
33235_PyPegen_parse(Parser *p)
33236{
33237 // Initialize keywords
33238 p->keywords = reserved_keywords;
33239 p->n_keyword_lists = n_keyword_lists;
Pablo Galindob2802482021-04-15 21:38:45 +010033240 p->soft_keywords = soft_keywords;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010033241
33242 // Run parser
33243 void *result = NULL;
33244 if (p->start_rule == Py_file_input) {
33245 result = file_rule(p);
33246 } else if (p->start_rule == Py_single_input) {
33247 result = interactive_rule(p);
33248 } else if (p->start_rule == Py_eval_input) {
33249 result = eval_rule(p);
33250 } else if (p->start_rule == Py_func_type_input) {
33251 result = func_type_rule(p);
33252 } else if (p->start_rule == Py_fstring_input) {
33253 result = fstring_rule(p);
33254 }
33255
33256 return result;
33257}
33258
33259// The end