blob: 0937717abecbbd7b1d1652a41d818a259afe9086 [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
122#define signed_number_type 1048
123#define capture_pattern_type 1049
124#define wildcard_pattern_type 1050
125#define value_pattern_type 1051
126#define attr_type 1052 // Left-recursive
127#define name_or_attr_type 1053 // Left-recursive
128#define group_pattern_type 1054
129#define sequence_pattern_type 1055
130#define open_sequence_pattern_type 1056
131#define maybe_sequence_pattern_type 1057
132#define maybe_star_pattern_type 1058
133#define star_pattern_type 1059
134#define mapping_pattern_type 1060
135#define items_pattern_type 1061
136#define key_value_pattern_type 1062
137#define double_star_pattern_type 1063
138#define class_pattern_type 1064
139#define positional_patterns_type 1065
140#define keyword_patterns_type 1066
141#define keyword_pattern_type 1067
142#define return_stmt_type 1068
143#define raise_stmt_type 1069
144#define function_def_type 1070
145#define function_def_raw_type 1071
146#define func_type_comment_type 1072
147#define params_type 1073
148#define parameters_type 1074
149#define slash_no_default_type 1075
150#define slash_with_default_type 1076
151#define star_etc_type 1077
152#define kwds_type 1078
153#define param_no_default_type 1079
154#define param_with_default_type 1080
155#define param_maybe_default_type 1081
156#define param_type 1082
157#define annotation_type 1083
158#define default_type 1084
159#define decorators_type 1085
160#define class_def_type 1086
161#define class_def_raw_type 1087
162#define block_type 1088
163#define star_expressions_type 1089
164#define star_expression_type 1090
165#define star_named_expressions_type 1091
166#define star_named_expression_type 1092
167#define named_expression_type 1093
Pablo Galindod9151cb2021-04-13 02:32:33 +0100168#define direct_named_expression_type 1094
169#define annotated_rhs_type 1095
170#define expressions_type 1096
171#define expression_type 1097
172#define lambdef_type 1098
173#define lambda_params_type 1099
174#define lambda_parameters_type 1100
175#define lambda_slash_no_default_type 1101
176#define lambda_slash_with_default_type 1102
177#define lambda_star_etc_type 1103
178#define lambda_kwds_type 1104
179#define lambda_param_no_default_type 1105
180#define lambda_param_with_default_type 1106
181#define lambda_param_maybe_default_type 1107
182#define lambda_param_type 1108
183#define disjunction_type 1109
184#define conjunction_type 1110
185#define inversion_type 1111
186#define comparison_type 1112
187#define compare_op_bitwise_or_pair_type 1113
188#define eq_bitwise_or_type 1114
189#define noteq_bitwise_or_type 1115
190#define lte_bitwise_or_type 1116
191#define lt_bitwise_or_type 1117
192#define gte_bitwise_or_type 1118
193#define gt_bitwise_or_type 1119
194#define notin_bitwise_or_type 1120
195#define in_bitwise_or_type 1121
196#define isnot_bitwise_or_type 1122
197#define is_bitwise_or_type 1123
198#define bitwise_or_type 1124 // Left-recursive
199#define bitwise_xor_type 1125 // Left-recursive
200#define bitwise_and_type 1126 // Left-recursive
201#define shift_expr_type 1127 // Left-recursive
202#define sum_type 1128 // Left-recursive
203#define term_type 1129 // Left-recursive
204#define factor_type 1130
205#define power_type 1131
206#define await_primary_type 1132
207#define primary_type 1133 // Left-recursive
208#define slices_type 1134
209#define slice_type 1135
210#define atom_type 1136
211#define strings_type 1137
212#define list_type 1138
213#define listcomp_type 1139
214#define tuple_type 1140
215#define group_type 1141
216#define genexp_type 1142
217#define set_type 1143
218#define setcomp_type 1144
219#define dict_type 1145
220#define dictcomp_type 1146
221#define double_starred_kvpairs_type 1147
222#define double_starred_kvpair_type 1148
223#define kvpair_type 1149
224#define for_if_clauses_type 1150
225#define for_if_clause_type 1151
226#define yield_expr_type 1152
227#define arguments_type 1153
228#define args_type 1154
229#define kwargs_type 1155
230#define starred_expression_type 1156
231#define kwarg_or_starred_type 1157
232#define kwarg_or_double_starred_type 1158
233#define star_targets_type 1159
234#define star_targets_list_seq_type 1160
235#define star_targets_tuple_seq_type 1161
236#define star_target_type 1162
237#define target_with_star_atom_type 1163
238#define star_atom_type 1164
239#define single_target_type 1165
240#define single_subscript_attribute_target_type 1166
241#define del_targets_type 1167
242#define del_target_type 1168
243#define del_t_atom_type 1169
244#define targets_type 1170
245#define target_type 1171
246#define t_primary_type 1172 // Left-recursive
247#define t_lookahead_type 1173
248#define t_atom_type 1174
249#define invalid_arguments_type 1175
250#define invalid_kwarg_type 1176
Pablo Galindob2802482021-04-15 21:38:45 +0100251#define invalid_expression_type 1177
252#define invalid_named_expression_type 1178
253#define invalid_assignment_type 1179
254#define invalid_ann_assign_target_type 1180
255#define invalid_del_stmt_type 1181
256#define invalid_block_type 1182
257#define invalid_primary_type 1183 // Left-recursive
258#define invalid_comprehension_type 1184
259#define invalid_dict_comprehension_type 1185
260#define invalid_parameters_type 1186
261#define invalid_parameters_helper_type 1187
262#define invalid_lambda_parameters_type 1188
263#define invalid_lambda_parameters_helper_type 1189
264#define invalid_star_etc_type 1190
265#define invalid_lambda_star_etc_type 1191
266#define invalid_double_type_comments_type 1192
267#define invalid_with_item_type 1193
268#define invalid_for_target_type 1194
269#define invalid_group_type 1195
270#define invalid_import_from_targets_type 1196
271#define invalid_with_stmt_type 1197
Pablo Galindo56c95df2021-04-21 15:28:21 +0100272#define invalid_with_stmt_indent_type 1198
273#define invalid_try_stmt_type 1199
274#define invalid_except_stmt_type 1200
275#define invalid_finally_stmt_type 1201
276#define invalid_except_stmt_indent_type 1202
277#define invalid_match_stmt_type 1203
278#define invalid_case_block_type 1204
279#define invalid_if_stmt_type 1205
280#define invalid_elif_stmt_type 1206
281#define invalid_else_stmt_type 1207
282#define invalid_while_stmt_type 1208
283#define invalid_for_stmt_type 1209
284#define invalid_def_raw_type 1210
285#define invalid_class_def_raw_type 1211
286#define invalid_double_starred_kvpairs_type 1212
287#define invalid_kvpair_type 1213
288#define _loop0_1_type 1214
289#define _loop0_2_type 1215
290#define _loop0_4_type 1216
291#define _gather_3_type 1217
292#define _loop0_6_type 1218
293#define _gather_5_type 1219
294#define _loop0_8_type 1220
295#define _gather_7_type 1221
296#define _loop0_10_type 1222
297#define _gather_9_type 1223
298#define _loop1_11_type 1224
299#define _loop0_13_type 1225
300#define _gather_12_type 1226
301#define _tmp_14_type 1227
302#define _tmp_15_type 1228
303#define _tmp_16_type 1229
304#define _tmp_17_type 1230
305#define _tmp_18_type 1231
306#define _tmp_19_type 1232
307#define _tmp_20_type 1233
308#define _tmp_21_type 1234
309#define _loop1_22_type 1235
310#define _tmp_23_type 1236
311#define _tmp_24_type 1237
312#define _loop0_26_type 1238
313#define _gather_25_type 1239
314#define _loop0_28_type 1240
315#define _gather_27_type 1241
316#define _tmp_29_type 1242
317#define _tmp_30_type 1243
318#define _loop0_31_type 1244
319#define _loop1_32_type 1245
320#define _loop0_34_type 1246
321#define _gather_33_type 1247
322#define _tmp_35_type 1248
323#define _loop0_37_type 1249
324#define _gather_36_type 1250
325#define _tmp_38_type 1251
326#define _loop0_40_type 1252
327#define _gather_39_type 1253
328#define _loop0_42_type 1254
329#define _gather_41_type 1255
330#define _loop0_44_type 1256
331#define _gather_43_type 1257
332#define _loop0_46_type 1258
333#define _gather_45_type 1259
334#define _tmp_47_type 1260
335#define _loop1_48_type 1261
336#define _tmp_49_type 1262
337#define _loop1_50_type 1263
338#define _loop0_52_type 1264
339#define _gather_51_type 1265
340#define _tmp_53_type 1266
341#define _tmp_54_type 1267
342#define _tmp_55_type 1268
343#define _loop0_57_type 1269
344#define _gather_56_type 1270
345#define _tmp_58_type 1271
346#define _loop0_60_type 1272
347#define _gather_59_type 1273
348#define _tmp_61_type 1274
349#define _loop0_63_type 1275
350#define _gather_62_type 1276
351#define _loop0_65_type 1277
352#define _gather_64_type 1278
353#define _tmp_66_type 1279
354#define _tmp_67_type 1280
355#define _tmp_68_type 1281
356#define _tmp_69_type 1282
357#define _loop0_70_type 1283
358#define _loop0_71_type 1284
359#define _loop0_72_type 1285
360#define _loop1_73_type 1286
361#define _loop0_74_type 1287
362#define _loop1_75_type 1288
363#define _loop1_76_type 1289
364#define _loop1_77_type 1290
365#define _loop0_78_type 1291
366#define _loop1_79_type 1292
367#define _loop0_80_type 1293
368#define _loop1_81_type 1294
369#define _loop0_82_type 1295
370#define _loop1_83_type 1296
371#define _loop1_84_type 1297
372#define _tmp_85_type 1298
373#define _loop1_86_type 1299
374#define _loop0_88_type 1300
375#define _gather_87_type 1301
376#define _loop1_89_type 1302
377#define _loop0_90_type 1303
378#define _loop0_91_type 1304
379#define _loop0_92_type 1305
380#define _loop1_93_type 1306
381#define _loop0_94_type 1307
382#define _loop1_95_type 1308
383#define _loop1_96_type 1309
384#define _loop1_97_type 1310
385#define _loop0_98_type 1311
386#define _loop1_99_type 1312
387#define _loop0_100_type 1313
388#define _loop1_101_type 1314
389#define _loop0_102_type 1315
390#define _loop1_103_type 1316
391#define _loop1_104_type 1317
392#define _loop1_105_type 1318
393#define _loop1_106_type 1319
394#define _tmp_107_type 1320
395#define _loop0_109_type 1321
396#define _gather_108_type 1322
397#define _tmp_110_type 1323
398#define _tmp_111_type 1324
399#define _tmp_112_type 1325
400#define _tmp_113_type 1326
401#define _loop1_114_type 1327
402#define _tmp_115_type 1328
403#define _tmp_116_type 1329
404#define _loop0_118_type 1330
405#define _gather_117_type 1331
406#define _loop1_119_type 1332
407#define _loop0_120_type 1333
408#define _loop0_121_type 1334
409#define _loop0_123_type 1335
410#define _gather_122_type 1336
411#define _tmp_124_type 1337
412#define _loop0_126_type 1338
413#define _gather_125_type 1339
414#define _loop0_128_type 1340
415#define _gather_127_type 1341
416#define _loop0_130_type 1342
417#define _gather_129_type 1343
418#define _loop0_132_type 1344
419#define _gather_131_type 1345
420#define _loop0_133_type 1346
421#define _loop0_135_type 1347
422#define _gather_134_type 1348
423#define _loop1_136_type 1349
424#define _tmp_137_type 1350
425#define _loop0_139_type 1351
426#define _gather_138_type 1352
427#define _loop0_141_type 1353
428#define _gather_140_type 1354
429#define _tmp_142_type 1355
430#define _tmp_143_type 1356
431#define _tmp_144_type 1357
432#define _tmp_145_type 1358
433#define _tmp_146_type 1359
434#define _loop0_147_type 1360
435#define _loop0_148_type 1361
436#define _loop0_149_type 1362
437#define _tmp_150_type 1363
438#define _tmp_151_type 1364
439#define _tmp_152_type 1365
440#define _loop0_153_type 1366
441#define _loop1_154_type 1367
442#define _loop0_155_type 1368
443#define _loop1_156_type 1369
444#define _tmp_157_type 1370
445#define _tmp_158_type 1371
446#define _tmp_159_type 1372
447#define _loop0_161_type 1373
448#define _gather_160_type 1374
449#define _loop0_163_type 1375
450#define _gather_162_type 1376
451#define _loop0_165_type 1377
452#define _gather_164_type 1378
453#define _loop0_167_type 1379
454#define _gather_166_type 1380
455#define _tmp_168_type 1381
456#define _tmp_169_type 1382
457#define _tmp_170_type 1383
458#define _tmp_171_type 1384
459#define _tmp_172_type 1385
460#define _loop0_174_type 1386
461#define _gather_173_type 1387
462#define _tmp_175_type 1388
463#define _tmp_176_type 1389
464#define _tmp_177_type 1390
465#define _tmp_178_type 1391
466#define _tmp_179_type 1392
467#define _tmp_180_type 1393
468#define _tmp_181_type 1394
469#define _tmp_182_type 1395
470#define _tmp_183_type 1396
471#define _tmp_184_type 1397
472#define _tmp_185_type 1398
473#define _tmp_186_type 1399
474#define _tmp_187_type 1400
475#define _tmp_188_type 1401
476#define _tmp_189_type 1402
477#define _tmp_190_type 1403
478#define _tmp_191_type 1404
479#define _tmp_192_type 1405
480#define _tmp_193_type 1406
481#define _tmp_194_type 1407
482#define _tmp_195_type 1408
483#define _tmp_196_type 1409
484#define _tmp_197_type 1410
485#define _tmp_198_type 1411
486#define _tmp_199_type 1412
487#define _tmp_200_type 1413
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100488
489static mod_ty file_rule(Parser *p);
490static mod_ty interactive_rule(Parser *p);
491static mod_ty eval_rule(Parser *p);
492static mod_ty func_type_rule(Parser *p);
493static expr_ty fstring_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100494static asdl_expr_seq* type_expressions_rule(Parser *p);
495static asdl_stmt_seq* statements_rule(Parser *p);
496static asdl_stmt_seq* statement_rule(Parser *p);
497static asdl_stmt_seq* statement_newline_rule(Parser *p);
Pablo Galindo9bdc40e2020-11-30 19:42:38 +0000498static asdl_stmt_seq* simple_stmts_rule(Parser *p);
499static stmt_ty simple_stmt_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100500static stmt_ty compound_stmt_rule(Parser *p);
501static stmt_ty assignment_rule(Parser *p);
502static AugOperator* augassign_rule(Parser *p);
503static stmt_ty global_stmt_rule(Parser *p);
504static stmt_ty nonlocal_stmt_rule(Parser *p);
505static stmt_ty yield_stmt_rule(Parser *p);
506static stmt_ty assert_stmt_rule(Parser *p);
507static stmt_ty del_stmt_rule(Parser *p);
508static stmt_ty import_stmt_rule(Parser *p);
509static stmt_ty import_name_rule(Parser *p);
510static stmt_ty import_from_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100511static asdl_alias_seq* import_from_targets_rule(Parser *p);
512static asdl_alias_seq* import_from_as_names_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100513static alias_ty import_from_as_name_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100514static asdl_alias_seq* dotted_as_names_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100515static alias_ty dotted_as_name_rule(Parser *p);
516static expr_ty dotted_name_rule(Parser *p);
517static stmt_ty if_stmt_rule(Parser *p);
518static stmt_ty elif_stmt_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100519static asdl_stmt_seq* else_block_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100520static stmt_ty while_stmt_rule(Parser *p);
521static stmt_ty for_stmt_rule(Parser *p);
522static stmt_ty with_stmt_rule(Parser *p);
523static withitem_ty with_item_rule(Parser *p);
524static stmt_ty try_stmt_rule(Parser *p);
525static excepthandler_ty except_block_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100526static asdl_stmt_seq* finally_block_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800527static stmt_ty match_stmt_rule(Parser *p);
528static expr_ty subject_expr_rule(Parser *p);
529static match_case_ty case_block_rule(Parser *p);
530static expr_ty guard_rule(Parser *p);
531static expr_ty patterns_rule(Parser *p);
532static expr_ty pattern_rule(Parser *p);
533static expr_ty as_pattern_rule(Parser *p);
534static expr_ty or_pattern_rule(Parser *p);
535static expr_ty closed_pattern_rule(Parser *p);
536static expr_ty literal_pattern_rule(Parser *p);
537static expr_ty signed_number_rule(Parser *p);
538static expr_ty capture_pattern_rule(Parser *p);
539static expr_ty wildcard_pattern_rule(Parser *p);
540static expr_ty value_pattern_rule(Parser *p);
541static expr_ty attr_rule(Parser *p);
542static expr_ty name_or_attr_rule(Parser *p);
543static expr_ty group_pattern_rule(Parser *p);
544static expr_ty sequence_pattern_rule(Parser *p);
545static asdl_seq* open_sequence_pattern_rule(Parser *p);
546static asdl_seq* maybe_sequence_pattern_rule(Parser *p);
547static expr_ty maybe_star_pattern_rule(Parser *p);
548static expr_ty star_pattern_rule(Parser *p);
549static expr_ty mapping_pattern_rule(Parser *p);
550static asdl_seq* items_pattern_rule(Parser *p);
551static KeyValuePair* key_value_pattern_rule(Parser *p);
552static KeyValuePair* double_star_pattern_rule(Parser *p);
553static expr_ty class_pattern_rule(Parser *p);
554static asdl_expr_seq* positional_patterns_rule(Parser *p);
555static asdl_keyword_seq* keyword_patterns_rule(Parser *p);
556static keyword_ty keyword_pattern_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100557static stmt_ty return_stmt_rule(Parser *p);
558static stmt_ty raise_stmt_rule(Parser *p);
559static stmt_ty function_def_rule(Parser *p);
560static stmt_ty function_def_raw_rule(Parser *p);
561static Token* func_type_comment_rule(Parser *p);
562static arguments_ty params_rule(Parser *p);
563static arguments_ty parameters_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100564static asdl_arg_seq* slash_no_default_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100565static SlashWithDefault* slash_with_default_rule(Parser *p);
566static StarEtc* star_etc_rule(Parser *p);
567static arg_ty kwds_rule(Parser *p);
568static arg_ty param_no_default_rule(Parser *p);
569static NameDefaultPair* param_with_default_rule(Parser *p);
570static NameDefaultPair* param_maybe_default_rule(Parser *p);
571static arg_ty param_rule(Parser *p);
572static expr_ty annotation_rule(Parser *p);
573static expr_ty default_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100574static asdl_expr_seq* decorators_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100575static stmt_ty class_def_rule(Parser *p);
576static stmt_ty class_def_raw_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100577static asdl_stmt_seq* block_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100578static expr_ty star_expressions_rule(Parser *p);
579static expr_ty star_expression_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100580static asdl_expr_seq* star_named_expressions_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100581static expr_ty star_named_expression_rule(Parser *p);
582static expr_ty named_expression_rule(Parser *p);
Pablo Galindod9151cb2021-04-13 02:32:33 +0100583static expr_ty direct_named_expression_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100584static expr_ty annotated_rhs_rule(Parser *p);
585static expr_ty expressions_rule(Parser *p);
586static expr_ty expression_rule(Parser *p);
587static expr_ty lambdef_rule(Parser *p);
588static arguments_ty lambda_params_rule(Parser *p);
589static arguments_ty lambda_parameters_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100590static asdl_arg_seq* lambda_slash_no_default_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100591static SlashWithDefault* lambda_slash_with_default_rule(Parser *p);
592static StarEtc* lambda_star_etc_rule(Parser *p);
593static arg_ty lambda_kwds_rule(Parser *p);
594static arg_ty lambda_param_no_default_rule(Parser *p);
595static NameDefaultPair* lambda_param_with_default_rule(Parser *p);
596static NameDefaultPair* lambda_param_maybe_default_rule(Parser *p);
597static arg_ty lambda_param_rule(Parser *p);
598static expr_ty disjunction_rule(Parser *p);
599static expr_ty conjunction_rule(Parser *p);
600static expr_ty inversion_rule(Parser *p);
601static expr_ty comparison_rule(Parser *p);
602static CmpopExprPair* compare_op_bitwise_or_pair_rule(Parser *p);
603static CmpopExprPair* eq_bitwise_or_rule(Parser *p);
604static CmpopExprPair* noteq_bitwise_or_rule(Parser *p);
605static CmpopExprPair* lte_bitwise_or_rule(Parser *p);
606static CmpopExprPair* lt_bitwise_or_rule(Parser *p);
607static CmpopExprPair* gte_bitwise_or_rule(Parser *p);
608static CmpopExprPair* gt_bitwise_or_rule(Parser *p);
609static CmpopExprPair* notin_bitwise_or_rule(Parser *p);
610static CmpopExprPair* in_bitwise_or_rule(Parser *p);
611static CmpopExprPair* isnot_bitwise_or_rule(Parser *p);
612static CmpopExprPair* is_bitwise_or_rule(Parser *p);
613static expr_ty bitwise_or_rule(Parser *p);
614static expr_ty bitwise_xor_rule(Parser *p);
615static expr_ty bitwise_and_rule(Parser *p);
616static expr_ty shift_expr_rule(Parser *p);
617static expr_ty sum_rule(Parser *p);
618static expr_ty term_rule(Parser *p);
619static expr_ty factor_rule(Parser *p);
620static expr_ty power_rule(Parser *p);
621static expr_ty await_primary_rule(Parser *p);
622static expr_ty primary_rule(Parser *p);
623static expr_ty slices_rule(Parser *p);
624static expr_ty slice_rule(Parser *p);
625static expr_ty atom_rule(Parser *p);
626static expr_ty strings_rule(Parser *p);
627static expr_ty list_rule(Parser *p);
628static expr_ty listcomp_rule(Parser *p);
629static expr_ty tuple_rule(Parser *p);
630static expr_ty group_rule(Parser *p);
631static expr_ty genexp_rule(Parser *p);
632static expr_ty set_rule(Parser *p);
633static expr_ty setcomp_rule(Parser *p);
634static expr_ty dict_rule(Parser *p);
635static expr_ty dictcomp_rule(Parser *p);
636static asdl_seq* double_starred_kvpairs_rule(Parser *p);
637static KeyValuePair* double_starred_kvpair_rule(Parser *p);
638static KeyValuePair* kvpair_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100639static asdl_comprehension_seq* for_if_clauses_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100640static comprehension_ty for_if_clause_rule(Parser *p);
641static expr_ty yield_expr_rule(Parser *p);
642static expr_ty arguments_rule(Parser *p);
643static expr_ty args_rule(Parser *p);
644static asdl_seq* kwargs_rule(Parser *p);
645static expr_ty starred_expression_rule(Parser *p);
646static KeywordOrStarred* kwarg_or_starred_rule(Parser *p);
647static KeywordOrStarred* kwarg_or_double_starred_rule(Parser *p);
648static expr_ty star_targets_rule(Parser *p);
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +0200649static asdl_expr_seq* star_targets_list_seq_rule(Parser *p);
650static asdl_expr_seq* star_targets_tuple_seq_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100651static expr_ty star_target_rule(Parser *p);
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +0200652static expr_ty target_with_star_atom_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100653static expr_ty star_atom_rule(Parser *p);
654static expr_ty single_target_rule(Parser *p);
655static expr_ty single_subscript_attribute_target_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100656static asdl_expr_seq* del_targets_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100657static expr_ty del_target_rule(Parser *p);
658static expr_ty del_t_atom_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100659static asdl_expr_seq* targets_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100660static expr_ty target_rule(Parser *p);
661static expr_ty t_primary_rule(Parser *p);
662static void *t_lookahead_rule(Parser *p);
663static expr_ty t_atom_rule(Parser *p);
Lysandros Nikolaoubca70142020-10-27 00:42:04 +0200664static void *invalid_arguments_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100665static void *invalid_kwarg_rule(Parser *p);
Pablo Galindob2802482021-04-15 21:38:45 +0100666static void *invalid_expression_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100667static void *invalid_named_expression_rule(Parser *p);
668static void *invalid_assignment_rule(Parser *p);
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +0300669static expr_ty invalid_ann_assign_target_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300670static void *invalid_del_stmt_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100671static void *invalid_block_rule(Parser *p);
Lysandros Nikolaou15acc4e2020-10-27 20:54:20 +0200672static void *invalid_primary_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100673static void *invalid_comprehension_rule(Parser *p);
674static void *invalid_dict_comprehension_rule(Parser *p);
675static void *invalid_parameters_rule(Parser *p);
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +0200676static void *invalid_parameters_helper_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100677static void *invalid_lambda_parameters_rule(Parser *p);
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +0200678static void *invalid_lambda_parameters_helper_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100679static void *invalid_star_etc_rule(Parser *p);
680static void *invalid_lambda_star_etc_rule(Parser *p);
681static void *invalid_double_type_comments_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300682static void *invalid_with_item_rule(Parser *p);
683static void *invalid_for_target_rule(Parser *p);
684static void *invalid_group_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100685static void *invalid_import_from_targets_rule(Parser *p);
Pablo Galindo58fb1562021-02-02 19:54:22 +0000686static void *invalid_with_stmt_rule(Parser *p);
Pablo Galindo56c95df2021-04-21 15:28:21 +0100687static void *invalid_with_stmt_indent_rule(Parser *p);
688static void *invalid_try_stmt_rule(Parser *p);
689static void *invalid_except_stmt_rule(Parser *p);
690static void *invalid_finally_stmt_rule(Parser *p);
691static void *invalid_except_stmt_indent_rule(Parser *p);
Pablo Galindo08fb8ac2021-03-18 01:03:11 +0000692static void *invalid_match_stmt_rule(Parser *p);
693static void *invalid_case_block_rule(Parser *p);
Pablo Galindob86ed8e2021-04-12 16:59:30 +0100694static void *invalid_if_stmt_rule(Parser *p);
695static void *invalid_elif_stmt_rule(Parser *p);
Pablo Galindo56c95df2021-04-21 15:28:21 +0100696static void *invalid_else_stmt_rule(Parser *p);
Pablo Galindob86ed8e2021-04-12 16:59:30 +0100697static void *invalid_while_stmt_rule(Parser *p);
Pablo Galindo56c95df2021-04-21 15:28:21 +0100698static void *invalid_for_stmt_rule(Parser *p);
699static void *invalid_def_raw_rule(Parser *p);
700static void *invalid_class_def_raw_rule(Parser *p);
Pablo Galindoda743502021-04-15 14:06:39 +0100701static void *invalid_double_starred_kvpairs_rule(Parser *p);
702static void *invalid_kvpair_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100703static asdl_seq *_loop0_1_rule(Parser *p);
704static asdl_seq *_loop0_2_rule(Parser *p);
705static asdl_seq *_loop0_4_rule(Parser *p);
706static asdl_seq *_gather_3_rule(Parser *p);
707static asdl_seq *_loop0_6_rule(Parser *p);
708static asdl_seq *_gather_5_rule(Parser *p);
709static asdl_seq *_loop0_8_rule(Parser *p);
710static asdl_seq *_gather_7_rule(Parser *p);
711static asdl_seq *_loop0_10_rule(Parser *p);
712static asdl_seq *_gather_9_rule(Parser *p);
713static asdl_seq *_loop1_11_rule(Parser *p);
714static asdl_seq *_loop0_13_rule(Parser *p);
715static asdl_seq *_gather_12_rule(Parser *p);
716static void *_tmp_14_rule(Parser *p);
717static void *_tmp_15_rule(Parser *p);
718static void *_tmp_16_rule(Parser *p);
719static void *_tmp_17_rule(Parser *p);
720static void *_tmp_18_rule(Parser *p);
721static void *_tmp_19_rule(Parser *p);
722static void *_tmp_20_rule(Parser *p);
723static void *_tmp_21_rule(Parser *p);
724static asdl_seq *_loop1_22_rule(Parser *p);
725static void *_tmp_23_rule(Parser *p);
726static void *_tmp_24_rule(Parser *p);
727static asdl_seq *_loop0_26_rule(Parser *p);
728static asdl_seq *_gather_25_rule(Parser *p);
729static asdl_seq *_loop0_28_rule(Parser *p);
730static asdl_seq *_gather_27_rule(Parser *p);
731static void *_tmp_29_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300732static void *_tmp_30_rule(Parser *p);
733static asdl_seq *_loop0_31_rule(Parser *p);
734static asdl_seq *_loop1_32_rule(Parser *p);
735static asdl_seq *_loop0_34_rule(Parser *p);
736static asdl_seq *_gather_33_rule(Parser *p);
737static void *_tmp_35_rule(Parser *p);
738static asdl_seq *_loop0_37_rule(Parser *p);
739static asdl_seq *_gather_36_rule(Parser *p);
740static void *_tmp_38_rule(Parser *p);
741static asdl_seq *_loop0_40_rule(Parser *p);
742static asdl_seq *_gather_39_rule(Parser *p);
743static asdl_seq *_loop0_42_rule(Parser *p);
744static asdl_seq *_gather_41_rule(Parser *p);
745static asdl_seq *_loop0_44_rule(Parser *p);
746static asdl_seq *_gather_43_rule(Parser *p);
747static asdl_seq *_loop0_46_rule(Parser *p);
748static asdl_seq *_gather_45_rule(Parser *p);
749static void *_tmp_47_rule(Parser *p);
750static asdl_seq *_loop1_48_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100751static void *_tmp_49_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800752static asdl_seq *_loop1_50_rule(Parser *p);
753static asdl_seq *_loop0_52_rule(Parser *p);
754static asdl_seq *_gather_51_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300755static void *_tmp_53_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800756static void *_tmp_54_rule(Parser *p);
757static void *_tmp_55_rule(Parser *p);
758static asdl_seq *_loop0_57_rule(Parser *p);
759static asdl_seq *_gather_56_rule(Parser *p);
760static void *_tmp_58_rule(Parser *p);
761static asdl_seq *_loop0_60_rule(Parser *p);
762static asdl_seq *_gather_59_rule(Parser *p);
763static void *_tmp_61_rule(Parser *p);
764static asdl_seq *_loop0_63_rule(Parser *p);
765static asdl_seq *_gather_62_rule(Parser *p);
766static asdl_seq *_loop0_65_rule(Parser *p);
767static asdl_seq *_gather_64_rule(Parser *p);
768static void *_tmp_66_rule(Parser *p);
769static void *_tmp_67_rule(Parser *p);
770static void *_tmp_68_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300771static void *_tmp_69_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800772static asdl_seq *_loop0_70_rule(Parser *p);
773static asdl_seq *_loop0_71_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000774static asdl_seq *_loop0_72_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000775static asdl_seq *_loop1_73_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300776static asdl_seq *_loop0_74_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800777static asdl_seq *_loop1_75_rule(Parser *p);
778static asdl_seq *_loop1_76_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000779static asdl_seq *_loop1_77_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300780static asdl_seq *_loop0_78_rule(Parser *p);
781static asdl_seq *_loop1_79_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800782static asdl_seq *_loop0_80_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100783static asdl_seq *_loop1_81_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000784static asdl_seq *_loop0_82_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300785static asdl_seq *_loop1_83_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800786static asdl_seq *_loop1_84_rule(Parser *p);
787static void *_tmp_85_rule(Parser *p);
788static asdl_seq *_loop1_86_rule(Parser *p);
789static asdl_seq *_loop0_88_rule(Parser *p);
790static asdl_seq *_gather_87_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100791static asdl_seq *_loop1_89_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800792static asdl_seq *_loop0_90_rule(Parser *p);
793static asdl_seq *_loop0_91_rule(Parser *p);
794static asdl_seq *_loop0_92_rule(Parser *p);
795static asdl_seq *_loop1_93_rule(Parser *p);
796static asdl_seq *_loop0_94_rule(Parser *p);
797static asdl_seq *_loop1_95_rule(Parser *p);
798static asdl_seq *_loop1_96_rule(Parser *p);
799static asdl_seq *_loop1_97_rule(Parser *p);
800static asdl_seq *_loop0_98_rule(Parser *p);
801static asdl_seq *_loop1_99_rule(Parser *p);
802static asdl_seq *_loop0_100_rule(Parser *p);
803static asdl_seq *_loop1_101_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000804static asdl_seq *_loop0_102_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000805static asdl_seq *_loop1_103_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800806static asdl_seq *_loop1_104_rule(Parser *p);
807static asdl_seq *_loop1_105_rule(Parser *p);
808static asdl_seq *_loop1_106_rule(Parser *p);
809static void *_tmp_107_rule(Parser *p);
810static asdl_seq *_loop0_109_rule(Parser *p);
811static asdl_seq *_gather_108_rule(Parser *p);
812static void *_tmp_110_rule(Parser *p);
813static void *_tmp_111_rule(Parser *p);
814static void *_tmp_112_rule(Parser *p);
815static void *_tmp_113_rule(Parser *p);
816static asdl_seq *_loop1_114_rule(Parser *p);
817static void *_tmp_115_rule(Parser *p);
818static void *_tmp_116_rule(Parser *p);
819static asdl_seq *_loop0_118_rule(Parser *p);
820static asdl_seq *_gather_117_rule(Parser *p);
821static asdl_seq *_loop1_119_rule(Parser *p);
822static asdl_seq *_loop0_120_rule(Parser *p);
823static asdl_seq *_loop0_121_rule(Parser *p);
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +0200824static asdl_seq *_loop0_123_rule(Parser *p);
825static asdl_seq *_gather_122_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800826static void *_tmp_124_rule(Parser *p);
827static asdl_seq *_loop0_126_rule(Parser *p);
828static asdl_seq *_gather_125_rule(Parser *p);
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +0300829static asdl_seq *_loop0_128_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800830static asdl_seq *_gather_127_rule(Parser *p);
831static asdl_seq *_loop0_130_rule(Parser *p);
832static asdl_seq *_gather_129_rule(Parser *p);
833static asdl_seq *_loop0_132_rule(Parser *p);
834static asdl_seq *_gather_131_rule(Parser *p);
Pablo Galindo835f14f2021-01-31 22:52:56 +0000835static asdl_seq *_loop0_133_rule(Parser *p);
Pablo Galindo835f14f2021-01-31 22:52:56 +0000836static asdl_seq *_loop0_135_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800837static asdl_seq *_gather_134_rule(Parser *p);
Pablo Galindo835f14f2021-01-31 22:52:56 +0000838static asdl_seq *_loop1_136_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100839static void *_tmp_137_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800840static asdl_seq *_loop0_139_rule(Parser *p);
841static asdl_seq *_gather_138_rule(Parser *p);
Pablo Galindo58fb1562021-02-02 19:54:22 +0000842static asdl_seq *_loop0_141_rule(Parser *p);
843static asdl_seq *_gather_140_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800844static void *_tmp_142_rule(Parser *p);
Pablo Galindob86ed8e2021-04-12 16:59:30 +0100845static void *_tmp_143_rule(Parser *p);
846static void *_tmp_144_rule(Parser *p);
847static void *_tmp_145_rule(Parser *p);
Pablo Galindob2802482021-04-15 21:38:45 +0100848static void *_tmp_146_rule(Parser *p);
Pablo Galindob86ed8e2021-04-12 16:59:30 +0100849static asdl_seq *_loop0_147_rule(Parser *p);
850static asdl_seq *_loop0_148_rule(Parser *p);
Pablo Galindob2802482021-04-15 21:38:45 +0100851static asdl_seq *_loop0_149_rule(Parser *p);
Pablo Galindob86ed8e2021-04-12 16:59:30 +0100852static void *_tmp_150_rule(Parser *p);
853static void *_tmp_151_rule(Parser *p);
Pablo Galindob2802482021-04-15 21:38:45 +0100854static void *_tmp_152_rule(Parser *p);
855static asdl_seq *_loop0_153_rule(Parser *p);
856static asdl_seq *_loop1_154_rule(Parser *p);
857static asdl_seq *_loop0_155_rule(Parser *p);
858static asdl_seq *_loop1_156_rule(Parser *p);
Pablo Galindob86ed8e2021-04-12 16:59:30 +0100859static void *_tmp_157_rule(Parser *p);
860static void *_tmp_158_rule(Parser *p);
Pablo Galindob2802482021-04-15 21:38:45 +0100861static void *_tmp_159_rule(Parser *p);
862static asdl_seq *_loop0_161_rule(Parser *p);
863static asdl_seq *_gather_160_rule(Parser *p);
864static asdl_seq *_loop0_163_rule(Parser *p);
865static asdl_seq *_gather_162_rule(Parser *p);
Pablo Galindo56c95df2021-04-21 15:28:21 +0100866static asdl_seq *_loop0_165_rule(Parser *p);
867static asdl_seq *_gather_164_rule(Parser *p);
Pablo Galindob2802482021-04-15 21:38:45 +0100868static asdl_seq *_loop0_167_rule(Parser *p);
869static asdl_seq *_gather_166_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800870static void *_tmp_168_rule(Parser *p);
871static void *_tmp_169_rule(Parser *p);
872static void *_tmp_170_rule(Parser *p);
873static void *_tmp_171_rule(Parser *p);
874static void *_tmp_172_rule(Parser *p);
Pablo Galindo56c95df2021-04-21 15:28:21 +0100875static asdl_seq *_loop0_174_rule(Parser *p);
876static asdl_seq *_gather_173_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800877static void *_tmp_175_rule(Parser *p);
878static void *_tmp_176_rule(Parser *p);
879static void *_tmp_177_rule(Parser *p);
880static void *_tmp_178_rule(Parser *p);
881static void *_tmp_179_rule(Parser *p);
882static void *_tmp_180_rule(Parser *p);
883static void *_tmp_181_rule(Parser *p);
884static void *_tmp_182_rule(Parser *p);
Pablo Galindob86ed8e2021-04-12 16:59:30 +0100885static void *_tmp_183_rule(Parser *p);
886static void *_tmp_184_rule(Parser *p);
887static void *_tmp_185_rule(Parser *p);
Pablo Galindoda743502021-04-15 14:06:39 +0100888static void *_tmp_186_rule(Parser *p);
889static void *_tmp_187_rule(Parser *p);
890static void *_tmp_188_rule(Parser *p);
Pablo Galindob2802482021-04-15 21:38:45 +0100891static void *_tmp_189_rule(Parser *p);
Pablo Galindo56c95df2021-04-21 15:28:21 +0100892static void *_tmp_190_rule(Parser *p);
893static void *_tmp_191_rule(Parser *p);
894static void *_tmp_192_rule(Parser *p);
895static void *_tmp_193_rule(Parser *p);
896static void *_tmp_194_rule(Parser *p);
897static void *_tmp_195_rule(Parser *p);
898static void *_tmp_196_rule(Parser *p);
899static void *_tmp_197_rule(Parser *p);
900static void *_tmp_198_rule(Parser *p);
901static void *_tmp_199_rule(Parser *p);
902static void *_tmp_200_rule(Parser *p);
Guido van Rossum85a5fbb1990-10-14 12:07:46 +0000903
904
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100905// file: statements? $
906static mod_ty
907file_rule(Parser *p)
Guido van Rossum85a5fbb1990-10-14 12:07:46 +0000908{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100909 D(p->level++);
910 if (p->error_indicator) {
911 D(p->level--);
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000912 return NULL;
913 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100914 mod_ty _res = NULL;
915 int _mark = p->mark;
916 { // statements? $
917 if (p->error_indicator) {
918 D(p->level--);
919 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000920 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100921 D(fprintf(stderr, "%*c> file[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statements? $"));
922 void *a;
923 Token * endmarker_var;
924 if (
925 (a = statements_rule(p), 1) // statements?
926 &&
927 (endmarker_var = _PyPegen_expect_token(p, ENDMARKER)) // token='ENDMARKER'
928 )
929 {
930 D(fprintf(stderr, "%*c+ file[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "statements? $"));
931 _res = _PyPegen_make_module ( p , a );
932 if (_res == NULL && PyErr_Occurred()) {
933 p->error_indicator = 1;
934 D(p->level--);
935 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000936 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100937 goto done;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000938 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100939 p->mark = _mark;
940 D(fprintf(stderr, "%*c%s file[%d-%d]: %s failed!\n", p->level, ' ',
941 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statements? $"));
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000942 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100943 _res = NULL;
944 done:
945 D(p->level--);
946 return _res;
Guido van Rossum85a5fbb1990-10-14 12:07:46 +0000947}
948
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100949// interactive: statement_newline
950static mod_ty
951interactive_rule(Parser *p)
Guido van Rossumb09f7ed2001-07-15 21:08:29 +0000952{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100953 D(p->level++);
954 if (p->error_indicator) {
955 D(p->level--);
956 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000957 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100958 mod_ty _res = NULL;
959 int _mark = p->mark;
960 { // statement_newline
961 if (p->error_indicator) {
962 D(p->level--);
963 return NULL;
964 }
965 D(fprintf(stderr, "%*c> interactive[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statement_newline"));
Pablo Galindoa5634c42020-09-16 19:42:00 +0100966 asdl_stmt_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100967 if (
968 (a = statement_newline_rule(p)) // statement_newline
969 )
970 {
971 D(fprintf(stderr, "%*c+ interactive[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "statement_newline"));
Victor Stinnerd27f8d22021-04-07 21:34:22 +0200972 _res = _PyAST_Interactive ( a , p -> arena );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100973 if (_res == NULL && PyErr_Occurred()) {
974 p->error_indicator = 1;
975 D(p->level--);
976 return NULL;
977 }
978 goto done;
979 }
980 p->mark = _mark;
981 D(fprintf(stderr, "%*c%s interactive[%d-%d]: %s failed!\n", p->level, ' ',
982 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statement_newline"));
983 }
984 _res = NULL;
985 done:
986 D(p->level--);
987 return _res;
Guido van Rossumb09f7ed2001-07-15 21:08:29 +0000988}
989
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100990// eval: expressions NEWLINE* $
991static mod_ty
992eval_rule(Parser *p)
Guido van Rossum85a5fbb1990-10-14 12:07:46 +0000993{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100994 D(p->level++);
995 if (p->error_indicator) {
996 D(p->level--);
997 return NULL;
998 }
999 mod_ty _res = NULL;
1000 int _mark = p->mark;
1001 { // expressions NEWLINE* $
1002 if (p->error_indicator) {
1003 D(p->level--);
1004 return NULL;
1005 }
1006 D(fprintf(stderr, "%*c> eval[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expressions NEWLINE* $"));
1007 asdl_seq * _loop0_1_var;
1008 expr_ty a;
1009 Token * endmarker_var;
1010 if (
1011 (a = expressions_rule(p)) // expressions
1012 &&
1013 (_loop0_1_var = _loop0_1_rule(p)) // NEWLINE*
1014 &&
1015 (endmarker_var = _PyPegen_expect_token(p, ENDMARKER)) // token='ENDMARKER'
1016 )
1017 {
1018 D(fprintf(stderr, "%*c+ eval[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expressions NEWLINE* $"));
Victor Stinnerd27f8d22021-04-07 21:34:22 +02001019 _res = _PyAST_Expression ( a , p -> arena );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001020 if (_res == NULL && PyErr_Occurred()) {
1021 p->error_indicator = 1;
1022 D(p->level--);
1023 return NULL;
1024 }
1025 goto done;
1026 }
1027 p->mark = _mark;
1028 D(fprintf(stderr, "%*c%s eval[%d-%d]: %s failed!\n", p->level, ' ',
1029 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expressions NEWLINE* $"));
1030 }
1031 _res = NULL;
1032 done:
1033 D(p->level--);
1034 return _res;
1035}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +00001036
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001037// func_type: '(' type_expressions? ')' '->' expression NEWLINE* $
1038static mod_ty
1039func_type_rule(Parser *p)
1040{
1041 D(p->level++);
1042 if (p->error_indicator) {
1043 D(p->level--);
1044 return NULL;
1045 }
1046 mod_ty _res = NULL;
1047 int _mark = p->mark;
1048 { // '(' type_expressions? ')' '->' expression NEWLINE* $
1049 if (p->error_indicator) {
1050 D(p->level--);
1051 return NULL;
1052 }
1053 D(fprintf(stderr, "%*c> func_type[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' type_expressions? ')' '->' expression NEWLINE* $"));
1054 Token * _literal;
1055 Token * _literal_1;
1056 Token * _literal_2;
1057 asdl_seq * _loop0_2_var;
1058 void *a;
1059 expr_ty b;
1060 Token * endmarker_var;
1061 if (
1062 (_literal = _PyPegen_expect_token(p, 7)) // token='('
1063 &&
1064 (a = type_expressions_rule(p), 1) // type_expressions?
1065 &&
1066 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
1067 &&
1068 (_literal_2 = _PyPegen_expect_token(p, 51)) // token='->'
1069 &&
1070 (b = expression_rule(p)) // expression
1071 &&
1072 (_loop0_2_var = _loop0_2_rule(p)) // NEWLINE*
1073 &&
1074 (endmarker_var = _PyPegen_expect_token(p, ENDMARKER)) // token='ENDMARKER'
1075 )
1076 {
1077 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 +02001078 _res = _PyAST_FunctionType ( a , b , p -> arena );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001079 if (_res == NULL && PyErr_Occurred()) {
1080 p->error_indicator = 1;
1081 D(p->level--);
1082 return NULL;
1083 }
1084 goto done;
1085 }
1086 p->mark = _mark;
1087 D(fprintf(stderr, "%*c%s func_type[%d-%d]: %s failed!\n", p->level, ' ',
1088 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' type_expressions? ')' '->' expression NEWLINE* $"));
1089 }
1090 _res = NULL;
1091 done:
1092 D(p->level--);
1093 return _res;
1094}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +00001095
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001096// fstring: star_expressions
1097static expr_ty
1098fstring_rule(Parser *p)
1099{
1100 D(p->level++);
1101 if (p->error_indicator) {
1102 D(p->level--);
1103 return NULL;
1104 }
1105 expr_ty _res = NULL;
1106 int _mark = p->mark;
1107 { // star_expressions
1108 if (p->error_indicator) {
1109 D(p->level--);
1110 return NULL;
1111 }
1112 D(fprintf(stderr, "%*c> fstring[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
1113 expr_ty star_expressions_var;
1114 if (
1115 (star_expressions_var = star_expressions_rule(p)) // star_expressions
1116 )
1117 {
1118 D(fprintf(stderr, "%*c+ fstring[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
1119 _res = star_expressions_var;
1120 goto done;
1121 }
1122 p->mark = _mark;
1123 D(fprintf(stderr, "%*c%s fstring[%d-%d]: %s failed!\n", p->level, ' ',
1124 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
1125 }
1126 _res = NULL;
1127 done:
1128 D(p->level--);
1129 return _res;
1130}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +00001131
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001132// type_expressions:
1133// | ','.expression+ ',' '*' expression ',' '**' expression
1134// | ','.expression+ ',' '*' expression
1135// | ','.expression+ ',' '**' expression
1136// | '*' expression ',' '**' expression
1137// | '*' expression
1138// | '**' expression
1139// | ','.expression+
Pablo Galindoa5634c42020-09-16 19:42:00 +01001140static asdl_expr_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001141type_expressions_rule(Parser *p)
1142{
1143 D(p->level++);
1144 if (p->error_indicator) {
1145 D(p->level--);
1146 return NULL;
1147 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01001148 asdl_expr_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001149 int _mark = p->mark;
1150 { // ','.expression+ ',' '*' expression ',' '**' expression
1151 if (p->error_indicator) {
1152 D(p->level--);
1153 return NULL;
1154 }
1155 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.expression+ ',' '*' expression ',' '**' expression"));
1156 Token * _literal;
1157 Token * _literal_1;
1158 Token * _literal_2;
1159 Token * _literal_3;
1160 asdl_seq * a;
1161 expr_ty b;
1162 expr_ty c;
1163 if (
1164 (a = _gather_3_rule(p)) // ','.expression+
1165 &&
1166 (_literal = _PyPegen_expect_token(p, 12)) // token=','
1167 &&
1168 (_literal_1 = _PyPegen_expect_token(p, 16)) // token='*'
1169 &&
1170 (b = expression_rule(p)) // expression
1171 &&
1172 (_literal_2 = _PyPegen_expect_token(p, 12)) // token=','
1173 &&
1174 (_literal_3 = _PyPegen_expect_token(p, 35)) // token='**'
1175 &&
1176 (c = expression_rule(p)) // expression
1177 )
1178 {
1179 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 +03001180 _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 +01001181 if (_res == NULL && PyErr_Occurred()) {
1182 p->error_indicator = 1;
1183 D(p->level--);
1184 return NULL;
1185 }
1186 goto done;
1187 }
1188 p->mark = _mark;
1189 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1190 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+ ',' '*' expression ',' '**' expression"));
1191 }
1192 { // ','.expression+ ',' '*' expression
1193 if (p->error_indicator) {
1194 D(p->level--);
1195 return NULL;
1196 }
1197 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.expression+ ',' '*' expression"));
1198 Token * _literal;
1199 Token * _literal_1;
1200 asdl_seq * a;
1201 expr_ty b;
1202 if (
1203 (a = _gather_5_rule(p)) // ','.expression+
1204 &&
1205 (_literal = _PyPegen_expect_token(p, 12)) // token=','
1206 &&
1207 (_literal_1 = _PyPegen_expect_token(p, 16)) // token='*'
1208 &&
1209 (b = expression_rule(p)) // expression
1210 )
1211 {
1212 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 +01001213 _res = ( asdl_expr_seq * ) _PyPegen_seq_append_to_end ( p , a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001214 if (_res == NULL && PyErr_Occurred()) {
1215 p->error_indicator = 1;
1216 D(p->level--);
1217 return NULL;
1218 }
1219 goto done;
1220 }
1221 p->mark = _mark;
1222 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1223 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+ ',' '*' expression"));
1224 }
1225 { // ','.expression+ ',' '**' expression
1226 if (p->error_indicator) {
1227 D(p->level--);
1228 return NULL;
1229 }
1230 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.expression+ ',' '**' expression"));
1231 Token * _literal;
1232 Token * _literal_1;
1233 asdl_seq * a;
1234 expr_ty b;
1235 if (
1236 (a = _gather_7_rule(p)) // ','.expression+
1237 &&
1238 (_literal = _PyPegen_expect_token(p, 12)) // token=','
1239 &&
1240 (_literal_1 = _PyPegen_expect_token(p, 35)) // token='**'
1241 &&
1242 (b = expression_rule(p)) // expression
1243 )
1244 {
1245 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 +01001246 _res = ( asdl_expr_seq * ) _PyPegen_seq_append_to_end ( p , a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001247 if (_res == NULL && PyErr_Occurred()) {
1248 p->error_indicator = 1;
1249 D(p->level--);
1250 return NULL;
1251 }
1252 goto done;
1253 }
1254 p->mark = _mark;
1255 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1256 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+ ',' '**' expression"));
1257 }
1258 { // '*' expression ',' '**' expression
1259 if (p->error_indicator) {
1260 D(p->level--);
1261 return NULL;
1262 }
1263 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' expression ',' '**' expression"));
1264 Token * _literal;
1265 Token * _literal_1;
1266 Token * _literal_2;
1267 expr_ty a;
1268 expr_ty b;
1269 if (
1270 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
1271 &&
1272 (a = expression_rule(p)) // expression
1273 &&
1274 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
1275 &&
1276 (_literal_2 = _PyPegen_expect_token(p, 35)) // token='**'
1277 &&
1278 (b = expression_rule(p)) // expression
1279 )
1280 {
1281 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 +03001282 _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 +01001283 if (_res == NULL && PyErr_Occurred()) {
1284 p->error_indicator = 1;
1285 D(p->level--);
1286 return NULL;
1287 }
1288 goto done;
1289 }
1290 p->mark = _mark;
1291 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1292 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' expression ',' '**' expression"));
1293 }
1294 { // '*' expression
1295 if (p->error_indicator) {
1296 D(p->level--);
1297 return NULL;
1298 }
1299 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' expression"));
1300 Token * _literal;
1301 expr_ty a;
1302 if (
1303 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
1304 &&
1305 (a = expression_rule(p)) // expression
1306 )
1307 {
1308 D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' expression"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001309 _res = ( asdl_expr_seq * ) _PyPegen_singleton_seq ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001310 if (_res == NULL && PyErr_Occurred()) {
1311 p->error_indicator = 1;
1312 D(p->level--);
1313 return NULL;
1314 }
1315 goto done;
1316 }
1317 p->mark = _mark;
1318 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1319 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' expression"));
1320 }
1321 { // '**' expression
1322 if (p->error_indicator) {
1323 D(p->level--);
1324 return NULL;
1325 }
1326 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' expression"));
1327 Token * _literal;
1328 expr_ty a;
1329 if (
1330 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
1331 &&
1332 (a = expression_rule(p)) // expression
1333 )
1334 {
1335 D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' expression"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001336 _res = ( asdl_expr_seq * ) _PyPegen_singleton_seq ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001337 if (_res == NULL && PyErr_Occurred()) {
1338 p->error_indicator = 1;
1339 D(p->level--);
1340 return NULL;
1341 }
1342 goto done;
1343 }
1344 p->mark = _mark;
1345 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1346 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' expression"));
1347 }
1348 { // ','.expression+
1349 if (p->error_indicator) {
1350 D(p->level--);
1351 return NULL;
1352 }
1353 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.expression+"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001354 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001355 if (
Pablo Galindoa5634c42020-09-16 19:42:00 +01001356 (a = (asdl_expr_seq*)_gather_9_rule(p)) // ','.expression+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001357 )
1358 {
1359 D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.expression+"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001360 _res = a;
1361 if (_res == NULL && PyErr_Occurred()) {
1362 p->error_indicator = 1;
1363 D(p->level--);
1364 return NULL;
1365 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001366 goto done;
1367 }
1368 p->mark = _mark;
1369 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1370 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+"));
1371 }
1372 _res = NULL;
1373 done:
1374 D(p->level--);
1375 return _res;
1376}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +00001377
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001378// statements: statement+
Pablo Galindoa5634c42020-09-16 19:42:00 +01001379static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001380statements_rule(Parser *p)
1381{
1382 D(p->level++);
1383 if (p->error_indicator) {
1384 D(p->level--);
1385 return NULL;
1386 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01001387 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001388 int _mark = p->mark;
1389 { // statement+
1390 if (p->error_indicator) {
1391 D(p->level--);
1392 return NULL;
1393 }
1394 D(fprintf(stderr, "%*c> statements[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statement+"));
1395 asdl_seq * a;
1396 if (
1397 (a = _loop1_11_rule(p)) // statement+
1398 )
1399 {
1400 D(fprintf(stderr, "%*c+ statements[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "statement+"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001401 _res = ( asdl_stmt_seq * ) _PyPegen_seq_flatten ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001402 if (_res == NULL && PyErr_Occurred()) {
1403 p->error_indicator = 1;
1404 D(p->level--);
1405 return NULL;
1406 }
1407 goto done;
1408 }
1409 p->mark = _mark;
1410 D(fprintf(stderr, "%*c%s statements[%d-%d]: %s failed!\n", p->level, ' ',
1411 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statement+"));
1412 }
1413 _res = NULL;
1414 done:
1415 D(p->level--);
1416 return _res;
1417}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +00001418
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001419// statement: compound_stmt | simple_stmts
Pablo Galindoa5634c42020-09-16 19:42:00 +01001420static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001421statement_rule(Parser *p)
1422{
1423 D(p->level++);
1424 if (p->error_indicator) {
1425 D(p->level--);
1426 return NULL;
1427 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01001428 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001429 int _mark = p->mark;
1430 { // compound_stmt
1431 if (p->error_indicator) {
1432 D(p->level--);
1433 return NULL;
1434 }
1435 D(fprintf(stderr, "%*c> statement[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "compound_stmt"));
1436 stmt_ty a;
1437 if (
1438 (a = compound_stmt_rule(p)) // compound_stmt
1439 )
1440 {
1441 D(fprintf(stderr, "%*c+ statement[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "compound_stmt"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001442 _res = ( asdl_stmt_seq * ) _PyPegen_singleton_seq ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001443 if (_res == NULL && PyErr_Occurred()) {
1444 p->error_indicator = 1;
1445 D(p->level--);
1446 return NULL;
1447 }
1448 goto done;
1449 }
1450 p->mark = _mark;
1451 D(fprintf(stderr, "%*c%s statement[%d-%d]: %s failed!\n", p->level, ' ',
1452 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "compound_stmt"));
1453 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001454 { // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001455 if (p->error_indicator) {
1456 D(p->level--);
1457 return NULL;
1458 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001459 D(fprintf(stderr, "%*c> statement[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001460 asdl_stmt_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001461 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001462 (a = (asdl_stmt_seq*)simple_stmts_rule(p)) // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001463 )
1464 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001465 D(fprintf(stderr, "%*c+ statement[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001466 _res = a;
1467 if (_res == NULL && PyErr_Occurred()) {
1468 p->error_indicator = 1;
1469 D(p->level--);
1470 return NULL;
1471 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001472 goto done;
1473 }
1474 p->mark = _mark;
1475 D(fprintf(stderr, "%*c%s statement[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001476 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmts"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001477 }
1478 _res = NULL;
1479 done:
1480 D(p->level--);
1481 return _res;
1482}
1483
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001484// statement_newline: compound_stmt NEWLINE | simple_stmts | NEWLINE | $
Pablo Galindoa5634c42020-09-16 19:42:00 +01001485static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001486statement_newline_rule(Parser *p)
1487{
1488 D(p->level++);
1489 if (p->error_indicator) {
1490 D(p->level--);
1491 return NULL;
1492 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01001493 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001494 int _mark = p->mark;
1495 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
1496 p->error_indicator = 1;
1497 D(p->level--);
1498 return NULL;
1499 }
1500 int _start_lineno = p->tokens[_mark]->lineno;
1501 UNUSED(_start_lineno); // Only used by EXTRA macro
1502 int _start_col_offset = p->tokens[_mark]->col_offset;
1503 UNUSED(_start_col_offset); // Only used by EXTRA macro
1504 { // compound_stmt NEWLINE
1505 if (p->error_indicator) {
1506 D(p->level--);
1507 return NULL;
1508 }
1509 D(fprintf(stderr, "%*c> statement_newline[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "compound_stmt NEWLINE"));
1510 stmt_ty a;
1511 Token * newline_var;
1512 if (
1513 (a = compound_stmt_rule(p)) // compound_stmt
1514 &&
1515 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
1516 )
1517 {
1518 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 +01001519 _res = ( asdl_stmt_seq * ) _PyPegen_singleton_seq ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001520 if (_res == NULL && PyErr_Occurred()) {
1521 p->error_indicator = 1;
1522 D(p->level--);
1523 return NULL;
1524 }
1525 goto done;
1526 }
1527 p->mark = _mark;
1528 D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ',
1529 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "compound_stmt NEWLINE"));
1530 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001531 { // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001532 if (p->error_indicator) {
1533 D(p->level--);
1534 return NULL;
1535 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001536 D(fprintf(stderr, "%*c> statement_newline[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
1537 asdl_stmt_seq* simple_stmts_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001538 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001539 (simple_stmts_var = simple_stmts_rule(p)) // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001540 )
1541 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001542 D(fprintf(stderr, "%*c+ statement_newline[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
1543 _res = simple_stmts_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001544 goto done;
1545 }
1546 p->mark = _mark;
1547 D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001548 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmts"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001549 }
1550 { // NEWLINE
1551 if (p->error_indicator) {
1552 D(p->level--);
1553 return NULL;
1554 }
1555 D(fprintf(stderr, "%*c> statement_newline[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
1556 Token * newline_var;
1557 if (
1558 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
1559 )
1560 {
1561 D(fprintf(stderr, "%*c+ statement_newline[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
1562 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1563 if (_token == NULL) {
1564 D(p->level--);
1565 return NULL;
1566 }
1567 int _end_lineno = _token->end_lineno;
1568 UNUSED(_end_lineno); // Only used by EXTRA macro
1569 int _end_col_offset = _token->end_col_offset;
1570 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02001571 _res = ( asdl_stmt_seq * ) _PyPegen_singleton_seq ( p , CHECK ( stmt_ty , _PyAST_Pass ( EXTRA ) ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001572 if (_res == NULL && PyErr_Occurred()) {
1573 p->error_indicator = 1;
1574 D(p->level--);
1575 return NULL;
1576 }
1577 goto done;
1578 }
1579 p->mark = _mark;
1580 D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ',
1581 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
1582 }
1583 { // $
1584 if (p->error_indicator) {
1585 D(p->level--);
1586 return NULL;
1587 }
1588 D(fprintf(stderr, "%*c> statement_newline[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "$"));
1589 Token * endmarker_var;
1590 if (
1591 (endmarker_var = _PyPegen_expect_token(p, ENDMARKER)) // token='ENDMARKER'
1592 )
1593 {
1594 D(fprintf(stderr, "%*c+ statement_newline[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "$"));
1595 _res = _PyPegen_interactive_exit ( p );
1596 if (_res == NULL && PyErr_Occurred()) {
1597 p->error_indicator = 1;
1598 D(p->level--);
1599 return NULL;
1600 }
1601 goto done;
1602 }
1603 p->mark = _mark;
1604 D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ',
1605 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "$"));
1606 }
1607 _res = NULL;
1608 done:
1609 D(p->level--);
1610 return _res;
1611}
1612
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001613// simple_stmts: simple_stmt !';' NEWLINE | ';'.simple_stmt+ ';'? NEWLINE
Pablo Galindoa5634c42020-09-16 19:42:00 +01001614static asdl_stmt_seq*
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001615simple_stmts_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001616{
1617 D(p->level++);
1618 if (p->error_indicator) {
1619 D(p->level--);
1620 return NULL;
1621 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01001622 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001623 int _mark = p->mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001624 { // simple_stmt !';' NEWLINE
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001625 if (p->error_indicator) {
1626 D(p->level--);
1627 return NULL;
1628 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001629 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 +01001630 stmt_ty a;
1631 Token * newline_var;
1632 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001633 (a = simple_stmt_rule(p)) // simple_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001634 &&
1635 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 13) // token=';'
1636 &&
1637 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
1638 )
1639 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001640 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 +01001641 _res = ( asdl_stmt_seq * ) _PyPegen_singleton_seq ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001642 if (_res == NULL && PyErr_Occurred()) {
1643 p->error_indicator = 1;
1644 D(p->level--);
1645 return NULL;
1646 }
1647 goto done;
1648 }
1649 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001650 D(fprintf(stderr, "%*c%s simple_stmts[%d-%d]: %s failed!\n", p->level, ' ',
1651 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmt !';' NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001652 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001653 { // ';'.simple_stmt+ ';'? NEWLINE
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001654 if (p->error_indicator) {
1655 D(p->level--);
1656 return NULL;
1657 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001658 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 +01001659 void *_opt_var;
1660 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +01001661 asdl_stmt_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001662 Token * newline_var;
1663 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001664 (a = (asdl_stmt_seq*)_gather_12_rule(p)) // ';'.simple_stmt+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001665 &&
1666 (_opt_var = _PyPegen_expect_token(p, 13), 1) // ';'?
1667 &&
1668 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
1669 )
1670 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001671 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 +01001672 _res = a;
1673 if (_res == NULL && PyErr_Occurred()) {
1674 p->error_indicator = 1;
1675 D(p->level--);
1676 return NULL;
1677 }
1678 goto done;
1679 }
1680 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001681 D(fprintf(stderr, "%*c%s simple_stmts[%d-%d]: %s failed!\n", p->level, ' ',
1682 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "';'.simple_stmt+ ';'? NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001683 }
1684 _res = NULL;
1685 done:
1686 D(p->level--);
1687 return _res;
1688}
1689
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001690// simple_stmt:
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001691// | assignment
1692// | star_expressions
1693// | &'return' return_stmt
1694// | &('import' | 'from') import_stmt
1695// | &'raise' raise_stmt
1696// | 'pass'
1697// | &'del' del_stmt
1698// | &'yield' yield_stmt
1699// | &'assert' assert_stmt
1700// | 'break'
1701// | 'continue'
1702// | &'global' global_stmt
1703// | &'nonlocal' nonlocal_stmt
1704static stmt_ty
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001705simple_stmt_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001706{
1707 D(p->level++);
1708 if (p->error_indicator) {
1709 D(p->level--);
1710 return NULL;
1711 }
1712 stmt_ty _res = NULL;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001713 if (_PyPegen_is_memoized(p, simple_stmt_type, &_res)) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001714 D(p->level--);
1715 return _res;
1716 }
1717 int _mark = p->mark;
1718 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
1719 p->error_indicator = 1;
1720 D(p->level--);
1721 return NULL;
1722 }
1723 int _start_lineno = p->tokens[_mark]->lineno;
1724 UNUSED(_start_lineno); // Only used by EXTRA macro
1725 int _start_col_offset = p->tokens[_mark]->col_offset;
1726 UNUSED(_start_col_offset); // Only used by EXTRA macro
1727 { // assignment
1728 if (p->error_indicator) {
1729 D(p->level--);
1730 return NULL;
1731 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001732 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "assignment"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001733 stmt_ty assignment_var;
1734 if (
1735 (assignment_var = assignment_rule(p)) // assignment
1736 )
1737 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001738 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "assignment"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001739 _res = assignment_var;
1740 goto done;
1741 }
1742 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001743 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001744 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "assignment"));
1745 }
1746 { // star_expressions
1747 if (p->error_indicator) {
1748 D(p->level--);
1749 return NULL;
1750 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001751 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001752 expr_ty e;
1753 if (
1754 (e = star_expressions_rule(p)) // star_expressions
1755 )
1756 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001757 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 +01001758 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1759 if (_token == NULL) {
1760 D(p->level--);
1761 return NULL;
1762 }
1763 int _end_lineno = _token->end_lineno;
1764 UNUSED(_end_lineno); // Only used by EXTRA macro
1765 int _end_col_offset = _token->end_col_offset;
1766 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02001767 _res = _PyAST_Expr ( e , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001768 if (_res == NULL && PyErr_Occurred()) {
1769 p->error_indicator = 1;
1770 D(p->level--);
1771 return NULL;
1772 }
1773 goto done;
1774 }
1775 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001776 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001777 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
1778 }
1779 { // &'return' return_stmt
1780 if (p->error_indicator) {
1781 D(p->level--);
1782 return NULL;
1783 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001784 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 +01001785 stmt_ty return_stmt_var;
1786 if (
1787 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 500) // token='return'
1788 &&
1789 (return_stmt_var = return_stmt_rule(p)) // return_stmt
1790 )
1791 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001792 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 +01001793 _res = return_stmt_var;
1794 goto done;
1795 }
1796 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001797 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001798 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'return' return_stmt"));
1799 }
1800 { // &('import' | 'from') import_stmt
1801 if (p->error_indicator) {
1802 D(p->level--);
1803 return NULL;
1804 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001805 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 +01001806 stmt_ty import_stmt_var;
1807 if (
1808 _PyPegen_lookahead(1, _tmp_14_rule, p)
1809 &&
1810 (import_stmt_var = import_stmt_rule(p)) // import_stmt
1811 )
1812 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001813 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 +01001814 _res = import_stmt_var;
1815 goto done;
1816 }
1817 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001818 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001819 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('import' | 'from') import_stmt"));
1820 }
1821 { // &'raise' raise_stmt
1822 if (p->error_indicator) {
1823 D(p->level--);
1824 return NULL;
1825 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001826 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 +01001827 stmt_ty raise_stmt_var;
1828 if (
1829 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 501) // token='raise'
1830 &&
1831 (raise_stmt_var = raise_stmt_rule(p)) // raise_stmt
1832 )
1833 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001834 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 +01001835 _res = raise_stmt_var;
1836 goto done;
1837 }
1838 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001839 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001840 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'raise' raise_stmt"));
1841 }
1842 { // 'pass'
1843 if (p->error_indicator) {
1844 D(p->level--);
1845 return NULL;
1846 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001847 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'pass'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001848 Token * _keyword;
1849 if (
1850 (_keyword = _PyPegen_expect_token(p, 502)) // token='pass'
1851 )
1852 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001853 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'pass'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001854 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1855 if (_token == NULL) {
1856 D(p->level--);
1857 return NULL;
1858 }
1859 int _end_lineno = _token->end_lineno;
1860 UNUSED(_end_lineno); // Only used by EXTRA macro
1861 int _end_col_offset = _token->end_col_offset;
1862 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02001863 _res = _PyAST_Pass ( EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001864 if (_res == NULL && PyErr_Occurred()) {
1865 p->error_indicator = 1;
1866 D(p->level--);
1867 return NULL;
1868 }
1869 goto done;
1870 }
1871 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001872 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001873 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'pass'"));
1874 }
1875 { // &'del' del_stmt
1876 if (p->error_indicator) {
1877 D(p->level--);
1878 return NULL;
1879 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001880 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 +01001881 stmt_ty del_stmt_var;
1882 if (
1883 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 503) // token='del'
1884 &&
1885 (del_stmt_var = del_stmt_rule(p)) // del_stmt
1886 )
1887 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001888 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 +01001889 _res = del_stmt_var;
1890 goto done;
1891 }
1892 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001893 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001894 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'del' del_stmt"));
1895 }
1896 { // &'yield' yield_stmt
1897 if (p->error_indicator) {
1898 D(p->level--);
1899 return NULL;
1900 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001901 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 +01001902 stmt_ty yield_stmt_var;
1903 if (
1904 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 504) // token='yield'
1905 &&
1906 (yield_stmt_var = yield_stmt_rule(p)) // yield_stmt
1907 )
1908 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001909 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 +01001910 _res = yield_stmt_var;
1911 goto done;
1912 }
1913 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001914 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001915 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'yield' yield_stmt"));
1916 }
1917 { // &'assert' assert_stmt
1918 if (p->error_indicator) {
1919 D(p->level--);
1920 return NULL;
1921 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001922 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 +01001923 stmt_ty assert_stmt_var;
1924 if (
1925 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 505) // token='assert'
1926 &&
1927 (assert_stmt_var = assert_stmt_rule(p)) // assert_stmt
1928 )
1929 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001930 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 +01001931 _res = assert_stmt_var;
1932 goto done;
1933 }
1934 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001935 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001936 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'assert' assert_stmt"));
1937 }
1938 { // 'break'
1939 if (p->error_indicator) {
1940 D(p->level--);
1941 return NULL;
1942 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001943 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'break'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001944 Token * _keyword;
1945 if (
1946 (_keyword = _PyPegen_expect_token(p, 506)) // token='break'
1947 )
1948 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001949 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'break'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001950 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1951 if (_token == NULL) {
1952 D(p->level--);
1953 return NULL;
1954 }
1955 int _end_lineno = _token->end_lineno;
1956 UNUSED(_end_lineno); // Only used by EXTRA macro
1957 int _end_col_offset = _token->end_col_offset;
1958 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02001959 _res = _PyAST_Break ( EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001960 if (_res == NULL && PyErr_Occurred()) {
1961 p->error_indicator = 1;
1962 D(p->level--);
1963 return NULL;
1964 }
1965 goto done;
1966 }
1967 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001968 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001969 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'break'"));
1970 }
1971 { // 'continue'
1972 if (p->error_indicator) {
1973 D(p->level--);
1974 return NULL;
1975 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001976 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'continue'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001977 Token * _keyword;
1978 if (
1979 (_keyword = _PyPegen_expect_token(p, 507)) // token='continue'
1980 )
1981 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001982 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'continue'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001983 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1984 if (_token == NULL) {
1985 D(p->level--);
1986 return NULL;
1987 }
1988 int _end_lineno = _token->end_lineno;
1989 UNUSED(_end_lineno); // Only used by EXTRA macro
1990 int _end_col_offset = _token->end_col_offset;
1991 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02001992 _res = _PyAST_Continue ( EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001993 if (_res == NULL && PyErr_Occurred()) {
1994 p->error_indicator = 1;
1995 D(p->level--);
1996 return NULL;
1997 }
1998 goto done;
1999 }
2000 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00002001 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002002 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'continue'"));
2003 }
2004 { // &'global' global_stmt
2005 if (p->error_indicator) {
2006 D(p->level--);
2007 return NULL;
2008 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00002009 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 +01002010 stmt_ty global_stmt_var;
2011 if (
2012 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 508) // token='global'
2013 &&
2014 (global_stmt_var = global_stmt_rule(p)) // global_stmt
2015 )
2016 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00002017 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 +01002018 _res = global_stmt_var;
2019 goto done;
2020 }
2021 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00002022 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002023 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'global' global_stmt"));
2024 }
2025 { // &'nonlocal' nonlocal_stmt
2026 if (p->error_indicator) {
2027 D(p->level--);
2028 return NULL;
2029 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00002030 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 +01002031 stmt_ty nonlocal_stmt_var;
2032 if (
2033 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 509) // token='nonlocal'
2034 &&
2035 (nonlocal_stmt_var = nonlocal_stmt_rule(p)) // nonlocal_stmt
2036 )
2037 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00002038 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 +01002039 _res = nonlocal_stmt_var;
2040 goto done;
2041 }
2042 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00002043 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002044 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'nonlocal' nonlocal_stmt"));
2045 }
2046 _res = NULL;
2047 done:
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00002048 _PyPegen_insert_memo(p, _mark, simple_stmt_type, _res);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002049 D(p->level--);
2050 return _res;
2051}
2052
2053// compound_stmt:
2054// | &('def' | '@' | ASYNC) function_def
2055// | &'if' if_stmt
2056// | &('class' | '@') class_def
2057// | &('with' | ASYNC) with_stmt
2058// | &('for' | ASYNC) for_stmt
2059// | &'try' try_stmt
2060// | &'while' while_stmt
Brandt Bucher145bf262021-02-26 14:51:55 -08002061// | match_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002062static stmt_ty
2063compound_stmt_rule(Parser *p)
2064{
2065 D(p->level++);
2066 if (p->error_indicator) {
2067 D(p->level--);
2068 return NULL;
2069 }
2070 stmt_ty _res = NULL;
2071 int _mark = p->mark;
2072 { // &('def' | '@' | ASYNC) function_def
2073 if (p->error_indicator) {
2074 D(p->level--);
2075 return NULL;
2076 }
2077 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('def' | '@' | ASYNC) function_def"));
2078 stmt_ty function_def_var;
2079 if (
2080 _PyPegen_lookahead(1, _tmp_15_rule, p)
2081 &&
2082 (function_def_var = function_def_rule(p)) // function_def
2083 )
2084 {
2085 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('def' | '@' | ASYNC) function_def"));
2086 _res = function_def_var;
2087 goto done;
2088 }
2089 p->mark = _mark;
2090 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2091 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('def' | '@' | ASYNC) function_def"));
2092 }
2093 { // &'if' if_stmt
2094 if (p->error_indicator) {
2095 D(p->level--);
2096 return NULL;
2097 }
2098 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'if' if_stmt"));
2099 stmt_ty if_stmt_var;
2100 if (
2101 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 510) // token='if'
2102 &&
2103 (if_stmt_var = if_stmt_rule(p)) // if_stmt
2104 )
2105 {
2106 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'if' if_stmt"));
2107 _res = if_stmt_var;
2108 goto done;
2109 }
2110 p->mark = _mark;
2111 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2112 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'if' if_stmt"));
2113 }
2114 { // &('class' | '@') class_def
2115 if (p->error_indicator) {
2116 D(p->level--);
2117 return NULL;
2118 }
2119 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('class' | '@') class_def"));
2120 stmt_ty class_def_var;
2121 if (
2122 _PyPegen_lookahead(1, _tmp_16_rule, p)
2123 &&
2124 (class_def_var = class_def_rule(p)) // class_def
2125 )
2126 {
2127 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('class' | '@') class_def"));
2128 _res = class_def_var;
2129 goto done;
2130 }
2131 p->mark = _mark;
2132 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2133 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('class' | '@') class_def"));
2134 }
2135 { // &('with' | ASYNC) with_stmt
2136 if (p->error_indicator) {
2137 D(p->level--);
2138 return NULL;
2139 }
2140 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('with' | ASYNC) with_stmt"));
2141 stmt_ty with_stmt_var;
2142 if (
2143 _PyPegen_lookahead(1, _tmp_17_rule, p)
2144 &&
2145 (with_stmt_var = with_stmt_rule(p)) // with_stmt
2146 )
2147 {
2148 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('with' | ASYNC) with_stmt"));
2149 _res = with_stmt_var;
2150 goto done;
2151 }
2152 p->mark = _mark;
2153 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2154 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('with' | ASYNC) with_stmt"));
2155 }
2156 { // &('for' | ASYNC) for_stmt
2157 if (p->error_indicator) {
2158 D(p->level--);
2159 return NULL;
2160 }
2161 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('for' | ASYNC) for_stmt"));
2162 stmt_ty for_stmt_var;
2163 if (
2164 _PyPegen_lookahead(1, _tmp_18_rule, p)
2165 &&
2166 (for_stmt_var = for_stmt_rule(p)) // for_stmt
2167 )
2168 {
2169 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('for' | ASYNC) for_stmt"));
2170 _res = for_stmt_var;
2171 goto done;
2172 }
2173 p->mark = _mark;
2174 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2175 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('for' | ASYNC) for_stmt"));
2176 }
2177 { // &'try' try_stmt
2178 if (p->error_indicator) {
2179 D(p->level--);
2180 return NULL;
2181 }
2182 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'try' try_stmt"));
2183 stmt_ty try_stmt_var;
2184 if (
2185 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 511) // token='try'
2186 &&
2187 (try_stmt_var = try_stmt_rule(p)) // try_stmt
2188 )
2189 {
2190 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'try' try_stmt"));
2191 _res = try_stmt_var;
2192 goto done;
2193 }
2194 p->mark = _mark;
2195 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2196 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'try' try_stmt"));
2197 }
2198 { // &'while' while_stmt
2199 if (p->error_indicator) {
2200 D(p->level--);
2201 return NULL;
2202 }
2203 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'while' while_stmt"));
2204 stmt_ty while_stmt_var;
2205 if (
2206 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 512) // token='while'
2207 &&
2208 (while_stmt_var = while_stmt_rule(p)) // while_stmt
2209 )
2210 {
2211 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'while' while_stmt"));
2212 _res = while_stmt_var;
2213 goto done;
2214 }
2215 p->mark = _mark;
2216 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2217 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'while' while_stmt"));
2218 }
Brandt Bucher145bf262021-02-26 14:51:55 -08002219 { // match_stmt
2220 if (p->error_indicator) {
2221 D(p->level--);
2222 return NULL;
2223 }
2224 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "match_stmt"));
2225 stmt_ty match_stmt_var;
2226 if (
2227 (match_stmt_var = match_stmt_rule(p)) // match_stmt
2228 )
2229 {
2230 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "match_stmt"));
2231 _res = match_stmt_var;
2232 goto done;
2233 }
2234 p->mark = _mark;
2235 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2236 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "match_stmt"));
2237 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002238 _res = NULL;
2239 done:
2240 D(p->level--);
2241 return _res;
2242}
2243
2244// assignment:
2245// | NAME ':' expression ['=' annotated_rhs]
2246// | ('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]
2247// | ((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002248// | single_target augassign ~ (yield_expr | star_expressions)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002249// | invalid_assignment
2250static stmt_ty
2251assignment_rule(Parser *p)
2252{
2253 D(p->level++);
2254 if (p->error_indicator) {
2255 D(p->level--);
2256 return NULL;
2257 }
2258 stmt_ty _res = NULL;
2259 int _mark = p->mark;
2260 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2261 p->error_indicator = 1;
2262 D(p->level--);
2263 return NULL;
2264 }
2265 int _start_lineno = p->tokens[_mark]->lineno;
2266 UNUSED(_start_lineno); // Only used by EXTRA macro
2267 int _start_col_offset = p->tokens[_mark]->col_offset;
2268 UNUSED(_start_col_offset); // Only used by EXTRA macro
2269 { // NAME ':' expression ['=' annotated_rhs]
2270 if (p->error_indicator) {
2271 D(p->level--);
2272 return NULL;
2273 }
2274 D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME ':' expression ['=' annotated_rhs]"));
2275 Token * _literal;
2276 expr_ty a;
2277 expr_ty b;
2278 void *c;
2279 if (
2280 (a = _PyPegen_name_token(p)) // NAME
2281 &&
2282 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
2283 &&
2284 (b = expression_rule(p)) // expression
2285 &&
2286 (c = _tmp_19_rule(p), 1) // ['=' annotated_rhs]
2287 )
2288 {
2289 D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME ':' expression ['=' annotated_rhs]"));
2290 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2291 if (_token == NULL) {
2292 D(p->level--);
2293 return NULL;
2294 }
2295 int _end_lineno = _token->end_lineno;
2296 UNUSED(_end_lineno); // Only used by EXTRA macro
2297 int _end_col_offset = _token->end_col_offset;
2298 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02002299 _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 +01002300 if (_res == NULL && PyErr_Occurred()) {
2301 p->error_indicator = 1;
2302 D(p->level--);
2303 return NULL;
2304 }
2305 goto done;
2306 }
2307 p->mark = _mark;
2308 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
2309 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME ':' expression ['=' annotated_rhs]"));
2310 }
2311 { // ('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]
2312 if (p->error_indicator) {
2313 D(p->level--);
2314 return NULL;
2315 }
2316 D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]"));
2317 Token * _literal;
2318 void *a;
2319 expr_ty b;
2320 void *c;
2321 if (
2322 (a = _tmp_20_rule(p)) // '(' single_target ')' | single_subscript_attribute_target
2323 &&
2324 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
2325 &&
2326 (b = expression_rule(p)) // expression
2327 &&
2328 (c = _tmp_21_rule(p), 1) // ['=' annotated_rhs]
2329 )
2330 {
2331 D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]"));
2332 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2333 if (_token == NULL) {
2334 D(p->level--);
2335 return NULL;
2336 }
2337 int _end_lineno = _token->end_lineno;
2338 UNUSED(_end_lineno); // Only used by EXTRA macro
2339 int _end_col_offset = _token->end_col_offset;
2340 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02002341 _res = CHECK_VERSION ( stmt_ty , 6 , "Variable annotations syntax is" , _PyAST_AnnAssign ( a , b , c , 0 , EXTRA ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002342 if (_res == NULL && PyErr_Occurred()) {
2343 p->error_indicator = 1;
2344 D(p->level--);
2345 return NULL;
2346 }
2347 goto done;
2348 }
2349 p->mark = _mark;
2350 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
2351 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]"));
2352 }
2353 { // ((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?
2354 if (p->error_indicator) {
2355 D(p->level--);
2356 return NULL;
2357 }
2358 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 +01002359 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002360 void *b;
2361 void *tc;
2362 if (
Pablo Galindoa5634c42020-09-16 19:42:00 +01002363 (a = (asdl_expr_seq*)_loop1_22_rule(p)) // ((star_targets '='))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002364 &&
2365 (b = _tmp_23_rule(p)) // yield_expr | star_expressions
2366 &&
2367 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 22) // token='='
2368 &&
2369 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
2370 )
2371 {
2372 D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?"));
2373 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2374 if (_token == NULL) {
2375 D(p->level--);
2376 return NULL;
2377 }
2378 int _end_lineno = _token->end_lineno;
2379 UNUSED(_end_lineno); // Only used by EXTRA macro
2380 int _end_col_offset = _token->end_col_offset;
2381 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02002382 _res = _PyAST_Assign ( a , b , NEW_TYPE_COMMENT ( p , tc ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002383 if (_res == NULL && PyErr_Occurred()) {
2384 p->error_indicator = 1;
2385 D(p->level--);
2386 return NULL;
2387 }
2388 goto done;
2389 }
2390 p->mark = _mark;
2391 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
2392 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?"));
2393 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002394 { // single_target augassign ~ (yield_expr | star_expressions)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002395 if (p->error_indicator) {
2396 D(p->level--);
2397 return NULL;
2398 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002399 D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "single_target augassign ~ (yield_expr | star_expressions)"));
2400 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002401 expr_ty a;
2402 AugOperator* b;
2403 void *c;
2404 if (
2405 (a = single_target_rule(p)) // single_target
2406 &&
2407 (b = augassign_rule(p)) // augassign
2408 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002409 (_cut_var = 1)
2410 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002411 (c = _tmp_24_rule(p)) // yield_expr | star_expressions
2412 )
2413 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002414 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 +01002415 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2416 if (_token == NULL) {
2417 D(p->level--);
2418 return NULL;
2419 }
2420 int _end_lineno = _token->end_lineno;
2421 UNUSED(_end_lineno); // Only used by EXTRA macro
2422 int _end_col_offset = _token->end_col_offset;
2423 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02002424 _res = _PyAST_AugAssign ( a , b -> kind , c , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002425 if (_res == NULL && PyErr_Occurred()) {
2426 p->error_indicator = 1;
2427 D(p->level--);
2428 return NULL;
2429 }
2430 goto done;
2431 }
2432 p->mark = _mark;
2433 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002434 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "single_target augassign ~ (yield_expr | star_expressions)"));
2435 if (_cut_var) {
2436 D(p->level--);
2437 return NULL;
2438 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002439 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02002440 if (p->call_invalid_rules) { // invalid_assignment
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002441 if (p->error_indicator) {
2442 D(p->level--);
2443 return NULL;
2444 }
2445 D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_assignment"));
2446 void *invalid_assignment_var;
2447 if (
2448 (invalid_assignment_var = invalid_assignment_rule(p)) // invalid_assignment
2449 )
2450 {
2451 D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_assignment"));
2452 _res = invalid_assignment_var;
2453 goto done;
2454 }
2455 p->mark = _mark;
2456 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
2457 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_assignment"));
2458 }
2459 _res = NULL;
2460 done:
2461 D(p->level--);
2462 return _res;
2463}
2464
2465// augassign:
2466// | '+='
2467// | '-='
2468// | '*='
2469// | '@='
2470// | '/='
2471// | '%='
2472// | '&='
2473// | '|='
2474// | '^='
2475// | '<<='
2476// | '>>='
2477// | '**='
2478// | '//='
2479static AugOperator*
2480augassign_rule(Parser *p)
2481{
2482 D(p->level++);
2483 if (p->error_indicator) {
2484 D(p->level--);
2485 return NULL;
2486 }
2487 AugOperator* _res = NULL;
2488 int _mark = p->mark;
2489 { // '+='
2490 if (p->error_indicator) {
2491 D(p->level--);
2492 return NULL;
2493 }
2494 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'+='"));
2495 Token * _literal;
2496 if (
2497 (_literal = _PyPegen_expect_token(p, 36)) // token='+='
2498 )
2499 {
2500 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'+='"));
2501 _res = _PyPegen_augoperator ( p , Add );
2502 if (_res == NULL && PyErr_Occurred()) {
2503 p->error_indicator = 1;
2504 D(p->level--);
2505 return NULL;
2506 }
2507 goto done;
2508 }
2509 p->mark = _mark;
2510 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2511 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'+='"));
2512 }
2513 { // '-='
2514 if (p->error_indicator) {
2515 D(p->level--);
2516 return NULL;
2517 }
2518 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-='"));
2519 Token * _literal;
2520 if (
2521 (_literal = _PyPegen_expect_token(p, 37)) // token='-='
2522 )
2523 {
2524 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-='"));
2525 _res = _PyPegen_augoperator ( p , Sub );
2526 if (_res == NULL && PyErr_Occurred()) {
2527 p->error_indicator = 1;
2528 D(p->level--);
2529 return NULL;
2530 }
2531 goto done;
2532 }
2533 p->mark = _mark;
2534 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2535 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-='"));
2536 }
2537 { // '*='
2538 if (p->error_indicator) {
2539 D(p->level--);
2540 return NULL;
2541 }
2542 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*='"));
2543 Token * _literal;
2544 if (
2545 (_literal = _PyPegen_expect_token(p, 38)) // token='*='
2546 )
2547 {
2548 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*='"));
2549 _res = _PyPegen_augoperator ( p , Mult );
2550 if (_res == NULL && PyErr_Occurred()) {
2551 p->error_indicator = 1;
2552 D(p->level--);
2553 return NULL;
2554 }
2555 goto done;
2556 }
2557 p->mark = _mark;
2558 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2559 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*='"));
2560 }
2561 { // '@='
2562 if (p->error_indicator) {
2563 D(p->level--);
2564 return NULL;
2565 }
2566 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@='"));
2567 Token * _literal;
2568 if (
2569 (_literal = _PyPegen_expect_token(p, 50)) // token='@='
2570 )
2571 {
2572 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@='"));
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03002573 _res = CHECK_VERSION ( AugOperator * , 5 , "The '@' operator is" , _PyPegen_augoperator ( p , MatMult ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002574 if (_res == NULL && PyErr_Occurred()) {
2575 p->error_indicator = 1;
2576 D(p->level--);
2577 return NULL;
2578 }
2579 goto done;
2580 }
2581 p->mark = _mark;
2582 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2583 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@='"));
2584 }
2585 { // '/='
2586 if (p->error_indicator) {
2587 D(p->level--);
2588 return NULL;
2589 }
2590 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'/='"));
2591 Token * _literal;
2592 if (
2593 (_literal = _PyPegen_expect_token(p, 39)) // token='/='
2594 )
2595 {
2596 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'/='"));
2597 _res = _PyPegen_augoperator ( p , Div );
2598 if (_res == NULL && PyErr_Occurred()) {
2599 p->error_indicator = 1;
2600 D(p->level--);
2601 return NULL;
2602 }
2603 goto done;
2604 }
2605 p->mark = _mark;
2606 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2607 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'/='"));
2608 }
2609 { // '%='
2610 if (p->error_indicator) {
2611 D(p->level--);
2612 return NULL;
2613 }
2614 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'%='"));
2615 Token * _literal;
2616 if (
2617 (_literal = _PyPegen_expect_token(p, 40)) // token='%='
2618 )
2619 {
2620 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'%='"));
2621 _res = _PyPegen_augoperator ( p , Mod );
2622 if (_res == NULL && PyErr_Occurred()) {
2623 p->error_indicator = 1;
2624 D(p->level--);
2625 return NULL;
2626 }
2627 goto done;
2628 }
2629 p->mark = _mark;
2630 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2631 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'%='"));
2632 }
2633 { // '&='
2634 if (p->error_indicator) {
2635 D(p->level--);
2636 return NULL;
2637 }
2638 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'&='"));
2639 Token * _literal;
2640 if (
2641 (_literal = _PyPegen_expect_token(p, 41)) // token='&='
2642 )
2643 {
2644 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'&='"));
2645 _res = _PyPegen_augoperator ( p , BitAnd );
2646 if (_res == NULL && PyErr_Occurred()) {
2647 p->error_indicator = 1;
2648 D(p->level--);
2649 return NULL;
2650 }
2651 goto done;
2652 }
2653 p->mark = _mark;
2654 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2655 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'&='"));
2656 }
2657 { // '|='
2658 if (p->error_indicator) {
2659 D(p->level--);
2660 return NULL;
2661 }
2662 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'|='"));
2663 Token * _literal;
2664 if (
2665 (_literal = _PyPegen_expect_token(p, 42)) // token='|='
2666 )
2667 {
2668 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'|='"));
2669 _res = _PyPegen_augoperator ( p , BitOr );
2670 if (_res == NULL && PyErr_Occurred()) {
2671 p->error_indicator = 1;
2672 D(p->level--);
2673 return NULL;
2674 }
2675 goto done;
2676 }
2677 p->mark = _mark;
2678 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2679 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'|='"));
2680 }
2681 { // '^='
2682 if (p->error_indicator) {
2683 D(p->level--);
2684 return NULL;
2685 }
2686 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'^='"));
2687 Token * _literal;
2688 if (
2689 (_literal = _PyPegen_expect_token(p, 43)) // token='^='
2690 )
2691 {
2692 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'^='"));
2693 _res = _PyPegen_augoperator ( p , BitXor );
2694 if (_res == NULL && PyErr_Occurred()) {
2695 p->error_indicator = 1;
2696 D(p->level--);
2697 return NULL;
2698 }
2699 goto done;
2700 }
2701 p->mark = _mark;
2702 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2703 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'^='"));
2704 }
2705 { // '<<='
2706 if (p->error_indicator) {
2707 D(p->level--);
2708 return NULL;
2709 }
2710 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'<<='"));
2711 Token * _literal;
2712 if (
2713 (_literal = _PyPegen_expect_token(p, 44)) // token='<<='
2714 )
2715 {
2716 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'<<='"));
2717 _res = _PyPegen_augoperator ( p , LShift );
2718 if (_res == NULL && PyErr_Occurred()) {
2719 p->error_indicator = 1;
2720 D(p->level--);
2721 return NULL;
2722 }
2723 goto done;
2724 }
2725 p->mark = _mark;
2726 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2727 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'<<='"));
2728 }
2729 { // '>>='
2730 if (p->error_indicator) {
2731 D(p->level--);
2732 return NULL;
2733 }
2734 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'>>='"));
2735 Token * _literal;
2736 if (
2737 (_literal = _PyPegen_expect_token(p, 45)) // token='>>='
2738 )
2739 {
2740 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'>>='"));
2741 _res = _PyPegen_augoperator ( p , RShift );
2742 if (_res == NULL && PyErr_Occurred()) {
2743 p->error_indicator = 1;
2744 D(p->level--);
2745 return NULL;
2746 }
2747 goto done;
2748 }
2749 p->mark = _mark;
2750 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2751 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'>>='"));
2752 }
2753 { // '**='
2754 if (p->error_indicator) {
2755 D(p->level--);
2756 return NULL;
2757 }
2758 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**='"));
2759 Token * _literal;
2760 if (
2761 (_literal = _PyPegen_expect_token(p, 46)) // token='**='
2762 )
2763 {
2764 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**='"));
2765 _res = _PyPegen_augoperator ( p , Pow );
2766 if (_res == NULL && PyErr_Occurred()) {
2767 p->error_indicator = 1;
2768 D(p->level--);
2769 return NULL;
2770 }
2771 goto done;
2772 }
2773 p->mark = _mark;
2774 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2775 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**='"));
2776 }
2777 { // '//='
2778 if (p->error_indicator) {
2779 D(p->level--);
2780 return NULL;
2781 }
2782 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'//='"));
2783 Token * _literal;
2784 if (
2785 (_literal = _PyPegen_expect_token(p, 48)) // token='//='
2786 )
2787 {
2788 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'//='"));
2789 _res = _PyPegen_augoperator ( p , FloorDiv );
2790 if (_res == NULL && PyErr_Occurred()) {
2791 p->error_indicator = 1;
2792 D(p->level--);
2793 return NULL;
2794 }
2795 goto done;
2796 }
2797 p->mark = _mark;
2798 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2799 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'//='"));
2800 }
2801 _res = NULL;
2802 done:
2803 D(p->level--);
2804 return _res;
2805}
2806
2807// global_stmt: 'global' ','.NAME+
2808static stmt_ty
2809global_stmt_rule(Parser *p)
2810{
2811 D(p->level++);
2812 if (p->error_indicator) {
2813 D(p->level--);
2814 return NULL;
2815 }
2816 stmt_ty _res = NULL;
2817 int _mark = p->mark;
2818 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2819 p->error_indicator = 1;
2820 D(p->level--);
2821 return NULL;
2822 }
2823 int _start_lineno = p->tokens[_mark]->lineno;
2824 UNUSED(_start_lineno); // Only used by EXTRA macro
2825 int _start_col_offset = p->tokens[_mark]->col_offset;
2826 UNUSED(_start_col_offset); // Only used by EXTRA macro
2827 { // 'global' ','.NAME+
2828 if (p->error_indicator) {
2829 D(p->level--);
2830 return NULL;
2831 }
2832 D(fprintf(stderr, "%*c> global_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'global' ','.NAME+"));
2833 Token * _keyword;
Pablo Galindoa5634c42020-09-16 19:42:00 +01002834 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002835 if (
2836 (_keyword = _PyPegen_expect_token(p, 508)) // token='global'
2837 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01002838 (a = (asdl_expr_seq*)_gather_25_rule(p)) // ','.NAME+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002839 )
2840 {
2841 D(fprintf(stderr, "%*c+ global_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'global' ','.NAME+"));
2842 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2843 if (_token == NULL) {
2844 D(p->level--);
2845 return NULL;
2846 }
2847 int _end_lineno = _token->end_lineno;
2848 UNUSED(_end_lineno); // Only used by EXTRA macro
2849 int _end_col_offset = _token->end_col_offset;
2850 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02002851 _res = _PyAST_Global ( CHECK ( asdl_identifier_seq * , _PyPegen_map_names_to_ids ( p , a ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002852 if (_res == NULL && PyErr_Occurred()) {
2853 p->error_indicator = 1;
2854 D(p->level--);
2855 return NULL;
2856 }
2857 goto done;
2858 }
2859 p->mark = _mark;
2860 D(fprintf(stderr, "%*c%s global_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2861 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'global' ','.NAME+"));
2862 }
2863 _res = NULL;
2864 done:
2865 D(p->level--);
2866 return _res;
2867}
2868
2869// nonlocal_stmt: 'nonlocal' ','.NAME+
2870static stmt_ty
2871nonlocal_stmt_rule(Parser *p)
2872{
2873 D(p->level++);
2874 if (p->error_indicator) {
2875 D(p->level--);
2876 return NULL;
2877 }
2878 stmt_ty _res = NULL;
2879 int _mark = p->mark;
2880 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2881 p->error_indicator = 1;
2882 D(p->level--);
2883 return NULL;
2884 }
2885 int _start_lineno = p->tokens[_mark]->lineno;
2886 UNUSED(_start_lineno); // Only used by EXTRA macro
2887 int _start_col_offset = p->tokens[_mark]->col_offset;
2888 UNUSED(_start_col_offset); // Only used by EXTRA macro
2889 { // 'nonlocal' ','.NAME+
2890 if (p->error_indicator) {
2891 D(p->level--);
2892 return NULL;
2893 }
2894 D(fprintf(stderr, "%*c> nonlocal_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'nonlocal' ','.NAME+"));
2895 Token * _keyword;
Pablo Galindoa5634c42020-09-16 19:42:00 +01002896 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002897 if (
2898 (_keyword = _PyPegen_expect_token(p, 509)) // token='nonlocal'
2899 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01002900 (a = (asdl_expr_seq*)_gather_27_rule(p)) // ','.NAME+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002901 )
2902 {
2903 D(fprintf(stderr, "%*c+ nonlocal_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'nonlocal' ','.NAME+"));
2904 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2905 if (_token == NULL) {
2906 D(p->level--);
2907 return NULL;
2908 }
2909 int _end_lineno = _token->end_lineno;
2910 UNUSED(_end_lineno); // Only used by EXTRA macro
2911 int _end_col_offset = _token->end_col_offset;
2912 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02002913 _res = _PyAST_Nonlocal ( CHECK ( asdl_identifier_seq * , _PyPegen_map_names_to_ids ( p , a ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002914 if (_res == NULL && PyErr_Occurred()) {
2915 p->error_indicator = 1;
2916 D(p->level--);
2917 return NULL;
2918 }
2919 goto done;
2920 }
2921 p->mark = _mark;
2922 D(fprintf(stderr, "%*c%s nonlocal_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2923 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'nonlocal' ','.NAME+"));
2924 }
2925 _res = NULL;
2926 done:
2927 D(p->level--);
2928 return _res;
2929}
2930
2931// yield_stmt: yield_expr
2932static stmt_ty
2933yield_stmt_rule(Parser *p)
2934{
2935 D(p->level++);
2936 if (p->error_indicator) {
2937 D(p->level--);
2938 return NULL;
2939 }
2940 stmt_ty _res = NULL;
2941 int _mark = p->mark;
2942 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2943 p->error_indicator = 1;
2944 D(p->level--);
2945 return NULL;
2946 }
2947 int _start_lineno = p->tokens[_mark]->lineno;
2948 UNUSED(_start_lineno); // Only used by EXTRA macro
2949 int _start_col_offset = p->tokens[_mark]->col_offset;
2950 UNUSED(_start_col_offset); // Only used by EXTRA macro
2951 { // yield_expr
2952 if (p->error_indicator) {
2953 D(p->level--);
2954 return NULL;
2955 }
2956 D(fprintf(stderr, "%*c> yield_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
2957 expr_ty y;
2958 if (
2959 (y = yield_expr_rule(p)) // yield_expr
2960 )
2961 {
2962 D(fprintf(stderr, "%*c+ yield_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
2963 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2964 if (_token == NULL) {
2965 D(p->level--);
2966 return NULL;
2967 }
2968 int _end_lineno = _token->end_lineno;
2969 UNUSED(_end_lineno); // Only used by EXTRA macro
2970 int _end_col_offset = _token->end_col_offset;
2971 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02002972 _res = _PyAST_Expr ( y , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002973 if (_res == NULL && PyErr_Occurred()) {
2974 p->error_indicator = 1;
2975 D(p->level--);
2976 return NULL;
2977 }
2978 goto done;
2979 }
2980 p->mark = _mark;
2981 D(fprintf(stderr, "%*c%s yield_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2982 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
2983 }
2984 _res = NULL;
2985 done:
2986 D(p->level--);
2987 return _res;
2988}
2989
2990// assert_stmt: 'assert' expression [',' expression]
2991static stmt_ty
2992assert_stmt_rule(Parser *p)
2993{
2994 D(p->level++);
2995 if (p->error_indicator) {
2996 D(p->level--);
2997 return NULL;
2998 }
2999 stmt_ty _res = NULL;
3000 int _mark = p->mark;
3001 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3002 p->error_indicator = 1;
3003 D(p->level--);
3004 return NULL;
3005 }
3006 int _start_lineno = p->tokens[_mark]->lineno;
3007 UNUSED(_start_lineno); // Only used by EXTRA macro
3008 int _start_col_offset = p->tokens[_mark]->col_offset;
3009 UNUSED(_start_col_offset); // Only used by EXTRA macro
3010 { // 'assert' expression [',' expression]
3011 if (p->error_indicator) {
3012 D(p->level--);
3013 return NULL;
3014 }
3015 D(fprintf(stderr, "%*c> assert_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'assert' expression [',' expression]"));
3016 Token * _keyword;
3017 expr_ty a;
3018 void *b;
3019 if (
3020 (_keyword = _PyPegen_expect_token(p, 505)) // token='assert'
3021 &&
3022 (a = expression_rule(p)) // expression
3023 &&
3024 (b = _tmp_29_rule(p), 1) // [',' expression]
3025 )
3026 {
3027 D(fprintf(stderr, "%*c+ assert_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'assert' expression [',' expression]"));
3028 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3029 if (_token == NULL) {
3030 D(p->level--);
3031 return NULL;
3032 }
3033 int _end_lineno = _token->end_lineno;
3034 UNUSED(_end_lineno); // Only used by EXTRA macro
3035 int _end_col_offset = _token->end_col_offset;
3036 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02003037 _res = _PyAST_Assert ( a , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003038 if (_res == NULL && PyErr_Occurred()) {
3039 p->error_indicator = 1;
3040 D(p->level--);
3041 return NULL;
3042 }
3043 goto done;
3044 }
3045 p->mark = _mark;
3046 D(fprintf(stderr, "%*c%s assert_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3047 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'assert' expression [',' expression]"));
3048 }
3049 _res = NULL;
3050 done:
3051 D(p->level--);
3052 return _res;
3053}
3054
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003055// del_stmt: 'del' del_targets &(';' | NEWLINE) | invalid_del_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003056static stmt_ty
3057del_stmt_rule(Parser *p)
3058{
3059 D(p->level++);
3060 if (p->error_indicator) {
3061 D(p->level--);
3062 return NULL;
3063 }
3064 stmt_ty _res = NULL;
3065 int _mark = p->mark;
3066 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3067 p->error_indicator = 1;
3068 D(p->level--);
3069 return NULL;
3070 }
3071 int _start_lineno = p->tokens[_mark]->lineno;
3072 UNUSED(_start_lineno); // Only used by EXTRA macro
3073 int _start_col_offset = p->tokens[_mark]->col_offset;
3074 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003075 { // 'del' del_targets &(';' | NEWLINE)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003076 if (p->error_indicator) {
3077 D(p->level--);
3078 return NULL;
3079 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003080 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 +01003081 Token * _keyword;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003082 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003083 if (
3084 (_keyword = _PyPegen_expect_token(p, 503)) // token='del'
3085 &&
3086 (a = del_targets_rule(p)) // del_targets
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003087 &&
3088 _PyPegen_lookahead(1, _tmp_30_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003089 )
3090 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003091 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 +01003092 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3093 if (_token == NULL) {
3094 D(p->level--);
3095 return NULL;
3096 }
3097 int _end_lineno = _token->end_lineno;
3098 UNUSED(_end_lineno); // Only used by EXTRA macro
3099 int _end_col_offset = _token->end_col_offset;
3100 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02003101 _res = _PyAST_Delete ( a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003102 if (_res == NULL && PyErr_Occurred()) {
3103 p->error_indicator = 1;
3104 D(p->level--);
3105 return NULL;
3106 }
3107 goto done;
3108 }
3109 p->mark = _mark;
3110 D(fprintf(stderr, "%*c%s del_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003111 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'del' del_targets &(';' | NEWLINE)"));
3112 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02003113 if (p->call_invalid_rules) { // invalid_del_stmt
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003114 if (p->error_indicator) {
3115 D(p->level--);
3116 return NULL;
3117 }
3118 D(fprintf(stderr, "%*c> del_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_del_stmt"));
3119 void *invalid_del_stmt_var;
3120 if (
3121 (invalid_del_stmt_var = invalid_del_stmt_rule(p)) // invalid_del_stmt
3122 )
3123 {
3124 D(fprintf(stderr, "%*c+ del_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_del_stmt"));
3125 _res = invalid_del_stmt_var;
3126 goto done;
3127 }
3128 p->mark = _mark;
3129 D(fprintf(stderr, "%*c%s del_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3130 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_del_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003131 }
3132 _res = NULL;
3133 done:
3134 D(p->level--);
3135 return _res;
3136}
3137
3138// import_stmt: import_name | import_from
3139static stmt_ty
3140import_stmt_rule(Parser *p)
3141{
3142 D(p->level++);
3143 if (p->error_indicator) {
3144 D(p->level--);
3145 return NULL;
3146 }
3147 stmt_ty _res = NULL;
3148 int _mark = p->mark;
3149 { // import_name
3150 if (p->error_indicator) {
3151 D(p->level--);
3152 return NULL;
3153 }
3154 D(fprintf(stderr, "%*c> import_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "import_name"));
3155 stmt_ty import_name_var;
3156 if (
3157 (import_name_var = import_name_rule(p)) // import_name
3158 )
3159 {
3160 D(fprintf(stderr, "%*c+ import_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "import_name"));
3161 _res = import_name_var;
3162 goto done;
3163 }
3164 p->mark = _mark;
3165 D(fprintf(stderr, "%*c%s import_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3166 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_name"));
3167 }
3168 { // import_from
3169 if (p->error_indicator) {
3170 D(p->level--);
3171 return NULL;
3172 }
3173 D(fprintf(stderr, "%*c> import_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "import_from"));
3174 stmt_ty import_from_var;
3175 if (
3176 (import_from_var = import_from_rule(p)) // import_from
3177 )
3178 {
3179 D(fprintf(stderr, "%*c+ import_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "import_from"));
3180 _res = import_from_var;
3181 goto done;
3182 }
3183 p->mark = _mark;
3184 D(fprintf(stderr, "%*c%s import_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3185 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from"));
3186 }
3187 _res = NULL;
3188 done:
3189 D(p->level--);
3190 return _res;
3191}
3192
3193// import_name: 'import' dotted_as_names
3194static stmt_ty
3195import_name_rule(Parser *p)
3196{
3197 D(p->level++);
3198 if (p->error_indicator) {
3199 D(p->level--);
3200 return NULL;
3201 }
3202 stmt_ty _res = NULL;
3203 int _mark = p->mark;
3204 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3205 p->error_indicator = 1;
3206 D(p->level--);
3207 return NULL;
3208 }
3209 int _start_lineno = p->tokens[_mark]->lineno;
3210 UNUSED(_start_lineno); // Only used by EXTRA macro
3211 int _start_col_offset = p->tokens[_mark]->col_offset;
3212 UNUSED(_start_col_offset); // Only used by EXTRA macro
3213 { // 'import' dotted_as_names
3214 if (p->error_indicator) {
3215 D(p->level--);
3216 return NULL;
3217 }
3218 D(fprintf(stderr, "%*c> import_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'import' dotted_as_names"));
3219 Token * _keyword;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003220 asdl_alias_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003221 if (
3222 (_keyword = _PyPegen_expect_token(p, 513)) // token='import'
3223 &&
3224 (a = dotted_as_names_rule(p)) // dotted_as_names
3225 )
3226 {
3227 D(fprintf(stderr, "%*c+ import_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'import' dotted_as_names"));
3228 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3229 if (_token == NULL) {
3230 D(p->level--);
3231 return NULL;
3232 }
3233 int _end_lineno = _token->end_lineno;
3234 UNUSED(_end_lineno); // Only used by EXTRA macro
3235 int _end_col_offset = _token->end_col_offset;
3236 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02003237 _res = _PyAST_Import ( a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003238 if (_res == NULL && PyErr_Occurred()) {
3239 p->error_indicator = 1;
3240 D(p->level--);
3241 return NULL;
3242 }
3243 goto done;
3244 }
3245 p->mark = _mark;
3246 D(fprintf(stderr, "%*c%s import_name[%d-%d]: %s failed!\n", p->level, ' ',
3247 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'import' dotted_as_names"));
3248 }
3249 _res = NULL;
3250 done:
3251 D(p->level--);
3252 return _res;
3253}
3254
3255// import_from:
3256// | 'from' (('.' | '...'))* dotted_name 'import' import_from_targets
3257// | 'from' (('.' | '...'))+ 'import' import_from_targets
3258static stmt_ty
3259import_from_rule(Parser *p)
3260{
3261 D(p->level++);
3262 if (p->error_indicator) {
3263 D(p->level--);
3264 return NULL;
3265 }
3266 stmt_ty _res = NULL;
3267 int _mark = p->mark;
3268 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3269 p->error_indicator = 1;
3270 D(p->level--);
3271 return NULL;
3272 }
3273 int _start_lineno = p->tokens[_mark]->lineno;
3274 UNUSED(_start_lineno); // Only used by EXTRA macro
3275 int _start_col_offset = p->tokens[_mark]->col_offset;
3276 UNUSED(_start_col_offset); // Only used by EXTRA macro
3277 { // 'from' (('.' | '...'))* dotted_name 'import' import_from_targets
3278 if (p->error_indicator) {
3279 D(p->level--);
3280 return NULL;
3281 }
3282 D(fprintf(stderr, "%*c> import_from[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from' (('.' | '...'))* dotted_name 'import' import_from_targets"));
3283 Token * _keyword;
3284 Token * _keyword_1;
3285 asdl_seq * a;
3286 expr_ty b;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003287 asdl_alias_seq* c;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003288 if (
3289 (_keyword = _PyPegen_expect_token(p, 514)) // token='from'
3290 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003291 (a = _loop0_31_rule(p)) // (('.' | '...'))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003292 &&
3293 (b = dotted_name_rule(p)) // dotted_name
3294 &&
3295 (_keyword_1 = _PyPegen_expect_token(p, 513)) // token='import'
3296 &&
3297 (c = import_from_targets_rule(p)) // import_from_targets
3298 )
3299 {
3300 D(fprintf(stderr, "%*c+ import_from[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'from' (('.' | '...'))* dotted_name 'import' import_from_targets"));
3301 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3302 if (_token == NULL) {
3303 D(p->level--);
3304 return NULL;
3305 }
3306 int _end_lineno = _token->end_lineno;
3307 UNUSED(_end_lineno); // Only used by EXTRA macro
3308 int _end_col_offset = _token->end_col_offset;
3309 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02003310 _res = _PyAST_ImportFrom ( b -> v . Name . id , c , _PyPegen_seq_count_dots ( a ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003311 if (_res == NULL && PyErr_Occurred()) {
3312 p->error_indicator = 1;
3313 D(p->level--);
3314 return NULL;
3315 }
3316 goto done;
3317 }
3318 p->mark = _mark;
3319 D(fprintf(stderr, "%*c%s import_from[%d-%d]: %s failed!\n", p->level, ' ',
3320 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from' (('.' | '...'))* dotted_name 'import' import_from_targets"));
3321 }
3322 { // 'from' (('.' | '...'))+ 'import' import_from_targets
3323 if (p->error_indicator) {
3324 D(p->level--);
3325 return NULL;
3326 }
3327 D(fprintf(stderr, "%*c> import_from[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from' (('.' | '...'))+ 'import' import_from_targets"));
3328 Token * _keyword;
3329 Token * _keyword_1;
3330 asdl_seq * a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003331 asdl_alias_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003332 if (
3333 (_keyword = _PyPegen_expect_token(p, 514)) // token='from'
3334 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003335 (a = _loop1_32_rule(p)) // (('.' | '...'))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003336 &&
3337 (_keyword_1 = _PyPegen_expect_token(p, 513)) // token='import'
3338 &&
3339 (b = import_from_targets_rule(p)) // import_from_targets
3340 )
3341 {
3342 D(fprintf(stderr, "%*c+ import_from[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'from' (('.' | '...'))+ 'import' import_from_targets"));
3343 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3344 if (_token == NULL) {
3345 D(p->level--);
3346 return NULL;
3347 }
3348 int _end_lineno = _token->end_lineno;
3349 UNUSED(_end_lineno); // Only used by EXTRA macro
3350 int _end_col_offset = _token->end_col_offset;
3351 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02003352 _res = _PyAST_ImportFrom ( NULL , b , _PyPegen_seq_count_dots ( a ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003353 if (_res == NULL && PyErr_Occurred()) {
3354 p->error_indicator = 1;
3355 D(p->level--);
3356 return NULL;
3357 }
3358 goto done;
3359 }
3360 p->mark = _mark;
3361 D(fprintf(stderr, "%*c%s import_from[%d-%d]: %s failed!\n", p->level, ' ',
3362 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from' (('.' | '...'))+ 'import' import_from_targets"));
3363 }
3364 _res = NULL;
3365 done:
3366 D(p->level--);
3367 return _res;
3368}
3369
3370// import_from_targets:
3371// | '(' import_from_as_names ','? ')'
3372// | import_from_as_names !','
3373// | '*'
3374// | invalid_import_from_targets
Pablo Galindoa5634c42020-09-16 19:42:00 +01003375static asdl_alias_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003376import_from_targets_rule(Parser *p)
3377{
3378 D(p->level++);
3379 if (p->error_indicator) {
3380 D(p->level--);
3381 return NULL;
3382 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01003383 asdl_alias_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003384 int _mark = p->mark;
Matthew Suozzo75a06f02021-04-10 16:56:28 -04003385 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3386 p->error_indicator = 1;
3387 D(p->level--);
3388 return NULL;
3389 }
3390 int _start_lineno = p->tokens[_mark]->lineno;
3391 UNUSED(_start_lineno); // Only used by EXTRA macro
3392 int _start_col_offset = p->tokens[_mark]->col_offset;
3393 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003394 { // '(' import_from_as_names ','? ')'
3395 if (p->error_indicator) {
3396 D(p->level--);
3397 return NULL;
3398 }
3399 D(fprintf(stderr, "%*c> import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' import_from_as_names ','? ')'"));
3400 Token * _literal;
3401 Token * _literal_1;
3402 void *_opt_var;
3403 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +01003404 asdl_alias_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003405 if (
3406 (_literal = _PyPegen_expect_token(p, 7)) // token='('
3407 &&
3408 (a = import_from_as_names_rule(p)) // import_from_as_names
3409 &&
3410 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
3411 &&
3412 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
3413 )
3414 {
3415 D(fprintf(stderr, "%*c+ import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' import_from_as_names ','? ')'"));
3416 _res = a;
3417 if (_res == NULL && PyErr_Occurred()) {
3418 p->error_indicator = 1;
3419 D(p->level--);
3420 return NULL;
3421 }
3422 goto done;
3423 }
3424 p->mark = _mark;
3425 D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
3426 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' import_from_as_names ','? ')'"));
3427 }
3428 { // import_from_as_names !','
3429 if (p->error_indicator) {
3430 D(p->level--);
3431 return NULL;
3432 }
3433 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 +01003434 asdl_alias_seq* import_from_as_names_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003435 if (
3436 (import_from_as_names_var = import_from_as_names_rule(p)) // import_from_as_names
3437 &&
3438 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 12) // token=','
3439 )
3440 {
3441 D(fprintf(stderr, "%*c+ import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "import_from_as_names !','"));
3442 _res = import_from_as_names_var;
3443 goto done;
3444 }
3445 p->mark = _mark;
3446 D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
3447 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from_as_names !','"));
3448 }
3449 { // '*'
3450 if (p->error_indicator) {
3451 D(p->level--);
3452 return NULL;
3453 }
3454 D(fprintf(stderr, "%*c> import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*'"));
3455 Token * _literal;
3456 if (
3457 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
3458 )
3459 {
3460 D(fprintf(stderr, "%*c+ import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*'"));
Matthew Suozzo75a06f02021-04-10 16:56:28 -04003461 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3462 if (_token == NULL) {
3463 D(p->level--);
3464 return NULL;
3465 }
3466 int _end_lineno = _token->end_lineno;
3467 UNUSED(_end_lineno); // Only used by EXTRA macro
3468 int _end_col_offset = _token->end_col_offset;
3469 UNUSED(_end_col_offset); // Only used by EXTRA macro
3470 _res = ( asdl_alias_seq * ) _PyPegen_singleton_seq ( p , CHECK ( alias_ty , _PyPegen_alias_for_star ( p , EXTRA ) ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003471 if (_res == NULL && PyErr_Occurred()) {
3472 p->error_indicator = 1;
3473 D(p->level--);
3474 return NULL;
3475 }
3476 goto done;
3477 }
3478 p->mark = _mark;
3479 D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
3480 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*'"));
3481 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02003482 if (p->call_invalid_rules) { // invalid_import_from_targets
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003483 if (p->error_indicator) {
3484 D(p->level--);
3485 return NULL;
3486 }
3487 D(fprintf(stderr, "%*c> import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_import_from_targets"));
3488 void *invalid_import_from_targets_var;
3489 if (
3490 (invalid_import_from_targets_var = invalid_import_from_targets_rule(p)) // invalid_import_from_targets
3491 )
3492 {
3493 D(fprintf(stderr, "%*c+ import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_import_from_targets"));
3494 _res = invalid_import_from_targets_var;
3495 goto done;
3496 }
3497 p->mark = _mark;
3498 D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
3499 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_import_from_targets"));
3500 }
3501 _res = NULL;
3502 done:
3503 D(p->level--);
3504 return _res;
3505}
3506
3507// import_from_as_names: ','.import_from_as_name+
Pablo Galindoa5634c42020-09-16 19:42:00 +01003508static asdl_alias_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003509import_from_as_names_rule(Parser *p)
3510{
3511 D(p->level++);
3512 if (p->error_indicator) {
3513 D(p->level--);
3514 return NULL;
3515 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01003516 asdl_alias_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003517 int _mark = p->mark;
3518 { // ','.import_from_as_name+
3519 if (p->error_indicator) {
3520 D(p->level--);
3521 return NULL;
3522 }
3523 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 +01003524 asdl_alias_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003525 if (
Pablo Galindoa5634c42020-09-16 19:42:00 +01003526 (a = (asdl_alias_seq*)_gather_33_rule(p)) // ','.import_from_as_name+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003527 )
3528 {
3529 D(fprintf(stderr, "%*c+ import_from_as_names[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.import_from_as_name+"));
3530 _res = a;
3531 if (_res == NULL && PyErr_Occurred()) {
3532 p->error_indicator = 1;
3533 D(p->level--);
3534 return NULL;
3535 }
3536 goto done;
3537 }
3538 p->mark = _mark;
3539 D(fprintf(stderr, "%*c%s import_from_as_names[%d-%d]: %s failed!\n", p->level, ' ',
3540 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.import_from_as_name+"));
3541 }
3542 _res = NULL;
3543 done:
3544 D(p->level--);
3545 return _res;
3546}
3547
3548// import_from_as_name: NAME ['as' NAME]
3549static alias_ty
3550import_from_as_name_rule(Parser *p)
3551{
3552 D(p->level++);
3553 if (p->error_indicator) {
3554 D(p->level--);
3555 return NULL;
3556 }
3557 alias_ty _res = NULL;
3558 int _mark = p->mark;
Matthew Suozzo75a06f02021-04-10 16:56:28 -04003559 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3560 p->error_indicator = 1;
3561 D(p->level--);
3562 return NULL;
3563 }
3564 int _start_lineno = p->tokens[_mark]->lineno;
3565 UNUSED(_start_lineno); // Only used by EXTRA macro
3566 int _start_col_offset = p->tokens[_mark]->col_offset;
3567 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003568 { // NAME ['as' NAME]
3569 if (p->error_indicator) {
3570 D(p->level--);
3571 return NULL;
3572 }
3573 D(fprintf(stderr, "%*c> import_from_as_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME ['as' NAME]"));
3574 expr_ty a;
3575 void *b;
3576 if (
3577 (a = _PyPegen_name_token(p)) // NAME
3578 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003579 (b = _tmp_35_rule(p), 1) // ['as' NAME]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003580 )
3581 {
3582 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 -04003583 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3584 if (_token == NULL) {
3585 D(p->level--);
3586 return NULL;
3587 }
3588 int _end_lineno = _token->end_lineno;
3589 UNUSED(_end_lineno); // Only used by EXTRA macro
3590 int _end_col_offset = _token->end_col_offset;
3591 UNUSED(_end_col_offset); // Only used by EXTRA macro
3592 _res = _PyAST_alias ( a -> v . Name . id , ( b ) ? ( ( expr_ty ) b ) -> v . Name . id : NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003593 if (_res == NULL && PyErr_Occurred()) {
3594 p->error_indicator = 1;
3595 D(p->level--);
3596 return NULL;
3597 }
3598 goto done;
3599 }
3600 p->mark = _mark;
3601 D(fprintf(stderr, "%*c%s import_from_as_name[%d-%d]: %s failed!\n", p->level, ' ',
3602 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME ['as' NAME]"));
3603 }
3604 _res = NULL;
3605 done:
3606 D(p->level--);
3607 return _res;
3608}
3609
3610// dotted_as_names: ','.dotted_as_name+
Pablo Galindoa5634c42020-09-16 19:42:00 +01003611static asdl_alias_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003612dotted_as_names_rule(Parser *p)
3613{
3614 D(p->level++);
3615 if (p->error_indicator) {
3616 D(p->level--);
3617 return NULL;
3618 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01003619 asdl_alias_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003620 int _mark = p->mark;
3621 { // ','.dotted_as_name+
3622 if (p->error_indicator) {
3623 D(p->level--);
3624 return NULL;
3625 }
3626 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 +01003627 asdl_alias_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003628 if (
Pablo Galindoa5634c42020-09-16 19:42:00 +01003629 (a = (asdl_alias_seq*)_gather_36_rule(p)) // ','.dotted_as_name+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003630 )
3631 {
3632 D(fprintf(stderr, "%*c+ dotted_as_names[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.dotted_as_name+"));
3633 _res = a;
3634 if (_res == NULL && PyErr_Occurred()) {
3635 p->error_indicator = 1;
3636 D(p->level--);
3637 return NULL;
3638 }
3639 goto done;
3640 }
3641 p->mark = _mark;
3642 D(fprintf(stderr, "%*c%s dotted_as_names[%d-%d]: %s failed!\n", p->level, ' ',
3643 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.dotted_as_name+"));
3644 }
3645 _res = NULL;
3646 done:
3647 D(p->level--);
3648 return _res;
3649}
3650
3651// dotted_as_name: dotted_name ['as' NAME]
3652static alias_ty
3653dotted_as_name_rule(Parser *p)
3654{
3655 D(p->level++);
3656 if (p->error_indicator) {
3657 D(p->level--);
3658 return NULL;
3659 }
3660 alias_ty _res = NULL;
3661 int _mark = p->mark;
Matthew Suozzo75a06f02021-04-10 16:56:28 -04003662 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3663 p->error_indicator = 1;
3664 D(p->level--);
3665 return NULL;
3666 }
3667 int _start_lineno = p->tokens[_mark]->lineno;
3668 UNUSED(_start_lineno); // Only used by EXTRA macro
3669 int _start_col_offset = p->tokens[_mark]->col_offset;
3670 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003671 { // dotted_name ['as' NAME]
3672 if (p->error_indicator) {
3673 D(p->level--);
3674 return NULL;
3675 }
3676 D(fprintf(stderr, "%*c> dotted_as_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dotted_name ['as' NAME]"));
3677 expr_ty a;
3678 void *b;
3679 if (
3680 (a = dotted_name_rule(p)) // dotted_name
3681 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003682 (b = _tmp_38_rule(p), 1) // ['as' NAME]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003683 )
3684 {
3685 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 -04003686 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3687 if (_token == NULL) {
3688 D(p->level--);
3689 return NULL;
3690 }
3691 int _end_lineno = _token->end_lineno;
3692 UNUSED(_end_lineno); // Only used by EXTRA macro
3693 int _end_col_offset = _token->end_col_offset;
3694 UNUSED(_end_col_offset); // Only used by EXTRA macro
3695 _res = _PyAST_alias ( a -> v . Name . id , ( b ) ? ( ( expr_ty ) b ) -> v . Name . id : NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003696 if (_res == NULL && PyErr_Occurred()) {
3697 p->error_indicator = 1;
3698 D(p->level--);
3699 return NULL;
3700 }
3701 goto done;
3702 }
3703 p->mark = _mark;
3704 D(fprintf(stderr, "%*c%s dotted_as_name[%d-%d]: %s failed!\n", p->level, ' ',
3705 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dotted_name ['as' NAME]"));
3706 }
3707 _res = NULL;
3708 done:
3709 D(p->level--);
3710 return _res;
3711}
3712
3713// Left-recursive
3714// dotted_name: dotted_name '.' NAME | NAME
3715static expr_ty dotted_name_raw(Parser *);
3716static expr_ty
3717dotted_name_rule(Parser *p)
3718{
3719 D(p->level++);
3720 expr_ty _res = NULL;
3721 if (_PyPegen_is_memoized(p, dotted_name_type, &_res)) {
3722 D(p->level--);
3723 return _res;
3724 }
3725 int _mark = p->mark;
3726 int _resmark = p->mark;
3727 while (1) {
3728 int tmpvar_0 = _PyPegen_update_memo(p, _mark, dotted_name_type, _res);
3729 if (tmpvar_0) {
3730 D(p->level--);
3731 return _res;
3732 }
3733 p->mark = _mark;
3734 void *_raw = dotted_name_raw(p);
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +02003735 if (p->error_indicator)
3736 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003737 if (_raw == NULL || p->mark <= _resmark)
3738 break;
3739 _resmark = p->mark;
3740 _res = _raw;
3741 }
3742 p->mark = _resmark;
3743 D(p->level--);
3744 return _res;
3745}
3746static expr_ty
3747dotted_name_raw(Parser *p)
3748{
3749 D(p->level++);
3750 if (p->error_indicator) {
3751 D(p->level--);
3752 return NULL;
3753 }
3754 expr_ty _res = NULL;
3755 int _mark = p->mark;
3756 { // dotted_name '.' NAME
3757 if (p->error_indicator) {
3758 D(p->level--);
3759 return NULL;
3760 }
3761 D(fprintf(stderr, "%*c> dotted_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dotted_name '.' NAME"));
3762 Token * _literal;
3763 expr_ty a;
3764 expr_ty b;
3765 if (
3766 (a = dotted_name_rule(p)) // dotted_name
3767 &&
3768 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
3769 &&
3770 (b = _PyPegen_name_token(p)) // NAME
3771 )
3772 {
3773 D(fprintf(stderr, "%*c+ dotted_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dotted_name '.' NAME"));
3774 _res = _PyPegen_join_names_with_dot ( p , a , b );
3775 if (_res == NULL && PyErr_Occurred()) {
3776 p->error_indicator = 1;
3777 D(p->level--);
3778 return NULL;
3779 }
3780 goto done;
3781 }
3782 p->mark = _mark;
3783 D(fprintf(stderr, "%*c%s dotted_name[%d-%d]: %s failed!\n", p->level, ' ',
3784 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dotted_name '.' NAME"));
3785 }
3786 { // 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, "NAME"));
3792 expr_ty name_var;
3793 if (
3794 (name_var = _PyPegen_name_token(p)) // NAME
3795 )
3796 {
3797 D(fprintf(stderr, "%*c+ dotted_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
3798 _res = name_var;
3799 goto done;
3800 }
3801 p->mark = _mark;
3802 D(fprintf(stderr, "%*c%s dotted_name[%d-%d]: %s failed!\n", p->level, ' ',
3803 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
3804 }
3805 _res = NULL;
3806 done:
3807 D(p->level--);
3808 return _res;
3809}
3810
3811// if_stmt:
Pablo Galindo56c95df2021-04-21 15:28:21 +01003812// | invalid_if_stmt
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003813// | 'if' named_expression ':' block elif_stmt
3814// | 'if' named_expression ':' block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003815static stmt_ty
3816if_stmt_rule(Parser *p)
3817{
3818 D(p->level++);
3819 if (p->error_indicator) {
3820 D(p->level--);
3821 return NULL;
3822 }
3823 stmt_ty _res = NULL;
3824 int _mark = p->mark;
3825 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3826 p->error_indicator = 1;
3827 D(p->level--);
3828 return NULL;
3829 }
3830 int _start_lineno = p->tokens[_mark]->lineno;
3831 UNUSED(_start_lineno); // Only used by EXTRA macro
3832 int _start_col_offset = p->tokens[_mark]->col_offset;
3833 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo56c95df2021-04-21 15:28:21 +01003834 if (p->call_invalid_rules) { // invalid_if_stmt
3835 if (p->error_indicator) {
3836 D(p->level--);
3837 return NULL;
3838 }
3839 D(fprintf(stderr, "%*c> if_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_if_stmt"));
3840 void *invalid_if_stmt_var;
3841 if (
3842 (invalid_if_stmt_var = invalid_if_stmt_rule(p)) // invalid_if_stmt
3843 )
3844 {
3845 D(fprintf(stderr, "%*c+ if_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_if_stmt"));
3846 _res = invalid_if_stmt_var;
3847 goto done;
3848 }
3849 p->mark = _mark;
3850 D(fprintf(stderr, "%*c%s if_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3851 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_if_stmt"));
3852 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003853 { // 'if' named_expression ':' block elif_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003854 if (p->error_indicator) {
3855 D(p->level--);
3856 return NULL;
3857 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003858 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 +01003859 Token * _keyword;
3860 Token * _literal;
3861 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003862 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003863 stmt_ty c;
3864 if (
3865 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
3866 &&
3867 (a = named_expression_rule(p)) // named_expression
3868 &&
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003869 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003870 &&
3871 (b = block_rule(p)) // block
3872 &&
3873 (c = elif_stmt_rule(p)) // elif_stmt
3874 )
3875 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003876 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 +01003877 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3878 if (_token == NULL) {
3879 D(p->level--);
3880 return NULL;
3881 }
3882 int _end_lineno = _token->end_lineno;
3883 UNUSED(_end_lineno); // Only used by EXTRA macro
3884 int _end_col_offset = _token->end_col_offset;
3885 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02003886 _res = _PyAST_If ( a , b , CHECK ( asdl_stmt_seq * , _PyPegen_singleton_seq ( p , c ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003887 if (_res == NULL && PyErr_Occurred()) {
3888 p->error_indicator = 1;
3889 D(p->level--);
3890 return NULL;
3891 }
3892 goto done;
3893 }
3894 p->mark = _mark;
3895 D(fprintf(stderr, "%*c%s if_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003896 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' named_expression ':' block elif_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003897 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003898 { // 'if' named_expression ':' block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003899 if (p->error_indicator) {
3900 D(p->level--);
3901 return NULL;
3902 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003903 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 +01003904 Token * _keyword;
3905 Token * _literal;
3906 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003907 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003908 void *c;
3909 if (
3910 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
3911 &&
3912 (a = named_expression_rule(p)) // named_expression
3913 &&
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003914 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003915 &&
3916 (b = block_rule(p)) // block
3917 &&
3918 (c = else_block_rule(p), 1) // else_block?
3919 )
3920 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003921 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 +01003922 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3923 if (_token == NULL) {
3924 D(p->level--);
3925 return NULL;
3926 }
3927 int _end_lineno = _token->end_lineno;
3928 UNUSED(_end_lineno); // Only used by EXTRA macro
3929 int _end_col_offset = _token->end_col_offset;
3930 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02003931 _res = _PyAST_If ( a , b , c , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003932 if (_res == NULL && PyErr_Occurred()) {
3933 p->error_indicator = 1;
3934 D(p->level--);
3935 return NULL;
3936 }
3937 goto done;
3938 }
3939 p->mark = _mark;
3940 D(fprintf(stderr, "%*c%s if_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003941 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' named_expression ':' block else_block?"));
3942 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003943 _res = NULL;
3944 done:
3945 D(p->level--);
3946 return _res;
3947}
3948
3949// elif_stmt:
Pablo Galindo56c95df2021-04-21 15:28:21 +01003950// | invalid_elif_stmt
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003951// | 'elif' named_expression ':' block elif_stmt
3952// | 'elif' named_expression ':' block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003953static stmt_ty
3954elif_stmt_rule(Parser *p)
3955{
3956 D(p->level++);
3957 if (p->error_indicator) {
3958 D(p->level--);
3959 return NULL;
3960 }
3961 stmt_ty _res = NULL;
3962 int _mark = p->mark;
3963 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3964 p->error_indicator = 1;
3965 D(p->level--);
3966 return NULL;
3967 }
3968 int _start_lineno = p->tokens[_mark]->lineno;
3969 UNUSED(_start_lineno); // Only used by EXTRA macro
3970 int _start_col_offset = p->tokens[_mark]->col_offset;
3971 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo56c95df2021-04-21 15:28:21 +01003972 if (p->call_invalid_rules) { // invalid_elif_stmt
3973 if (p->error_indicator) {
3974 D(p->level--);
3975 return NULL;
3976 }
3977 D(fprintf(stderr, "%*c> elif_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_elif_stmt"));
3978 void *invalid_elif_stmt_var;
3979 if (
3980 (invalid_elif_stmt_var = invalid_elif_stmt_rule(p)) // invalid_elif_stmt
3981 )
3982 {
3983 D(fprintf(stderr, "%*c+ elif_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_elif_stmt"));
3984 _res = invalid_elif_stmt_var;
3985 goto done;
3986 }
3987 p->mark = _mark;
3988 D(fprintf(stderr, "%*c%s elif_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3989 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_elif_stmt"));
3990 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003991 { // 'elif' named_expression ':' block elif_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003992 if (p->error_indicator) {
3993 D(p->level--);
3994 return NULL;
3995 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003996 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 +01003997 Token * _keyword;
3998 Token * _literal;
3999 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004000 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004001 stmt_ty c;
4002 if (
4003 (_keyword = _PyPegen_expect_token(p, 515)) // token='elif'
4004 &&
4005 (a = named_expression_rule(p)) // named_expression
4006 &&
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004007 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004008 &&
4009 (b = block_rule(p)) // block
4010 &&
4011 (c = elif_stmt_rule(p)) // elif_stmt
4012 )
4013 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004014 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 +01004015 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4016 if (_token == NULL) {
4017 D(p->level--);
4018 return NULL;
4019 }
4020 int _end_lineno = _token->end_lineno;
4021 UNUSED(_end_lineno); // Only used by EXTRA macro
4022 int _end_col_offset = _token->end_col_offset;
4023 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004024 _res = _PyAST_If ( a , b , CHECK ( asdl_stmt_seq * , _PyPegen_singleton_seq ( p , c ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004025 if (_res == NULL && PyErr_Occurred()) {
4026 p->error_indicator = 1;
4027 D(p->level--);
4028 return NULL;
4029 }
4030 goto done;
4031 }
4032 p->mark = _mark;
4033 D(fprintf(stderr, "%*c%s elif_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004034 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'elif' named_expression ':' block elif_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004035 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004036 { // 'elif' named_expression ':' block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004037 if (p->error_indicator) {
4038 D(p->level--);
4039 return NULL;
4040 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004041 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 +01004042 Token * _keyword;
4043 Token * _literal;
4044 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004045 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004046 void *c;
4047 if (
4048 (_keyword = _PyPegen_expect_token(p, 515)) // token='elif'
4049 &&
4050 (a = named_expression_rule(p)) // named_expression
4051 &&
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004052 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004053 &&
4054 (b = block_rule(p)) // block
4055 &&
4056 (c = else_block_rule(p), 1) // else_block?
4057 )
4058 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004059 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 +01004060 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4061 if (_token == NULL) {
4062 D(p->level--);
4063 return NULL;
4064 }
4065 int _end_lineno = _token->end_lineno;
4066 UNUSED(_end_lineno); // Only used by EXTRA macro
4067 int _end_col_offset = _token->end_col_offset;
4068 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004069 _res = _PyAST_If ( a , b , c , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004070 if (_res == NULL && PyErr_Occurred()) {
4071 p->error_indicator = 1;
4072 D(p->level--);
4073 return NULL;
4074 }
4075 goto done;
4076 }
4077 p->mark = _mark;
4078 D(fprintf(stderr, "%*c%s elif_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004079 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'elif' named_expression ':' block else_block?"));
4080 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004081 _res = NULL;
4082 done:
4083 D(p->level--);
4084 return _res;
4085}
4086
Pablo Galindo56c95df2021-04-21 15:28:21 +01004087// else_block: invalid_else_stmt | 'else' &&':' block
Pablo Galindoa5634c42020-09-16 19:42:00 +01004088static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004089else_block_rule(Parser *p)
4090{
4091 D(p->level++);
4092 if (p->error_indicator) {
4093 D(p->level--);
4094 return NULL;
4095 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01004096 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004097 int _mark = p->mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +01004098 if (p->call_invalid_rules) { // invalid_else_stmt
4099 if (p->error_indicator) {
4100 D(p->level--);
4101 return NULL;
4102 }
4103 D(fprintf(stderr, "%*c> else_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_else_stmt"));
4104 void *invalid_else_stmt_var;
4105 if (
4106 (invalid_else_stmt_var = invalid_else_stmt_rule(p)) // invalid_else_stmt
4107 )
4108 {
4109 D(fprintf(stderr, "%*c+ else_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_else_stmt"));
4110 _res = invalid_else_stmt_var;
4111 goto done;
4112 }
4113 p->mark = _mark;
4114 D(fprintf(stderr, "%*c%s else_block[%d-%d]: %s failed!\n", p->level, ' ',
4115 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_else_stmt"));
4116 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004117 { // 'else' &&':' block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004118 if (p->error_indicator) {
4119 D(p->level--);
4120 return NULL;
4121 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004122 D(fprintf(stderr, "%*c> else_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'else' &&':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004123 Token * _keyword;
4124 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004125 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004126 if (
4127 (_keyword = _PyPegen_expect_token(p, 516)) // token='else'
4128 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00004129 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004130 &&
4131 (b = block_rule(p)) // block
4132 )
4133 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00004134 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 +01004135 _res = b;
4136 if (_res == NULL && PyErr_Occurred()) {
4137 p->error_indicator = 1;
4138 D(p->level--);
4139 return NULL;
4140 }
4141 goto done;
4142 }
4143 p->mark = _mark;
4144 D(fprintf(stderr, "%*c%s else_block[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00004145 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'else' &&':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004146 }
4147 _res = NULL;
4148 done:
4149 D(p->level--);
4150 return _res;
4151}
4152
Pablo Galindo56c95df2021-04-21 15:28:21 +01004153// while_stmt: invalid_while_stmt | 'while' named_expression ':' block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004154static stmt_ty
4155while_stmt_rule(Parser *p)
4156{
4157 D(p->level++);
4158 if (p->error_indicator) {
4159 D(p->level--);
4160 return NULL;
4161 }
4162 stmt_ty _res = NULL;
4163 int _mark = p->mark;
4164 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4165 p->error_indicator = 1;
4166 D(p->level--);
4167 return NULL;
4168 }
4169 int _start_lineno = p->tokens[_mark]->lineno;
4170 UNUSED(_start_lineno); // Only used by EXTRA macro
4171 int _start_col_offset = p->tokens[_mark]->col_offset;
4172 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo56c95df2021-04-21 15:28:21 +01004173 if (p->call_invalid_rules) { // invalid_while_stmt
4174 if (p->error_indicator) {
4175 D(p->level--);
4176 return NULL;
4177 }
4178 D(fprintf(stderr, "%*c> while_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_while_stmt"));
4179 void *invalid_while_stmt_var;
4180 if (
4181 (invalid_while_stmt_var = invalid_while_stmt_rule(p)) // invalid_while_stmt
4182 )
4183 {
4184 D(fprintf(stderr, "%*c+ while_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_while_stmt"));
4185 _res = invalid_while_stmt_var;
4186 goto done;
4187 }
4188 p->mark = _mark;
4189 D(fprintf(stderr, "%*c%s while_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4190 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_while_stmt"));
4191 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004192 { // 'while' named_expression ':' block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004193 if (p->error_indicator) {
4194 D(p->level--);
4195 return NULL;
4196 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004197 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 +01004198 Token * _keyword;
4199 Token * _literal;
4200 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004201 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004202 void *c;
4203 if (
4204 (_keyword = _PyPegen_expect_token(p, 512)) // token='while'
4205 &&
4206 (a = named_expression_rule(p)) // named_expression
4207 &&
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004208 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004209 &&
4210 (b = block_rule(p)) // block
4211 &&
4212 (c = else_block_rule(p), 1) // else_block?
4213 )
4214 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004215 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 +01004216 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4217 if (_token == NULL) {
4218 D(p->level--);
4219 return NULL;
4220 }
4221 int _end_lineno = _token->end_lineno;
4222 UNUSED(_end_lineno); // Only used by EXTRA macro
4223 int _end_col_offset = _token->end_col_offset;
4224 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004225 _res = _PyAST_While ( a , b , c , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004226 if (_res == NULL && PyErr_Occurred()) {
4227 p->error_indicator = 1;
4228 D(p->level--);
4229 return NULL;
4230 }
4231 goto done;
4232 }
4233 p->mark = _mark;
4234 D(fprintf(stderr, "%*c%s while_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004235 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'while' named_expression ':' block else_block?"));
4236 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004237 _res = NULL;
4238 done:
4239 D(p->level--);
4240 return _res;
4241}
4242
4243// for_stmt:
Pablo Galindo56c95df2021-04-21 15:28:21 +01004244// | invalid_for_stmt
Pablo Galindo58fb1562021-02-02 19:54:22 +00004245// | 'for' star_targets 'in' ~ star_expressions &&':' TYPE_COMMENT? block else_block?
4246// | ASYNC 'for' star_targets 'in' ~ star_expressions &&':' TYPE_COMMENT? block else_block?
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004247// | invalid_for_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004248static stmt_ty
4249for_stmt_rule(Parser *p)
4250{
4251 D(p->level++);
4252 if (p->error_indicator) {
4253 D(p->level--);
4254 return NULL;
4255 }
4256 stmt_ty _res = NULL;
4257 int _mark = p->mark;
4258 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4259 p->error_indicator = 1;
4260 D(p->level--);
4261 return NULL;
4262 }
4263 int _start_lineno = p->tokens[_mark]->lineno;
4264 UNUSED(_start_lineno); // Only used by EXTRA macro
4265 int _start_col_offset = p->tokens[_mark]->col_offset;
4266 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo56c95df2021-04-21 15:28:21 +01004267 if (p->call_invalid_rules) { // invalid_for_stmt
4268 if (p->error_indicator) {
4269 D(p->level--);
4270 return NULL;
4271 }
4272 D(fprintf(stderr, "%*c> for_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_for_stmt"));
4273 void *invalid_for_stmt_var;
4274 if (
4275 (invalid_for_stmt_var = invalid_for_stmt_rule(p)) // invalid_for_stmt
4276 )
4277 {
4278 D(fprintf(stderr, "%*c+ for_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_for_stmt"));
4279 _res = invalid_for_stmt_var;
4280 goto done;
4281 }
4282 p->mark = _mark;
4283 D(fprintf(stderr, "%*c%s for_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4284 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_for_stmt"));
4285 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004286 { // 'for' star_targets 'in' ~ star_expressions &&':' TYPE_COMMENT? block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004287 if (p->error_indicator) {
4288 D(p->level--);
4289 return NULL;
4290 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004291 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 +03004292 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004293 Token * _keyword;
4294 Token * _keyword_1;
4295 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004296 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004297 void *el;
4298 expr_ty ex;
4299 expr_ty t;
4300 void *tc;
4301 if (
4302 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
4303 &&
4304 (t = star_targets_rule(p)) // star_targets
4305 &&
4306 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
4307 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004308 (_cut_var = 1)
4309 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004310 (ex = star_expressions_rule(p)) // star_expressions
4311 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00004312 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004313 &&
4314 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
4315 &&
4316 (b = block_rule(p)) // block
4317 &&
4318 (el = else_block_rule(p), 1) // else_block?
4319 )
4320 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00004321 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 +01004322 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4323 if (_token == NULL) {
4324 D(p->level--);
4325 return NULL;
4326 }
4327 int _end_lineno = _token->end_lineno;
4328 UNUSED(_end_lineno); // Only used by EXTRA macro
4329 int _end_col_offset = _token->end_col_offset;
4330 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004331 _res = _PyAST_For ( t , ex , b , el , NEW_TYPE_COMMENT ( p , tc ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004332 if (_res == NULL && PyErr_Occurred()) {
4333 p->error_indicator = 1;
4334 D(p->level--);
4335 return NULL;
4336 }
4337 goto done;
4338 }
4339 p->mark = _mark;
4340 D(fprintf(stderr, "%*c%s for_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00004341 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 +03004342 if (_cut_var) {
4343 D(p->level--);
4344 return NULL;
4345 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004346 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004347 { // ASYNC 'for' star_targets 'in' ~ star_expressions &&':' TYPE_COMMENT? block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004348 if (p->error_indicator) {
4349 D(p->level--);
4350 return NULL;
4351 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004352 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 +03004353 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004354 Token * _keyword;
4355 Token * _keyword_1;
4356 Token * _literal;
4357 Token * async_var;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004358 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004359 void *el;
4360 expr_ty ex;
4361 expr_ty t;
4362 void *tc;
4363 if (
4364 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
4365 &&
4366 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
4367 &&
4368 (t = star_targets_rule(p)) // star_targets
4369 &&
4370 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
4371 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004372 (_cut_var = 1)
4373 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004374 (ex = star_expressions_rule(p)) // star_expressions
4375 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00004376 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004377 &&
4378 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
4379 &&
4380 (b = block_rule(p)) // block
4381 &&
4382 (el = else_block_rule(p), 1) // else_block?
4383 )
4384 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00004385 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 +01004386 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4387 if (_token == NULL) {
4388 D(p->level--);
4389 return NULL;
4390 }
4391 int _end_lineno = _token->end_lineno;
4392 UNUSED(_end_lineno); // Only used by EXTRA macro
4393 int _end_col_offset = _token->end_col_offset;
4394 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004395 _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 +01004396 if (_res == NULL && PyErr_Occurred()) {
4397 p->error_indicator = 1;
4398 D(p->level--);
4399 return NULL;
4400 }
4401 goto done;
4402 }
4403 p->mark = _mark;
4404 D(fprintf(stderr, "%*c%s for_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00004405 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 +03004406 if (_cut_var) {
4407 D(p->level--);
4408 return NULL;
4409 }
4410 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02004411 if (p->call_invalid_rules) { // invalid_for_target
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004412 if (p->error_indicator) {
4413 D(p->level--);
4414 return NULL;
4415 }
4416 D(fprintf(stderr, "%*c> for_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_for_target"));
4417 void *invalid_for_target_var;
4418 if (
4419 (invalid_for_target_var = invalid_for_target_rule(p)) // invalid_for_target
4420 )
4421 {
4422 D(fprintf(stderr, "%*c+ for_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_for_target"));
4423 _res = invalid_for_target_var;
4424 goto done;
4425 }
4426 p->mark = _mark;
4427 D(fprintf(stderr, "%*c%s for_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4428 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_for_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004429 }
4430 _res = NULL;
4431 done:
4432 D(p->level--);
4433 return _res;
4434}
4435
4436// with_stmt:
Pablo Galindo56c95df2021-04-21 15:28:21 +01004437// | invalid_with_stmt_indent
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004438// | 'with' '(' ','.with_item+ ','? ')' ':' block
4439// | 'with' ','.with_item+ ':' TYPE_COMMENT? block
4440// | ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block
4441// | ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block
Pablo Galindo58fb1562021-02-02 19:54:22 +00004442// | invalid_with_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004443static stmt_ty
4444with_stmt_rule(Parser *p)
4445{
4446 D(p->level++);
4447 if (p->error_indicator) {
4448 D(p->level--);
4449 return NULL;
4450 }
4451 stmt_ty _res = NULL;
4452 int _mark = p->mark;
4453 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4454 p->error_indicator = 1;
4455 D(p->level--);
4456 return NULL;
4457 }
4458 int _start_lineno = p->tokens[_mark]->lineno;
4459 UNUSED(_start_lineno); // Only used by EXTRA macro
4460 int _start_col_offset = p->tokens[_mark]->col_offset;
4461 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo56c95df2021-04-21 15:28:21 +01004462 if (p->call_invalid_rules) { // invalid_with_stmt_indent
4463 if (p->error_indicator) {
4464 D(p->level--);
4465 return NULL;
4466 }
4467 D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_with_stmt_indent"));
4468 void *invalid_with_stmt_indent_var;
4469 if (
4470 (invalid_with_stmt_indent_var = invalid_with_stmt_indent_rule(p)) // invalid_with_stmt_indent
4471 )
4472 {
4473 D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_with_stmt_indent"));
4474 _res = invalid_with_stmt_indent_var;
4475 goto done;
4476 }
4477 p->mark = _mark;
4478 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4479 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_with_stmt_indent"));
4480 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004481 { // 'with' '(' ','.with_item+ ','? ')' ':' block
4482 if (p->error_indicator) {
4483 D(p->level--);
4484 return NULL;
4485 }
4486 D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'with' '(' ','.with_item+ ','? ')' ':' block"));
4487 Token * _keyword;
4488 Token * _literal;
4489 Token * _literal_1;
4490 Token * _literal_2;
4491 void *_opt_var;
4492 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +01004493 asdl_withitem_seq* a;
4494 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004495 if (
4496 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
4497 &&
4498 (_literal = _PyPegen_expect_token(p, 7)) // token='('
4499 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01004500 (a = (asdl_withitem_seq*)_gather_39_rule(p)) // ','.with_item+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004501 &&
4502 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
4503 &&
4504 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
4505 &&
4506 (_literal_2 = _PyPegen_expect_token(p, 11)) // token=':'
4507 &&
4508 (b = block_rule(p)) // block
4509 )
4510 {
4511 D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'with' '(' ','.with_item+ ','? ')' ':' block"));
4512 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4513 if (_token == NULL) {
4514 D(p->level--);
4515 return NULL;
4516 }
4517 int _end_lineno = _token->end_lineno;
4518 UNUSED(_end_lineno); // Only used by EXTRA macro
4519 int _end_col_offset = _token->end_col_offset;
4520 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004521 _res = _PyAST_With ( a , b , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004522 if (_res == NULL && PyErr_Occurred()) {
4523 p->error_indicator = 1;
4524 D(p->level--);
4525 return NULL;
4526 }
4527 goto done;
4528 }
4529 p->mark = _mark;
4530 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4531 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'with' '(' ','.with_item+ ','? ')' ':' block"));
4532 }
4533 { // 'with' ','.with_item+ ':' TYPE_COMMENT? block
4534 if (p->error_indicator) {
4535 D(p->level--);
4536 return NULL;
4537 }
4538 D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4539 Token * _keyword;
4540 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004541 asdl_withitem_seq* a;
4542 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004543 void *tc;
4544 if (
4545 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
4546 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01004547 (a = (asdl_withitem_seq*)_gather_41_rule(p)) // ','.with_item+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004548 &&
4549 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
4550 &&
4551 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
4552 &&
4553 (b = block_rule(p)) // block
4554 )
4555 {
4556 D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4557 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4558 if (_token == NULL) {
4559 D(p->level--);
4560 return NULL;
4561 }
4562 int _end_lineno = _token->end_lineno;
4563 UNUSED(_end_lineno); // Only used by EXTRA macro
4564 int _end_col_offset = _token->end_col_offset;
4565 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004566 _res = _PyAST_With ( a , b , NEW_TYPE_COMMENT ( p , tc ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004567 if (_res == NULL && PyErr_Occurred()) {
4568 p->error_indicator = 1;
4569 D(p->level--);
4570 return NULL;
4571 }
4572 goto done;
4573 }
4574 p->mark = _mark;
4575 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4576 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4577 }
4578 { // ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block
4579 if (p->error_indicator) {
4580 D(p->level--);
4581 return NULL;
4582 }
4583 D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block"));
4584 Token * _keyword;
4585 Token * _literal;
4586 Token * _literal_1;
4587 Token * _literal_2;
4588 void *_opt_var;
4589 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +01004590 asdl_withitem_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004591 Token * async_var;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004592 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004593 if (
4594 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
4595 &&
4596 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
4597 &&
4598 (_literal = _PyPegen_expect_token(p, 7)) // token='('
4599 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01004600 (a = (asdl_withitem_seq*)_gather_43_rule(p)) // ','.with_item+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004601 &&
4602 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
4603 &&
4604 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
4605 &&
4606 (_literal_2 = _PyPegen_expect_token(p, 11)) // token=':'
4607 &&
4608 (b = block_rule(p)) // block
4609 )
4610 {
4611 D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block"));
4612 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4613 if (_token == NULL) {
4614 D(p->level--);
4615 return NULL;
4616 }
4617 int _end_lineno = _token->end_lineno;
4618 UNUSED(_end_lineno); // Only used by EXTRA macro
4619 int _end_col_offset = _token->end_col_offset;
4620 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004621 _res = CHECK_VERSION ( stmt_ty , 5 , "Async with statements are" , _PyAST_AsyncWith ( a , b , NULL , EXTRA ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004622 if (_res == NULL && PyErr_Occurred()) {
4623 p->error_indicator = 1;
4624 D(p->level--);
4625 return NULL;
4626 }
4627 goto done;
4628 }
4629 p->mark = _mark;
4630 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4631 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block"));
4632 }
4633 { // ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block
4634 if (p->error_indicator) {
4635 D(p->level--);
4636 return NULL;
4637 }
4638 D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4639 Token * _keyword;
4640 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004641 asdl_withitem_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004642 Token * async_var;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004643 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004644 void *tc;
4645 if (
4646 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
4647 &&
4648 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
4649 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01004650 (a = (asdl_withitem_seq*)_gather_45_rule(p)) // ','.with_item+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004651 &&
4652 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
4653 &&
4654 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
4655 &&
4656 (b = block_rule(p)) // block
4657 )
4658 {
4659 D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4660 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4661 if (_token == NULL) {
4662 D(p->level--);
4663 return NULL;
4664 }
4665 int _end_lineno = _token->end_lineno;
4666 UNUSED(_end_lineno); // Only used by EXTRA macro
4667 int _end_col_offset = _token->end_col_offset;
4668 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004669 _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 +01004670 if (_res == NULL && PyErr_Occurred()) {
4671 p->error_indicator = 1;
4672 D(p->level--);
4673 return NULL;
4674 }
4675 goto done;
4676 }
4677 p->mark = _mark;
4678 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4679 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4680 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004681 if (p->call_invalid_rules) { // invalid_with_stmt
4682 if (p->error_indicator) {
4683 D(p->level--);
4684 return NULL;
4685 }
4686 D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_with_stmt"));
4687 void *invalid_with_stmt_var;
4688 if (
4689 (invalid_with_stmt_var = invalid_with_stmt_rule(p)) // invalid_with_stmt
4690 )
4691 {
4692 D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_with_stmt"));
4693 _res = invalid_with_stmt_var;
4694 goto done;
4695 }
4696 p->mark = _mark;
4697 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4698 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_with_stmt"));
4699 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004700 _res = NULL;
4701 done:
4702 D(p->level--);
4703 return _res;
4704}
4705
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004706// with_item:
4707// | expression 'as' star_target &(',' | ')' | ':')
4708// | invalid_with_item
4709// | expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004710static withitem_ty
4711with_item_rule(Parser *p)
4712{
4713 D(p->level++);
4714 if (p->error_indicator) {
4715 D(p->level--);
4716 return NULL;
4717 }
4718 withitem_ty _res = NULL;
4719 int _mark = p->mark;
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004720 { // expression 'as' star_target &(',' | ')' | ':')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004721 if (p->error_indicator) {
4722 D(p->level--);
4723 return NULL;
4724 }
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004725 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 +03004726 Token * _keyword;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004727 expr_ty e;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004728 expr_ty t;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004729 if (
4730 (e = expression_rule(p)) // expression
4731 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004732 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
4733 &&
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004734 (t = star_target_rule(p)) // star_target
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004735 &&
4736 _PyPegen_lookahead(1, _tmp_47_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004737 )
4738 {
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004739 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 +02004740 _res = _PyAST_withitem ( e , t , p -> arena );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004741 if (_res == NULL && PyErr_Occurred()) {
4742 p->error_indicator = 1;
4743 D(p->level--);
4744 return NULL;
4745 }
4746 goto done;
4747 }
4748 p->mark = _mark;
4749 D(fprintf(stderr, "%*c%s with_item[%d-%d]: %s failed!\n", p->level, ' ',
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004750 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression 'as' star_target &(',' | ')' | ':')"));
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004751 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02004752 if (p->call_invalid_rules) { // invalid_with_item
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004753 if (p->error_indicator) {
4754 D(p->level--);
4755 return NULL;
4756 }
4757 D(fprintf(stderr, "%*c> with_item[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_with_item"));
4758 void *invalid_with_item_var;
4759 if (
4760 (invalid_with_item_var = invalid_with_item_rule(p)) // invalid_with_item
4761 )
4762 {
4763 D(fprintf(stderr, "%*c+ with_item[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_with_item"));
4764 _res = invalid_with_item_var;
4765 goto done;
4766 }
4767 p->mark = _mark;
4768 D(fprintf(stderr, "%*c%s with_item[%d-%d]: %s failed!\n", p->level, ' ',
4769 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_with_item"));
4770 }
4771 { // expression
4772 if (p->error_indicator) {
4773 D(p->level--);
4774 return NULL;
4775 }
4776 D(fprintf(stderr, "%*c> with_item[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression"));
4777 expr_ty e;
4778 if (
4779 (e = expression_rule(p)) // expression
4780 )
4781 {
4782 D(fprintf(stderr, "%*c+ with_item[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression"));
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004783 _res = _PyAST_withitem ( e , NULL , p -> arena );
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004784 if (_res == NULL && PyErr_Occurred()) {
4785 p->error_indicator = 1;
4786 D(p->level--);
4787 return NULL;
4788 }
4789 goto done;
4790 }
4791 p->mark = _mark;
4792 D(fprintf(stderr, "%*c%s with_item[%d-%d]: %s failed!\n", p->level, ' ',
4793 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004794 }
4795 _res = NULL;
4796 done:
4797 D(p->level--);
4798 return _res;
4799}
4800
4801// try_stmt:
Pablo Galindo56c95df2021-04-21 15:28:21 +01004802// | invalid_try_stmt
Pablo Galindo58fb1562021-02-02 19:54:22 +00004803// | 'try' &&':' block finally_block
4804// | 'try' &&':' block except_block+ else_block? finally_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004805static stmt_ty
4806try_stmt_rule(Parser *p)
4807{
4808 D(p->level++);
4809 if (p->error_indicator) {
4810 D(p->level--);
4811 return NULL;
4812 }
4813 stmt_ty _res = NULL;
4814 int _mark = p->mark;
4815 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4816 p->error_indicator = 1;
4817 D(p->level--);
4818 return NULL;
4819 }
4820 int _start_lineno = p->tokens[_mark]->lineno;
4821 UNUSED(_start_lineno); // Only used by EXTRA macro
4822 int _start_col_offset = p->tokens[_mark]->col_offset;
4823 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo56c95df2021-04-21 15:28:21 +01004824 if (p->call_invalid_rules) { // invalid_try_stmt
4825 if (p->error_indicator) {
4826 D(p->level--);
4827 return NULL;
4828 }
4829 D(fprintf(stderr, "%*c> try_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_try_stmt"));
4830 void *invalid_try_stmt_var;
4831 if (
4832 (invalid_try_stmt_var = invalid_try_stmt_rule(p)) // invalid_try_stmt
4833 )
4834 {
4835 D(fprintf(stderr, "%*c+ try_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_try_stmt"));
4836 _res = invalid_try_stmt_var;
4837 goto done;
4838 }
4839 p->mark = _mark;
4840 D(fprintf(stderr, "%*c%s try_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4841 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_try_stmt"));
4842 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004843 { // 'try' &&':' block finally_block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004844 if (p->error_indicator) {
4845 D(p->level--);
4846 return NULL;
4847 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004848 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 +01004849 Token * _keyword;
4850 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004851 asdl_stmt_seq* b;
4852 asdl_stmt_seq* f;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004853 if (
4854 (_keyword = _PyPegen_expect_token(p, 511)) // token='try'
4855 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00004856 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004857 &&
4858 (b = block_rule(p)) // block
4859 &&
4860 (f = finally_block_rule(p)) // finally_block
4861 )
4862 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00004863 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 +01004864 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4865 if (_token == NULL) {
4866 D(p->level--);
4867 return NULL;
4868 }
4869 int _end_lineno = _token->end_lineno;
4870 UNUSED(_end_lineno); // Only used by EXTRA macro
4871 int _end_col_offset = _token->end_col_offset;
4872 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004873 _res = _PyAST_Try ( b , NULL , NULL , f , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004874 if (_res == NULL && PyErr_Occurred()) {
4875 p->error_indicator = 1;
4876 D(p->level--);
4877 return NULL;
4878 }
4879 goto done;
4880 }
4881 p->mark = _mark;
4882 D(fprintf(stderr, "%*c%s try_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00004883 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'try' &&':' block finally_block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004884 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004885 { // 'try' &&':' block except_block+ else_block? finally_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004886 if (p->error_indicator) {
4887 D(p->level--);
4888 return NULL;
4889 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004890 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 +01004891 Token * _keyword;
4892 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004893 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004894 void *el;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004895 asdl_excepthandler_seq* ex;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004896 void *f;
4897 if (
4898 (_keyword = _PyPegen_expect_token(p, 511)) // token='try'
4899 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00004900 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004901 &&
4902 (b = block_rule(p)) // block
4903 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01004904 (ex = (asdl_excepthandler_seq*)_loop1_48_rule(p)) // except_block+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004905 &&
4906 (el = else_block_rule(p), 1) // else_block?
4907 &&
4908 (f = finally_block_rule(p), 1) // finally_block?
4909 )
4910 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00004911 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 +01004912 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4913 if (_token == NULL) {
4914 D(p->level--);
4915 return NULL;
4916 }
4917 int _end_lineno = _token->end_lineno;
4918 UNUSED(_end_lineno); // Only used by EXTRA macro
4919 int _end_col_offset = _token->end_col_offset;
4920 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004921 _res = _PyAST_Try ( b , ex , el , f , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004922 if (_res == NULL && PyErr_Occurred()) {
4923 p->error_indicator = 1;
4924 D(p->level--);
4925 return NULL;
4926 }
4927 goto done;
4928 }
4929 p->mark = _mark;
4930 D(fprintf(stderr, "%*c%s try_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00004931 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'try' &&':' block except_block+ else_block? finally_block?"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004932 }
4933 _res = NULL;
4934 done:
4935 D(p->level--);
4936 return _res;
4937}
4938
Pablo Galindo206cbda2021-02-07 18:42:21 +00004939// except_block:
Pablo Galindo56c95df2021-04-21 15:28:21 +01004940// | invalid_except_stmt_indent
Pablo Galindo206cbda2021-02-07 18:42:21 +00004941// | 'except' expression ['as' NAME] ':' block
4942// | 'except' ':' block
Pablo Galindo56c95df2021-04-21 15:28:21 +01004943// | invalid_except_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004944static excepthandler_ty
4945except_block_rule(Parser *p)
4946{
4947 D(p->level++);
4948 if (p->error_indicator) {
4949 D(p->level--);
4950 return NULL;
4951 }
4952 excepthandler_ty _res = NULL;
4953 int _mark = p->mark;
4954 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4955 p->error_indicator = 1;
4956 D(p->level--);
4957 return NULL;
4958 }
4959 int _start_lineno = p->tokens[_mark]->lineno;
4960 UNUSED(_start_lineno); // Only used by EXTRA macro
4961 int _start_col_offset = p->tokens[_mark]->col_offset;
4962 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo56c95df2021-04-21 15:28:21 +01004963 if (p->call_invalid_rules) { // invalid_except_stmt_indent
4964 if (p->error_indicator) {
4965 D(p->level--);
4966 return NULL;
4967 }
4968 D(fprintf(stderr, "%*c> except_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_except_stmt_indent"));
4969 void *invalid_except_stmt_indent_var;
4970 if (
4971 (invalid_except_stmt_indent_var = invalid_except_stmt_indent_rule(p)) // invalid_except_stmt_indent
4972 )
4973 {
4974 D(fprintf(stderr, "%*c+ except_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_except_stmt_indent"));
4975 _res = invalid_except_stmt_indent_var;
4976 goto done;
4977 }
4978 p->mark = _mark;
4979 D(fprintf(stderr, "%*c%s except_block[%d-%d]: %s failed!\n", p->level, ' ',
4980 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_except_stmt_indent"));
4981 }
Pablo Galindo206cbda2021-02-07 18:42:21 +00004982 { // 'except' expression ['as' NAME] ':' block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004983 if (p->error_indicator) {
4984 D(p->level--);
4985 return NULL;
4986 }
Pablo Galindo206cbda2021-02-07 18:42:21 +00004987 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 +01004988 Token * _keyword;
4989 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004990 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004991 expr_ty e;
4992 void *t;
4993 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004994 (_keyword = _PyPegen_expect_token(p, 521)) // token='except'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004995 &&
4996 (e = expression_rule(p)) // expression
4997 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004998 (t = _tmp_49_rule(p), 1) // ['as' NAME]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004999 &&
Pablo Galindo206cbda2021-02-07 18:42:21 +00005000 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005001 &&
5002 (b = block_rule(p)) // block
5003 )
5004 {
Pablo Galindo206cbda2021-02-07 18:42:21 +00005005 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 +01005006 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5007 if (_token == NULL) {
5008 D(p->level--);
5009 return NULL;
5010 }
5011 int _end_lineno = _token->end_lineno;
5012 UNUSED(_end_lineno); // Only used by EXTRA macro
5013 int _end_col_offset = _token->end_col_offset;
5014 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02005015 _res = _PyAST_ExceptHandler ( e , ( t ) ? ( ( expr_ty ) t ) -> v . Name . id : NULL , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005016 if (_res == NULL && PyErr_Occurred()) {
5017 p->error_indicator = 1;
5018 D(p->level--);
5019 return NULL;
5020 }
5021 goto done;
5022 }
5023 p->mark = _mark;
5024 D(fprintf(stderr, "%*c%s except_block[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo206cbda2021-02-07 18:42:21 +00005025 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' expression ['as' NAME] ':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005026 }
Pablo Galindo206cbda2021-02-07 18:42:21 +00005027 { // 'except' ':' block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005028 if (p->error_indicator) {
5029 D(p->level--);
5030 return NULL;
5031 }
Pablo Galindo206cbda2021-02-07 18:42:21 +00005032 D(fprintf(stderr, "%*c> except_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' ':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005033 Token * _keyword;
5034 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01005035 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005036 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03005037 (_keyword = _PyPegen_expect_token(p, 521)) // token='except'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005038 &&
Pablo Galindo206cbda2021-02-07 18:42:21 +00005039 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005040 &&
5041 (b = block_rule(p)) // block
5042 )
5043 {
Pablo Galindo206cbda2021-02-07 18:42:21 +00005044 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 +01005045 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5046 if (_token == NULL) {
5047 D(p->level--);
5048 return NULL;
5049 }
5050 int _end_lineno = _token->end_lineno;
5051 UNUSED(_end_lineno); // Only used by EXTRA macro
5052 int _end_col_offset = _token->end_col_offset;
5053 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02005054 _res = _PyAST_ExceptHandler ( NULL , NULL , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005055 if (_res == NULL && PyErr_Occurred()) {
5056 p->error_indicator = 1;
5057 D(p->level--);
5058 return NULL;
5059 }
5060 goto done;
5061 }
5062 p->mark = _mark;
5063 D(fprintf(stderr, "%*c%s except_block[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo206cbda2021-02-07 18:42:21 +00005064 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' ':' block"));
5065 }
Pablo Galindo56c95df2021-04-21 15:28:21 +01005066 if (p->call_invalid_rules) { // invalid_except_stmt
Pablo Galindo206cbda2021-02-07 18:42:21 +00005067 if (p->error_indicator) {
5068 D(p->level--);
5069 return NULL;
5070 }
Pablo Galindo56c95df2021-04-21 15:28:21 +01005071 D(fprintf(stderr, "%*c> except_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_except_stmt"));
5072 void *invalid_except_stmt_var;
Pablo Galindo206cbda2021-02-07 18:42:21 +00005073 if (
Pablo Galindo56c95df2021-04-21 15:28:21 +01005074 (invalid_except_stmt_var = invalid_except_stmt_rule(p)) // invalid_except_stmt
Pablo Galindo206cbda2021-02-07 18:42:21 +00005075 )
5076 {
Pablo Galindo56c95df2021-04-21 15:28:21 +01005077 D(fprintf(stderr, "%*c+ except_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_except_stmt"));
5078 _res = invalid_except_stmt_var;
Pablo Galindo206cbda2021-02-07 18:42:21 +00005079 goto done;
5080 }
5081 p->mark = _mark;
5082 D(fprintf(stderr, "%*c%s except_block[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo56c95df2021-04-21 15:28:21 +01005083 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_except_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005084 }
5085 _res = NULL;
5086 done:
5087 D(p->level--);
5088 return _res;
5089}
5090
Pablo Galindo56c95df2021-04-21 15:28:21 +01005091// finally_block: invalid_finally_stmt | 'finally' &&':' block
Pablo Galindoa5634c42020-09-16 19:42:00 +01005092static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005093finally_block_rule(Parser *p)
5094{
5095 D(p->level++);
5096 if (p->error_indicator) {
5097 D(p->level--);
5098 return NULL;
5099 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01005100 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005101 int _mark = p->mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +01005102 if (p->call_invalid_rules) { // invalid_finally_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005103 if (p->error_indicator) {
5104 D(p->level--);
5105 return NULL;
5106 }
Pablo Galindo56c95df2021-04-21 15:28:21 +01005107 D(fprintf(stderr, "%*c> finally_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_finally_stmt"));
5108 void *invalid_finally_stmt_var;
5109 if (
5110 (invalid_finally_stmt_var = invalid_finally_stmt_rule(p)) // invalid_finally_stmt
5111 )
5112 {
5113 D(fprintf(stderr, "%*c+ finally_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_finally_stmt"));
5114 _res = invalid_finally_stmt_var;
5115 goto done;
5116 }
5117 p->mark = _mark;
5118 D(fprintf(stderr, "%*c%s finally_block[%d-%d]: %s failed!\n", p->level, ' ',
5119 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_finally_stmt"));
5120 }
5121 { // 'finally' &&':' block
5122 if (p->error_indicator) {
5123 D(p->level--);
5124 return NULL;
5125 }
5126 D(fprintf(stderr, "%*c> finally_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'finally' &&':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005127 Token * _keyword;
5128 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01005129 asdl_stmt_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005130 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03005131 (_keyword = _PyPegen_expect_token(p, 522)) // token='finally'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005132 &&
Pablo Galindo56c95df2021-04-21 15:28:21 +01005133 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005134 &&
5135 (a = block_rule(p)) // block
5136 )
5137 {
Pablo Galindo56c95df2021-04-21 15:28:21 +01005138 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 +01005139 _res = a;
5140 if (_res == NULL && PyErr_Occurred()) {
5141 p->error_indicator = 1;
5142 D(p->level--);
5143 return NULL;
5144 }
5145 goto done;
5146 }
5147 p->mark = _mark;
5148 D(fprintf(stderr, "%*c%s finally_block[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo56c95df2021-04-21 15:28:21 +01005149 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'finally' &&':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005150 }
5151 _res = NULL;
5152 done:
5153 D(p->level--);
5154 return _res;
5155}
5156
Pablo Galindo08fb8ac2021-03-18 01:03:11 +00005157// match_stmt:
5158// | "match" subject_expr ':' NEWLINE INDENT case_block+ DEDENT
5159// | invalid_match_stmt
Brandt Bucher145bf262021-02-26 14:51:55 -08005160static stmt_ty
5161match_stmt_rule(Parser *p)
5162{
5163 D(p->level++);
5164 if (p->error_indicator) {
5165 D(p->level--);
5166 return NULL;
5167 }
5168 stmt_ty _res = NULL;
5169 int _mark = p->mark;
5170 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
5171 p->error_indicator = 1;
5172 D(p->level--);
5173 return NULL;
5174 }
5175 int _start_lineno = p->tokens[_mark]->lineno;
5176 UNUSED(_start_lineno); // Only used by EXTRA macro
5177 int _start_col_offset = p->tokens[_mark]->col_offset;
5178 UNUSED(_start_col_offset); // Only used by EXTRA macro
5179 { // "match" subject_expr ':' NEWLINE INDENT case_block+ DEDENT
5180 if (p->error_indicator) {
5181 D(p->level--);
5182 return NULL;
5183 }
5184 D(fprintf(stderr, "%*c> match_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"match\" subject_expr ':' NEWLINE INDENT case_block+ DEDENT"));
5185 expr_ty _keyword;
5186 Token * _literal;
5187 asdl_match_case_seq* cases;
5188 Token * dedent_var;
5189 Token * indent_var;
5190 Token * newline_var;
5191 expr_ty subject;
5192 if (
5193 (_keyword = _PyPegen_expect_soft_keyword(p, "match")) // soft_keyword='"match"'
5194 &&
5195 (subject = subject_expr_rule(p)) // subject_expr
5196 &&
5197 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
5198 &&
5199 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
5200 &&
5201 (indent_var = _PyPegen_expect_token(p, INDENT)) // token='INDENT'
5202 &&
5203 (cases = (asdl_match_case_seq*)_loop1_50_rule(p)) // case_block+
5204 &&
5205 (dedent_var = _PyPegen_expect_token(p, DEDENT)) // token='DEDENT'
5206 )
5207 {
5208 D(fprintf(stderr, "%*c+ match_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"match\" subject_expr ':' NEWLINE INDENT case_block+ DEDENT"));
5209 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5210 if (_token == NULL) {
5211 D(p->level--);
5212 return NULL;
5213 }
5214 int _end_lineno = _token->end_lineno;
5215 UNUSED(_end_lineno); // Only used by EXTRA macro
5216 int _end_col_offset = _token->end_col_offset;
5217 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02005218 _res = CHECK_VERSION ( stmt_ty , 10 , "Pattern matching is" , _PyAST_Match ( subject , cases , EXTRA ) );
Brandt Bucher145bf262021-02-26 14:51:55 -08005219 if (_res == NULL && PyErr_Occurred()) {
5220 p->error_indicator = 1;
5221 D(p->level--);
5222 return NULL;
5223 }
5224 goto done;
5225 }
5226 p->mark = _mark;
5227 D(fprintf(stderr, "%*c%s match_stmt[%d-%d]: %s failed!\n", p->level, ' ',
5228 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"match\" subject_expr ':' NEWLINE INDENT case_block+ DEDENT"));
5229 }
Pablo Galindo08fb8ac2021-03-18 01:03:11 +00005230 if (p->call_invalid_rules) { // invalid_match_stmt
5231 if (p->error_indicator) {
5232 D(p->level--);
5233 return NULL;
5234 }
5235 D(fprintf(stderr, "%*c> match_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_match_stmt"));
5236 void *invalid_match_stmt_var;
5237 if (
5238 (invalid_match_stmt_var = invalid_match_stmt_rule(p)) // invalid_match_stmt
5239 )
5240 {
5241 D(fprintf(stderr, "%*c+ match_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_match_stmt"));
5242 _res = invalid_match_stmt_var;
5243 goto done;
5244 }
5245 p->mark = _mark;
5246 D(fprintf(stderr, "%*c%s match_stmt[%d-%d]: %s failed!\n", p->level, ' ',
5247 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_match_stmt"));
5248 }
Brandt Bucher145bf262021-02-26 14:51:55 -08005249 _res = NULL;
5250 done:
5251 D(p->level--);
5252 return _res;
5253}
5254
5255// subject_expr: star_named_expression ',' star_named_expressions? | named_expression
5256static expr_ty
5257subject_expr_rule(Parser *p)
5258{
5259 D(p->level++);
5260 if (p->error_indicator) {
5261 D(p->level--);
5262 return NULL;
5263 }
5264 expr_ty _res = NULL;
5265 int _mark = p->mark;
5266 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
5267 p->error_indicator = 1;
5268 D(p->level--);
5269 return NULL;
5270 }
5271 int _start_lineno = p->tokens[_mark]->lineno;
5272 UNUSED(_start_lineno); // Only used by EXTRA macro
5273 int _start_col_offset = p->tokens[_mark]->col_offset;
5274 UNUSED(_start_col_offset); // Only used by EXTRA macro
5275 { // star_named_expression ',' star_named_expressions?
5276 if (p->error_indicator) {
5277 D(p->level--);
5278 return NULL;
5279 }
5280 D(fprintf(stderr, "%*c> subject_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_named_expression ',' star_named_expressions?"));
5281 Token * _literal;
5282 expr_ty value;
5283 void *values;
5284 if (
5285 (value = star_named_expression_rule(p)) // star_named_expression
5286 &&
5287 (_literal = _PyPegen_expect_token(p, 12)) // token=','
5288 &&
5289 (values = star_named_expressions_rule(p), 1) // star_named_expressions?
5290 )
5291 {
5292 D(fprintf(stderr, "%*c+ subject_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_named_expression ',' star_named_expressions?"));
5293 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5294 if (_token == NULL) {
5295 D(p->level--);
5296 return NULL;
5297 }
5298 int _end_lineno = _token->end_lineno;
5299 UNUSED(_end_lineno); // Only used by EXTRA macro
5300 int _end_col_offset = _token->end_col_offset;
5301 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02005302 _res = _PyAST_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , value , values ) ) , Load , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08005303 if (_res == NULL && PyErr_Occurred()) {
5304 p->error_indicator = 1;
5305 D(p->level--);
5306 return NULL;
5307 }
5308 goto done;
5309 }
5310 p->mark = _mark;
5311 D(fprintf(stderr, "%*c%s subject_expr[%d-%d]: %s failed!\n", p->level, ' ',
5312 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression ',' star_named_expressions?"));
5313 }
5314 { // named_expression
5315 if (p->error_indicator) {
5316 D(p->level--);
5317 return NULL;
5318 }
5319 D(fprintf(stderr, "%*c> subject_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression"));
5320 expr_ty named_expression_var;
5321 if (
5322 (named_expression_var = named_expression_rule(p)) // named_expression
5323 )
5324 {
5325 D(fprintf(stderr, "%*c+ subject_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "named_expression"));
5326 _res = named_expression_var;
5327 goto done;
5328 }
5329 p->mark = _mark;
5330 D(fprintf(stderr, "%*c%s subject_expr[%d-%d]: %s failed!\n", p->level, ' ',
5331 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression"));
5332 }
5333 _res = NULL;
5334 done:
5335 D(p->level--);
5336 return _res;
5337}
5338
Pablo Galindo56c95df2021-04-21 15:28:21 +01005339// case_block: invalid_case_block | "case" patterns guard? ':' block
Brandt Bucher145bf262021-02-26 14:51:55 -08005340static match_case_ty
5341case_block_rule(Parser *p)
5342{
5343 D(p->level++);
5344 if (p->error_indicator) {
5345 D(p->level--);
5346 return NULL;
5347 }
5348 match_case_ty _res = NULL;
5349 int _mark = p->mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +01005350 if (p->call_invalid_rules) { // invalid_case_block
5351 if (p->error_indicator) {
5352 D(p->level--);
5353 return NULL;
5354 }
5355 D(fprintf(stderr, "%*c> case_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_case_block"));
5356 void *invalid_case_block_var;
5357 if (
5358 (invalid_case_block_var = invalid_case_block_rule(p)) // invalid_case_block
5359 )
5360 {
5361 D(fprintf(stderr, "%*c+ case_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_case_block"));
5362 _res = invalid_case_block_var;
5363 goto done;
5364 }
5365 p->mark = _mark;
5366 D(fprintf(stderr, "%*c%s case_block[%d-%d]: %s failed!\n", p->level, ' ',
5367 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_case_block"));
5368 }
Brandt Bucher145bf262021-02-26 14:51:55 -08005369 { // "case" patterns guard? ':' block
5370 if (p->error_indicator) {
5371 D(p->level--);
5372 return NULL;
5373 }
5374 D(fprintf(stderr, "%*c> case_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"case\" patterns guard? ':' block"));
5375 expr_ty _keyword;
5376 Token * _literal;
5377 asdl_stmt_seq* body;
5378 void *guard;
5379 expr_ty pattern;
5380 if (
5381 (_keyword = _PyPegen_expect_soft_keyword(p, "case")) // soft_keyword='"case"'
5382 &&
5383 (pattern = patterns_rule(p)) // patterns
5384 &&
5385 (guard = guard_rule(p), 1) // guard?
5386 &&
5387 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
5388 &&
5389 (body = block_rule(p)) // block
5390 )
5391 {
5392 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 +02005393 _res = _PyAST_match_case ( pattern , guard , body , p -> arena );
Brandt Bucher145bf262021-02-26 14:51:55 -08005394 if (_res == NULL && PyErr_Occurred()) {
5395 p->error_indicator = 1;
5396 D(p->level--);
5397 return NULL;
5398 }
5399 goto done;
5400 }
5401 p->mark = _mark;
5402 D(fprintf(stderr, "%*c%s case_block[%d-%d]: %s failed!\n", p->level, ' ',
5403 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"case\" patterns guard? ':' block"));
5404 }
5405 _res = NULL;
5406 done:
5407 D(p->level--);
5408 return _res;
5409}
5410
5411// guard: 'if' named_expression
5412static expr_ty
5413guard_rule(Parser *p)
5414{
5415 D(p->level++);
5416 if (p->error_indicator) {
5417 D(p->level--);
5418 return NULL;
5419 }
5420 expr_ty _res = NULL;
5421 int _mark = p->mark;
5422 { // 'if' named_expression
5423 if (p->error_indicator) {
5424 D(p->level--);
5425 return NULL;
5426 }
5427 D(fprintf(stderr, "%*c> guard[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' named_expression"));
5428 Token * _keyword;
5429 expr_ty guard;
5430 if (
5431 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
5432 &&
5433 (guard = named_expression_rule(p)) // named_expression
5434 )
5435 {
5436 D(fprintf(stderr, "%*c+ guard[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' named_expression"));
5437 _res = guard;
5438 if (_res == NULL && PyErr_Occurred()) {
5439 p->error_indicator = 1;
5440 D(p->level--);
5441 return NULL;
5442 }
5443 goto done;
5444 }
5445 p->mark = _mark;
5446 D(fprintf(stderr, "%*c%s guard[%d-%d]: %s failed!\n", p->level, ' ',
5447 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' named_expression"));
5448 }
5449 _res = NULL;
5450 done:
5451 D(p->level--);
5452 return _res;
5453}
5454
5455// patterns: open_sequence_pattern | pattern
5456static expr_ty
5457patterns_rule(Parser *p)
5458{
5459 D(p->level++);
5460 if (p->error_indicator) {
5461 D(p->level--);
5462 return NULL;
5463 }
5464 expr_ty _res = NULL;
5465 int _mark = p->mark;
5466 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
5467 p->error_indicator = 1;
5468 D(p->level--);
5469 return NULL;
5470 }
5471 int _start_lineno = p->tokens[_mark]->lineno;
5472 UNUSED(_start_lineno); // Only used by EXTRA macro
5473 int _start_col_offset = p->tokens[_mark]->col_offset;
5474 UNUSED(_start_col_offset); // Only used by EXTRA macro
5475 { // open_sequence_pattern
5476 if (p->error_indicator) {
5477 D(p->level--);
5478 return NULL;
5479 }
5480 D(fprintf(stderr, "%*c> patterns[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "open_sequence_pattern"));
5481 asdl_expr_seq* values;
5482 if (
5483 (values = (asdl_expr_seq*)open_sequence_pattern_rule(p)) // open_sequence_pattern
5484 )
5485 {
5486 D(fprintf(stderr, "%*c+ patterns[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "open_sequence_pattern"));
5487 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5488 if (_token == NULL) {
5489 D(p->level--);
5490 return NULL;
5491 }
5492 int _end_lineno = _token->end_lineno;
5493 UNUSED(_end_lineno); // Only used by EXTRA macro
5494 int _end_col_offset = _token->end_col_offset;
5495 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02005496 _res = _PyAST_Tuple ( values , Load , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08005497 if (_res == NULL && PyErr_Occurred()) {
5498 p->error_indicator = 1;
5499 D(p->level--);
5500 return NULL;
5501 }
5502 goto done;
5503 }
5504 p->mark = _mark;
5505 D(fprintf(stderr, "%*c%s patterns[%d-%d]: %s failed!\n", p->level, ' ',
5506 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "open_sequence_pattern"));
5507 }
5508 { // pattern
5509 if (p->error_indicator) {
5510 D(p->level--);
5511 return NULL;
5512 }
5513 D(fprintf(stderr, "%*c> patterns[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "pattern"));
5514 expr_ty pattern_var;
5515 if (
5516 (pattern_var = pattern_rule(p)) // pattern
5517 )
5518 {
5519 D(fprintf(stderr, "%*c+ patterns[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "pattern"));
5520 _res = pattern_var;
5521 goto done;
5522 }
5523 p->mark = _mark;
5524 D(fprintf(stderr, "%*c%s patterns[%d-%d]: %s failed!\n", p->level, ' ',
5525 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "pattern"));
5526 }
5527 _res = NULL;
5528 done:
5529 D(p->level--);
5530 return _res;
5531}
5532
5533// pattern: as_pattern | or_pattern
5534static expr_ty
5535pattern_rule(Parser *p)
5536{
5537 D(p->level++);
5538 if (p->error_indicator) {
5539 D(p->level--);
5540 return NULL;
5541 }
5542 expr_ty _res = NULL;
5543 int _mark = p->mark;
5544 { // as_pattern
5545 if (p->error_indicator) {
5546 D(p->level--);
5547 return NULL;
5548 }
5549 D(fprintf(stderr, "%*c> pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "as_pattern"));
5550 expr_ty as_pattern_var;
5551 if (
5552 (as_pattern_var = as_pattern_rule(p)) // as_pattern
5553 )
5554 {
5555 D(fprintf(stderr, "%*c+ pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "as_pattern"));
5556 _res = as_pattern_var;
5557 goto done;
5558 }
5559 p->mark = _mark;
5560 D(fprintf(stderr, "%*c%s pattern[%d-%d]: %s failed!\n", p->level, ' ',
5561 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "as_pattern"));
5562 }
5563 { // or_pattern
5564 if (p->error_indicator) {
5565 D(p->level--);
5566 return NULL;
5567 }
5568 D(fprintf(stderr, "%*c> pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "or_pattern"));
5569 expr_ty or_pattern_var;
5570 if (
5571 (or_pattern_var = or_pattern_rule(p)) // or_pattern
5572 )
5573 {
5574 D(fprintf(stderr, "%*c+ pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "or_pattern"));
5575 _res = or_pattern_var;
5576 goto done;
5577 }
5578 p->mark = _mark;
5579 D(fprintf(stderr, "%*c%s pattern[%d-%d]: %s failed!\n", p->level, ' ',
5580 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "or_pattern"));
5581 }
5582 _res = NULL;
5583 done:
5584 D(p->level--);
5585 return _res;
5586}
5587
5588// as_pattern: or_pattern 'as' capture_pattern
5589static expr_ty
5590as_pattern_rule(Parser *p)
5591{
5592 D(p->level++);
5593 if (p->error_indicator) {
5594 D(p->level--);
5595 return NULL;
5596 }
5597 expr_ty _res = NULL;
5598 int _mark = p->mark;
5599 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
5600 p->error_indicator = 1;
5601 D(p->level--);
5602 return NULL;
5603 }
5604 int _start_lineno = p->tokens[_mark]->lineno;
5605 UNUSED(_start_lineno); // Only used by EXTRA macro
5606 int _start_col_offset = p->tokens[_mark]->col_offset;
5607 UNUSED(_start_col_offset); // Only used by EXTRA macro
5608 { // or_pattern 'as' capture_pattern
5609 if (p->error_indicator) {
5610 D(p->level--);
5611 return NULL;
5612 }
5613 D(fprintf(stderr, "%*c> as_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "or_pattern 'as' capture_pattern"));
5614 Token * _keyword;
5615 expr_ty pattern;
5616 expr_ty target;
5617 if (
5618 (pattern = or_pattern_rule(p)) // or_pattern
5619 &&
5620 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
5621 &&
5622 (target = capture_pattern_rule(p)) // capture_pattern
5623 )
5624 {
5625 D(fprintf(stderr, "%*c+ as_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "or_pattern 'as' capture_pattern"));
5626 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5627 if (_token == NULL) {
5628 D(p->level--);
5629 return NULL;
5630 }
5631 int _end_lineno = _token->end_lineno;
5632 UNUSED(_end_lineno); // Only used by EXTRA macro
5633 int _end_col_offset = _token->end_col_offset;
5634 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02005635 _res = _PyAST_MatchAs ( pattern , target -> v . Name . id , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08005636 if (_res == NULL && PyErr_Occurred()) {
5637 p->error_indicator = 1;
5638 D(p->level--);
5639 return NULL;
5640 }
5641 goto done;
5642 }
5643 p->mark = _mark;
5644 D(fprintf(stderr, "%*c%s as_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5645 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "or_pattern 'as' capture_pattern"));
5646 }
5647 _res = NULL;
5648 done:
5649 D(p->level--);
5650 return _res;
5651}
5652
5653// or_pattern: '|'.closed_pattern+
5654static expr_ty
5655or_pattern_rule(Parser *p)
5656{
5657 D(p->level++);
5658 if (p->error_indicator) {
5659 D(p->level--);
5660 return NULL;
5661 }
5662 expr_ty _res = NULL;
5663 int _mark = p->mark;
5664 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
5665 p->error_indicator = 1;
5666 D(p->level--);
5667 return NULL;
5668 }
5669 int _start_lineno = p->tokens[_mark]->lineno;
5670 UNUSED(_start_lineno); // Only used by EXTRA macro
5671 int _start_col_offset = p->tokens[_mark]->col_offset;
5672 UNUSED(_start_col_offset); // Only used by EXTRA macro
5673 { // '|'.closed_pattern+
5674 if (p->error_indicator) {
5675 D(p->level--);
5676 return NULL;
5677 }
5678 D(fprintf(stderr, "%*c> or_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'|'.closed_pattern+"));
5679 asdl_expr_seq* patterns;
5680 if (
5681 (patterns = (asdl_expr_seq*)_gather_51_rule(p)) // '|'.closed_pattern+
5682 )
5683 {
5684 D(fprintf(stderr, "%*c+ or_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'|'.closed_pattern+"));
5685 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5686 if (_token == NULL) {
5687 D(p->level--);
5688 return NULL;
5689 }
5690 int _end_lineno = _token->end_lineno;
5691 UNUSED(_end_lineno); // Only used by EXTRA macro
5692 int _end_col_offset = _token->end_col_offset;
5693 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02005694 _res = asdl_seq_LEN ( patterns ) == 1 ? asdl_seq_GET ( patterns , 0 ) : _PyAST_MatchOr ( patterns , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08005695 if (_res == NULL && PyErr_Occurred()) {
5696 p->error_indicator = 1;
5697 D(p->level--);
5698 return NULL;
5699 }
5700 goto done;
5701 }
5702 p->mark = _mark;
5703 D(fprintf(stderr, "%*c%s or_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5704 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'|'.closed_pattern+"));
5705 }
5706 _res = NULL;
5707 done:
5708 D(p->level--);
5709 return _res;
5710}
5711
5712// closed_pattern:
5713// | literal_pattern
5714// | capture_pattern
5715// | wildcard_pattern
5716// | value_pattern
5717// | group_pattern
5718// | sequence_pattern
5719// | mapping_pattern
5720// | class_pattern
5721static expr_ty
5722closed_pattern_rule(Parser *p)
5723{
5724 D(p->level++);
5725 if (p->error_indicator) {
5726 D(p->level--);
5727 return NULL;
5728 }
5729 expr_ty _res = NULL;
5730 int _mark = p->mark;
5731 { // literal_pattern
5732 if (p->error_indicator) {
5733 D(p->level--);
5734 return NULL;
5735 }
5736 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "literal_pattern"));
5737 expr_ty literal_pattern_var;
5738 if (
5739 (literal_pattern_var = literal_pattern_rule(p)) // literal_pattern
5740 )
5741 {
5742 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "literal_pattern"));
5743 _res = literal_pattern_var;
5744 goto done;
5745 }
5746 p->mark = _mark;
5747 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5748 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "literal_pattern"));
5749 }
5750 { // capture_pattern
5751 if (p->error_indicator) {
5752 D(p->level--);
5753 return NULL;
5754 }
5755 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "capture_pattern"));
5756 expr_ty capture_pattern_var;
5757 if (
5758 (capture_pattern_var = capture_pattern_rule(p)) // capture_pattern
5759 )
5760 {
5761 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "capture_pattern"));
5762 _res = capture_pattern_var;
5763 goto done;
5764 }
5765 p->mark = _mark;
5766 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5767 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "capture_pattern"));
5768 }
5769 { // wildcard_pattern
5770 if (p->error_indicator) {
5771 D(p->level--);
5772 return NULL;
5773 }
5774 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "wildcard_pattern"));
5775 expr_ty wildcard_pattern_var;
5776 if (
5777 (wildcard_pattern_var = wildcard_pattern_rule(p)) // wildcard_pattern
5778 )
5779 {
5780 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "wildcard_pattern"));
5781 _res = wildcard_pattern_var;
5782 goto done;
5783 }
5784 p->mark = _mark;
5785 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5786 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "wildcard_pattern"));
5787 }
5788 { // value_pattern
5789 if (p->error_indicator) {
5790 D(p->level--);
5791 return NULL;
5792 }
5793 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "value_pattern"));
5794 expr_ty value_pattern_var;
5795 if (
5796 (value_pattern_var = value_pattern_rule(p)) // value_pattern
5797 )
5798 {
5799 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "value_pattern"));
5800 _res = value_pattern_var;
5801 goto done;
5802 }
5803 p->mark = _mark;
5804 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5805 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "value_pattern"));
5806 }
5807 { // group_pattern
5808 if (p->error_indicator) {
5809 D(p->level--);
5810 return NULL;
5811 }
5812 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "group_pattern"));
5813 expr_ty group_pattern_var;
5814 if (
5815 (group_pattern_var = group_pattern_rule(p)) // group_pattern
5816 )
5817 {
5818 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "group_pattern"));
5819 _res = group_pattern_var;
5820 goto done;
5821 }
5822 p->mark = _mark;
5823 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5824 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "group_pattern"));
5825 }
5826 { // sequence_pattern
5827 if (p->error_indicator) {
5828 D(p->level--);
5829 return NULL;
5830 }
5831 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "sequence_pattern"));
5832 expr_ty sequence_pattern_var;
5833 if (
5834 (sequence_pattern_var = sequence_pattern_rule(p)) // sequence_pattern
5835 )
5836 {
5837 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "sequence_pattern"));
5838 _res = sequence_pattern_var;
5839 goto done;
5840 }
5841 p->mark = _mark;
5842 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5843 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "sequence_pattern"));
5844 }
5845 { // mapping_pattern
5846 if (p->error_indicator) {
5847 D(p->level--);
5848 return NULL;
5849 }
5850 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "mapping_pattern"));
5851 expr_ty mapping_pattern_var;
5852 if (
5853 (mapping_pattern_var = mapping_pattern_rule(p)) // mapping_pattern
5854 )
5855 {
5856 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "mapping_pattern"));
5857 _res = mapping_pattern_var;
5858 goto done;
5859 }
5860 p->mark = _mark;
5861 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5862 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "mapping_pattern"));
5863 }
5864 { // class_pattern
5865 if (p->error_indicator) {
5866 D(p->level--);
5867 return NULL;
5868 }
5869 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "class_pattern"));
5870 expr_ty class_pattern_var;
5871 if (
5872 (class_pattern_var = class_pattern_rule(p)) // class_pattern
5873 )
5874 {
5875 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "class_pattern"));
5876 _res = class_pattern_var;
5877 goto done;
5878 }
5879 p->mark = _mark;
5880 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5881 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "class_pattern"));
5882 }
5883 _res = NULL;
5884 done:
5885 D(p->level--);
5886 return _res;
5887}
5888
5889// literal_pattern:
5890// | signed_number !('+' | '-')
5891// | signed_number '+' NUMBER
5892// | signed_number '-' NUMBER
5893// | strings
5894// | 'None'
5895// | 'True'
5896// | 'False'
5897static expr_ty
5898literal_pattern_rule(Parser *p)
5899{
5900 D(p->level++);
5901 if (p->error_indicator) {
5902 D(p->level--);
5903 return NULL;
5904 }
5905 expr_ty _res = NULL;
5906 int _mark = p->mark;
5907 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
5908 p->error_indicator = 1;
5909 D(p->level--);
5910 return NULL;
5911 }
5912 int _start_lineno = p->tokens[_mark]->lineno;
5913 UNUSED(_start_lineno); // Only used by EXTRA macro
5914 int _start_col_offset = p->tokens[_mark]->col_offset;
5915 UNUSED(_start_col_offset); // Only used by EXTRA macro
5916 { // signed_number !('+' | '-')
5917 if (p->error_indicator) {
5918 D(p->level--);
5919 return NULL;
5920 }
5921 D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "signed_number !('+' | '-')"));
5922 expr_ty signed_number_var;
5923 if (
5924 (signed_number_var = signed_number_rule(p)) // signed_number
5925 &&
5926 _PyPegen_lookahead(0, _tmp_53_rule, p)
5927 )
5928 {
5929 D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "signed_number !('+' | '-')"));
5930 _res = signed_number_var;
5931 goto done;
5932 }
5933 p->mark = _mark;
5934 D(fprintf(stderr, "%*c%s literal_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5935 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "signed_number !('+' | '-')"));
5936 }
5937 { // signed_number '+' NUMBER
5938 if (p->error_indicator) {
5939 D(p->level--);
5940 return NULL;
5941 }
5942 D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "signed_number '+' NUMBER"));
5943 Token * _literal;
5944 expr_ty imag;
5945 expr_ty real;
5946 if (
5947 (real = signed_number_rule(p)) // signed_number
5948 &&
5949 (_literal = _PyPegen_expect_token(p, 14)) // token='+'
5950 &&
5951 (imag = _PyPegen_number_token(p)) // NUMBER
5952 )
5953 {
5954 D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "signed_number '+' NUMBER"));
5955 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5956 if (_token == NULL) {
5957 D(p->level--);
5958 return NULL;
5959 }
5960 int _end_lineno = _token->end_lineno;
5961 UNUSED(_end_lineno); // Only used by EXTRA macro
5962 int _end_col_offset = _token->end_col_offset;
5963 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02005964 _res = _PyAST_BinOp ( real , Add , imag , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08005965 if (_res == NULL && PyErr_Occurred()) {
5966 p->error_indicator = 1;
5967 D(p->level--);
5968 return NULL;
5969 }
5970 goto done;
5971 }
5972 p->mark = _mark;
5973 D(fprintf(stderr, "%*c%s literal_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5974 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "signed_number '+' NUMBER"));
5975 }
5976 { // signed_number '-' NUMBER
5977 if (p->error_indicator) {
5978 D(p->level--);
5979 return NULL;
5980 }
5981 D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "signed_number '-' NUMBER"));
5982 Token * _literal;
5983 expr_ty imag;
5984 expr_ty real;
5985 if (
5986 (real = signed_number_rule(p)) // signed_number
5987 &&
5988 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
5989 &&
5990 (imag = _PyPegen_number_token(p)) // NUMBER
5991 )
5992 {
5993 D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "signed_number '-' NUMBER"));
5994 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5995 if (_token == NULL) {
5996 D(p->level--);
5997 return NULL;
5998 }
5999 int _end_lineno = _token->end_lineno;
6000 UNUSED(_end_lineno); // Only used by EXTRA macro
6001 int _end_col_offset = _token->end_col_offset;
6002 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02006003 _res = _PyAST_BinOp ( real , Sub , imag , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08006004 if (_res == NULL && PyErr_Occurred()) {
6005 p->error_indicator = 1;
6006 D(p->level--);
6007 return NULL;
6008 }
6009 goto done;
6010 }
6011 p->mark = _mark;
6012 D(fprintf(stderr, "%*c%s literal_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6013 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "signed_number '-' NUMBER"));
6014 }
6015 { // strings
6016 if (p->error_indicator) {
6017 D(p->level--);
6018 return NULL;
6019 }
6020 D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "strings"));
6021 expr_ty strings_var;
6022 if (
6023 (strings_var = strings_rule(p)) // strings
6024 )
6025 {
6026 D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "strings"));
6027 _res = strings_var;
6028 goto done;
6029 }
6030 p->mark = _mark;
6031 D(fprintf(stderr, "%*c%s literal_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6032 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "strings"));
6033 }
6034 { // 'None'
6035 if (p->error_indicator) {
6036 D(p->level--);
6037 return NULL;
6038 }
6039 D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'None'"));
6040 Token * _keyword;
6041 if (
6042 (_keyword = _PyPegen_expect_token(p, 523)) // token='None'
6043 )
6044 {
6045 D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'"));
6046 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6047 if (_token == NULL) {
6048 D(p->level--);
6049 return NULL;
6050 }
6051 int _end_lineno = _token->end_lineno;
6052 UNUSED(_end_lineno); // Only used by EXTRA macro
6053 int _end_col_offset = _token->end_col_offset;
6054 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02006055 _res = _PyAST_Constant ( Py_None , NULL , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08006056 if (_res == NULL && PyErr_Occurred()) {
6057 p->error_indicator = 1;
6058 D(p->level--);
6059 return NULL;
6060 }
6061 goto done;
6062 }
6063 p->mark = _mark;
6064 D(fprintf(stderr, "%*c%s literal_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6065 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'None'"));
6066 }
6067 { // 'True'
6068 if (p->error_indicator) {
6069 D(p->level--);
6070 return NULL;
6071 }
6072 D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'True'"));
6073 Token * _keyword;
6074 if (
6075 (_keyword = _PyPegen_expect_token(p, 524)) // token='True'
6076 )
6077 {
6078 D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'"));
6079 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6080 if (_token == NULL) {
6081 D(p->level--);
6082 return NULL;
6083 }
6084 int _end_lineno = _token->end_lineno;
6085 UNUSED(_end_lineno); // Only used by EXTRA macro
6086 int _end_col_offset = _token->end_col_offset;
6087 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02006088 _res = _PyAST_Constant ( Py_True , NULL , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08006089 if (_res == NULL && PyErr_Occurred()) {
6090 p->error_indicator = 1;
6091 D(p->level--);
6092 return NULL;
6093 }
6094 goto done;
6095 }
6096 p->mark = _mark;
6097 D(fprintf(stderr, "%*c%s literal_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6098 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'True'"));
6099 }
6100 { // 'False'
6101 if (p->error_indicator) {
6102 D(p->level--);
6103 return NULL;
6104 }
6105 D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False'"));
6106 Token * _keyword;
6107 if (
6108 (_keyword = _PyPegen_expect_token(p, 525)) // token='False'
6109 )
6110 {
6111 D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'"));
6112 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6113 if (_token == NULL) {
6114 D(p->level--);
6115 return NULL;
6116 }
6117 int _end_lineno = _token->end_lineno;
6118 UNUSED(_end_lineno); // Only used by EXTRA macro
6119 int _end_col_offset = _token->end_col_offset;
6120 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02006121 _res = _PyAST_Constant ( Py_False , NULL , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08006122 if (_res == NULL && PyErr_Occurred()) {
6123 p->error_indicator = 1;
6124 D(p->level--);
6125 return NULL;
6126 }
6127 goto done;
6128 }
6129 p->mark = _mark;
6130 D(fprintf(stderr, "%*c%s literal_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6131 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'False'"));
6132 }
6133 _res = NULL;
6134 done:
6135 D(p->level--);
6136 return _res;
6137}
6138
6139// signed_number: NUMBER | '-' NUMBER
6140static expr_ty
6141signed_number_rule(Parser *p)
6142{
6143 D(p->level++);
6144 if (p->error_indicator) {
6145 D(p->level--);
6146 return NULL;
6147 }
6148 expr_ty _res = NULL;
6149 int _mark = p->mark;
6150 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6151 p->error_indicator = 1;
6152 D(p->level--);
6153 return NULL;
6154 }
6155 int _start_lineno = p->tokens[_mark]->lineno;
6156 UNUSED(_start_lineno); // Only used by EXTRA macro
6157 int _start_col_offset = p->tokens[_mark]->col_offset;
6158 UNUSED(_start_col_offset); // Only used by EXTRA macro
6159 { // NUMBER
6160 if (p->error_indicator) {
6161 D(p->level--);
6162 return NULL;
6163 }
6164 D(fprintf(stderr, "%*c> signed_number[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NUMBER"));
6165 expr_ty number_var;
6166 if (
6167 (number_var = _PyPegen_number_token(p)) // NUMBER
6168 )
6169 {
6170 D(fprintf(stderr, "%*c+ signed_number[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NUMBER"));
6171 _res = number_var;
6172 goto done;
6173 }
6174 p->mark = _mark;
6175 D(fprintf(stderr, "%*c%s signed_number[%d-%d]: %s failed!\n", p->level, ' ',
6176 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NUMBER"));
6177 }
6178 { // '-' NUMBER
6179 if (p->error_indicator) {
6180 D(p->level--);
6181 return NULL;
6182 }
6183 D(fprintf(stderr, "%*c> signed_number[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-' NUMBER"));
6184 Token * _literal;
6185 expr_ty number;
6186 if (
6187 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
6188 &&
6189 (number = _PyPegen_number_token(p)) // NUMBER
6190 )
6191 {
6192 D(fprintf(stderr, "%*c+ signed_number[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-' NUMBER"));
6193 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6194 if (_token == NULL) {
6195 D(p->level--);
6196 return NULL;
6197 }
6198 int _end_lineno = _token->end_lineno;
6199 UNUSED(_end_lineno); // Only used by EXTRA macro
6200 int _end_col_offset = _token->end_col_offset;
6201 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02006202 _res = _PyAST_UnaryOp ( USub , number , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08006203 if (_res == NULL && PyErr_Occurred()) {
6204 p->error_indicator = 1;
6205 D(p->level--);
6206 return NULL;
6207 }
6208 goto done;
6209 }
6210 p->mark = _mark;
6211 D(fprintf(stderr, "%*c%s signed_number[%d-%d]: %s failed!\n", p->level, ' ',
6212 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-' NUMBER"));
6213 }
6214 _res = NULL;
6215 done:
6216 D(p->level--);
6217 return _res;
6218}
6219
6220// capture_pattern: !"_" NAME !('.' | '(' | '=')
6221static expr_ty
6222capture_pattern_rule(Parser *p)
6223{
6224 D(p->level++);
6225 if (p->error_indicator) {
6226 D(p->level--);
6227 return NULL;
6228 }
6229 expr_ty _res = NULL;
6230 int _mark = p->mark;
6231 { // !"_" NAME !('.' | '(' | '=')
6232 if (p->error_indicator) {
6233 D(p->level--);
6234 return NULL;
6235 }
6236 D(fprintf(stderr, "%*c> capture_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "!\"_\" NAME !('.' | '(' | '=')"));
6237 expr_ty name;
6238 if (
6239 _PyPegen_lookahead_with_string(0, _PyPegen_expect_soft_keyword, p, "_")
6240 &&
6241 (name = _PyPegen_name_token(p)) // NAME
6242 &&
6243 _PyPegen_lookahead(0, _tmp_54_rule, p)
6244 )
6245 {
6246 D(fprintf(stderr, "%*c+ capture_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "!\"_\" NAME !('.' | '(' | '=')"));
6247 _res = _PyPegen_set_expr_context ( p , name , Store );
6248 if (_res == NULL && PyErr_Occurred()) {
6249 p->error_indicator = 1;
6250 D(p->level--);
6251 return NULL;
6252 }
6253 goto done;
6254 }
6255 p->mark = _mark;
6256 D(fprintf(stderr, "%*c%s capture_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6257 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "!\"_\" NAME !('.' | '(' | '=')"));
6258 }
6259 _res = NULL;
6260 done:
6261 D(p->level--);
6262 return _res;
6263}
6264
6265// wildcard_pattern: "_"
6266static expr_ty
6267wildcard_pattern_rule(Parser *p)
6268{
6269 D(p->level++);
6270 if (p->error_indicator) {
6271 D(p->level--);
6272 return NULL;
6273 }
6274 expr_ty _res = NULL;
6275 int _mark = p->mark;
6276 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6277 p->error_indicator = 1;
6278 D(p->level--);
6279 return NULL;
6280 }
6281 int _start_lineno = p->tokens[_mark]->lineno;
6282 UNUSED(_start_lineno); // Only used by EXTRA macro
6283 int _start_col_offset = p->tokens[_mark]->col_offset;
6284 UNUSED(_start_col_offset); // Only used by EXTRA macro
6285 { // "_"
6286 if (p->error_indicator) {
6287 D(p->level--);
6288 return NULL;
6289 }
6290 D(fprintf(stderr, "%*c> wildcard_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"_\""));
6291 expr_ty _keyword;
6292 if (
6293 (_keyword = _PyPegen_expect_soft_keyword(p, "_")) // soft_keyword='"_"'
6294 )
6295 {
6296 D(fprintf(stderr, "%*c+ wildcard_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"_\""));
6297 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6298 if (_token == NULL) {
6299 D(p->level--);
6300 return NULL;
6301 }
6302 int _end_lineno = _token->end_lineno;
6303 UNUSED(_end_lineno); // Only used by EXTRA macro
6304 int _end_col_offset = _token->end_col_offset;
6305 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02006306 _res = _PyAST_Name ( CHECK ( PyObject * , _PyPegen_new_identifier ( p , "_" ) ) , Store , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08006307 if (_res == NULL && PyErr_Occurred()) {
6308 p->error_indicator = 1;
6309 D(p->level--);
6310 return NULL;
6311 }
6312 goto done;
6313 }
6314 p->mark = _mark;
6315 D(fprintf(stderr, "%*c%s wildcard_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6316 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"_\""));
6317 }
6318 _res = NULL;
6319 done:
6320 D(p->level--);
6321 return _res;
6322}
6323
6324// value_pattern: attr !('.' | '(' | '=')
6325static expr_ty
6326value_pattern_rule(Parser *p)
6327{
6328 D(p->level++);
6329 if (p->error_indicator) {
6330 D(p->level--);
6331 return NULL;
6332 }
6333 expr_ty _res = NULL;
6334 int _mark = p->mark;
6335 { // attr !('.' | '(' | '=')
6336 if (p->error_indicator) {
6337 D(p->level--);
6338 return NULL;
6339 }
6340 D(fprintf(stderr, "%*c> value_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "attr !('.' | '(' | '=')"));
6341 expr_ty attr;
6342 if (
6343 (attr = attr_rule(p)) // attr
6344 &&
6345 _PyPegen_lookahead(0, _tmp_55_rule, p)
6346 )
6347 {
6348 D(fprintf(stderr, "%*c+ value_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "attr !('.' | '(' | '=')"));
6349 _res = attr;
6350 if (_res == NULL && PyErr_Occurred()) {
6351 p->error_indicator = 1;
6352 D(p->level--);
6353 return NULL;
6354 }
6355 goto done;
6356 }
6357 p->mark = _mark;
6358 D(fprintf(stderr, "%*c%s value_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6359 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "attr !('.' | '(' | '=')"));
6360 }
6361 _res = NULL;
6362 done:
6363 D(p->level--);
6364 return _res;
6365}
6366
6367// Left-recursive
6368// attr: name_or_attr '.' NAME
6369static expr_ty attr_raw(Parser *);
6370static expr_ty
6371attr_rule(Parser *p)
6372{
6373 D(p->level++);
6374 expr_ty _res = NULL;
6375 if (_PyPegen_is_memoized(p, attr_type, &_res)) {
6376 D(p->level--);
6377 return _res;
6378 }
6379 int _mark = p->mark;
6380 int _resmark = p->mark;
6381 while (1) {
6382 int tmpvar_1 = _PyPegen_update_memo(p, _mark, attr_type, _res);
6383 if (tmpvar_1) {
6384 D(p->level--);
6385 return _res;
6386 }
6387 p->mark = _mark;
6388 void *_raw = attr_raw(p);
6389 if (p->error_indicator)
6390 return NULL;
6391 if (_raw == NULL || p->mark <= _resmark)
6392 break;
6393 _resmark = p->mark;
6394 _res = _raw;
6395 }
6396 p->mark = _resmark;
6397 D(p->level--);
6398 return _res;
6399}
6400static expr_ty
6401attr_raw(Parser *p)
6402{
6403 D(p->level++);
6404 if (p->error_indicator) {
6405 D(p->level--);
6406 return NULL;
6407 }
6408 expr_ty _res = NULL;
6409 int _mark = p->mark;
6410 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6411 p->error_indicator = 1;
6412 D(p->level--);
6413 return NULL;
6414 }
6415 int _start_lineno = p->tokens[_mark]->lineno;
6416 UNUSED(_start_lineno); // Only used by EXTRA macro
6417 int _start_col_offset = p->tokens[_mark]->col_offset;
6418 UNUSED(_start_col_offset); // Only used by EXTRA macro
6419 { // name_or_attr '.' NAME
6420 if (p->error_indicator) {
6421 D(p->level--);
6422 return NULL;
6423 }
6424 D(fprintf(stderr, "%*c> attr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "name_or_attr '.' NAME"));
6425 Token * _literal;
6426 expr_ty attr;
6427 expr_ty value;
6428 if (
6429 (value = name_or_attr_rule(p)) // name_or_attr
6430 &&
6431 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
6432 &&
6433 (attr = _PyPegen_name_token(p)) // NAME
6434 )
6435 {
6436 D(fprintf(stderr, "%*c+ attr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "name_or_attr '.' NAME"));
6437 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6438 if (_token == NULL) {
6439 D(p->level--);
6440 return NULL;
6441 }
6442 int _end_lineno = _token->end_lineno;
6443 UNUSED(_end_lineno); // Only used by EXTRA macro
6444 int _end_col_offset = _token->end_col_offset;
6445 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02006446 _res = _PyAST_Attribute ( value , attr -> v . Name . id , Load , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08006447 if (_res == NULL && PyErr_Occurred()) {
6448 p->error_indicator = 1;
6449 D(p->level--);
6450 return NULL;
6451 }
6452 goto done;
6453 }
6454 p->mark = _mark;
6455 D(fprintf(stderr, "%*c%s attr[%d-%d]: %s failed!\n", p->level, ' ',
6456 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "name_or_attr '.' NAME"));
6457 }
6458 _res = NULL;
6459 done:
6460 D(p->level--);
6461 return _res;
6462}
6463
6464// Left-recursive
6465// name_or_attr: attr | NAME
6466static expr_ty
6467name_or_attr_rule(Parser *p)
6468{
6469 D(p->level++);
6470 if (p->error_indicator) {
6471 D(p->level--);
6472 return NULL;
6473 }
6474 expr_ty _res = NULL;
6475 int _mark = p->mark;
6476 { // attr
6477 if (p->error_indicator) {
6478 D(p->level--);
6479 return NULL;
6480 }
6481 D(fprintf(stderr, "%*c> name_or_attr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "attr"));
6482 expr_ty attr_var;
6483 if (
6484 (attr_var = attr_rule(p)) // attr
6485 )
6486 {
6487 D(fprintf(stderr, "%*c+ name_or_attr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "attr"));
6488 _res = attr_var;
6489 goto done;
6490 }
6491 p->mark = _mark;
6492 D(fprintf(stderr, "%*c%s name_or_attr[%d-%d]: %s failed!\n", p->level, ' ',
6493 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "attr"));
6494 }
6495 { // NAME
6496 if (p->error_indicator) {
6497 D(p->level--);
6498 return NULL;
6499 }
6500 D(fprintf(stderr, "%*c> name_or_attr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
6501 expr_ty name_var;
6502 if (
6503 (name_var = _PyPegen_name_token(p)) // NAME
6504 )
6505 {
6506 D(fprintf(stderr, "%*c+ name_or_attr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
6507 _res = name_var;
6508 goto done;
6509 }
6510 p->mark = _mark;
6511 D(fprintf(stderr, "%*c%s name_or_attr[%d-%d]: %s failed!\n", p->level, ' ',
6512 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
6513 }
6514 _res = NULL;
6515 done:
6516 D(p->level--);
6517 return _res;
6518}
6519
6520// group_pattern: '(' pattern ')'
6521static expr_ty
6522group_pattern_rule(Parser *p)
6523{
6524 D(p->level++);
6525 if (p->error_indicator) {
6526 D(p->level--);
6527 return NULL;
6528 }
6529 expr_ty _res = NULL;
6530 int _mark = p->mark;
6531 { // '(' pattern ')'
6532 if (p->error_indicator) {
6533 D(p->level--);
6534 return NULL;
6535 }
6536 D(fprintf(stderr, "%*c> group_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' pattern ')'"));
6537 Token * _literal;
6538 Token * _literal_1;
6539 expr_ty pattern;
6540 if (
6541 (_literal = _PyPegen_expect_token(p, 7)) // token='('
6542 &&
6543 (pattern = pattern_rule(p)) // pattern
6544 &&
6545 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
6546 )
6547 {
6548 D(fprintf(stderr, "%*c+ group_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' pattern ')'"));
6549 _res = pattern;
6550 if (_res == NULL && PyErr_Occurred()) {
6551 p->error_indicator = 1;
6552 D(p->level--);
6553 return NULL;
6554 }
6555 goto done;
6556 }
6557 p->mark = _mark;
6558 D(fprintf(stderr, "%*c%s group_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6559 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' pattern ')'"));
6560 }
6561 _res = NULL;
6562 done:
6563 D(p->level--);
6564 return _res;
6565}
6566
6567// sequence_pattern: '[' maybe_sequence_pattern? ']' | '(' open_sequence_pattern? ')'
6568static expr_ty
6569sequence_pattern_rule(Parser *p)
6570{
6571 D(p->level++);
6572 if (p->error_indicator) {
6573 D(p->level--);
6574 return NULL;
6575 }
6576 expr_ty _res = NULL;
6577 int _mark = p->mark;
6578 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6579 p->error_indicator = 1;
6580 D(p->level--);
6581 return NULL;
6582 }
6583 int _start_lineno = p->tokens[_mark]->lineno;
6584 UNUSED(_start_lineno); // Only used by EXTRA macro
6585 int _start_col_offset = p->tokens[_mark]->col_offset;
6586 UNUSED(_start_col_offset); // Only used by EXTRA macro
6587 { // '[' maybe_sequence_pattern? ']'
6588 if (p->error_indicator) {
6589 D(p->level--);
6590 return NULL;
6591 }
6592 D(fprintf(stderr, "%*c> sequence_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' maybe_sequence_pattern? ']'"));
6593 Token * _literal;
6594 Token * _literal_1;
6595 void *values;
6596 if (
6597 (_literal = _PyPegen_expect_token(p, 9)) // token='['
6598 &&
6599 (values = maybe_sequence_pattern_rule(p), 1) // maybe_sequence_pattern?
6600 &&
6601 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
6602 )
6603 {
6604 D(fprintf(stderr, "%*c+ sequence_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'[' maybe_sequence_pattern? ']'"));
6605 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6606 if (_token == NULL) {
6607 D(p->level--);
6608 return NULL;
6609 }
6610 int _end_lineno = _token->end_lineno;
6611 UNUSED(_end_lineno); // Only used by EXTRA macro
6612 int _end_col_offset = _token->end_col_offset;
6613 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02006614 _res = _PyAST_List ( values , Load , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08006615 if (_res == NULL && PyErr_Occurred()) {
6616 p->error_indicator = 1;
6617 D(p->level--);
6618 return NULL;
6619 }
6620 goto done;
6621 }
6622 p->mark = _mark;
6623 D(fprintf(stderr, "%*c%s sequence_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6624 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' maybe_sequence_pattern? ']'"));
6625 }
6626 { // '(' open_sequence_pattern? ')'
6627 if (p->error_indicator) {
6628 D(p->level--);
6629 return NULL;
6630 }
6631 D(fprintf(stderr, "%*c> sequence_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' open_sequence_pattern? ')'"));
6632 Token * _literal;
6633 Token * _literal_1;
6634 void *values;
6635 if (
6636 (_literal = _PyPegen_expect_token(p, 7)) // token='('
6637 &&
6638 (values = open_sequence_pattern_rule(p), 1) // open_sequence_pattern?
6639 &&
6640 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
6641 )
6642 {
6643 D(fprintf(stderr, "%*c+ sequence_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' open_sequence_pattern? ')'"));
6644 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6645 if (_token == NULL) {
6646 D(p->level--);
6647 return NULL;
6648 }
6649 int _end_lineno = _token->end_lineno;
6650 UNUSED(_end_lineno); // Only used by EXTRA macro
6651 int _end_col_offset = _token->end_col_offset;
6652 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02006653 _res = _PyAST_Tuple ( values , Load , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08006654 if (_res == NULL && PyErr_Occurred()) {
6655 p->error_indicator = 1;
6656 D(p->level--);
6657 return NULL;
6658 }
6659 goto done;
6660 }
6661 p->mark = _mark;
6662 D(fprintf(stderr, "%*c%s sequence_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6663 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' open_sequence_pattern? ')'"));
6664 }
6665 _res = NULL;
6666 done:
6667 D(p->level--);
6668 return _res;
6669}
6670
6671// open_sequence_pattern: maybe_star_pattern ',' maybe_sequence_pattern?
6672static asdl_seq*
6673open_sequence_pattern_rule(Parser *p)
6674{
6675 D(p->level++);
6676 if (p->error_indicator) {
6677 D(p->level--);
6678 return NULL;
6679 }
6680 asdl_seq* _res = NULL;
6681 int _mark = p->mark;
6682 { // maybe_star_pattern ',' maybe_sequence_pattern?
6683 if (p->error_indicator) {
6684 D(p->level--);
6685 return NULL;
6686 }
6687 D(fprintf(stderr, "%*c> open_sequence_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "maybe_star_pattern ',' maybe_sequence_pattern?"));
6688 Token * _literal;
6689 expr_ty value;
6690 void *values;
6691 if (
6692 (value = maybe_star_pattern_rule(p)) // maybe_star_pattern
6693 &&
6694 (_literal = _PyPegen_expect_token(p, 12)) // token=','
6695 &&
6696 (values = maybe_sequence_pattern_rule(p), 1) // maybe_sequence_pattern?
6697 )
6698 {
6699 D(fprintf(stderr, "%*c+ open_sequence_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "maybe_star_pattern ',' maybe_sequence_pattern?"));
6700 _res = _PyPegen_seq_insert_in_front ( p , value , values );
6701 if (_res == NULL && PyErr_Occurred()) {
6702 p->error_indicator = 1;
6703 D(p->level--);
6704 return NULL;
6705 }
6706 goto done;
6707 }
6708 p->mark = _mark;
6709 D(fprintf(stderr, "%*c%s open_sequence_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6710 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "maybe_star_pattern ',' maybe_sequence_pattern?"));
6711 }
6712 _res = NULL;
6713 done:
6714 D(p->level--);
6715 return _res;
6716}
6717
6718// maybe_sequence_pattern: ','.maybe_star_pattern+ ','?
6719static asdl_seq*
6720maybe_sequence_pattern_rule(Parser *p)
6721{
6722 D(p->level++);
6723 if (p->error_indicator) {
6724 D(p->level--);
6725 return NULL;
6726 }
6727 asdl_seq* _res = NULL;
6728 int _mark = p->mark;
6729 { // ','.maybe_star_pattern+ ','?
6730 if (p->error_indicator) {
6731 D(p->level--);
6732 return NULL;
6733 }
6734 D(fprintf(stderr, "%*c> maybe_sequence_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.maybe_star_pattern+ ','?"));
6735 void *_opt_var;
6736 UNUSED(_opt_var); // Silence compiler warnings
6737 asdl_seq * values;
6738 if (
6739 (values = _gather_56_rule(p)) // ','.maybe_star_pattern+
6740 &&
6741 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
6742 )
6743 {
6744 D(fprintf(stderr, "%*c+ maybe_sequence_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.maybe_star_pattern+ ','?"));
6745 _res = values;
6746 if (_res == NULL && PyErr_Occurred()) {
6747 p->error_indicator = 1;
6748 D(p->level--);
6749 return NULL;
6750 }
6751 goto done;
6752 }
6753 p->mark = _mark;
6754 D(fprintf(stderr, "%*c%s maybe_sequence_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6755 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.maybe_star_pattern+ ','?"));
6756 }
6757 _res = NULL;
6758 done:
6759 D(p->level--);
6760 return _res;
6761}
6762
6763// maybe_star_pattern: star_pattern | pattern
6764static expr_ty
6765maybe_star_pattern_rule(Parser *p)
6766{
6767 D(p->level++);
6768 if (p->error_indicator) {
6769 D(p->level--);
6770 return NULL;
6771 }
6772 expr_ty _res = NULL;
6773 int _mark = p->mark;
6774 { // star_pattern
6775 if (p->error_indicator) {
6776 D(p->level--);
6777 return NULL;
6778 }
6779 D(fprintf(stderr, "%*c> maybe_star_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_pattern"));
6780 expr_ty star_pattern_var;
6781 if (
6782 (star_pattern_var = star_pattern_rule(p)) // star_pattern
6783 )
6784 {
6785 D(fprintf(stderr, "%*c+ maybe_star_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_pattern"));
6786 _res = star_pattern_var;
6787 goto done;
6788 }
6789 p->mark = _mark;
6790 D(fprintf(stderr, "%*c%s maybe_star_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6791 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_pattern"));
6792 }
6793 { // pattern
6794 if (p->error_indicator) {
6795 D(p->level--);
6796 return NULL;
6797 }
6798 D(fprintf(stderr, "%*c> maybe_star_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "pattern"));
6799 expr_ty pattern_var;
6800 if (
6801 (pattern_var = pattern_rule(p)) // pattern
6802 )
6803 {
6804 D(fprintf(stderr, "%*c+ maybe_star_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "pattern"));
6805 _res = pattern_var;
6806 goto done;
6807 }
6808 p->mark = _mark;
6809 D(fprintf(stderr, "%*c%s maybe_star_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6810 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "pattern"));
6811 }
6812 _res = NULL;
6813 done:
6814 D(p->level--);
6815 return _res;
6816}
6817
6818// star_pattern: '*' (capture_pattern | wildcard_pattern)
6819static expr_ty
6820star_pattern_rule(Parser *p)
6821{
6822 D(p->level++);
6823 if (p->error_indicator) {
6824 D(p->level--);
6825 return NULL;
6826 }
6827 expr_ty _res = NULL;
6828 int _mark = p->mark;
6829 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6830 p->error_indicator = 1;
6831 D(p->level--);
6832 return NULL;
6833 }
6834 int _start_lineno = p->tokens[_mark]->lineno;
6835 UNUSED(_start_lineno); // Only used by EXTRA macro
6836 int _start_col_offset = p->tokens[_mark]->col_offset;
6837 UNUSED(_start_col_offset); // Only used by EXTRA macro
6838 { // '*' (capture_pattern | wildcard_pattern)
6839 if (p->error_indicator) {
6840 D(p->level--);
6841 return NULL;
6842 }
6843 D(fprintf(stderr, "%*c> star_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (capture_pattern | wildcard_pattern)"));
6844 Token * _literal;
6845 void *value;
6846 if (
6847 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
6848 &&
6849 (value = _tmp_58_rule(p)) // capture_pattern | wildcard_pattern
6850 )
6851 {
6852 D(fprintf(stderr, "%*c+ star_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' (capture_pattern | wildcard_pattern)"));
6853 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6854 if (_token == NULL) {
6855 D(p->level--);
6856 return NULL;
6857 }
6858 int _end_lineno = _token->end_lineno;
6859 UNUSED(_end_lineno); // Only used by EXTRA macro
6860 int _end_col_offset = _token->end_col_offset;
6861 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02006862 _res = _PyAST_Starred ( value , Store , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08006863 if (_res == NULL && PyErr_Occurred()) {
6864 p->error_indicator = 1;
6865 D(p->level--);
6866 return NULL;
6867 }
6868 goto done;
6869 }
6870 p->mark = _mark;
6871 D(fprintf(stderr, "%*c%s star_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6872 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' (capture_pattern | wildcard_pattern)"));
6873 }
6874 _res = NULL;
6875 done:
6876 D(p->level--);
6877 return _res;
6878}
6879
6880// mapping_pattern: '{' items_pattern? '}'
6881static expr_ty
6882mapping_pattern_rule(Parser *p)
6883{
6884 D(p->level++);
6885 if (p->error_indicator) {
6886 D(p->level--);
6887 return NULL;
6888 }
6889 expr_ty _res = NULL;
6890 int _mark = p->mark;
6891 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6892 p->error_indicator = 1;
6893 D(p->level--);
6894 return NULL;
6895 }
6896 int _start_lineno = p->tokens[_mark]->lineno;
6897 UNUSED(_start_lineno); // Only used by EXTRA macro
6898 int _start_col_offset = p->tokens[_mark]->col_offset;
6899 UNUSED(_start_col_offset); // Only used by EXTRA macro
6900 { // '{' items_pattern? '}'
6901 if (p->error_indicator) {
6902 D(p->level--);
6903 return NULL;
6904 }
6905 D(fprintf(stderr, "%*c> mapping_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' items_pattern? '}'"));
6906 Token * _literal;
6907 Token * _literal_1;
6908 void *items;
6909 if (
6910 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
6911 &&
6912 (items = items_pattern_rule(p), 1) // items_pattern?
6913 &&
6914 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
6915 )
6916 {
6917 D(fprintf(stderr, "%*c+ mapping_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' items_pattern? '}'"));
6918 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6919 if (_token == NULL) {
6920 D(p->level--);
6921 return NULL;
6922 }
6923 int _end_lineno = _token->end_lineno;
6924 UNUSED(_end_lineno); // Only used by EXTRA macro
6925 int _end_col_offset = _token->end_col_offset;
6926 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02006927 _res = _PyAST_Dict ( CHECK ( asdl_expr_seq * , _PyPegen_get_keys ( p , items ) ) , CHECK ( asdl_expr_seq * , _PyPegen_get_values ( p , items ) ) , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08006928 if (_res == NULL && PyErr_Occurred()) {
6929 p->error_indicator = 1;
6930 D(p->level--);
6931 return NULL;
6932 }
6933 goto done;
6934 }
6935 p->mark = _mark;
6936 D(fprintf(stderr, "%*c%s mapping_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6937 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' items_pattern? '}'"));
6938 }
6939 _res = NULL;
6940 done:
6941 D(p->level--);
6942 return _res;
6943}
6944
6945// items_pattern: ','.key_value_pattern+ ','?
6946static asdl_seq*
6947items_pattern_rule(Parser *p)
6948{
6949 D(p->level++);
6950 if (p->error_indicator) {
6951 D(p->level--);
6952 return NULL;
6953 }
6954 asdl_seq* _res = NULL;
6955 int _mark = p->mark;
6956 { // ','.key_value_pattern+ ','?
6957 if (p->error_indicator) {
6958 D(p->level--);
6959 return NULL;
6960 }
6961 D(fprintf(stderr, "%*c> items_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.key_value_pattern+ ','?"));
6962 void *_opt_var;
6963 UNUSED(_opt_var); // Silence compiler warnings
6964 asdl_seq * items;
6965 if (
6966 (items = _gather_59_rule(p)) // ','.key_value_pattern+
6967 &&
6968 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
6969 )
6970 {
6971 D(fprintf(stderr, "%*c+ items_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.key_value_pattern+ ','?"));
6972 _res = items;
6973 if (_res == NULL && PyErr_Occurred()) {
6974 p->error_indicator = 1;
6975 D(p->level--);
6976 return NULL;
6977 }
6978 goto done;
6979 }
6980 p->mark = _mark;
6981 D(fprintf(stderr, "%*c%s items_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6982 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.key_value_pattern+ ','?"));
6983 }
6984 _res = NULL;
6985 done:
6986 D(p->level--);
6987 return _res;
6988}
6989
6990// key_value_pattern: (literal_pattern | value_pattern) ':' pattern | double_star_pattern
6991static KeyValuePair*
6992key_value_pattern_rule(Parser *p)
6993{
6994 D(p->level++);
6995 if (p->error_indicator) {
6996 D(p->level--);
6997 return NULL;
6998 }
6999 KeyValuePair* _res = NULL;
7000 int _mark = p->mark;
7001 { // (literal_pattern | value_pattern) ':' pattern
7002 if (p->error_indicator) {
7003 D(p->level--);
7004 return NULL;
7005 }
7006 D(fprintf(stderr, "%*c> key_value_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(literal_pattern | value_pattern) ':' pattern"));
7007 Token * _literal;
7008 void *key;
7009 expr_ty value;
7010 if (
7011 (key = _tmp_61_rule(p)) // literal_pattern | value_pattern
7012 &&
7013 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
7014 &&
7015 (value = pattern_rule(p)) // pattern
7016 )
7017 {
7018 D(fprintf(stderr, "%*c+ key_value_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(literal_pattern | value_pattern) ':' pattern"));
7019 _res = _PyPegen_key_value_pair ( p , key , value );
7020 if (_res == NULL && PyErr_Occurred()) {
7021 p->error_indicator = 1;
7022 D(p->level--);
7023 return NULL;
7024 }
7025 goto done;
7026 }
7027 p->mark = _mark;
7028 D(fprintf(stderr, "%*c%s key_value_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7029 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(literal_pattern | value_pattern) ':' pattern"));
7030 }
7031 { // double_star_pattern
7032 if (p->error_indicator) {
7033 D(p->level--);
7034 return NULL;
7035 }
7036 D(fprintf(stderr, "%*c> key_value_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "double_star_pattern"));
7037 KeyValuePair* double_star_pattern_var;
7038 if (
7039 (double_star_pattern_var = double_star_pattern_rule(p)) // double_star_pattern
7040 )
7041 {
7042 D(fprintf(stderr, "%*c+ key_value_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "double_star_pattern"));
7043 _res = double_star_pattern_var;
7044 goto done;
7045 }
7046 p->mark = _mark;
7047 D(fprintf(stderr, "%*c%s key_value_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7048 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "double_star_pattern"));
7049 }
7050 _res = NULL;
7051 done:
7052 D(p->level--);
7053 return _res;
7054}
7055
7056// double_star_pattern: '**' capture_pattern
7057static KeyValuePair*
7058double_star_pattern_rule(Parser *p)
7059{
7060 D(p->level++);
7061 if (p->error_indicator) {
7062 D(p->level--);
7063 return NULL;
7064 }
7065 KeyValuePair* _res = NULL;
7066 int _mark = p->mark;
7067 { // '**' capture_pattern
7068 if (p->error_indicator) {
7069 D(p->level--);
7070 return NULL;
7071 }
7072 D(fprintf(stderr, "%*c> double_star_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' capture_pattern"));
7073 Token * _literal;
7074 expr_ty value;
7075 if (
7076 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
7077 &&
7078 (value = capture_pattern_rule(p)) // capture_pattern
7079 )
7080 {
7081 D(fprintf(stderr, "%*c+ double_star_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' capture_pattern"));
7082 _res = _PyPegen_key_value_pair ( p , NULL , value );
7083 if (_res == NULL && PyErr_Occurred()) {
7084 p->error_indicator = 1;
7085 D(p->level--);
7086 return NULL;
7087 }
7088 goto done;
7089 }
7090 p->mark = _mark;
7091 D(fprintf(stderr, "%*c%s double_star_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7092 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' capture_pattern"));
7093 }
7094 _res = NULL;
7095 done:
7096 D(p->level--);
7097 return _res;
7098}
7099
7100// class_pattern:
7101// | name_or_attr '(' ')'
7102// | name_or_attr '(' positional_patterns ','? ')'
7103// | name_or_attr '(' keyword_patterns ','? ')'
7104// | name_or_attr '(' positional_patterns ',' keyword_patterns ','? ')'
7105static expr_ty
7106class_pattern_rule(Parser *p)
7107{
7108 D(p->level++);
7109 if (p->error_indicator) {
7110 D(p->level--);
7111 return NULL;
7112 }
7113 expr_ty _res = NULL;
7114 int _mark = p->mark;
7115 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
7116 p->error_indicator = 1;
7117 D(p->level--);
7118 return NULL;
7119 }
7120 int _start_lineno = p->tokens[_mark]->lineno;
7121 UNUSED(_start_lineno); // Only used by EXTRA macro
7122 int _start_col_offset = p->tokens[_mark]->col_offset;
7123 UNUSED(_start_col_offset); // Only used by EXTRA macro
7124 { // name_or_attr '(' ')'
7125 if (p->error_indicator) {
7126 D(p->level--);
7127 return NULL;
7128 }
7129 D(fprintf(stderr, "%*c> class_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' ')'"));
7130 Token * _literal;
7131 Token * _literal_1;
7132 expr_ty func;
7133 if (
7134 (func = name_or_attr_rule(p)) // name_or_attr
7135 &&
7136 (_literal = _PyPegen_expect_token(p, 7)) // token='('
7137 &&
7138 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
7139 )
7140 {
7141 D(fprintf(stderr, "%*c+ class_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' ')'"));
7142 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7143 if (_token == NULL) {
7144 D(p->level--);
7145 return NULL;
7146 }
7147 int _end_lineno = _token->end_lineno;
7148 UNUSED(_end_lineno); // Only used by EXTRA macro
7149 int _end_col_offset = _token->end_col_offset;
7150 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02007151 _res = _PyAST_Call ( func , NULL , NULL , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08007152 if (_res == NULL && PyErr_Occurred()) {
7153 p->error_indicator = 1;
7154 D(p->level--);
7155 return NULL;
7156 }
7157 goto done;
7158 }
7159 p->mark = _mark;
7160 D(fprintf(stderr, "%*c%s class_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7161 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "name_or_attr '(' ')'"));
7162 }
7163 { // name_or_attr '(' positional_patterns ','? ')'
7164 if (p->error_indicator) {
7165 D(p->level--);
7166 return NULL;
7167 }
7168 D(fprintf(stderr, "%*c> class_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' positional_patterns ','? ')'"));
7169 Token * _literal;
7170 Token * _literal_1;
7171 void *_opt_var;
7172 UNUSED(_opt_var); // Silence compiler warnings
7173 asdl_expr_seq* args;
7174 expr_ty func;
7175 if (
7176 (func = name_or_attr_rule(p)) // name_or_attr
7177 &&
7178 (_literal = _PyPegen_expect_token(p, 7)) // token='('
7179 &&
7180 (args = positional_patterns_rule(p)) // positional_patterns
7181 &&
7182 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
7183 &&
7184 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
7185 )
7186 {
7187 D(fprintf(stderr, "%*c+ class_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' positional_patterns ','? ')'"));
7188 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7189 if (_token == NULL) {
7190 D(p->level--);
7191 return NULL;
7192 }
7193 int _end_lineno = _token->end_lineno;
7194 UNUSED(_end_lineno); // Only used by EXTRA macro
7195 int _end_col_offset = _token->end_col_offset;
7196 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02007197 _res = _PyAST_Call ( func , args , NULL , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08007198 if (_res == NULL && PyErr_Occurred()) {
7199 p->error_indicator = 1;
7200 D(p->level--);
7201 return NULL;
7202 }
7203 goto done;
7204 }
7205 p->mark = _mark;
7206 D(fprintf(stderr, "%*c%s class_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7207 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "name_or_attr '(' positional_patterns ','? ')'"));
7208 }
7209 { // name_or_attr '(' keyword_patterns ','? ')'
7210 if (p->error_indicator) {
7211 D(p->level--);
7212 return NULL;
7213 }
7214 D(fprintf(stderr, "%*c> class_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' keyword_patterns ','? ')'"));
7215 Token * _literal;
7216 Token * _literal_1;
7217 void *_opt_var;
7218 UNUSED(_opt_var); // Silence compiler warnings
7219 expr_ty func;
7220 asdl_keyword_seq* keywords;
7221 if (
7222 (func = name_or_attr_rule(p)) // name_or_attr
7223 &&
7224 (_literal = _PyPegen_expect_token(p, 7)) // token='('
7225 &&
7226 (keywords = keyword_patterns_rule(p)) // keyword_patterns
7227 &&
7228 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
7229 &&
7230 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
7231 )
7232 {
7233 D(fprintf(stderr, "%*c+ class_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' keyword_patterns ','? ')'"));
7234 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7235 if (_token == NULL) {
7236 D(p->level--);
7237 return NULL;
7238 }
7239 int _end_lineno = _token->end_lineno;
7240 UNUSED(_end_lineno); // Only used by EXTRA macro
7241 int _end_col_offset = _token->end_col_offset;
7242 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02007243 _res = _PyAST_Call ( func , NULL , keywords , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08007244 if (_res == NULL && PyErr_Occurred()) {
7245 p->error_indicator = 1;
7246 D(p->level--);
7247 return NULL;
7248 }
7249 goto done;
7250 }
7251 p->mark = _mark;
7252 D(fprintf(stderr, "%*c%s class_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7253 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "name_or_attr '(' keyword_patterns ','? ')'"));
7254 }
7255 { // name_or_attr '(' positional_patterns ',' keyword_patterns ','? ')'
7256 if (p->error_indicator) {
7257 D(p->level--);
7258 return NULL;
7259 }
7260 D(fprintf(stderr, "%*c> class_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' positional_patterns ',' keyword_patterns ','? ')'"));
7261 Token * _literal;
7262 Token * _literal_1;
7263 Token * _literal_2;
7264 void *_opt_var;
7265 UNUSED(_opt_var); // Silence compiler warnings
7266 asdl_expr_seq* args;
7267 expr_ty func;
7268 asdl_keyword_seq* keywords;
7269 if (
7270 (func = name_or_attr_rule(p)) // name_or_attr
7271 &&
7272 (_literal = _PyPegen_expect_token(p, 7)) // token='('
7273 &&
7274 (args = positional_patterns_rule(p)) // positional_patterns
7275 &&
7276 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
7277 &&
7278 (keywords = keyword_patterns_rule(p)) // keyword_patterns
7279 &&
7280 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
7281 &&
7282 (_literal_2 = _PyPegen_expect_token(p, 8)) // token=')'
7283 )
7284 {
7285 D(fprintf(stderr, "%*c+ class_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' positional_patterns ',' keyword_patterns ','? ')'"));
7286 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7287 if (_token == NULL) {
7288 D(p->level--);
7289 return NULL;
7290 }
7291 int _end_lineno = _token->end_lineno;
7292 UNUSED(_end_lineno); // Only used by EXTRA macro
7293 int _end_col_offset = _token->end_col_offset;
7294 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02007295 _res = _PyAST_Call ( func , args , keywords , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08007296 if (_res == NULL && PyErr_Occurred()) {
7297 p->error_indicator = 1;
7298 D(p->level--);
7299 return NULL;
7300 }
7301 goto done;
7302 }
7303 p->mark = _mark;
7304 D(fprintf(stderr, "%*c%s class_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7305 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "name_or_attr '(' positional_patterns ',' keyword_patterns ','? ')'"));
7306 }
7307 _res = NULL;
7308 done:
7309 D(p->level--);
7310 return _res;
7311}
7312
7313// positional_patterns: ','.pattern+
7314static asdl_expr_seq*
7315positional_patterns_rule(Parser *p)
7316{
7317 D(p->level++);
7318 if (p->error_indicator) {
7319 D(p->level--);
7320 return NULL;
7321 }
7322 asdl_expr_seq* _res = NULL;
7323 int _mark = p->mark;
7324 { // ','.pattern+
7325 if (p->error_indicator) {
7326 D(p->level--);
7327 return NULL;
7328 }
7329 D(fprintf(stderr, "%*c> positional_patterns[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.pattern+"));
7330 asdl_expr_seq* args;
7331 if (
7332 (args = (asdl_expr_seq*)_gather_62_rule(p)) // ','.pattern+
7333 )
7334 {
7335 D(fprintf(stderr, "%*c+ positional_patterns[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.pattern+"));
7336 _res = args;
7337 if (_res == NULL && PyErr_Occurred()) {
7338 p->error_indicator = 1;
7339 D(p->level--);
7340 return NULL;
7341 }
7342 goto done;
7343 }
7344 p->mark = _mark;
7345 D(fprintf(stderr, "%*c%s positional_patterns[%d-%d]: %s failed!\n", p->level, ' ',
7346 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.pattern+"));
7347 }
7348 _res = NULL;
7349 done:
7350 D(p->level--);
7351 return _res;
7352}
7353
7354// keyword_patterns: ','.keyword_pattern+
7355static asdl_keyword_seq*
7356keyword_patterns_rule(Parser *p)
7357{
7358 D(p->level++);
7359 if (p->error_indicator) {
7360 D(p->level--);
7361 return NULL;
7362 }
7363 asdl_keyword_seq* _res = NULL;
7364 int _mark = p->mark;
7365 { // ','.keyword_pattern+
7366 if (p->error_indicator) {
7367 D(p->level--);
7368 return NULL;
7369 }
7370 D(fprintf(stderr, "%*c> keyword_patterns[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.keyword_pattern+"));
7371 asdl_keyword_seq* keywords;
7372 if (
7373 (keywords = (asdl_keyword_seq*)_gather_64_rule(p)) // ','.keyword_pattern+
7374 )
7375 {
7376 D(fprintf(stderr, "%*c+ keyword_patterns[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.keyword_pattern+"));
7377 _res = keywords;
7378 if (_res == NULL && PyErr_Occurred()) {
7379 p->error_indicator = 1;
7380 D(p->level--);
7381 return NULL;
7382 }
7383 goto done;
7384 }
7385 p->mark = _mark;
7386 D(fprintf(stderr, "%*c%s keyword_patterns[%d-%d]: %s failed!\n", p->level, ' ',
7387 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.keyword_pattern+"));
7388 }
7389 _res = NULL;
7390 done:
7391 D(p->level--);
7392 return _res;
7393}
7394
7395// keyword_pattern: NAME '=' pattern
7396static keyword_ty
7397keyword_pattern_rule(Parser *p)
7398{
7399 D(p->level++);
7400 if (p->error_indicator) {
7401 D(p->level--);
7402 return NULL;
7403 }
7404 keyword_ty _res = NULL;
7405 int _mark = p->mark;
7406 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
7407 p->error_indicator = 1;
7408 D(p->level--);
7409 return NULL;
7410 }
7411 int _start_lineno = p->tokens[_mark]->lineno;
7412 UNUSED(_start_lineno); // Only used by EXTRA macro
7413 int _start_col_offset = p->tokens[_mark]->col_offset;
7414 UNUSED(_start_col_offset); // Only used by EXTRA macro
7415 { // NAME '=' pattern
7416 if (p->error_indicator) {
7417 D(p->level--);
7418 return NULL;
7419 }
7420 D(fprintf(stderr, "%*c> keyword_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME '=' pattern"));
7421 Token * _literal;
7422 expr_ty arg;
7423 expr_ty value;
7424 if (
7425 (arg = _PyPegen_name_token(p)) // NAME
7426 &&
7427 (_literal = _PyPegen_expect_token(p, 22)) // token='='
7428 &&
7429 (value = pattern_rule(p)) // pattern
7430 )
7431 {
7432 D(fprintf(stderr, "%*c+ keyword_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '=' pattern"));
7433 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7434 if (_token == NULL) {
7435 D(p->level--);
7436 return NULL;
7437 }
7438 int _end_lineno = _token->end_lineno;
7439 UNUSED(_end_lineno); // Only used by EXTRA macro
7440 int _end_col_offset = _token->end_col_offset;
7441 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02007442 _res = _PyAST_keyword ( arg -> v . Name . id , value , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08007443 if (_res == NULL && PyErr_Occurred()) {
7444 p->error_indicator = 1;
7445 D(p->level--);
7446 return NULL;
7447 }
7448 goto done;
7449 }
7450 p->mark = _mark;
7451 D(fprintf(stderr, "%*c%s keyword_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7452 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' pattern"));
7453 }
7454 _res = NULL;
7455 done:
7456 D(p->level--);
7457 return _res;
7458}
7459
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007460// return_stmt: 'return' star_expressions?
7461static stmt_ty
7462return_stmt_rule(Parser *p)
7463{
7464 D(p->level++);
7465 if (p->error_indicator) {
7466 D(p->level--);
7467 return NULL;
7468 }
7469 stmt_ty _res = NULL;
7470 int _mark = p->mark;
7471 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
7472 p->error_indicator = 1;
7473 D(p->level--);
7474 return NULL;
7475 }
7476 int _start_lineno = p->tokens[_mark]->lineno;
7477 UNUSED(_start_lineno); // Only used by EXTRA macro
7478 int _start_col_offset = p->tokens[_mark]->col_offset;
7479 UNUSED(_start_col_offset); // Only used by EXTRA macro
7480 { // 'return' star_expressions?
7481 if (p->error_indicator) {
7482 D(p->level--);
7483 return NULL;
7484 }
7485 D(fprintf(stderr, "%*c> return_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'return' star_expressions?"));
7486 Token * _keyword;
7487 void *a;
7488 if (
7489 (_keyword = _PyPegen_expect_token(p, 500)) // token='return'
7490 &&
7491 (a = star_expressions_rule(p), 1) // star_expressions?
7492 )
7493 {
7494 D(fprintf(stderr, "%*c+ return_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'return' star_expressions?"));
7495 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7496 if (_token == NULL) {
7497 D(p->level--);
7498 return NULL;
7499 }
7500 int _end_lineno = _token->end_lineno;
7501 UNUSED(_end_lineno); // Only used by EXTRA macro
7502 int _end_col_offset = _token->end_col_offset;
7503 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02007504 _res = _PyAST_Return ( a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007505 if (_res == NULL && PyErr_Occurred()) {
7506 p->error_indicator = 1;
7507 D(p->level--);
7508 return NULL;
7509 }
7510 goto done;
7511 }
7512 p->mark = _mark;
7513 D(fprintf(stderr, "%*c%s return_stmt[%d-%d]: %s failed!\n", p->level, ' ',
7514 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'return' star_expressions?"));
7515 }
7516 _res = NULL;
7517 done:
7518 D(p->level--);
7519 return _res;
7520}
7521
7522// raise_stmt: 'raise' expression ['from' expression] | 'raise'
7523static stmt_ty
7524raise_stmt_rule(Parser *p)
7525{
7526 D(p->level++);
7527 if (p->error_indicator) {
7528 D(p->level--);
7529 return NULL;
7530 }
7531 stmt_ty _res = NULL;
7532 int _mark = p->mark;
7533 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
7534 p->error_indicator = 1;
7535 D(p->level--);
7536 return NULL;
7537 }
7538 int _start_lineno = p->tokens[_mark]->lineno;
7539 UNUSED(_start_lineno); // Only used by EXTRA macro
7540 int _start_col_offset = p->tokens[_mark]->col_offset;
7541 UNUSED(_start_col_offset); // Only used by EXTRA macro
7542 { // 'raise' expression ['from' expression]
7543 if (p->error_indicator) {
7544 D(p->level--);
7545 return NULL;
7546 }
7547 D(fprintf(stderr, "%*c> raise_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'raise' expression ['from' expression]"));
7548 Token * _keyword;
7549 expr_ty a;
7550 void *b;
7551 if (
7552 (_keyword = _PyPegen_expect_token(p, 501)) // token='raise'
7553 &&
7554 (a = expression_rule(p)) // expression
7555 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08007556 (b = _tmp_66_rule(p), 1) // ['from' expression]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007557 )
7558 {
7559 D(fprintf(stderr, "%*c+ raise_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'raise' expression ['from' expression]"));
7560 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7561 if (_token == NULL) {
7562 D(p->level--);
7563 return NULL;
7564 }
7565 int _end_lineno = _token->end_lineno;
7566 UNUSED(_end_lineno); // Only used by EXTRA macro
7567 int _end_col_offset = _token->end_col_offset;
7568 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02007569 _res = _PyAST_Raise ( a , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007570 if (_res == NULL && PyErr_Occurred()) {
7571 p->error_indicator = 1;
7572 D(p->level--);
7573 return NULL;
7574 }
7575 goto done;
7576 }
7577 p->mark = _mark;
7578 D(fprintf(stderr, "%*c%s raise_stmt[%d-%d]: %s failed!\n", p->level, ' ',
7579 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'raise' expression ['from' expression]"));
7580 }
7581 { // 'raise'
7582 if (p->error_indicator) {
7583 D(p->level--);
7584 return NULL;
7585 }
7586 D(fprintf(stderr, "%*c> raise_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'raise'"));
7587 Token * _keyword;
7588 if (
7589 (_keyword = _PyPegen_expect_token(p, 501)) // token='raise'
7590 )
7591 {
7592 D(fprintf(stderr, "%*c+ raise_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'raise'"));
7593 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7594 if (_token == NULL) {
7595 D(p->level--);
7596 return NULL;
7597 }
7598 int _end_lineno = _token->end_lineno;
7599 UNUSED(_end_lineno); // Only used by EXTRA macro
7600 int _end_col_offset = _token->end_col_offset;
7601 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02007602 _res = _PyAST_Raise ( NULL , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007603 if (_res == NULL && PyErr_Occurred()) {
7604 p->error_indicator = 1;
7605 D(p->level--);
7606 return NULL;
7607 }
7608 goto done;
7609 }
7610 p->mark = _mark;
7611 D(fprintf(stderr, "%*c%s raise_stmt[%d-%d]: %s failed!\n", p->level, ' ',
7612 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'raise'"));
7613 }
7614 _res = NULL;
7615 done:
7616 D(p->level--);
7617 return _res;
7618}
7619
7620// function_def: decorators function_def_raw | function_def_raw
7621static stmt_ty
7622function_def_rule(Parser *p)
7623{
7624 D(p->level++);
7625 if (p->error_indicator) {
7626 D(p->level--);
7627 return NULL;
7628 }
7629 stmt_ty _res = NULL;
7630 int _mark = p->mark;
7631 { // decorators function_def_raw
7632 if (p->error_indicator) {
7633 D(p->level--);
7634 return NULL;
7635 }
7636 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 +01007637 asdl_expr_seq* d;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007638 stmt_ty f;
7639 if (
7640 (d = decorators_rule(p)) // decorators
7641 &&
7642 (f = function_def_raw_rule(p)) // function_def_raw
7643 )
7644 {
7645 D(fprintf(stderr, "%*c+ function_def[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "decorators function_def_raw"));
7646 _res = _PyPegen_function_def_decorators ( p , d , f );
7647 if (_res == NULL && PyErr_Occurred()) {
7648 p->error_indicator = 1;
7649 D(p->level--);
7650 return NULL;
7651 }
7652 goto done;
7653 }
7654 p->mark = _mark;
7655 D(fprintf(stderr, "%*c%s function_def[%d-%d]: %s failed!\n", p->level, ' ',
7656 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "decorators function_def_raw"));
7657 }
7658 { // function_def_raw
7659 if (p->error_indicator) {
7660 D(p->level--);
7661 return NULL;
7662 }
7663 D(fprintf(stderr, "%*c> function_def[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "function_def_raw"));
7664 stmt_ty function_def_raw_var;
7665 if (
7666 (function_def_raw_var = function_def_raw_rule(p)) // function_def_raw
7667 )
7668 {
7669 D(fprintf(stderr, "%*c+ function_def[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "function_def_raw"));
7670 _res = function_def_raw_var;
7671 goto done;
7672 }
7673 p->mark = _mark;
7674 D(fprintf(stderr, "%*c%s function_def[%d-%d]: %s failed!\n", p->level, ' ',
7675 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "function_def_raw"));
7676 }
7677 _res = NULL;
7678 done:
7679 D(p->level--);
7680 return _res;
7681}
7682
7683// function_def_raw:
Pablo Galindo56c95df2021-04-21 15:28:21 +01007684// | invalid_def_raw
Pablo Galindo58fb1562021-02-02 19:54:22 +00007685// | 'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block
7686// | ASYNC 'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007687static stmt_ty
7688function_def_raw_rule(Parser *p)
7689{
7690 D(p->level++);
7691 if (p->error_indicator) {
7692 D(p->level--);
7693 return NULL;
7694 }
7695 stmt_ty _res = NULL;
7696 int _mark = p->mark;
7697 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
7698 p->error_indicator = 1;
7699 D(p->level--);
7700 return NULL;
7701 }
7702 int _start_lineno = p->tokens[_mark]->lineno;
7703 UNUSED(_start_lineno); // Only used by EXTRA macro
7704 int _start_col_offset = p->tokens[_mark]->col_offset;
7705 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo56c95df2021-04-21 15:28:21 +01007706 if (p->call_invalid_rules) { // invalid_def_raw
7707 if (p->error_indicator) {
7708 D(p->level--);
7709 return NULL;
7710 }
7711 D(fprintf(stderr, "%*c> function_def_raw[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_def_raw"));
7712 void *invalid_def_raw_var;
7713 if (
7714 (invalid_def_raw_var = invalid_def_raw_rule(p)) // invalid_def_raw
7715 )
7716 {
7717 D(fprintf(stderr, "%*c+ function_def_raw[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_def_raw"));
7718 _res = invalid_def_raw_var;
7719 goto done;
7720 }
7721 p->mark = _mark;
7722 D(fprintf(stderr, "%*c%s function_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
7723 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_def_raw"));
7724 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00007725 { // 'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007726 if (p->error_indicator) {
7727 D(p->level--);
7728 return NULL;
7729 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00007730 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 +01007731 Token * _keyword;
7732 Token * _literal;
7733 Token * _literal_1;
7734 Token * _literal_2;
7735 void *a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01007736 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007737 expr_ty n;
7738 void *params;
7739 void *tc;
7740 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08007741 (_keyword = _PyPegen_expect_token(p, 526)) // token='def'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007742 &&
7743 (n = _PyPegen_name_token(p)) // NAME
7744 &&
7745 (_literal = _PyPegen_expect_token(p, 7)) // token='('
7746 &&
7747 (params = params_rule(p), 1) // params?
7748 &&
7749 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
7750 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08007751 (a = _tmp_67_rule(p), 1) // ['->' expression]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007752 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00007753 (_literal_2 = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007754 &&
7755 (tc = func_type_comment_rule(p), 1) // func_type_comment?
7756 &&
7757 (b = block_rule(p)) // block
7758 )
7759 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00007760 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 +01007761 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7762 if (_token == NULL) {
7763 D(p->level--);
7764 return NULL;
7765 }
7766 int _end_lineno = _token->end_lineno;
7767 UNUSED(_end_lineno); // Only used by EXTRA macro
7768 int _end_col_offset = _token->end_col_offset;
7769 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02007770 _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 +01007771 if (_res == NULL && PyErr_Occurred()) {
7772 p->error_indicator = 1;
7773 D(p->level--);
7774 return NULL;
7775 }
7776 goto done;
7777 }
7778 p->mark = _mark;
7779 D(fprintf(stderr, "%*c%s function_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00007780 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007781 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00007782 { // ASYNC 'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007783 if (p->error_indicator) {
7784 D(p->level--);
7785 return NULL;
7786 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00007787 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 +01007788 Token * _keyword;
7789 Token * _literal;
7790 Token * _literal_1;
7791 Token * _literal_2;
7792 void *a;
7793 Token * async_var;
Pablo Galindoa5634c42020-09-16 19:42:00 +01007794 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007795 expr_ty n;
7796 void *params;
7797 void *tc;
7798 if (
7799 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
7800 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08007801 (_keyword = _PyPegen_expect_token(p, 526)) // token='def'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007802 &&
7803 (n = _PyPegen_name_token(p)) // NAME
7804 &&
7805 (_literal = _PyPegen_expect_token(p, 7)) // token='('
7806 &&
7807 (params = params_rule(p), 1) // params?
7808 &&
7809 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
7810 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08007811 (a = _tmp_68_rule(p), 1) // ['->' expression]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007812 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00007813 (_literal_2 = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007814 &&
7815 (tc = func_type_comment_rule(p), 1) // func_type_comment?
7816 &&
7817 (b = block_rule(p)) // block
7818 )
7819 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00007820 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 +01007821 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7822 if (_token == NULL) {
7823 D(p->level--);
7824 return NULL;
7825 }
7826 int _end_lineno = _token->end_lineno;
7827 UNUSED(_end_lineno); // Only used by EXTRA macro
7828 int _end_col_offset = _token->end_col_offset;
7829 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02007830 _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 +01007831 if (_res == NULL && PyErr_Occurred()) {
7832 p->error_indicator = 1;
7833 D(p->level--);
7834 return NULL;
7835 }
7836 goto done;
7837 }
7838 p->mark = _mark;
7839 D(fprintf(stderr, "%*c%s function_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00007840 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007841 }
7842 _res = NULL;
7843 done:
7844 D(p->level--);
7845 return _res;
7846}
7847
7848// func_type_comment:
7849// | NEWLINE TYPE_COMMENT &(NEWLINE INDENT)
7850// | invalid_double_type_comments
7851// | TYPE_COMMENT
7852static Token*
7853func_type_comment_rule(Parser *p)
7854{
7855 D(p->level++);
7856 if (p->error_indicator) {
7857 D(p->level--);
7858 return NULL;
7859 }
7860 Token* _res = NULL;
7861 int _mark = p->mark;
7862 { // NEWLINE TYPE_COMMENT &(NEWLINE INDENT)
7863 if (p->error_indicator) {
7864 D(p->level--);
7865 return NULL;
7866 }
7867 D(fprintf(stderr, "%*c> func_type_comment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE TYPE_COMMENT &(NEWLINE INDENT)"));
7868 Token * newline_var;
7869 Token * t;
7870 if (
7871 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
7872 &&
7873 (t = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
7874 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08007875 _PyPegen_lookahead(1, _tmp_69_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007876 )
7877 {
7878 D(fprintf(stderr, "%*c+ func_type_comment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE TYPE_COMMENT &(NEWLINE INDENT)"));
7879 _res = t;
7880 if (_res == NULL && PyErr_Occurred()) {
7881 p->error_indicator = 1;
7882 D(p->level--);
7883 return NULL;
7884 }
7885 goto done;
7886 }
7887 p->mark = _mark;
7888 D(fprintf(stderr, "%*c%s func_type_comment[%d-%d]: %s failed!\n", p->level, ' ',
7889 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE TYPE_COMMENT &(NEWLINE INDENT)"));
7890 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02007891 if (p->call_invalid_rules) { // invalid_double_type_comments
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007892 if (p->error_indicator) {
7893 D(p->level--);
7894 return NULL;
7895 }
7896 D(fprintf(stderr, "%*c> func_type_comment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_double_type_comments"));
7897 void *invalid_double_type_comments_var;
7898 if (
7899 (invalid_double_type_comments_var = invalid_double_type_comments_rule(p)) // invalid_double_type_comments
7900 )
7901 {
7902 D(fprintf(stderr, "%*c+ func_type_comment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_double_type_comments"));
7903 _res = invalid_double_type_comments_var;
7904 goto done;
7905 }
7906 p->mark = _mark;
7907 D(fprintf(stderr, "%*c%s func_type_comment[%d-%d]: %s failed!\n", p->level, ' ',
7908 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_double_type_comments"));
7909 }
7910 { // TYPE_COMMENT
7911 if (p->error_indicator) {
7912 D(p->level--);
7913 return NULL;
7914 }
7915 D(fprintf(stderr, "%*c> func_type_comment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "TYPE_COMMENT"));
7916 Token * type_comment_var;
7917 if (
7918 (type_comment_var = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
7919 )
7920 {
7921 D(fprintf(stderr, "%*c+ func_type_comment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "TYPE_COMMENT"));
7922 _res = type_comment_var;
7923 goto done;
7924 }
7925 p->mark = _mark;
7926 D(fprintf(stderr, "%*c%s func_type_comment[%d-%d]: %s failed!\n", p->level, ' ',
7927 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "TYPE_COMMENT"));
7928 }
7929 _res = NULL;
7930 done:
7931 D(p->level--);
7932 return _res;
7933}
7934
7935// params: invalid_parameters | parameters
7936static arguments_ty
7937params_rule(Parser *p)
7938{
7939 D(p->level++);
7940 if (p->error_indicator) {
7941 D(p->level--);
7942 return NULL;
7943 }
7944 arguments_ty _res = NULL;
7945 int _mark = p->mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02007946 if (p->call_invalid_rules) { // invalid_parameters
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007947 if (p->error_indicator) {
7948 D(p->level--);
7949 return NULL;
7950 }
7951 D(fprintf(stderr, "%*c> params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_parameters"));
7952 void *invalid_parameters_var;
7953 if (
7954 (invalid_parameters_var = invalid_parameters_rule(p)) // invalid_parameters
7955 )
7956 {
7957 D(fprintf(stderr, "%*c+ params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_parameters"));
7958 _res = invalid_parameters_var;
7959 goto done;
7960 }
7961 p->mark = _mark;
7962 D(fprintf(stderr, "%*c%s params[%d-%d]: %s failed!\n", p->level, ' ',
7963 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_parameters"));
7964 }
7965 { // parameters
7966 if (p->error_indicator) {
7967 D(p->level--);
7968 return NULL;
7969 }
7970 D(fprintf(stderr, "%*c> params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "parameters"));
7971 arguments_ty parameters_var;
7972 if (
7973 (parameters_var = parameters_rule(p)) // parameters
7974 )
7975 {
7976 D(fprintf(stderr, "%*c+ params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "parameters"));
7977 _res = parameters_var;
7978 goto done;
7979 }
7980 p->mark = _mark;
7981 D(fprintf(stderr, "%*c%s params[%d-%d]: %s failed!\n", p->level, ' ',
7982 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "parameters"));
7983 }
7984 _res = NULL;
7985 done:
7986 D(p->level--);
7987 return _res;
7988}
7989
7990// parameters:
7991// | slash_no_default param_no_default* param_with_default* star_etc?
7992// | slash_with_default param_with_default* star_etc?
7993// | param_no_default+ param_with_default* star_etc?
7994// | param_with_default+ star_etc?
7995// | star_etc
7996static arguments_ty
7997parameters_rule(Parser *p)
7998{
7999 D(p->level++);
8000 if (p->error_indicator) {
8001 D(p->level--);
8002 return NULL;
8003 }
8004 arguments_ty _res = NULL;
8005 int _mark = p->mark;
8006 { // slash_no_default param_no_default* param_with_default* star_etc?
8007 if (p->error_indicator) {
8008 D(p->level--);
8009 return NULL;
8010 }
8011 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 +01008012 asdl_arg_seq* a;
8013 asdl_arg_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008014 asdl_seq * c;
8015 void *d;
8016 if (
8017 (a = slash_no_default_rule(p)) // slash_no_default
8018 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008019 (b = (asdl_arg_seq*)_loop0_70_rule(p)) // param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008020 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008021 (c = _loop0_71_rule(p)) // param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008022 &&
8023 (d = star_etc_rule(p), 1) // star_etc?
8024 )
8025 {
8026 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?"));
8027 _res = _PyPegen_make_arguments ( p , a , NULL , b , c , d );
8028 if (_res == NULL && PyErr_Occurred()) {
8029 p->error_indicator = 1;
8030 D(p->level--);
8031 return NULL;
8032 }
8033 goto done;
8034 }
8035 p->mark = _mark;
8036 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
8037 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slash_no_default param_no_default* param_with_default* star_etc?"));
8038 }
8039 { // slash_with_default param_with_default* star_etc?
8040 if (p->error_indicator) {
8041 D(p->level--);
8042 return NULL;
8043 }
8044 D(fprintf(stderr, "%*c> parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slash_with_default param_with_default* star_etc?"));
8045 SlashWithDefault* a;
8046 asdl_seq * b;
8047 void *c;
8048 if (
8049 (a = slash_with_default_rule(p)) // slash_with_default
8050 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008051 (b = _loop0_72_rule(p)) // param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008052 &&
8053 (c = star_etc_rule(p), 1) // star_etc?
8054 )
8055 {
8056 D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slash_with_default param_with_default* star_etc?"));
8057 _res = _PyPegen_make_arguments ( p , NULL , a , NULL , b , c );
8058 if (_res == NULL && PyErr_Occurred()) {
8059 p->error_indicator = 1;
8060 D(p->level--);
8061 return NULL;
8062 }
8063 goto done;
8064 }
8065 p->mark = _mark;
8066 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
8067 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slash_with_default param_with_default* star_etc?"));
8068 }
8069 { // param_no_default+ param_with_default* star_etc?
8070 if (p->error_indicator) {
8071 D(p->level--);
8072 return NULL;
8073 }
8074 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 +01008075 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008076 asdl_seq * b;
8077 void *c;
8078 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08008079 (a = (asdl_arg_seq*)_loop1_73_rule(p)) // param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008080 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008081 (b = _loop0_74_rule(p)) // param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008082 &&
8083 (c = star_etc_rule(p), 1) // star_etc?
8084 )
8085 {
8086 D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default+ param_with_default* star_etc?"));
8087 _res = _PyPegen_make_arguments ( p , NULL , NULL , a , b , c );
8088 if (_res == NULL && PyErr_Occurred()) {
8089 p->error_indicator = 1;
8090 D(p->level--);
8091 return NULL;
8092 }
8093 goto done;
8094 }
8095 p->mark = _mark;
8096 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
8097 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default+ param_with_default* star_etc?"));
8098 }
8099 { // param_with_default+ star_etc?
8100 if (p->error_indicator) {
8101 D(p->level--);
8102 return NULL;
8103 }
8104 D(fprintf(stderr, "%*c> parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default+ star_etc?"));
8105 asdl_seq * a;
8106 void *b;
8107 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08008108 (a = _loop1_75_rule(p)) // param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008109 &&
8110 (b = star_etc_rule(p), 1) // star_etc?
8111 )
8112 {
8113 D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_with_default+ star_etc?"));
8114 _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , a , b );
8115 if (_res == NULL && PyErr_Occurred()) {
8116 p->error_indicator = 1;
8117 D(p->level--);
8118 return NULL;
8119 }
8120 goto done;
8121 }
8122 p->mark = _mark;
8123 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
8124 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default+ star_etc?"));
8125 }
8126 { // star_etc
8127 if (p->error_indicator) {
8128 D(p->level--);
8129 return NULL;
8130 }
8131 D(fprintf(stderr, "%*c> parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_etc"));
8132 StarEtc* a;
8133 if (
8134 (a = star_etc_rule(p)) // star_etc
8135 )
8136 {
8137 D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_etc"));
8138 _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , NULL , a );
8139 if (_res == NULL && PyErr_Occurred()) {
8140 p->error_indicator = 1;
8141 D(p->level--);
8142 return NULL;
8143 }
8144 goto done;
8145 }
8146 p->mark = _mark;
8147 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
8148 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_etc"));
8149 }
8150 _res = NULL;
8151 done:
8152 D(p->level--);
8153 return _res;
8154}
8155
8156// slash_no_default: param_no_default+ '/' ',' | param_no_default+ '/' &')'
Pablo Galindoa5634c42020-09-16 19:42:00 +01008157static asdl_arg_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008158slash_no_default_rule(Parser *p)
8159{
8160 D(p->level++);
8161 if (p->error_indicator) {
8162 D(p->level--);
8163 return NULL;
8164 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01008165 asdl_arg_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008166 int _mark = p->mark;
8167 { // param_no_default+ '/' ','
8168 if (p->error_indicator) {
8169 D(p->level--);
8170 return NULL;
8171 }
8172 D(fprintf(stderr, "%*c> slash_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default+ '/' ','"));
8173 Token * _literal;
8174 Token * _literal_1;
Pablo Galindoa5634c42020-09-16 19:42:00 +01008175 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008176 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08008177 (a = (asdl_arg_seq*)_loop1_76_rule(p)) // param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008178 &&
8179 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
8180 &&
8181 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
8182 )
8183 {
8184 D(fprintf(stderr, "%*c+ slash_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default+ '/' ','"));
8185 _res = a;
8186 if (_res == NULL && PyErr_Occurred()) {
8187 p->error_indicator = 1;
8188 D(p->level--);
8189 return NULL;
8190 }
8191 goto done;
8192 }
8193 p->mark = _mark;
8194 D(fprintf(stderr, "%*c%s slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
8195 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default+ '/' ','"));
8196 }
8197 { // param_no_default+ '/' &')'
8198 if (p->error_indicator) {
8199 D(p->level--);
8200 return NULL;
8201 }
8202 D(fprintf(stderr, "%*c> slash_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default+ '/' &')'"));
8203 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01008204 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008205 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08008206 (a = (asdl_arg_seq*)_loop1_77_rule(p)) // param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008207 &&
8208 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
8209 &&
8210 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
8211 )
8212 {
8213 D(fprintf(stderr, "%*c+ slash_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default+ '/' &')'"));
8214 _res = a;
8215 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 slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
8224 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default+ '/' &')'"));
8225 }
8226 _res = NULL;
8227 done:
8228 D(p->level--);
8229 return _res;
8230}
8231
8232// slash_with_default:
8233// | param_no_default* param_with_default+ '/' ','
8234// | param_no_default* param_with_default+ '/' &')'
8235static SlashWithDefault*
8236slash_with_default_rule(Parser *p)
8237{
8238 D(p->level++);
8239 if (p->error_indicator) {
8240 D(p->level--);
8241 return NULL;
8242 }
8243 SlashWithDefault* _res = NULL;
8244 int _mark = p->mark;
8245 { // param_no_default* param_with_default+ '/' ','
8246 if (p->error_indicator) {
8247 D(p->level--);
8248 return NULL;
8249 }
8250 D(fprintf(stderr, "%*c> slash_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default* param_with_default+ '/' ','"));
8251 Token * _literal;
8252 Token * _literal_1;
8253 asdl_seq * a;
8254 asdl_seq * b;
8255 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08008256 (a = _loop0_78_rule(p)) // param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008257 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008258 (b = _loop1_79_rule(p)) // param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008259 &&
8260 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
8261 &&
8262 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
8263 )
8264 {
8265 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 +01008266 _res = _PyPegen_slash_with_default ( p , ( asdl_arg_seq * ) a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008267 if (_res == NULL && PyErr_Occurred()) {
8268 p->error_indicator = 1;
8269 D(p->level--);
8270 return NULL;
8271 }
8272 goto done;
8273 }
8274 p->mark = _mark;
8275 D(fprintf(stderr, "%*c%s slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
8276 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default* param_with_default+ '/' ','"));
8277 }
8278 { // param_no_default* param_with_default+ '/' &')'
8279 if (p->error_indicator) {
8280 D(p->level--);
8281 return NULL;
8282 }
8283 D(fprintf(stderr, "%*c> slash_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default* param_with_default+ '/' &')'"));
8284 Token * _literal;
8285 asdl_seq * a;
8286 asdl_seq * b;
8287 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08008288 (a = _loop0_80_rule(p)) // param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008289 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008290 (b = _loop1_81_rule(p)) // param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008291 &&
8292 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
8293 &&
8294 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
8295 )
8296 {
8297 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 +01008298 _res = _PyPegen_slash_with_default ( p , ( asdl_arg_seq * ) a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008299 if (_res == NULL && PyErr_Occurred()) {
8300 p->error_indicator = 1;
8301 D(p->level--);
8302 return NULL;
8303 }
8304 goto done;
8305 }
8306 p->mark = _mark;
8307 D(fprintf(stderr, "%*c%s slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
8308 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default* param_with_default+ '/' &')'"));
8309 }
8310 _res = NULL;
8311 done:
8312 D(p->level--);
8313 return _res;
8314}
8315
8316// star_etc:
8317// | '*' param_no_default param_maybe_default* kwds?
8318// | '*' ',' param_maybe_default+ kwds?
8319// | kwds
8320// | invalid_star_etc
8321static StarEtc*
8322star_etc_rule(Parser *p)
8323{
8324 D(p->level++);
8325 if (p->error_indicator) {
8326 D(p->level--);
8327 return NULL;
8328 }
8329 StarEtc* _res = NULL;
8330 int _mark = p->mark;
8331 { // '*' param_no_default param_maybe_default* kwds?
8332 if (p->error_indicator) {
8333 D(p->level--);
8334 return NULL;
8335 }
8336 D(fprintf(stderr, "%*c> star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' param_no_default param_maybe_default* kwds?"));
8337 Token * _literal;
8338 arg_ty a;
8339 asdl_seq * b;
8340 void *c;
8341 if (
8342 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
8343 &&
8344 (a = param_no_default_rule(p)) // param_no_default
8345 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008346 (b = _loop0_82_rule(p)) // param_maybe_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008347 &&
8348 (c = kwds_rule(p), 1) // kwds?
8349 )
8350 {
8351 D(fprintf(stderr, "%*c+ star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' param_no_default param_maybe_default* kwds?"));
8352 _res = _PyPegen_star_etc ( p , a , b , c );
8353 if (_res == NULL && PyErr_Occurred()) {
8354 p->error_indicator = 1;
8355 D(p->level--);
8356 return NULL;
8357 }
8358 goto done;
8359 }
8360 p->mark = _mark;
8361 D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
8362 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' param_no_default param_maybe_default* kwds?"));
8363 }
8364 { // '*' ',' param_maybe_default+ kwds?
8365 if (p->error_indicator) {
8366 D(p->level--);
8367 return NULL;
8368 }
8369 D(fprintf(stderr, "%*c> star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' ',' param_maybe_default+ kwds?"));
8370 Token * _literal;
8371 Token * _literal_1;
8372 asdl_seq * b;
8373 void *c;
8374 if (
8375 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
8376 &&
8377 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
8378 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008379 (b = _loop1_83_rule(p)) // param_maybe_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008380 &&
8381 (c = kwds_rule(p), 1) // kwds?
8382 )
8383 {
8384 D(fprintf(stderr, "%*c+ star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' ',' param_maybe_default+ kwds?"));
8385 _res = _PyPegen_star_etc ( p , NULL , b , c );
8386 if (_res == NULL && PyErr_Occurred()) {
8387 p->error_indicator = 1;
8388 D(p->level--);
8389 return NULL;
8390 }
8391 goto done;
8392 }
8393 p->mark = _mark;
8394 D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
8395 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' ',' param_maybe_default+ kwds?"));
8396 }
8397 { // kwds
8398 if (p->error_indicator) {
8399 D(p->level--);
8400 return NULL;
8401 }
8402 D(fprintf(stderr, "%*c> star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwds"));
8403 arg_ty a;
8404 if (
8405 (a = kwds_rule(p)) // kwds
8406 )
8407 {
8408 D(fprintf(stderr, "%*c+ star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwds"));
8409 _res = _PyPegen_star_etc ( p , NULL , NULL , a );
8410 if (_res == NULL && PyErr_Occurred()) {
8411 p->error_indicator = 1;
8412 D(p->level--);
8413 return NULL;
8414 }
8415 goto done;
8416 }
8417 p->mark = _mark;
8418 D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
8419 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwds"));
8420 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02008421 if (p->call_invalid_rules) { // invalid_star_etc
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008422 if (p->error_indicator) {
8423 D(p->level--);
8424 return NULL;
8425 }
8426 D(fprintf(stderr, "%*c> star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_star_etc"));
8427 void *invalid_star_etc_var;
8428 if (
8429 (invalid_star_etc_var = invalid_star_etc_rule(p)) // invalid_star_etc
8430 )
8431 {
8432 D(fprintf(stderr, "%*c+ star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_star_etc"));
8433 _res = invalid_star_etc_var;
8434 goto done;
8435 }
8436 p->mark = _mark;
8437 D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
8438 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_star_etc"));
8439 }
8440 _res = NULL;
8441 done:
8442 D(p->level--);
8443 return _res;
8444}
8445
8446// kwds: '**' param_no_default
8447static arg_ty
8448kwds_rule(Parser *p)
8449{
8450 D(p->level++);
8451 if (p->error_indicator) {
8452 D(p->level--);
8453 return NULL;
8454 }
8455 arg_ty _res = NULL;
8456 int _mark = p->mark;
8457 { // '**' param_no_default
8458 if (p->error_indicator) {
8459 D(p->level--);
8460 return NULL;
8461 }
8462 D(fprintf(stderr, "%*c> kwds[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' param_no_default"));
8463 Token * _literal;
8464 arg_ty a;
8465 if (
8466 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
8467 &&
8468 (a = param_no_default_rule(p)) // param_no_default
8469 )
8470 {
8471 D(fprintf(stderr, "%*c+ kwds[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' param_no_default"));
8472 _res = a;
8473 if (_res == NULL && PyErr_Occurred()) {
8474 p->error_indicator = 1;
8475 D(p->level--);
8476 return NULL;
8477 }
8478 goto done;
8479 }
8480 p->mark = _mark;
8481 D(fprintf(stderr, "%*c%s kwds[%d-%d]: %s failed!\n", p->level, ' ',
8482 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' param_no_default"));
8483 }
8484 _res = NULL;
8485 done:
8486 D(p->level--);
8487 return _res;
8488}
8489
8490// param_no_default: param ',' TYPE_COMMENT? | param TYPE_COMMENT? &')'
8491static arg_ty
8492param_no_default_rule(Parser *p)
8493{
8494 D(p->level++);
8495 if (p->error_indicator) {
8496 D(p->level--);
8497 return NULL;
8498 }
8499 arg_ty _res = NULL;
8500 int _mark = p->mark;
8501 { // param ',' TYPE_COMMENT?
8502 if (p->error_indicator) {
8503 D(p->level--);
8504 return NULL;
8505 }
8506 D(fprintf(stderr, "%*c> param_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param ',' TYPE_COMMENT?"));
8507 Token * _literal;
8508 arg_ty a;
8509 void *tc;
8510 if (
8511 (a = param_rule(p)) // param
8512 &&
8513 (_literal = _PyPegen_expect_token(p, 12)) // token=','
8514 &&
8515 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
8516 )
8517 {
8518 D(fprintf(stderr, "%*c+ param_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param ',' TYPE_COMMENT?"));
8519 _res = _PyPegen_add_type_comment_to_arg ( p , a , tc );
8520 if (_res == NULL && PyErr_Occurred()) {
8521 p->error_indicator = 1;
8522 D(p->level--);
8523 return NULL;
8524 }
8525 goto done;
8526 }
8527 p->mark = _mark;
8528 D(fprintf(stderr, "%*c%s param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
8529 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param ',' TYPE_COMMENT?"));
8530 }
8531 { // param TYPE_COMMENT? &')'
8532 if (p->error_indicator) {
8533 D(p->level--);
8534 return NULL;
8535 }
8536 D(fprintf(stderr, "%*c> param_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param TYPE_COMMENT? &')'"));
8537 arg_ty a;
8538 void *tc;
8539 if (
8540 (a = param_rule(p)) // param
8541 &&
8542 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
8543 &&
8544 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
8545 )
8546 {
8547 D(fprintf(stderr, "%*c+ param_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param TYPE_COMMENT? &')'"));
8548 _res = _PyPegen_add_type_comment_to_arg ( p , a , tc );
8549 if (_res == NULL && PyErr_Occurred()) {
8550 p->error_indicator = 1;
8551 D(p->level--);
8552 return NULL;
8553 }
8554 goto done;
8555 }
8556 p->mark = _mark;
8557 D(fprintf(stderr, "%*c%s param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
8558 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param TYPE_COMMENT? &')'"));
8559 }
8560 _res = NULL;
8561 done:
8562 D(p->level--);
8563 return _res;
8564}
8565
8566// param_with_default: param default ',' TYPE_COMMENT? | param default TYPE_COMMENT? &')'
8567static NameDefaultPair*
8568param_with_default_rule(Parser *p)
8569{
8570 D(p->level++);
8571 if (p->error_indicator) {
8572 D(p->level--);
8573 return NULL;
8574 }
8575 NameDefaultPair* _res = NULL;
8576 int _mark = p->mark;
8577 { // param default ',' TYPE_COMMENT?
8578 if (p->error_indicator) {
8579 D(p->level--);
8580 return NULL;
8581 }
8582 D(fprintf(stderr, "%*c> param_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param default ',' TYPE_COMMENT?"));
8583 Token * _literal;
8584 arg_ty a;
8585 expr_ty c;
8586 void *tc;
8587 if (
8588 (a = param_rule(p)) // param
8589 &&
8590 (c = default_rule(p)) // default
8591 &&
8592 (_literal = _PyPegen_expect_token(p, 12)) // token=','
8593 &&
8594 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
8595 )
8596 {
8597 D(fprintf(stderr, "%*c+ param_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param default ',' TYPE_COMMENT?"));
8598 _res = _PyPegen_name_default_pair ( p , a , c , tc );
8599 if (_res == NULL && PyErr_Occurred()) {
8600 p->error_indicator = 1;
8601 D(p->level--);
8602 return NULL;
8603 }
8604 goto done;
8605 }
8606 p->mark = _mark;
8607 D(fprintf(stderr, "%*c%s param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
8608 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default ',' TYPE_COMMENT?"));
8609 }
8610 { // param default TYPE_COMMENT? &')'
8611 if (p->error_indicator) {
8612 D(p->level--);
8613 return NULL;
8614 }
8615 D(fprintf(stderr, "%*c> param_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param default TYPE_COMMENT? &')'"));
8616 arg_ty a;
8617 expr_ty c;
8618 void *tc;
8619 if (
8620 (a = param_rule(p)) // param
8621 &&
8622 (c = default_rule(p)) // default
8623 &&
8624 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
8625 &&
8626 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
8627 )
8628 {
8629 D(fprintf(stderr, "%*c+ param_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param default TYPE_COMMENT? &')'"));
8630 _res = _PyPegen_name_default_pair ( p , a , c , tc );
8631 if (_res == NULL && PyErr_Occurred()) {
8632 p->error_indicator = 1;
8633 D(p->level--);
8634 return NULL;
8635 }
8636 goto done;
8637 }
8638 p->mark = _mark;
8639 D(fprintf(stderr, "%*c%s param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
8640 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default TYPE_COMMENT? &')'"));
8641 }
8642 _res = NULL;
8643 done:
8644 D(p->level--);
8645 return _res;
8646}
8647
8648// param_maybe_default:
8649// | param default? ',' TYPE_COMMENT?
8650// | param default? TYPE_COMMENT? &')'
8651static NameDefaultPair*
8652param_maybe_default_rule(Parser *p)
8653{
8654 D(p->level++);
8655 if (p->error_indicator) {
8656 D(p->level--);
8657 return NULL;
8658 }
8659 NameDefaultPair* _res = NULL;
8660 int _mark = p->mark;
8661 { // param default? ',' TYPE_COMMENT?
8662 if (p->error_indicator) {
8663 D(p->level--);
8664 return NULL;
8665 }
8666 D(fprintf(stderr, "%*c> param_maybe_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param default? ',' TYPE_COMMENT?"));
8667 Token * _literal;
8668 arg_ty a;
8669 void *c;
8670 void *tc;
8671 if (
8672 (a = param_rule(p)) // param
8673 &&
8674 (c = default_rule(p), 1) // default?
8675 &&
8676 (_literal = _PyPegen_expect_token(p, 12)) // token=','
8677 &&
8678 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
8679 )
8680 {
8681 D(fprintf(stderr, "%*c+ param_maybe_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param default? ',' TYPE_COMMENT?"));
8682 _res = _PyPegen_name_default_pair ( p , a , c , tc );
8683 if (_res == NULL && PyErr_Occurred()) {
8684 p->error_indicator = 1;
8685 D(p->level--);
8686 return NULL;
8687 }
8688 goto done;
8689 }
8690 p->mark = _mark;
8691 D(fprintf(stderr, "%*c%s param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
8692 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default? ',' TYPE_COMMENT?"));
8693 }
8694 { // param default? TYPE_COMMENT? &')'
8695 if (p->error_indicator) {
8696 D(p->level--);
8697 return NULL;
8698 }
8699 D(fprintf(stderr, "%*c> param_maybe_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param default? TYPE_COMMENT? &')'"));
8700 arg_ty a;
8701 void *c;
8702 void *tc;
8703 if (
8704 (a = param_rule(p)) // param
8705 &&
8706 (c = default_rule(p), 1) // default?
8707 &&
8708 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
8709 &&
8710 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
8711 )
8712 {
8713 D(fprintf(stderr, "%*c+ param_maybe_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param default? TYPE_COMMENT? &')'"));
8714 _res = _PyPegen_name_default_pair ( p , a , c , tc );
8715 if (_res == NULL && PyErr_Occurred()) {
8716 p->error_indicator = 1;
8717 D(p->level--);
8718 return NULL;
8719 }
8720 goto done;
8721 }
8722 p->mark = _mark;
8723 D(fprintf(stderr, "%*c%s param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
8724 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default? TYPE_COMMENT? &')'"));
8725 }
8726 _res = NULL;
8727 done:
8728 D(p->level--);
8729 return _res;
8730}
8731
8732// param: NAME annotation?
8733static arg_ty
8734param_rule(Parser *p)
8735{
8736 D(p->level++);
8737 if (p->error_indicator) {
8738 D(p->level--);
8739 return NULL;
8740 }
8741 arg_ty _res = NULL;
8742 int _mark = p->mark;
8743 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
8744 p->error_indicator = 1;
8745 D(p->level--);
8746 return NULL;
8747 }
8748 int _start_lineno = p->tokens[_mark]->lineno;
8749 UNUSED(_start_lineno); // Only used by EXTRA macro
8750 int _start_col_offset = p->tokens[_mark]->col_offset;
8751 UNUSED(_start_col_offset); // Only used by EXTRA macro
8752 { // NAME annotation?
8753 if (p->error_indicator) {
8754 D(p->level--);
8755 return NULL;
8756 }
8757 D(fprintf(stderr, "%*c> param[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME annotation?"));
8758 expr_ty a;
8759 void *b;
8760 if (
8761 (a = _PyPegen_name_token(p)) // NAME
8762 &&
8763 (b = annotation_rule(p), 1) // annotation?
8764 )
8765 {
8766 D(fprintf(stderr, "%*c+ param[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME annotation?"));
8767 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8768 if (_token == NULL) {
8769 D(p->level--);
8770 return NULL;
8771 }
8772 int _end_lineno = _token->end_lineno;
8773 UNUSED(_end_lineno); // Only used by EXTRA macro
8774 int _end_col_offset = _token->end_col_offset;
8775 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02008776 _res = _PyAST_arg ( a -> v . Name . id , b , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008777 if (_res == NULL && PyErr_Occurred()) {
8778 p->error_indicator = 1;
8779 D(p->level--);
8780 return NULL;
8781 }
8782 goto done;
8783 }
8784 p->mark = _mark;
8785 D(fprintf(stderr, "%*c%s param[%d-%d]: %s failed!\n", p->level, ' ',
8786 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME annotation?"));
8787 }
8788 _res = NULL;
8789 done:
8790 D(p->level--);
8791 return _res;
8792}
8793
8794// annotation: ':' expression
8795static expr_ty
8796annotation_rule(Parser *p)
8797{
8798 D(p->level++);
8799 if (p->error_indicator) {
8800 D(p->level--);
8801 return NULL;
8802 }
8803 expr_ty _res = NULL;
8804 int _mark = p->mark;
8805 { // ':' expression
8806 if (p->error_indicator) {
8807 D(p->level--);
8808 return NULL;
8809 }
8810 D(fprintf(stderr, "%*c> annotation[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':' expression"));
8811 Token * _literal;
8812 expr_ty a;
8813 if (
8814 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
8815 &&
8816 (a = expression_rule(p)) // expression
8817 )
8818 {
8819 D(fprintf(stderr, "%*c+ annotation[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':' expression"));
8820 _res = a;
8821 if (_res == NULL && PyErr_Occurred()) {
8822 p->error_indicator = 1;
8823 D(p->level--);
8824 return NULL;
8825 }
8826 goto done;
8827 }
8828 p->mark = _mark;
8829 D(fprintf(stderr, "%*c%s annotation[%d-%d]: %s failed!\n", p->level, ' ',
8830 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':' expression"));
8831 }
8832 _res = NULL;
8833 done:
8834 D(p->level--);
8835 return _res;
8836}
8837
8838// default: '=' expression
8839static expr_ty
8840default_rule(Parser *p)
8841{
8842 D(p->level++);
8843 if (p->error_indicator) {
8844 D(p->level--);
8845 return NULL;
8846 }
8847 expr_ty _res = NULL;
8848 int _mark = p->mark;
8849 { // '=' expression
8850 if (p->error_indicator) {
8851 D(p->level--);
8852 return NULL;
8853 }
8854 D(fprintf(stderr, "%*c> default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'=' expression"));
8855 Token * _literal;
8856 expr_ty a;
8857 if (
8858 (_literal = _PyPegen_expect_token(p, 22)) // token='='
8859 &&
8860 (a = expression_rule(p)) // expression
8861 )
8862 {
8863 D(fprintf(stderr, "%*c+ default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'=' expression"));
8864 _res = a;
8865 if (_res == NULL && PyErr_Occurred()) {
8866 p->error_indicator = 1;
8867 D(p->level--);
8868 return NULL;
8869 }
8870 goto done;
8871 }
8872 p->mark = _mark;
8873 D(fprintf(stderr, "%*c%s default[%d-%d]: %s failed!\n", p->level, ' ',
8874 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'=' expression"));
8875 }
8876 _res = NULL;
8877 done:
8878 D(p->level--);
8879 return _res;
8880}
8881
8882// decorators: (('@' named_expression NEWLINE))+
Pablo Galindoa5634c42020-09-16 19:42:00 +01008883static asdl_expr_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008884decorators_rule(Parser *p)
8885{
8886 D(p->level++);
8887 if (p->error_indicator) {
8888 D(p->level--);
8889 return NULL;
8890 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01008891 asdl_expr_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008892 int _mark = p->mark;
8893 { // (('@' named_expression NEWLINE))+
8894 if (p->error_indicator) {
8895 D(p->level--);
8896 return NULL;
8897 }
8898 D(fprintf(stderr, "%*c> decorators[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(('@' named_expression NEWLINE))+"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01008899 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008900 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08008901 (a = (asdl_expr_seq*)_loop1_84_rule(p)) // (('@' named_expression NEWLINE))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008902 )
8903 {
8904 D(fprintf(stderr, "%*c+ decorators[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(('@' named_expression NEWLINE))+"));
8905 _res = a;
8906 if (_res == NULL && PyErr_Occurred()) {
8907 p->error_indicator = 1;
8908 D(p->level--);
8909 return NULL;
8910 }
8911 goto done;
8912 }
8913 p->mark = _mark;
8914 D(fprintf(stderr, "%*c%s decorators[%d-%d]: %s failed!\n", p->level, ' ',
8915 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(('@' named_expression NEWLINE))+"));
8916 }
8917 _res = NULL;
8918 done:
8919 D(p->level--);
8920 return _res;
8921}
8922
8923// class_def: decorators class_def_raw | class_def_raw
8924static stmt_ty
8925class_def_rule(Parser *p)
8926{
8927 D(p->level++);
8928 if (p->error_indicator) {
8929 D(p->level--);
8930 return NULL;
8931 }
8932 stmt_ty _res = NULL;
8933 int _mark = p->mark;
8934 { // decorators class_def_raw
8935 if (p->error_indicator) {
8936 D(p->level--);
8937 return NULL;
8938 }
8939 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 +01008940 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008941 stmt_ty b;
8942 if (
8943 (a = decorators_rule(p)) // decorators
8944 &&
8945 (b = class_def_raw_rule(p)) // class_def_raw
8946 )
8947 {
8948 D(fprintf(stderr, "%*c+ class_def[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "decorators class_def_raw"));
8949 _res = _PyPegen_class_def_decorators ( p , a , b );
8950 if (_res == NULL && PyErr_Occurred()) {
8951 p->error_indicator = 1;
8952 D(p->level--);
8953 return NULL;
8954 }
8955 goto done;
8956 }
8957 p->mark = _mark;
8958 D(fprintf(stderr, "%*c%s class_def[%d-%d]: %s failed!\n", p->level, ' ',
8959 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "decorators class_def_raw"));
8960 }
8961 { // class_def_raw
8962 if (p->error_indicator) {
8963 D(p->level--);
8964 return NULL;
8965 }
8966 D(fprintf(stderr, "%*c> class_def[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "class_def_raw"));
8967 stmt_ty class_def_raw_var;
8968 if (
8969 (class_def_raw_var = class_def_raw_rule(p)) // class_def_raw
8970 )
8971 {
8972 D(fprintf(stderr, "%*c+ class_def[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "class_def_raw"));
8973 _res = class_def_raw_var;
8974 goto done;
8975 }
8976 p->mark = _mark;
8977 D(fprintf(stderr, "%*c%s class_def[%d-%d]: %s failed!\n", p->level, ' ',
8978 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "class_def_raw"));
8979 }
8980 _res = NULL;
8981 done:
8982 D(p->level--);
8983 return _res;
8984}
8985
Pablo Galindo56c95df2021-04-21 15:28:21 +01008986// class_def_raw: invalid_class_def_raw | 'class' NAME ['(' arguments? ')'] &&':' block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008987static stmt_ty
8988class_def_raw_rule(Parser *p)
8989{
8990 D(p->level++);
8991 if (p->error_indicator) {
8992 D(p->level--);
8993 return NULL;
8994 }
8995 stmt_ty _res = NULL;
8996 int _mark = p->mark;
8997 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
8998 p->error_indicator = 1;
8999 D(p->level--);
9000 return NULL;
9001 }
9002 int _start_lineno = p->tokens[_mark]->lineno;
9003 UNUSED(_start_lineno); // Only used by EXTRA macro
9004 int _start_col_offset = p->tokens[_mark]->col_offset;
9005 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo56c95df2021-04-21 15:28:21 +01009006 if (p->call_invalid_rules) { // invalid_class_def_raw
9007 if (p->error_indicator) {
9008 D(p->level--);
9009 return NULL;
9010 }
9011 D(fprintf(stderr, "%*c> class_def_raw[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_class_def_raw"));
9012 void *invalid_class_def_raw_var;
9013 if (
9014 (invalid_class_def_raw_var = invalid_class_def_raw_rule(p)) // invalid_class_def_raw
9015 )
9016 {
9017 D(fprintf(stderr, "%*c+ class_def_raw[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_class_def_raw"));
9018 _res = invalid_class_def_raw_var;
9019 goto done;
9020 }
9021 p->mark = _mark;
9022 D(fprintf(stderr, "%*c%s class_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
9023 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_class_def_raw"));
9024 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00009025 { // 'class' NAME ['(' arguments? ')'] &&':' block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009026 if (p->error_indicator) {
9027 D(p->level--);
9028 return NULL;
9029 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00009030 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 +01009031 Token * _keyword;
9032 Token * _literal;
9033 expr_ty a;
9034 void *b;
Pablo Galindoa5634c42020-09-16 19:42:00 +01009035 asdl_stmt_seq* c;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009036 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08009037 (_keyword = _PyPegen_expect_token(p, 527)) // token='class'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009038 &&
9039 (a = _PyPegen_name_token(p)) // NAME
9040 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08009041 (b = _tmp_85_rule(p), 1) // ['(' arguments? ')']
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009042 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00009043 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009044 &&
9045 (c = block_rule(p)) // block
9046 )
9047 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00009048 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 +01009049 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9050 if (_token == NULL) {
9051 D(p->level--);
9052 return NULL;
9053 }
9054 int _end_lineno = _token->end_lineno;
9055 UNUSED(_end_lineno); // Only used by EXTRA macro
9056 int _end_col_offset = _token->end_col_offset;
9057 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02009058 _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 +01009059 if (_res == NULL && PyErr_Occurred()) {
9060 p->error_indicator = 1;
9061 D(p->level--);
9062 return NULL;
9063 }
9064 goto done;
9065 }
9066 p->mark = _mark;
9067 D(fprintf(stderr, "%*c%s class_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00009068 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'class' NAME ['(' arguments? ')'] &&':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009069 }
9070 _res = NULL;
9071 done:
9072 D(p->level--);
9073 return _res;
9074}
9075
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00009076// block: NEWLINE INDENT statements DEDENT | simple_stmts | invalid_block
Pablo Galindoa5634c42020-09-16 19:42:00 +01009077static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009078block_rule(Parser *p)
9079{
9080 D(p->level++);
9081 if (p->error_indicator) {
9082 D(p->level--);
9083 return NULL;
9084 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01009085 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009086 if (_PyPegen_is_memoized(p, block_type, &_res)) {
9087 D(p->level--);
9088 return _res;
9089 }
9090 int _mark = p->mark;
9091 { // NEWLINE INDENT statements DEDENT
9092 if (p->error_indicator) {
9093 D(p->level--);
9094 return NULL;
9095 }
9096 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 +01009097 asdl_stmt_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009098 Token * dedent_var;
9099 Token * indent_var;
9100 Token * newline_var;
9101 if (
9102 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
9103 &&
9104 (indent_var = _PyPegen_expect_token(p, INDENT)) // token='INDENT'
9105 &&
9106 (a = statements_rule(p)) // statements
9107 &&
9108 (dedent_var = _PyPegen_expect_token(p, DEDENT)) // token='DEDENT'
9109 )
9110 {
9111 D(fprintf(stderr, "%*c+ block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE INDENT statements DEDENT"));
9112 _res = a;
9113 if (_res == NULL && PyErr_Occurred()) {
9114 p->error_indicator = 1;
9115 D(p->level--);
9116 return NULL;
9117 }
9118 goto done;
9119 }
9120 p->mark = _mark;
9121 D(fprintf(stderr, "%*c%s block[%d-%d]: %s failed!\n", p->level, ' ',
9122 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE INDENT statements DEDENT"));
9123 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00009124 { // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009125 if (p->error_indicator) {
9126 D(p->level--);
9127 return NULL;
9128 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00009129 D(fprintf(stderr, "%*c> block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
9130 asdl_stmt_seq* simple_stmts_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009131 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00009132 (simple_stmts_var = simple_stmts_rule(p)) // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009133 )
9134 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00009135 D(fprintf(stderr, "%*c+ block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
9136 _res = simple_stmts_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009137 goto done;
9138 }
9139 p->mark = _mark;
9140 D(fprintf(stderr, "%*c%s block[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00009141 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmts"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009142 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02009143 if (p->call_invalid_rules) { // invalid_block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009144 if (p->error_indicator) {
9145 D(p->level--);
9146 return NULL;
9147 }
9148 D(fprintf(stderr, "%*c> block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_block"));
9149 void *invalid_block_var;
9150 if (
9151 (invalid_block_var = invalid_block_rule(p)) // invalid_block
9152 )
9153 {
9154 D(fprintf(stderr, "%*c+ block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_block"));
9155 _res = invalid_block_var;
9156 goto done;
9157 }
9158 p->mark = _mark;
9159 D(fprintf(stderr, "%*c%s block[%d-%d]: %s failed!\n", p->level, ' ',
9160 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_block"));
9161 }
9162 _res = NULL;
9163 done:
9164 _PyPegen_insert_memo(p, _mark, block_type, _res);
9165 D(p->level--);
9166 return _res;
9167}
9168
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009169// star_expressions:
9170// | star_expression ((',' star_expression))+ ','?
9171// | star_expression ','
9172// | star_expression
9173static expr_ty
9174star_expressions_rule(Parser *p)
9175{
9176 D(p->level++);
9177 if (p->error_indicator) {
9178 D(p->level--);
9179 return NULL;
9180 }
9181 expr_ty _res = NULL;
9182 int _mark = p->mark;
9183 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9184 p->error_indicator = 1;
9185 D(p->level--);
9186 return NULL;
9187 }
9188 int _start_lineno = p->tokens[_mark]->lineno;
9189 UNUSED(_start_lineno); // Only used by EXTRA macro
9190 int _start_col_offset = p->tokens[_mark]->col_offset;
9191 UNUSED(_start_col_offset); // Only used by EXTRA macro
9192 { // star_expression ((',' star_expression))+ ','?
9193 if (p->error_indicator) {
9194 D(p->level--);
9195 return NULL;
9196 }
9197 D(fprintf(stderr, "%*c> star_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expression ((',' star_expression))+ ','?"));
9198 void *_opt_var;
9199 UNUSED(_opt_var); // Silence compiler warnings
9200 expr_ty a;
9201 asdl_seq * b;
9202 if (
9203 (a = star_expression_rule(p)) // star_expression
9204 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08009205 (b = _loop1_86_rule(p)) // ((',' star_expression))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009206 &&
9207 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
9208 )
9209 {
9210 D(fprintf(stderr, "%*c+ star_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expression ((',' star_expression))+ ','?"));
9211 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9212 if (_token == NULL) {
9213 D(p->level--);
9214 return NULL;
9215 }
9216 int _end_lineno = _token->end_lineno;
9217 UNUSED(_end_lineno); // Only used by EXTRA macro
9218 int _end_col_offset = _token->end_col_offset;
9219 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02009220 _res = _PyAST_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , a , b ) ) , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009221 if (_res == NULL && PyErr_Occurred()) {
9222 p->error_indicator = 1;
9223 D(p->level--);
9224 return NULL;
9225 }
9226 goto done;
9227 }
9228 p->mark = _mark;
9229 D(fprintf(stderr, "%*c%s star_expressions[%d-%d]: %s failed!\n", p->level, ' ',
9230 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expression ((',' star_expression))+ ','?"));
9231 }
9232 { // star_expression ','
9233 if (p->error_indicator) {
9234 D(p->level--);
9235 return NULL;
9236 }
9237 D(fprintf(stderr, "%*c> star_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expression ','"));
9238 Token * _literal;
9239 expr_ty a;
9240 if (
9241 (a = star_expression_rule(p)) // star_expression
9242 &&
9243 (_literal = _PyPegen_expect_token(p, 12)) // token=','
9244 )
9245 {
9246 D(fprintf(stderr, "%*c+ star_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expression ','"));
9247 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9248 if (_token == NULL) {
9249 D(p->level--);
9250 return NULL;
9251 }
9252 int _end_lineno = _token->end_lineno;
9253 UNUSED(_end_lineno); // Only used by EXTRA macro
9254 int _end_col_offset = _token->end_col_offset;
9255 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02009256 _res = _PyAST_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_singleton_seq ( p , a ) ) , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009257 if (_res == NULL && PyErr_Occurred()) {
9258 p->error_indicator = 1;
9259 D(p->level--);
9260 return NULL;
9261 }
9262 goto done;
9263 }
9264 p->mark = _mark;
9265 D(fprintf(stderr, "%*c%s star_expressions[%d-%d]: %s failed!\n", p->level, ' ',
9266 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expression ','"));
9267 }
9268 { // star_expression
9269 if (p->error_indicator) {
9270 D(p->level--);
9271 return NULL;
9272 }
9273 D(fprintf(stderr, "%*c> star_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expression"));
9274 expr_ty star_expression_var;
9275 if (
9276 (star_expression_var = star_expression_rule(p)) // star_expression
9277 )
9278 {
9279 D(fprintf(stderr, "%*c+ star_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expression"));
9280 _res = star_expression_var;
9281 goto done;
9282 }
9283 p->mark = _mark;
9284 D(fprintf(stderr, "%*c%s star_expressions[%d-%d]: %s failed!\n", p->level, ' ',
9285 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expression"));
9286 }
9287 _res = NULL;
9288 done:
9289 D(p->level--);
9290 return _res;
9291}
9292
9293// star_expression: '*' bitwise_or | expression
9294static expr_ty
9295star_expression_rule(Parser *p)
9296{
9297 D(p->level++);
9298 if (p->error_indicator) {
9299 D(p->level--);
9300 return NULL;
9301 }
9302 expr_ty _res = NULL;
9303 if (_PyPegen_is_memoized(p, star_expression_type, &_res)) {
9304 D(p->level--);
9305 return _res;
9306 }
9307 int _mark = p->mark;
9308 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9309 p->error_indicator = 1;
9310 D(p->level--);
9311 return NULL;
9312 }
9313 int _start_lineno = p->tokens[_mark]->lineno;
9314 UNUSED(_start_lineno); // Only used by EXTRA macro
9315 int _start_col_offset = p->tokens[_mark]->col_offset;
9316 UNUSED(_start_col_offset); // Only used by EXTRA macro
9317 { // '*' bitwise_or
9318 if (p->error_indicator) {
9319 D(p->level--);
9320 return NULL;
9321 }
9322 D(fprintf(stderr, "%*c> star_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' bitwise_or"));
9323 Token * _literal;
9324 expr_ty a;
9325 if (
9326 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
9327 &&
9328 (a = bitwise_or_rule(p)) // bitwise_or
9329 )
9330 {
9331 D(fprintf(stderr, "%*c+ star_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' bitwise_or"));
9332 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9333 if (_token == NULL) {
9334 D(p->level--);
9335 return NULL;
9336 }
9337 int _end_lineno = _token->end_lineno;
9338 UNUSED(_end_lineno); // Only used by EXTRA macro
9339 int _end_col_offset = _token->end_col_offset;
9340 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02009341 _res = _PyAST_Starred ( a , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009342 if (_res == NULL && PyErr_Occurred()) {
9343 p->error_indicator = 1;
9344 D(p->level--);
9345 return NULL;
9346 }
9347 goto done;
9348 }
9349 p->mark = _mark;
9350 D(fprintf(stderr, "%*c%s star_expression[%d-%d]: %s failed!\n", p->level, ' ',
9351 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' bitwise_or"));
9352 }
9353 { // expression
9354 if (p->error_indicator) {
9355 D(p->level--);
9356 return NULL;
9357 }
9358 D(fprintf(stderr, "%*c> star_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression"));
9359 expr_ty expression_var;
9360 if (
9361 (expression_var = expression_rule(p)) // expression
9362 )
9363 {
9364 D(fprintf(stderr, "%*c+ star_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression"));
9365 _res = expression_var;
9366 goto done;
9367 }
9368 p->mark = _mark;
9369 D(fprintf(stderr, "%*c%s star_expression[%d-%d]: %s failed!\n", p->level, ' ',
9370 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression"));
9371 }
9372 _res = NULL;
9373 done:
9374 _PyPegen_insert_memo(p, _mark, star_expression_type, _res);
9375 D(p->level--);
9376 return _res;
9377}
9378
9379// star_named_expressions: ','.star_named_expression+ ','?
Pablo Galindoa5634c42020-09-16 19:42:00 +01009380static asdl_expr_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009381star_named_expressions_rule(Parser *p)
9382{
9383 D(p->level++);
9384 if (p->error_indicator) {
9385 D(p->level--);
9386 return NULL;
9387 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01009388 asdl_expr_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009389 int _mark = p->mark;
9390 { // ','.star_named_expression+ ','?
9391 if (p->error_indicator) {
9392 D(p->level--);
9393 return NULL;
9394 }
9395 D(fprintf(stderr, "%*c> star_named_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.star_named_expression+ ','?"));
9396 void *_opt_var;
9397 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +01009398 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009399 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08009400 (a = (asdl_expr_seq*)_gather_87_rule(p)) // ','.star_named_expression+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009401 &&
9402 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
9403 )
9404 {
9405 D(fprintf(stderr, "%*c+ star_named_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.star_named_expression+ ','?"));
9406 _res = a;
9407 if (_res == NULL && PyErr_Occurred()) {
9408 p->error_indicator = 1;
9409 D(p->level--);
9410 return NULL;
9411 }
9412 goto done;
9413 }
9414 p->mark = _mark;
9415 D(fprintf(stderr, "%*c%s star_named_expressions[%d-%d]: %s failed!\n", p->level, ' ',
9416 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.star_named_expression+ ','?"));
9417 }
9418 _res = NULL;
9419 done:
9420 D(p->level--);
9421 return _res;
9422}
9423
9424// star_named_expression: '*' bitwise_or | named_expression
9425static expr_ty
9426star_named_expression_rule(Parser *p)
9427{
9428 D(p->level++);
9429 if (p->error_indicator) {
9430 D(p->level--);
9431 return NULL;
9432 }
9433 expr_ty _res = NULL;
9434 int _mark = p->mark;
9435 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9436 p->error_indicator = 1;
9437 D(p->level--);
9438 return NULL;
9439 }
9440 int _start_lineno = p->tokens[_mark]->lineno;
9441 UNUSED(_start_lineno); // Only used by EXTRA macro
9442 int _start_col_offset = p->tokens[_mark]->col_offset;
9443 UNUSED(_start_col_offset); // Only used by EXTRA macro
9444 { // '*' bitwise_or
9445 if (p->error_indicator) {
9446 D(p->level--);
9447 return NULL;
9448 }
9449 D(fprintf(stderr, "%*c> star_named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' bitwise_or"));
9450 Token * _literal;
9451 expr_ty a;
9452 if (
9453 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
9454 &&
9455 (a = bitwise_or_rule(p)) // bitwise_or
9456 )
9457 {
9458 D(fprintf(stderr, "%*c+ star_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' bitwise_or"));
9459 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9460 if (_token == NULL) {
9461 D(p->level--);
9462 return NULL;
9463 }
9464 int _end_lineno = _token->end_lineno;
9465 UNUSED(_end_lineno); // Only used by EXTRA macro
9466 int _end_col_offset = _token->end_col_offset;
9467 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02009468 _res = _PyAST_Starred ( a , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009469 if (_res == NULL && PyErr_Occurred()) {
9470 p->error_indicator = 1;
9471 D(p->level--);
9472 return NULL;
9473 }
9474 goto done;
9475 }
9476 p->mark = _mark;
9477 D(fprintf(stderr, "%*c%s star_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
9478 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' bitwise_or"));
9479 }
9480 { // named_expression
9481 if (p->error_indicator) {
9482 D(p->level--);
9483 return NULL;
9484 }
9485 D(fprintf(stderr, "%*c> star_named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression"));
9486 expr_ty named_expression_var;
9487 if (
9488 (named_expression_var = named_expression_rule(p)) // named_expression
9489 )
9490 {
9491 D(fprintf(stderr, "%*c+ star_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "named_expression"));
9492 _res = named_expression_var;
9493 goto done;
9494 }
9495 p->mark = _mark;
9496 D(fprintf(stderr, "%*c%s star_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
9497 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression"));
9498 }
9499 _res = NULL;
9500 done:
9501 D(p->level--);
9502 return _res;
9503}
9504
Pablo Galindob86ed8e2021-04-12 16:59:30 +01009505// named_expression: NAME ':=' ~ expression | invalid_named_expression | expression !':='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009506static expr_ty
9507named_expression_rule(Parser *p)
9508{
9509 D(p->level++);
9510 if (p->error_indicator) {
9511 D(p->level--);
9512 return NULL;
9513 }
9514 expr_ty _res = NULL;
9515 int _mark = p->mark;
9516 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9517 p->error_indicator = 1;
9518 D(p->level--);
9519 return NULL;
9520 }
9521 int _start_lineno = p->tokens[_mark]->lineno;
9522 UNUSED(_start_lineno); // Only used by EXTRA macro
9523 int _start_col_offset = p->tokens[_mark]->col_offset;
9524 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03009525 { // NAME ':=' ~ expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009526 if (p->error_indicator) {
9527 D(p->level--);
9528 return NULL;
9529 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03009530 D(fprintf(stderr, "%*c> named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME ':=' ~ expression"));
9531 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009532 Token * _literal;
9533 expr_ty a;
9534 expr_ty b;
9535 if (
9536 (a = _PyPegen_name_token(p)) // NAME
9537 &&
9538 (_literal = _PyPegen_expect_token(p, 53)) // token=':='
9539 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03009540 (_cut_var = 1)
9541 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009542 (b = expression_rule(p)) // expression
9543 )
9544 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03009545 D(fprintf(stderr, "%*c+ named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME ':=' ~ expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009546 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9547 if (_token == NULL) {
9548 D(p->level--);
9549 return NULL;
9550 }
9551 int _end_lineno = _token->end_lineno;
9552 UNUSED(_end_lineno); // Only used by EXTRA macro
9553 int _end_col_offset = _token->end_col_offset;
9554 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02009555 _res = _PyAST_NamedExpr ( CHECK ( expr_ty , _PyPegen_set_expr_context ( p , a , Store ) ) , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009556 if (_res == NULL && PyErr_Occurred()) {
9557 p->error_indicator = 1;
9558 D(p->level--);
9559 return NULL;
9560 }
9561 goto done;
9562 }
9563 p->mark = _mark;
9564 D(fprintf(stderr, "%*c%s named_expression[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03009565 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME ':=' ~ expression"));
9566 if (_cut_var) {
9567 D(p->level--);
9568 return NULL;
9569 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009570 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01009571 if (p->call_invalid_rules) { // invalid_named_expression
9572 if (p->error_indicator) {
9573 D(p->level--);
9574 return NULL;
9575 }
9576 D(fprintf(stderr, "%*c> named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_named_expression"));
9577 void *invalid_named_expression_var;
9578 if (
9579 (invalid_named_expression_var = invalid_named_expression_rule(p)) // invalid_named_expression
9580 )
9581 {
9582 D(fprintf(stderr, "%*c+ named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_named_expression"));
9583 _res = invalid_named_expression_var;
9584 goto done;
9585 }
9586 p->mark = _mark;
9587 D(fprintf(stderr, "%*c%s named_expression[%d-%d]: %s failed!\n", p->level, ' ',
9588 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_named_expression"));
9589 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009590 { // expression !':='
9591 if (p->error_indicator) {
9592 D(p->level--);
9593 return NULL;
9594 }
9595 D(fprintf(stderr, "%*c> named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression !':='"));
9596 expr_ty expression_var;
9597 if (
9598 (expression_var = expression_rule(p)) // expression
9599 &&
9600 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 53) // token=':='
9601 )
9602 {
9603 D(fprintf(stderr, "%*c+ named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression !':='"));
9604 _res = expression_var;
9605 goto done;
9606 }
9607 p->mark = _mark;
9608 D(fprintf(stderr, "%*c%s named_expression[%d-%d]: %s failed!\n", p->level, ' ',
9609 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression !':='"));
9610 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009611 _res = NULL;
9612 done:
9613 D(p->level--);
9614 return _res;
9615}
9616
Pablo Galindod9151cb2021-04-13 02:32:33 +01009617// direct_named_expression: NAME ':=' ~ expression | expression !':='
9618static expr_ty
9619direct_named_expression_rule(Parser *p)
9620{
9621 D(p->level++);
9622 if (p->error_indicator) {
9623 D(p->level--);
9624 return NULL;
9625 }
9626 expr_ty _res = NULL;
9627 int _mark = p->mark;
9628 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9629 p->error_indicator = 1;
9630 D(p->level--);
9631 return NULL;
9632 }
9633 int _start_lineno = p->tokens[_mark]->lineno;
9634 UNUSED(_start_lineno); // Only used by EXTRA macro
9635 int _start_col_offset = p->tokens[_mark]->col_offset;
9636 UNUSED(_start_col_offset); // Only used by EXTRA macro
9637 { // NAME ':=' ~ expression
9638 if (p->error_indicator) {
9639 D(p->level--);
9640 return NULL;
9641 }
9642 D(fprintf(stderr, "%*c> direct_named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME ':=' ~ expression"));
9643 int _cut_var = 0;
9644 Token * _literal;
9645 expr_ty a;
9646 expr_ty b;
9647 if (
9648 (a = _PyPegen_name_token(p)) // NAME
9649 &&
9650 (_literal = _PyPegen_expect_token(p, 53)) // token=':='
9651 &&
9652 (_cut_var = 1)
9653 &&
9654 (b = expression_rule(p)) // expression
9655 )
9656 {
9657 D(fprintf(stderr, "%*c+ direct_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME ':=' ~ expression"));
9658 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9659 if (_token == NULL) {
9660 D(p->level--);
9661 return NULL;
9662 }
9663 int _end_lineno = _token->end_lineno;
9664 UNUSED(_end_lineno); // Only used by EXTRA macro
9665 int _end_col_offset = _token->end_col_offset;
9666 UNUSED(_end_col_offset); // Only used by EXTRA macro
9667 _res = _PyAST_NamedExpr ( CHECK ( expr_ty , _PyPegen_set_expr_context ( p , a , Store ) ) , b , EXTRA );
9668 if (_res == NULL && PyErr_Occurred()) {
9669 p->error_indicator = 1;
9670 D(p->level--);
9671 return NULL;
9672 }
9673 goto done;
9674 }
9675 p->mark = _mark;
9676 D(fprintf(stderr, "%*c%s direct_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
9677 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME ':=' ~ expression"));
9678 if (_cut_var) {
9679 D(p->level--);
9680 return NULL;
9681 }
9682 }
9683 { // expression !':='
9684 if (p->error_indicator) {
9685 D(p->level--);
9686 return NULL;
9687 }
9688 D(fprintf(stderr, "%*c> direct_named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression !':='"));
9689 expr_ty expression_var;
9690 if (
9691 (expression_var = expression_rule(p)) // expression
9692 &&
9693 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 53) // token=':='
9694 )
9695 {
9696 D(fprintf(stderr, "%*c+ direct_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression !':='"));
9697 _res = expression_var;
9698 goto done;
9699 }
9700 p->mark = _mark;
9701 D(fprintf(stderr, "%*c%s direct_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
9702 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression !':='"));
9703 }
9704 _res = NULL;
9705 done:
9706 D(p->level--);
9707 return _res;
9708}
9709
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009710// annotated_rhs: yield_expr | star_expressions
9711static expr_ty
9712annotated_rhs_rule(Parser *p)
9713{
9714 D(p->level++);
9715 if (p->error_indicator) {
9716 D(p->level--);
9717 return NULL;
9718 }
9719 expr_ty _res = NULL;
9720 int _mark = p->mark;
9721 { // yield_expr
9722 if (p->error_indicator) {
9723 D(p->level--);
9724 return NULL;
9725 }
9726 D(fprintf(stderr, "%*c> annotated_rhs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
9727 expr_ty yield_expr_var;
9728 if (
9729 (yield_expr_var = yield_expr_rule(p)) // yield_expr
9730 )
9731 {
9732 D(fprintf(stderr, "%*c+ annotated_rhs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
9733 _res = yield_expr_var;
9734 goto done;
9735 }
9736 p->mark = _mark;
9737 D(fprintf(stderr, "%*c%s annotated_rhs[%d-%d]: %s failed!\n", p->level, ' ',
9738 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
9739 }
9740 { // star_expressions
9741 if (p->error_indicator) {
9742 D(p->level--);
9743 return NULL;
9744 }
9745 D(fprintf(stderr, "%*c> annotated_rhs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
9746 expr_ty star_expressions_var;
9747 if (
9748 (star_expressions_var = star_expressions_rule(p)) // star_expressions
9749 )
9750 {
9751 D(fprintf(stderr, "%*c+ annotated_rhs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
9752 _res = star_expressions_var;
9753 goto done;
9754 }
9755 p->mark = _mark;
9756 D(fprintf(stderr, "%*c%s annotated_rhs[%d-%d]: %s failed!\n", p->level, ' ',
9757 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
9758 }
9759 _res = NULL;
9760 done:
9761 D(p->level--);
9762 return _res;
9763}
9764
9765// expressions: expression ((',' expression))+ ','? | expression ',' | expression
9766static expr_ty
9767expressions_rule(Parser *p)
9768{
9769 D(p->level++);
9770 if (p->error_indicator) {
9771 D(p->level--);
9772 return NULL;
9773 }
9774 expr_ty _res = NULL;
9775 int _mark = p->mark;
9776 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9777 p->error_indicator = 1;
9778 D(p->level--);
9779 return NULL;
9780 }
9781 int _start_lineno = p->tokens[_mark]->lineno;
9782 UNUSED(_start_lineno); // Only used by EXTRA macro
9783 int _start_col_offset = p->tokens[_mark]->col_offset;
9784 UNUSED(_start_col_offset); // Only used by EXTRA macro
9785 { // expression ((',' expression))+ ','?
9786 if (p->error_indicator) {
9787 D(p->level--);
9788 return NULL;
9789 }
9790 D(fprintf(stderr, "%*c> expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ((',' expression))+ ','?"));
9791 void *_opt_var;
9792 UNUSED(_opt_var); // Silence compiler warnings
9793 expr_ty a;
9794 asdl_seq * b;
9795 if (
9796 (a = expression_rule(p)) // expression
9797 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08009798 (b = _loop1_89_rule(p)) // ((',' expression))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009799 &&
9800 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
9801 )
9802 {
9803 D(fprintf(stderr, "%*c+ expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ((',' expression))+ ','?"));
9804 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9805 if (_token == NULL) {
9806 D(p->level--);
9807 return NULL;
9808 }
9809 int _end_lineno = _token->end_lineno;
9810 UNUSED(_end_lineno); // Only used by EXTRA macro
9811 int _end_col_offset = _token->end_col_offset;
9812 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02009813 _res = _PyAST_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , a , b ) ) , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009814 if (_res == NULL && PyErr_Occurred()) {
9815 p->error_indicator = 1;
9816 D(p->level--);
9817 return NULL;
9818 }
9819 goto done;
9820 }
9821 p->mark = _mark;
9822 D(fprintf(stderr, "%*c%s expressions[%d-%d]: %s failed!\n", p->level, ' ',
9823 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ((',' expression))+ ','?"));
9824 }
9825 { // expression ','
9826 if (p->error_indicator) {
9827 D(p->level--);
9828 return NULL;
9829 }
9830 D(fprintf(stderr, "%*c> expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ','"));
9831 Token * _literal;
9832 expr_ty a;
9833 if (
9834 (a = expression_rule(p)) // expression
9835 &&
9836 (_literal = _PyPegen_expect_token(p, 12)) // token=','
9837 )
9838 {
9839 D(fprintf(stderr, "%*c+ expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ','"));
9840 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9841 if (_token == NULL) {
9842 D(p->level--);
9843 return NULL;
9844 }
9845 int _end_lineno = _token->end_lineno;
9846 UNUSED(_end_lineno); // Only used by EXTRA macro
9847 int _end_col_offset = _token->end_col_offset;
9848 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02009849 _res = _PyAST_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_singleton_seq ( p , a ) ) , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009850 if (_res == NULL && PyErr_Occurred()) {
9851 p->error_indicator = 1;
9852 D(p->level--);
9853 return NULL;
9854 }
9855 goto done;
9856 }
9857 p->mark = _mark;
9858 D(fprintf(stderr, "%*c%s expressions[%d-%d]: %s failed!\n", p->level, ' ',
9859 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ','"));
9860 }
9861 { // expression
9862 if (p->error_indicator) {
9863 D(p->level--);
9864 return NULL;
9865 }
9866 D(fprintf(stderr, "%*c> expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression"));
9867 expr_ty expression_var;
9868 if (
9869 (expression_var = expression_rule(p)) // expression
9870 )
9871 {
9872 D(fprintf(stderr, "%*c+ expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression"));
9873 _res = expression_var;
9874 goto done;
9875 }
9876 p->mark = _mark;
9877 D(fprintf(stderr, "%*c%s expressions[%d-%d]: %s failed!\n", p->level, ' ',
9878 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression"));
9879 }
9880 _res = NULL;
9881 done:
9882 D(p->level--);
9883 return _res;
9884}
9885
Pablo Galindob2802482021-04-15 21:38:45 +01009886// expression:
9887// | invalid_expression
9888// | disjunction 'if' disjunction 'else' expression
9889// | disjunction
9890// | lambdef
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009891static expr_ty
9892expression_rule(Parser *p)
9893{
9894 D(p->level++);
9895 if (p->error_indicator) {
9896 D(p->level--);
9897 return NULL;
9898 }
9899 expr_ty _res = NULL;
9900 if (_PyPegen_is_memoized(p, expression_type, &_res)) {
9901 D(p->level--);
9902 return _res;
9903 }
9904 int _mark = p->mark;
9905 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9906 p->error_indicator = 1;
9907 D(p->level--);
9908 return NULL;
9909 }
9910 int _start_lineno = p->tokens[_mark]->lineno;
9911 UNUSED(_start_lineno); // Only used by EXTRA macro
9912 int _start_col_offset = p->tokens[_mark]->col_offset;
9913 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindob2802482021-04-15 21:38:45 +01009914 if (p->call_invalid_rules) { // invalid_expression
9915 if (p->error_indicator) {
9916 D(p->level--);
9917 return NULL;
9918 }
9919 D(fprintf(stderr, "%*c> expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_expression"));
9920 void *invalid_expression_var;
9921 if (
9922 (invalid_expression_var = invalid_expression_rule(p)) // invalid_expression
9923 )
9924 {
9925 D(fprintf(stderr, "%*c+ expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_expression"));
9926 _res = invalid_expression_var;
9927 goto done;
9928 }
9929 p->mark = _mark;
9930 D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ',
9931 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_expression"));
9932 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009933 { // disjunction 'if' disjunction 'else' expression
9934 if (p->error_indicator) {
9935 D(p->level--);
9936 return NULL;
9937 }
9938 D(fprintf(stderr, "%*c> expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "disjunction 'if' disjunction 'else' expression"));
9939 Token * _keyword;
9940 Token * _keyword_1;
9941 expr_ty a;
9942 expr_ty b;
9943 expr_ty c;
9944 if (
9945 (a = disjunction_rule(p)) // disjunction
9946 &&
9947 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
9948 &&
9949 (b = disjunction_rule(p)) // disjunction
9950 &&
9951 (_keyword_1 = _PyPegen_expect_token(p, 516)) // token='else'
9952 &&
9953 (c = expression_rule(p)) // expression
9954 )
9955 {
9956 D(fprintf(stderr, "%*c+ expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "disjunction 'if' disjunction 'else' 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_IfExp ( b , a , c , 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 expression[%d-%d]: %s failed!\n", p->level, ' ',
9976 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "disjunction 'if' disjunction 'else' expression"));
9977 }
9978 { // disjunction
9979 if (p->error_indicator) {
9980 D(p->level--);
9981 return NULL;
9982 }
9983 D(fprintf(stderr, "%*c> expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "disjunction"));
9984 expr_ty disjunction_var;
9985 if (
9986 (disjunction_var = disjunction_rule(p)) // disjunction
9987 )
9988 {
9989 D(fprintf(stderr, "%*c+ expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "disjunction"));
9990 _res = disjunction_var;
9991 goto done;
9992 }
9993 p->mark = _mark;
9994 D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ',
9995 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "disjunction"));
9996 }
9997 { // lambdef
9998 if (p->error_indicator) {
9999 D(p->level--);
10000 return NULL;
10001 }
10002 D(fprintf(stderr, "%*c> expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambdef"));
10003 expr_ty lambdef_var;
10004 if (
10005 (lambdef_var = lambdef_rule(p)) // lambdef
10006 )
10007 {
10008 D(fprintf(stderr, "%*c+ expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambdef"));
10009 _res = lambdef_var;
10010 goto done;
10011 }
10012 p->mark = _mark;
10013 D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ',
10014 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambdef"));
10015 }
10016 _res = NULL;
10017 done:
10018 _PyPegen_insert_memo(p, _mark, expression_type, _res);
10019 D(p->level--);
10020 return _res;
10021}
10022
10023// lambdef: 'lambda' lambda_params? ':' expression
10024static expr_ty
10025lambdef_rule(Parser *p)
10026{
10027 D(p->level++);
10028 if (p->error_indicator) {
10029 D(p->level--);
10030 return NULL;
10031 }
10032 expr_ty _res = NULL;
10033 int _mark = p->mark;
10034 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10035 p->error_indicator = 1;
10036 D(p->level--);
10037 return NULL;
10038 }
10039 int _start_lineno = p->tokens[_mark]->lineno;
10040 UNUSED(_start_lineno); // Only used by EXTRA macro
10041 int _start_col_offset = p->tokens[_mark]->col_offset;
10042 UNUSED(_start_col_offset); // Only used by EXTRA macro
10043 { // 'lambda' lambda_params? ':' expression
10044 if (p->error_indicator) {
10045 D(p->level--);
10046 return NULL;
10047 }
10048 D(fprintf(stderr, "%*c> lambdef[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'lambda' lambda_params? ':' expression"));
10049 Token * _keyword;
10050 Token * _literal;
10051 void *a;
10052 expr_ty b;
10053 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080010054 (_keyword = _PyPegen_expect_token(p, 528)) // token='lambda'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010055 &&
10056 (a = lambda_params_rule(p), 1) // lambda_params?
10057 &&
10058 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
10059 &&
10060 (b = expression_rule(p)) // expression
10061 )
10062 {
10063 D(fprintf(stderr, "%*c+ lambdef[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'lambda' lambda_params? ':' expression"));
10064 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10065 if (_token == NULL) {
10066 D(p->level--);
10067 return NULL;
10068 }
10069 int _end_lineno = _token->end_lineno;
10070 UNUSED(_end_lineno); // Only used by EXTRA macro
10071 int _end_col_offset = _token->end_col_offset;
10072 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020010073 _res = _PyAST_Lambda ( ( a ) ? a : CHECK ( arguments_ty , _PyPegen_empty_arguments ( p ) ) , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010074 if (_res == NULL && PyErr_Occurred()) {
10075 p->error_indicator = 1;
10076 D(p->level--);
10077 return NULL;
10078 }
10079 goto done;
10080 }
10081 p->mark = _mark;
10082 D(fprintf(stderr, "%*c%s lambdef[%d-%d]: %s failed!\n", p->level, ' ',
10083 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'lambda' lambda_params? ':' expression"));
10084 }
10085 _res = NULL;
10086 done:
10087 D(p->level--);
10088 return _res;
10089}
10090
10091// lambda_params: invalid_lambda_parameters | lambda_parameters
10092static arguments_ty
10093lambda_params_rule(Parser *p)
10094{
10095 D(p->level++);
10096 if (p->error_indicator) {
10097 D(p->level--);
10098 return NULL;
10099 }
10100 arguments_ty _res = NULL;
10101 int _mark = p->mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020010102 if (p->call_invalid_rules) { // invalid_lambda_parameters
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010103 if (p->error_indicator) {
10104 D(p->level--);
10105 return NULL;
10106 }
10107 D(fprintf(stderr, "%*c> lambda_params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_lambda_parameters"));
10108 void *invalid_lambda_parameters_var;
10109 if (
10110 (invalid_lambda_parameters_var = invalid_lambda_parameters_rule(p)) // invalid_lambda_parameters
10111 )
10112 {
10113 D(fprintf(stderr, "%*c+ lambda_params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_lambda_parameters"));
10114 _res = invalid_lambda_parameters_var;
10115 goto done;
10116 }
10117 p->mark = _mark;
10118 D(fprintf(stderr, "%*c%s lambda_params[%d-%d]: %s failed!\n", p->level, ' ',
10119 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_lambda_parameters"));
10120 }
10121 { // lambda_parameters
10122 if (p->error_indicator) {
10123 D(p->level--);
10124 return NULL;
10125 }
10126 D(fprintf(stderr, "%*c> lambda_params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_parameters"));
10127 arguments_ty lambda_parameters_var;
10128 if (
10129 (lambda_parameters_var = lambda_parameters_rule(p)) // lambda_parameters
10130 )
10131 {
10132 D(fprintf(stderr, "%*c+ lambda_params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_parameters"));
10133 _res = lambda_parameters_var;
10134 goto done;
10135 }
10136 p->mark = _mark;
10137 D(fprintf(stderr, "%*c%s lambda_params[%d-%d]: %s failed!\n", p->level, ' ',
10138 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_parameters"));
10139 }
10140 _res = NULL;
10141 done:
10142 D(p->level--);
10143 return _res;
10144}
10145
10146// lambda_parameters:
10147// | lambda_slash_no_default lambda_param_no_default* lambda_param_with_default* lambda_star_etc?
10148// | lambda_slash_with_default lambda_param_with_default* lambda_star_etc?
10149// | lambda_param_no_default+ lambda_param_with_default* lambda_star_etc?
10150// | lambda_param_with_default+ lambda_star_etc?
10151// | lambda_star_etc
10152static arguments_ty
10153lambda_parameters_rule(Parser *p)
10154{
10155 D(p->level++);
10156 if (p->error_indicator) {
10157 D(p->level--);
10158 return NULL;
10159 }
10160 arguments_ty _res = NULL;
10161 int _mark = p->mark;
10162 { // lambda_slash_no_default lambda_param_no_default* lambda_param_with_default* lambda_star_etc?
10163 if (p->error_indicator) {
10164 D(p->level--);
10165 return NULL;
10166 }
10167 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 +010010168 asdl_arg_seq* a;
10169 asdl_arg_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010170 asdl_seq * c;
10171 void *d;
10172 if (
10173 (a = lambda_slash_no_default_rule(p)) // lambda_slash_no_default
10174 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080010175 (b = (asdl_arg_seq*)_loop0_90_rule(p)) // lambda_param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010176 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080010177 (c = _loop0_91_rule(p)) // lambda_param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010178 &&
10179 (d = lambda_star_etc_rule(p), 1) // lambda_star_etc?
10180 )
10181 {
10182 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?"));
10183 _res = _PyPegen_make_arguments ( p , a , NULL , b , c , d );
10184 if (_res == NULL && PyErr_Occurred()) {
10185 p->error_indicator = 1;
10186 D(p->level--);
10187 return NULL;
10188 }
10189 goto done;
10190 }
10191 p->mark = _mark;
10192 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
10193 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_slash_no_default lambda_param_no_default* lambda_param_with_default* lambda_star_etc?"));
10194 }
10195 { // lambda_slash_with_default lambda_param_with_default* lambda_star_etc?
10196 if (p->error_indicator) {
10197 D(p->level--);
10198 return NULL;
10199 }
10200 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?"));
10201 SlashWithDefault* a;
10202 asdl_seq * b;
10203 void *c;
10204 if (
10205 (a = lambda_slash_with_default_rule(p)) // lambda_slash_with_default
10206 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080010207 (b = _loop0_92_rule(p)) // lambda_param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010208 &&
10209 (c = lambda_star_etc_rule(p), 1) // lambda_star_etc?
10210 )
10211 {
10212 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?"));
10213 _res = _PyPegen_make_arguments ( p , NULL , a , NULL , b , c );
10214 if (_res == NULL && PyErr_Occurred()) {
10215 p->error_indicator = 1;
10216 D(p->level--);
10217 return NULL;
10218 }
10219 goto done;
10220 }
10221 p->mark = _mark;
10222 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
10223 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_slash_with_default lambda_param_with_default* lambda_star_etc?"));
10224 }
10225 { // lambda_param_no_default+ lambda_param_with_default* lambda_star_etc?
10226 if (p->error_indicator) {
10227 D(p->level--);
10228 return NULL;
10229 }
10230 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 +010010231 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010232 asdl_seq * b;
10233 void *c;
10234 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080010235 (a = (asdl_arg_seq*)_loop1_93_rule(p)) // lambda_param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010236 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080010237 (b = _loop0_94_rule(p)) // lambda_param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010238 &&
10239 (c = lambda_star_etc_rule(p), 1) // lambda_star_etc?
10240 )
10241 {
10242 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?"));
10243 _res = _PyPegen_make_arguments ( p , NULL , NULL , a , b , c );
10244 if (_res == NULL && PyErr_Occurred()) {
10245 p->error_indicator = 1;
10246 D(p->level--);
10247 return NULL;
10248 }
10249 goto done;
10250 }
10251 p->mark = _mark;
10252 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
10253 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default+ lambda_param_with_default* lambda_star_etc?"));
10254 }
10255 { // lambda_param_with_default+ lambda_star_etc?
10256 if (p->error_indicator) {
10257 D(p->level--);
10258 return NULL;
10259 }
10260 D(fprintf(stderr, "%*c> lambda_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default+ lambda_star_etc?"));
10261 asdl_seq * a;
10262 void *b;
10263 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080010264 (a = _loop1_95_rule(p)) // lambda_param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010265 &&
10266 (b = lambda_star_etc_rule(p), 1) // lambda_star_etc?
10267 )
10268 {
10269 D(fprintf(stderr, "%*c+ lambda_parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default+ lambda_star_etc?"));
10270 _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , a , b );
10271 if (_res == NULL && PyErr_Occurred()) {
10272 p->error_indicator = 1;
10273 D(p->level--);
10274 return NULL;
10275 }
10276 goto done;
10277 }
10278 p->mark = _mark;
10279 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
10280 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default+ lambda_star_etc?"));
10281 }
10282 { // lambda_star_etc
10283 if (p->error_indicator) {
10284 D(p->level--);
10285 return NULL;
10286 }
10287 D(fprintf(stderr, "%*c> lambda_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_star_etc"));
10288 StarEtc* a;
10289 if (
10290 (a = lambda_star_etc_rule(p)) // lambda_star_etc
10291 )
10292 {
10293 D(fprintf(stderr, "%*c+ lambda_parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_star_etc"));
10294 _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , NULL , a );
10295 if (_res == NULL && PyErr_Occurred()) {
10296 p->error_indicator = 1;
10297 D(p->level--);
10298 return NULL;
10299 }
10300 goto done;
10301 }
10302 p->mark = _mark;
10303 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
10304 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_star_etc"));
10305 }
10306 _res = NULL;
10307 done:
10308 D(p->level--);
10309 return _res;
10310}
10311
10312// lambda_slash_no_default:
10313// | lambda_param_no_default+ '/' ','
10314// | lambda_param_no_default+ '/' &':'
Pablo Galindoa5634c42020-09-16 19:42:00 +010010315static asdl_arg_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010316lambda_slash_no_default_rule(Parser *p)
10317{
10318 D(p->level++);
10319 if (p->error_indicator) {
10320 D(p->level--);
10321 return NULL;
10322 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010010323 asdl_arg_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010324 int _mark = p->mark;
10325 { // lambda_param_no_default+ '/' ','
10326 if (p->error_indicator) {
10327 D(p->level--);
10328 return NULL;
10329 }
10330 D(fprintf(stderr, "%*c> lambda_slash_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default+ '/' ','"));
10331 Token * _literal;
10332 Token * _literal_1;
Pablo Galindoa5634c42020-09-16 19:42:00 +010010333 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010334 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080010335 (a = (asdl_arg_seq*)_loop1_96_rule(p)) // lambda_param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010336 &&
10337 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
10338 &&
10339 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
10340 )
10341 {
10342 D(fprintf(stderr, "%*c+ lambda_slash_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default+ '/' ','"));
10343 _res = a;
10344 if (_res == NULL && PyErr_Occurred()) {
10345 p->error_indicator = 1;
10346 D(p->level--);
10347 return NULL;
10348 }
10349 goto done;
10350 }
10351 p->mark = _mark;
10352 D(fprintf(stderr, "%*c%s lambda_slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
10353 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default+ '/' ','"));
10354 }
10355 { // lambda_param_no_default+ '/' &':'
10356 if (p->error_indicator) {
10357 D(p->level--);
10358 return NULL;
10359 }
10360 D(fprintf(stderr, "%*c> lambda_slash_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default+ '/' &':'"));
10361 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +010010362 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010363 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080010364 (a = (asdl_arg_seq*)_loop1_97_rule(p)) // lambda_param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010365 &&
10366 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
10367 &&
10368 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
10369 )
10370 {
10371 D(fprintf(stderr, "%*c+ lambda_slash_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default+ '/' &':'"));
10372 _res = a;
10373 if (_res == NULL && PyErr_Occurred()) {
10374 p->error_indicator = 1;
10375 D(p->level--);
10376 return NULL;
10377 }
10378 goto done;
10379 }
10380 p->mark = _mark;
10381 D(fprintf(stderr, "%*c%s lambda_slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
10382 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default+ '/' &':'"));
10383 }
10384 _res = NULL;
10385 done:
10386 D(p->level--);
10387 return _res;
10388}
10389
10390// lambda_slash_with_default:
10391// | lambda_param_no_default* lambda_param_with_default+ '/' ','
10392// | lambda_param_no_default* lambda_param_with_default+ '/' &':'
10393static SlashWithDefault*
10394lambda_slash_with_default_rule(Parser *p)
10395{
10396 D(p->level++);
10397 if (p->error_indicator) {
10398 D(p->level--);
10399 return NULL;
10400 }
10401 SlashWithDefault* _res = NULL;
10402 int _mark = p->mark;
10403 { // lambda_param_no_default* lambda_param_with_default+ '/' ','
10404 if (p->error_indicator) {
10405 D(p->level--);
10406 return NULL;
10407 }
10408 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+ '/' ','"));
10409 Token * _literal;
10410 Token * _literal_1;
10411 asdl_seq * a;
10412 asdl_seq * b;
10413 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080010414 (a = _loop0_98_rule(p)) // lambda_param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010415 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080010416 (b = _loop1_99_rule(p)) // lambda_param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010417 &&
10418 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
10419 &&
10420 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
10421 )
10422 {
10423 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 +010010424 _res = _PyPegen_slash_with_default ( p , ( asdl_arg_seq * ) a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010425 if (_res == NULL && PyErr_Occurred()) {
10426 p->error_indicator = 1;
10427 D(p->level--);
10428 return NULL;
10429 }
10430 goto done;
10431 }
10432 p->mark = _mark;
10433 D(fprintf(stderr, "%*c%s lambda_slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
10434 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default* lambda_param_with_default+ '/' ','"));
10435 }
10436 { // lambda_param_no_default* lambda_param_with_default+ '/' &':'
10437 if (p->error_indicator) {
10438 D(p->level--);
10439 return NULL;
10440 }
10441 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+ '/' &':'"));
10442 Token * _literal;
10443 asdl_seq * a;
10444 asdl_seq * b;
10445 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080010446 (a = _loop0_100_rule(p)) // lambda_param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010447 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080010448 (b = _loop1_101_rule(p)) // lambda_param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010449 &&
10450 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
10451 &&
10452 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
10453 )
10454 {
10455 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 +010010456 _res = _PyPegen_slash_with_default ( p , ( asdl_arg_seq * ) a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010457 if (_res == NULL && PyErr_Occurred()) {
10458 p->error_indicator = 1;
10459 D(p->level--);
10460 return NULL;
10461 }
10462 goto done;
10463 }
10464 p->mark = _mark;
10465 D(fprintf(stderr, "%*c%s lambda_slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
10466 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default* lambda_param_with_default+ '/' &':'"));
10467 }
10468 _res = NULL;
10469 done:
10470 D(p->level--);
10471 return _res;
10472}
10473
10474// lambda_star_etc:
10475// | '*' lambda_param_no_default lambda_param_maybe_default* lambda_kwds?
10476// | '*' ',' lambda_param_maybe_default+ lambda_kwds?
10477// | lambda_kwds
10478// | invalid_lambda_star_etc
10479static StarEtc*
10480lambda_star_etc_rule(Parser *p)
10481{
10482 D(p->level++);
10483 if (p->error_indicator) {
10484 D(p->level--);
10485 return NULL;
10486 }
10487 StarEtc* _res = NULL;
10488 int _mark = p->mark;
10489 { // '*' lambda_param_no_default lambda_param_maybe_default* lambda_kwds?
10490 if (p->error_indicator) {
10491 D(p->level--);
10492 return NULL;
10493 }
10494 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?"));
10495 Token * _literal;
10496 arg_ty a;
10497 asdl_seq * b;
10498 void *c;
10499 if (
10500 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
10501 &&
10502 (a = lambda_param_no_default_rule(p)) // lambda_param_no_default
10503 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080010504 (b = _loop0_102_rule(p)) // lambda_param_maybe_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010505 &&
10506 (c = lambda_kwds_rule(p), 1) // lambda_kwds?
10507 )
10508 {
10509 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?"));
10510 _res = _PyPegen_star_etc ( p , a , b , c );
10511 if (_res == NULL && PyErr_Occurred()) {
10512 p->error_indicator = 1;
10513 D(p->level--);
10514 return NULL;
10515 }
10516 goto done;
10517 }
10518 p->mark = _mark;
10519 D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
10520 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' lambda_param_no_default lambda_param_maybe_default* lambda_kwds?"));
10521 }
10522 { // '*' ',' lambda_param_maybe_default+ lambda_kwds?
10523 if (p->error_indicator) {
10524 D(p->level--);
10525 return NULL;
10526 }
10527 D(fprintf(stderr, "%*c> lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' ',' lambda_param_maybe_default+ lambda_kwds?"));
10528 Token * _literal;
10529 Token * _literal_1;
10530 asdl_seq * b;
10531 void *c;
10532 if (
10533 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
10534 &&
10535 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
10536 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080010537 (b = _loop1_103_rule(p)) // lambda_param_maybe_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010538 &&
10539 (c = lambda_kwds_rule(p), 1) // lambda_kwds?
10540 )
10541 {
10542 D(fprintf(stderr, "%*c+ lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' ',' lambda_param_maybe_default+ lambda_kwds?"));
10543 _res = _PyPegen_star_etc ( p , NULL , b , c );
10544 if (_res == NULL && PyErr_Occurred()) {
10545 p->error_indicator = 1;
10546 D(p->level--);
10547 return NULL;
10548 }
10549 goto done;
10550 }
10551 p->mark = _mark;
10552 D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
10553 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' ',' lambda_param_maybe_default+ lambda_kwds?"));
10554 }
10555 { // lambda_kwds
10556 if (p->error_indicator) {
10557 D(p->level--);
10558 return NULL;
10559 }
10560 D(fprintf(stderr, "%*c> lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_kwds"));
10561 arg_ty a;
10562 if (
10563 (a = lambda_kwds_rule(p)) // lambda_kwds
10564 )
10565 {
10566 D(fprintf(stderr, "%*c+ lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_kwds"));
10567 _res = _PyPegen_star_etc ( p , NULL , NULL , a );
10568 if (_res == NULL && PyErr_Occurred()) {
10569 p->error_indicator = 1;
10570 D(p->level--);
10571 return NULL;
10572 }
10573 goto done;
10574 }
10575 p->mark = _mark;
10576 D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
10577 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_kwds"));
10578 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020010579 if (p->call_invalid_rules) { // invalid_lambda_star_etc
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010580 if (p->error_indicator) {
10581 D(p->level--);
10582 return NULL;
10583 }
10584 D(fprintf(stderr, "%*c> lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_lambda_star_etc"));
10585 void *invalid_lambda_star_etc_var;
10586 if (
10587 (invalid_lambda_star_etc_var = invalid_lambda_star_etc_rule(p)) // invalid_lambda_star_etc
10588 )
10589 {
10590 D(fprintf(stderr, "%*c+ lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_lambda_star_etc"));
10591 _res = invalid_lambda_star_etc_var;
10592 goto done;
10593 }
10594 p->mark = _mark;
10595 D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
10596 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_lambda_star_etc"));
10597 }
10598 _res = NULL;
10599 done:
10600 D(p->level--);
10601 return _res;
10602}
10603
10604// lambda_kwds: '**' lambda_param_no_default
10605static arg_ty
10606lambda_kwds_rule(Parser *p)
10607{
10608 D(p->level++);
10609 if (p->error_indicator) {
10610 D(p->level--);
10611 return NULL;
10612 }
10613 arg_ty _res = NULL;
10614 int _mark = p->mark;
10615 { // '**' lambda_param_no_default
10616 if (p->error_indicator) {
10617 D(p->level--);
10618 return NULL;
10619 }
10620 D(fprintf(stderr, "%*c> lambda_kwds[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' lambda_param_no_default"));
10621 Token * _literal;
10622 arg_ty a;
10623 if (
10624 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
10625 &&
10626 (a = lambda_param_no_default_rule(p)) // lambda_param_no_default
10627 )
10628 {
10629 D(fprintf(stderr, "%*c+ lambda_kwds[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' lambda_param_no_default"));
10630 _res = a;
10631 if (_res == NULL && PyErr_Occurred()) {
10632 p->error_indicator = 1;
10633 D(p->level--);
10634 return NULL;
10635 }
10636 goto done;
10637 }
10638 p->mark = _mark;
10639 D(fprintf(stderr, "%*c%s lambda_kwds[%d-%d]: %s failed!\n", p->level, ' ',
10640 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' lambda_param_no_default"));
10641 }
10642 _res = NULL;
10643 done:
10644 D(p->level--);
10645 return _res;
10646}
10647
10648// lambda_param_no_default: lambda_param ',' | lambda_param &':'
10649static arg_ty
10650lambda_param_no_default_rule(Parser *p)
10651{
10652 D(p->level++);
10653 if (p->error_indicator) {
10654 D(p->level--);
10655 return NULL;
10656 }
10657 arg_ty _res = NULL;
10658 int _mark = p->mark;
10659 { // lambda_param ','
10660 if (p->error_indicator) {
10661 D(p->level--);
10662 return NULL;
10663 }
10664 D(fprintf(stderr, "%*c> lambda_param_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param ','"));
10665 Token * _literal;
10666 arg_ty a;
10667 if (
10668 (a = lambda_param_rule(p)) // lambda_param
10669 &&
10670 (_literal = _PyPegen_expect_token(p, 12)) // token=','
10671 )
10672 {
10673 D(fprintf(stderr, "%*c+ lambda_param_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param ','"));
10674 _res = a;
10675 if (_res == NULL && PyErr_Occurred()) {
10676 p->error_indicator = 1;
10677 D(p->level--);
10678 return NULL;
10679 }
10680 goto done;
10681 }
10682 p->mark = _mark;
10683 D(fprintf(stderr, "%*c%s lambda_param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
10684 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param ','"));
10685 }
10686 { // lambda_param &':'
10687 if (p->error_indicator) {
10688 D(p->level--);
10689 return NULL;
10690 }
10691 D(fprintf(stderr, "%*c> lambda_param_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param &':'"));
10692 arg_ty a;
10693 if (
10694 (a = lambda_param_rule(p)) // lambda_param
10695 &&
10696 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
10697 )
10698 {
10699 D(fprintf(stderr, "%*c+ lambda_param_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param &':'"));
10700 _res = a;
10701 if (_res == NULL && PyErr_Occurred()) {
10702 p->error_indicator = 1;
10703 D(p->level--);
10704 return NULL;
10705 }
10706 goto done;
10707 }
10708 p->mark = _mark;
10709 D(fprintf(stderr, "%*c%s lambda_param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
10710 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param &':'"));
10711 }
10712 _res = NULL;
10713 done:
10714 D(p->level--);
10715 return _res;
10716}
10717
10718// lambda_param_with_default: lambda_param default ',' | lambda_param default &':'
10719static NameDefaultPair*
10720lambda_param_with_default_rule(Parser *p)
10721{
10722 D(p->level++);
10723 if (p->error_indicator) {
10724 D(p->level--);
10725 return NULL;
10726 }
10727 NameDefaultPair* _res = NULL;
10728 int _mark = p->mark;
10729 { // lambda_param default ','
10730 if (p->error_indicator) {
10731 D(p->level--);
10732 return NULL;
10733 }
10734 D(fprintf(stderr, "%*c> lambda_param_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param default ','"));
10735 Token * _literal;
10736 arg_ty a;
10737 expr_ty c;
10738 if (
10739 (a = lambda_param_rule(p)) // lambda_param
10740 &&
10741 (c = default_rule(p)) // default
10742 &&
10743 (_literal = _PyPegen_expect_token(p, 12)) // token=','
10744 )
10745 {
10746 D(fprintf(stderr, "%*c+ lambda_param_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param default ','"));
10747 _res = _PyPegen_name_default_pair ( p , a , c , NULL );
10748 if (_res == NULL && PyErr_Occurred()) {
10749 p->error_indicator = 1;
10750 D(p->level--);
10751 return NULL;
10752 }
10753 goto done;
10754 }
10755 p->mark = _mark;
10756 D(fprintf(stderr, "%*c%s lambda_param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
10757 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default ','"));
10758 }
10759 { // lambda_param default &':'
10760 if (p->error_indicator) {
10761 D(p->level--);
10762 return NULL;
10763 }
10764 D(fprintf(stderr, "%*c> lambda_param_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param default &':'"));
10765 arg_ty a;
10766 expr_ty c;
10767 if (
10768 (a = lambda_param_rule(p)) // lambda_param
10769 &&
10770 (c = default_rule(p)) // default
10771 &&
10772 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
10773 )
10774 {
10775 D(fprintf(stderr, "%*c+ lambda_param_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param default &':'"));
10776 _res = _PyPegen_name_default_pair ( p , a , c , NULL );
10777 if (_res == NULL && PyErr_Occurred()) {
10778 p->error_indicator = 1;
10779 D(p->level--);
10780 return NULL;
10781 }
10782 goto done;
10783 }
10784 p->mark = _mark;
10785 D(fprintf(stderr, "%*c%s lambda_param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
10786 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default &':'"));
10787 }
10788 _res = NULL;
10789 done:
10790 D(p->level--);
10791 return _res;
10792}
10793
10794// lambda_param_maybe_default: lambda_param default? ',' | lambda_param default? &':'
10795static NameDefaultPair*
10796lambda_param_maybe_default_rule(Parser *p)
10797{
10798 D(p->level++);
10799 if (p->error_indicator) {
10800 D(p->level--);
10801 return NULL;
10802 }
10803 NameDefaultPair* _res = NULL;
10804 int _mark = p->mark;
10805 { // lambda_param default? ','
10806 if (p->error_indicator) {
10807 D(p->level--);
10808 return NULL;
10809 }
10810 D(fprintf(stderr, "%*c> lambda_param_maybe_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param default? ','"));
10811 Token * _literal;
10812 arg_ty a;
10813 void *c;
10814 if (
10815 (a = lambda_param_rule(p)) // lambda_param
10816 &&
10817 (c = default_rule(p), 1) // default?
10818 &&
10819 (_literal = _PyPegen_expect_token(p, 12)) // token=','
10820 )
10821 {
10822 D(fprintf(stderr, "%*c+ lambda_param_maybe_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param default? ','"));
10823 _res = _PyPegen_name_default_pair ( p , a , c , NULL );
10824 if (_res == NULL && PyErr_Occurred()) {
10825 p->error_indicator = 1;
10826 D(p->level--);
10827 return NULL;
10828 }
10829 goto done;
10830 }
10831 p->mark = _mark;
10832 D(fprintf(stderr, "%*c%s lambda_param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
10833 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default? ','"));
10834 }
10835 { // lambda_param default? &':'
10836 if (p->error_indicator) {
10837 D(p->level--);
10838 return NULL;
10839 }
10840 D(fprintf(stderr, "%*c> lambda_param_maybe_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param default? &':'"));
10841 arg_ty a;
10842 void *c;
10843 if (
10844 (a = lambda_param_rule(p)) // lambda_param
10845 &&
10846 (c = default_rule(p), 1) // default?
10847 &&
10848 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
10849 )
10850 {
10851 D(fprintf(stderr, "%*c+ lambda_param_maybe_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param default? &':'"));
10852 _res = _PyPegen_name_default_pair ( p , a , c , NULL );
10853 if (_res == NULL && PyErr_Occurred()) {
10854 p->error_indicator = 1;
10855 D(p->level--);
10856 return NULL;
10857 }
10858 goto done;
10859 }
10860 p->mark = _mark;
10861 D(fprintf(stderr, "%*c%s lambda_param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
10862 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default? &':'"));
10863 }
10864 _res = NULL;
10865 done:
10866 D(p->level--);
10867 return _res;
10868}
10869
10870// lambda_param: NAME
10871static arg_ty
10872lambda_param_rule(Parser *p)
10873{
10874 D(p->level++);
10875 if (p->error_indicator) {
10876 D(p->level--);
10877 return NULL;
10878 }
10879 arg_ty _res = NULL;
10880 int _mark = p->mark;
10881 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10882 p->error_indicator = 1;
10883 D(p->level--);
10884 return NULL;
10885 }
10886 int _start_lineno = p->tokens[_mark]->lineno;
10887 UNUSED(_start_lineno); // Only used by EXTRA macro
10888 int _start_col_offset = p->tokens[_mark]->col_offset;
10889 UNUSED(_start_col_offset); // Only used by EXTRA macro
10890 { // NAME
10891 if (p->error_indicator) {
10892 D(p->level--);
10893 return NULL;
10894 }
10895 D(fprintf(stderr, "%*c> lambda_param[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
10896 expr_ty a;
10897 if (
10898 (a = _PyPegen_name_token(p)) // NAME
10899 )
10900 {
10901 D(fprintf(stderr, "%*c+ lambda_param[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
10902 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10903 if (_token == NULL) {
10904 D(p->level--);
10905 return NULL;
10906 }
10907 int _end_lineno = _token->end_lineno;
10908 UNUSED(_end_lineno); // Only used by EXTRA macro
10909 int _end_col_offset = _token->end_col_offset;
10910 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020010911 _res = _PyAST_arg ( a -> v . Name . id , NULL , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010912 if (_res == NULL && PyErr_Occurred()) {
10913 p->error_indicator = 1;
10914 D(p->level--);
10915 return NULL;
10916 }
10917 goto done;
10918 }
10919 p->mark = _mark;
10920 D(fprintf(stderr, "%*c%s lambda_param[%d-%d]: %s failed!\n", p->level, ' ',
10921 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
10922 }
10923 _res = NULL;
10924 done:
10925 D(p->level--);
10926 return _res;
10927}
10928
10929// disjunction: conjunction (('or' conjunction))+ | conjunction
10930static expr_ty
10931disjunction_rule(Parser *p)
10932{
10933 D(p->level++);
10934 if (p->error_indicator) {
10935 D(p->level--);
10936 return NULL;
10937 }
10938 expr_ty _res = NULL;
10939 if (_PyPegen_is_memoized(p, disjunction_type, &_res)) {
10940 D(p->level--);
10941 return _res;
10942 }
10943 int _mark = p->mark;
10944 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10945 p->error_indicator = 1;
10946 D(p->level--);
10947 return NULL;
10948 }
10949 int _start_lineno = p->tokens[_mark]->lineno;
10950 UNUSED(_start_lineno); // Only used by EXTRA macro
10951 int _start_col_offset = p->tokens[_mark]->col_offset;
10952 UNUSED(_start_col_offset); // Only used by EXTRA macro
10953 { // conjunction (('or' conjunction))+
10954 if (p->error_indicator) {
10955 D(p->level--);
10956 return NULL;
10957 }
10958 D(fprintf(stderr, "%*c> disjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "conjunction (('or' conjunction))+"));
10959 expr_ty a;
10960 asdl_seq * b;
10961 if (
10962 (a = conjunction_rule(p)) // conjunction
10963 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080010964 (b = _loop1_104_rule(p)) // (('or' conjunction))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010965 )
10966 {
10967 D(fprintf(stderr, "%*c+ disjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "conjunction (('or' conjunction))+"));
10968 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10969 if (_token == NULL) {
10970 D(p->level--);
10971 return NULL;
10972 }
10973 int _end_lineno = _token->end_lineno;
10974 UNUSED(_end_lineno); // Only used by EXTRA macro
10975 int _end_col_offset = _token->end_col_offset;
10976 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020010977 _res = _PyAST_BoolOp ( Or , CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , a , b ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010978 if (_res == NULL && PyErr_Occurred()) {
10979 p->error_indicator = 1;
10980 D(p->level--);
10981 return NULL;
10982 }
10983 goto done;
10984 }
10985 p->mark = _mark;
10986 D(fprintf(stderr, "%*c%s disjunction[%d-%d]: %s failed!\n", p->level, ' ',
10987 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "conjunction (('or' conjunction))+"));
10988 }
10989 { // conjunction
10990 if (p->error_indicator) {
10991 D(p->level--);
10992 return NULL;
10993 }
10994 D(fprintf(stderr, "%*c> disjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "conjunction"));
10995 expr_ty conjunction_var;
10996 if (
10997 (conjunction_var = conjunction_rule(p)) // conjunction
10998 )
10999 {
11000 D(fprintf(stderr, "%*c+ disjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "conjunction"));
11001 _res = conjunction_var;
11002 goto done;
11003 }
11004 p->mark = _mark;
11005 D(fprintf(stderr, "%*c%s disjunction[%d-%d]: %s failed!\n", p->level, ' ',
11006 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "conjunction"));
11007 }
11008 _res = NULL;
11009 done:
11010 _PyPegen_insert_memo(p, _mark, disjunction_type, _res);
11011 D(p->level--);
11012 return _res;
11013}
11014
11015// conjunction: inversion (('and' inversion))+ | inversion
11016static expr_ty
11017conjunction_rule(Parser *p)
11018{
11019 D(p->level++);
11020 if (p->error_indicator) {
11021 D(p->level--);
11022 return NULL;
11023 }
11024 expr_ty _res = NULL;
11025 if (_PyPegen_is_memoized(p, conjunction_type, &_res)) {
11026 D(p->level--);
11027 return _res;
11028 }
11029 int _mark = p->mark;
11030 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11031 p->error_indicator = 1;
11032 D(p->level--);
11033 return NULL;
11034 }
11035 int _start_lineno = p->tokens[_mark]->lineno;
11036 UNUSED(_start_lineno); // Only used by EXTRA macro
11037 int _start_col_offset = p->tokens[_mark]->col_offset;
11038 UNUSED(_start_col_offset); // Only used by EXTRA macro
11039 { // inversion (('and' inversion))+
11040 if (p->error_indicator) {
11041 D(p->level--);
11042 return NULL;
11043 }
11044 D(fprintf(stderr, "%*c> conjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "inversion (('and' inversion))+"));
11045 expr_ty a;
11046 asdl_seq * b;
11047 if (
11048 (a = inversion_rule(p)) // inversion
11049 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080011050 (b = _loop1_105_rule(p)) // (('and' inversion))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011051 )
11052 {
11053 D(fprintf(stderr, "%*c+ conjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "inversion (('and' inversion))+"));
11054 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11055 if (_token == NULL) {
11056 D(p->level--);
11057 return NULL;
11058 }
11059 int _end_lineno = _token->end_lineno;
11060 UNUSED(_end_lineno); // Only used by EXTRA macro
11061 int _end_col_offset = _token->end_col_offset;
11062 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020011063 _res = _PyAST_BoolOp ( And , CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , a , b ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011064 if (_res == NULL && PyErr_Occurred()) {
11065 p->error_indicator = 1;
11066 D(p->level--);
11067 return NULL;
11068 }
11069 goto done;
11070 }
11071 p->mark = _mark;
11072 D(fprintf(stderr, "%*c%s conjunction[%d-%d]: %s failed!\n", p->level, ' ',
11073 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "inversion (('and' inversion))+"));
11074 }
11075 { // inversion
11076 if (p->error_indicator) {
11077 D(p->level--);
11078 return NULL;
11079 }
11080 D(fprintf(stderr, "%*c> conjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "inversion"));
11081 expr_ty inversion_var;
11082 if (
11083 (inversion_var = inversion_rule(p)) // inversion
11084 )
11085 {
11086 D(fprintf(stderr, "%*c+ conjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "inversion"));
11087 _res = inversion_var;
11088 goto done;
11089 }
11090 p->mark = _mark;
11091 D(fprintf(stderr, "%*c%s conjunction[%d-%d]: %s failed!\n", p->level, ' ',
11092 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "inversion"));
11093 }
11094 _res = NULL;
11095 done:
11096 _PyPegen_insert_memo(p, _mark, conjunction_type, _res);
11097 D(p->level--);
11098 return _res;
11099}
11100
11101// inversion: 'not' inversion | comparison
11102static expr_ty
11103inversion_rule(Parser *p)
11104{
11105 D(p->level++);
11106 if (p->error_indicator) {
11107 D(p->level--);
11108 return NULL;
11109 }
11110 expr_ty _res = NULL;
11111 if (_PyPegen_is_memoized(p, inversion_type, &_res)) {
11112 D(p->level--);
11113 return _res;
11114 }
11115 int _mark = p->mark;
11116 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11117 p->error_indicator = 1;
11118 D(p->level--);
11119 return NULL;
11120 }
11121 int _start_lineno = p->tokens[_mark]->lineno;
11122 UNUSED(_start_lineno); // Only used by EXTRA macro
11123 int _start_col_offset = p->tokens[_mark]->col_offset;
11124 UNUSED(_start_col_offset); // Only used by EXTRA macro
11125 { // 'not' inversion
11126 if (p->error_indicator) {
11127 D(p->level--);
11128 return NULL;
11129 }
11130 D(fprintf(stderr, "%*c> inversion[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'not' inversion"));
11131 Token * _keyword;
11132 expr_ty a;
11133 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080011134 (_keyword = _PyPegen_expect_token(p, 529)) // token='not'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011135 &&
11136 (a = inversion_rule(p)) // inversion
11137 )
11138 {
11139 D(fprintf(stderr, "%*c+ inversion[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'not' inversion"));
11140 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11141 if (_token == NULL) {
11142 D(p->level--);
11143 return NULL;
11144 }
11145 int _end_lineno = _token->end_lineno;
11146 UNUSED(_end_lineno); // Only used by EXTRA macro
11147 int _end_col_offset = _token->end_col_offset;
11148 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020011149 _res = _PyAST_UnaryOp ( Not , a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011150 if (_res == NULL && PyErr_Occurred()) {
11151 p->error_indicator = 1;
11152 D(p->level--);
11153 return NULL;
11154 }
11155 goto done;
11156 }
11157 p->mark = _mark;
11158 D(fprintf(stderr, "%*c%s inversion[%d-%d]: %s failed!\n", p->level, ' ',
11159 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'not' inversion"));
11160 }
11161 { // comparison
11162 if (p->error_indicator) {
11163 D(p->level--);
11164 return NULL;
11165 }
11166 D(fprintf(stderr, "%*c> inversion[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "comparison"));
11167 expr_ty comparison_var;
11168 if (
11169 (comparison_var = comparison_rule(p)) // comparison
11170 )
11171 {
11172 D(fprintf(stderr, "%*c+ inversion[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "comparison"));
11173 _res = comparison_var;
11174 goto done;
11175 }
11176 p->mark = _mark;
11177 D(fprintf(stderr, "%*c%s inversion[%d-%d]: %s failed!\n", p->level, ' ',
11178 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "comparison"));
11179 }
11180 _res = NULL;
11181 done:
11182 _PyPegen_insert_memo(p, _mark, inversion_type, _res);
11183 D(p->level--);
11184 return _res;
11185}
11186
11187// comparison: bitwise_or compare_op_bitwise_or_pair+ | bitwise_or
11188static expr_ty
11189comparison_rule(Parser *p)
11190{
11191 D(p->level++);
11192 if (p->error_indicator) {
11193 D(p->level--);
11194 return NULL;
11195 }
11196 expr_ty _res = NULL;
11197 int _mark = p->mark;
11198 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11199 p->error_indicator = 1;
11200 D(p->level--);
11201 return NULL;
11202 }
11203 int _start_lineno = p->tokens[_mark]->lineno;
11204 UNUSED(_start_lineno); // Only used by EXTRA macro
11205 int _start_col_offset = p->tokens[_mark]->col_offset;
11206 UNUSED(_start_col_offset); // Only used by EXTRA macro
11207 { // bitwise_or compare_op_bitwise_or_pair+
11208 if (p->error_indicator) {
11209 D(p->level--);
11210 return NULL;
11211 }
11212 D(fprintf(stderr, "%*c> comparison[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_or compare_op_bitwise_or_pair+"));
11213 expr_ty a;
11214 asdl_seq * b;
11215 if (
11216 (a = bitwise_or_rule(p)) // bitwise_or
11217 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080011218 (b = _loop1_106_rule(p)) // compare_op_bitwise_or_pair+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011219 )
11220 {
11221 D(fprintf(stderr, "%*c+ comparison[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_or compare_op_bitwise_or_pair+"));
11222 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11223 if (_token == NULL) {
11224 D(p->level--);
11225 return NULL;
11226 }
11227 int _end_lineno = _token->end_lineno;
11228 UNUSED(_end_lineno); // Only used by EXTRA macro
11229 int _end_col_offset = _token->end_col_offset;
11230 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020011231 _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 +010011232 if (_res == NULL && PyErr_Occurred()) {
11233 p->error_indicator = 1;
11234 D(p->level--);
11235 return NULL;
11236 }
11237 goto done;
11238 }
11239 p->mark = _mark;
11240 D(fprintf(stderr, "%*c%s comparison[%d-%d]: %s failed!\n", p->level, ' ',
11241 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_or compare_op_bitwise_or_pair+"));
11242 }
11243 { // bitwise_or
11244 if (p->error_indicator) {
11245 D(p->level--);
11246 return NULL;
11247 }
11248 D(fprintf(stderr, "%*c> comparison[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_or"));
11249 expr_ty bitwise_or_var;
11250 if (
11251 (bitwise_or_var = bitwise_or_rule(p)) // bitwise_or
11252 )
11253 {
11254 D(fprintf(stderr, "%*c+ comparison[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_or"));
11255 _res = bitwise_or_var;
11256 goto done;
11257 }
11258 p->mark = _mark;
11259 D(fprintf(stderr, "%*c%s comparison[%d-%d]: %s failed!\n", p->level, ' ',
11260 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_or"));
11261 }
11262 _res = NULL;
11263 done:
11264 D(p->level--);
11265 return _res;
11266}
11267
11268// compare_op_bitwise_or_pair:
11269// | eq_bitwise_or
11270// | noteq_bitwise_or
11271// | lte_bitwise_or
11272// | lt_bitwise_or
11273// | gte_bitwise_or
11274// | gt_bitwise_or
11275// | notin_bitwise_or
11276// | in_bitwise_or
11277// | isnot_bitwise_or
11278// | is_bitwise_or
11279static CmpopExprPair*
11280compare_op_bitwise_or_pair_rule(Parser *p)
11281{
11282 D(p->level++);
11283 if (p->error_indicator) {
11284 D(p->level--);
11285 return NULL;
11286 }
11287 CmpopExprPair* _res = NULL;
11288 int _mark = p->mark;
11289 { // eq_bitwise_or
11290 if (p->error_indicator) {
11291 D(p->level--);
11292 return NULL;
11293 }
11294 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "eq_bitwise_or"));
11295 CmpopExprPair* eq_bitwise_or_var;
11296 if (
11297 (eq_bitwise_or_var = eq_bitwise_or_rule(p)) // eq_bitwise_or
11298 )
11299 {
11300 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "eq_bitwise_or"));
11301 _res = eq_bitwise_or_var;
11302 goto done;
11303 }
11304 p->mark = _mark;
11305 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
11306 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "eq_bitwise_or"));
11307 }
11308 { // noteq_bitwise_or
11309 if (p->error_indicator) {
11310 D(p->level--);
11311 return NULL;
11312 }
11313 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "noteq_bitwise_or"));
11314 CmpopExprPair* noteq_bitwise_or_var;
11315 if (
11316 (noteq_bitwise_or_var = noteq_bitwise_or_rule(p)) // noteq_bitwise_or
11317 )
11318 {
11319 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "noteq_bitwise_or"));
11320 _res = noteq_bitwise_or_var;
11321 goto done;
11322 }
11323 p->mark = _mark;
11324 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
11325 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "noteq_bitwise_or"));
11326 }
11327 { // lte_bitwise_or
11328 if (p->error_indicator) {
11329 D(p->level--);
11330 return NULL;
11331 }
11332 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lte_bitwise_or"));
11333 CmpopExprPair* lte_bitwise_or_var;
11334 if (
11335 (lte_bitwise_or_var = lte_bitwise_or_rule(p)) // lte_bitwise_or
11336 )
11337 {
11338 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lte_bitwise_or"));
11339 _res = lte_bitwise_or_var;
11340 goto done;
11341 }
11342 p->mark = _mark;
11343 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
11344 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lte_bitwise_or"));
11345 }
11346 { // lt_bitwise_or
11347 if (p->error_indicator) {
11348 D(p->level--);
11349 return NULL;
11350 }
11351 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lt_bitwise_or"));
11352 CmpopExprPair* lt_bitwise_or_var;
11353 if (
11354 (lt_bitwise_or_var = lt_bitwise_or_rule(p)) // lt_bitwise_or
11355 )
11356 {
11357 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lt_bitwise_or"));
11358 _res = lt_bitwise_or_var;
11359 goto done;
11360 }
11361 p->mark = _mark;
11362 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
11363 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lt_bitwise_or"));
11364 }
11365 { // gte_bitwise_or
11366 if (p->error_indicator) {
11367 D(p->level--);
11368 return NULL;
11369 }
11370 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "gte_bitwise_or"));
11371 CmpopExprPair* gte_bitwise_or_var;
11372 if (
11373 (gte_bitwise_or_var = gte_bitwise_or_rule(p)) // gte_bitwise_or
11374 )
11375 {
11376 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "gte_bitwise_or"));
11377 _res = gte_bitwise_or_var;
11378 goto done;
11379 }
11380 p->mark = _mark;
11381 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
11382 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "gte_bitwise_or"));
11383 }
11384 { // gt_bitwise_or
11385 if (p->error_indicator) {
11386 D(p->level--);
11387 return NULL;
11388 }
11389 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "gt_bitwise_or"));
11390 CmpopExprPair* gt_bitwise_or_var;
11391 if (
11392 (gt_bitwise_or_var = gt_bitwise_or_rule(p)) // gt_bitwise_or
11393 )
11394 {
11395 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "gt_bitwise_or"));
11396 _res = gt_bitwise_or_var;
11397 goto done;
11398 }
11399 p->mark = _mark;
11400 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
11401 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "gt_bitwise_or"));
11402 }
11403 { // notin_bitwise_or
11404 if (p->error_indicator) {
11405 D(p->level--);
11406 return NULL;
11407 }
11408 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "notin_bitwise_or"));
11409 CmpopExprPair* notin_bitwise_or_var;
11410 if (
11411 (notin_bitwise_or_var = notin_bitwise_or_rule(p)) // notin_bitwise_or
11412 )
11413 {
11414 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "notin_bitwise_or"));
11415 _res = notin_bitwise_or_var;
11416 goto done;
11417 }
11418 p->mark = _mark;
11419 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
11420 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "notin_bitwise_or"));
11421 }
11422 { // in_bitwise_or
11423 if (p->error_indicator) {
11424 D(p->level--);
11425 return NULL;
11426 }
11427 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "in_bitwise_or"));
11428 CmpopExprPair* in_bitwise_or_var;
11429 if (
11430 (in_bitwise_or_var = in_bitwise_or_rule(p)) // in_bitwise_or
11431 )
11432 {
11433 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "in_bitwise_or"));
11434 _res = in_bitwise_or_var;
11435 goto done;
11436 }
11437 p->mark = _mark;
11438 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
11439 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "in_bitwise_or"));
11440 }
11441 { // isnot_bitwise_or
11442 if (p->error_indicator) {
11443 D(p->level--);
11444 return NULL;
11445 }
11446 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "isnot_bitwise_or"));
11447 CmpopExprPair* isnot_bitwise_or_var;
11448 if (
11449 (isnot_bitwise_or_var = isnot_bitwise_or_rule(p)) // isnot_bitwise_or
11450 )
11451 {
11452 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "isnot_bitwise_or"));
11453 _res = isnot_bitwise_or_var;
11454 goto done;
11455 }
11456 p->mark = _mark;
11457 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
11458 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "isnot_bitwise_or"));
11459 }
11460 { // is_bitwise_or
11461 if (p->error_indicator) {
11462 D(p->level--);
11463 return NULL;
11464 }
11465 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "is_bitwise_or"));
11466 CmpopExprPair* is_bitwise_or_var;
11467 if (
11468 (is_bitwise_or_var = is_bitwise_or_rule(p)) // is_bitwise_or
11469 )
11470 {
11471 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "is_bitwise_or"));
11472 _res = is_bitwise_or_var;
11473 goto done;
11474 }
11475 p->mark = _mark;
11476 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
11477 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "is_bitwise_or"));
11478 }
11479 _res = NULL;
11480 done:
11481 D(p->level--);
11482 return _res;
11483}
11484
11485// eq_bitwise_or: '==' bitwise_or
11486static CmpopExprPair*
11487eq_bitwise_or_rule(Parser *p)
11488{
11489 D(p->level++);
11490 if (p->error_indicator) {
11491 D(p->level--);
11492 return NULL;
11493 }
11494 CmpopExprPair* _res = NULL;
11495 int _mark = p->mark;
11496 { // '==' bitwise_or
11497 if (p->error_indicator) {
11498 D(p->level--);
11499 return NULL;
11500 }
11501 D(fprintf(stderr, "%*c> eq_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'==' bitwise_or"));
11502 Token * _literal;
11503 expr_ty a;
11504 if (
11505 (_literal = _PyPegen_expect_token(p, 27)) // token='=='
11506 &&
11507 (a = bitwise_or_rule(p)) // bitwise_or
11508 )
11509 {
11510 D(fprintf(stderr, "%*c+ eq_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'==' bitwise_or"));
11511 _res = _PyPegen_cmpop_expr_pair ( p , Eq , a );
11512 if (_res == NULL && PyErr_Occurred()) {
11513 p->error_indicator = 1;
11514 D(p->level--);
11515 return NULL;
11516 }
11517 goto done;
11518 }
11519 p->mark = _mark;
11520 D(fprintf(stderr, "%*c%s eq_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
11521 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'==' bitwise_or"));
11522 }
11523 _res = NULL;
11524 done:
11525 D(p->level--);
11526 return _res;
11527}
11528
11529// noteq_bitwise_or: ('!=') bitwise_or
11530static CmpopExprPair*
11531noteq_bitwise_or_rule(Parser *p)
11532{
11533 D(p->level++);
11534 if (p->error_indicator) {
11535 D(p->level--);
11536 return NULL;
11537 }
11538 CmpopExprPair* _res = NULL;
11539 int _mark = p->mark;
11540 { // ('!=') bitwise_or
11541 if (p->error_indicator) {
11542 D(p->level--);
11543 return NULL;
11544 }
11545 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 -080011546 void *_tmp_107_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011547 expr_ty a;
11548 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080011549 (_tmp_107_var = _tmp_107_rule(p)) // '!='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011550 &&
11551 (a = bitwise_or_rule(p)) // bitwise_or
11552 )
11553 {
11554 D(fprintf(stderr, "%*c+ noteq_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "('!=') bitwise_or"));
11555 _res = _PyPegen_cmpop_expr_pair ( p , NotEq , a );
11556 if (_res == NULL && PyErr_Occurred()) {
11557 p->error_indicator = 1;
11558 D(p->level--);
11559 return NULL;
11560 }
11561 goto done;
11562 }
11563 p->mark = _mark;
11564 D(fprintf(stderr, "%*c%s noteq_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
11565 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('!=') bitwise_or"));
11566 }
11567 _res = NULL;
11568 done:
11569 D(p->level--);
11570 return _res;
11571}
11572
11573// lte_bitwise_or: '<=' bitwise_or
11574static CmpopExprPair*
11575lte_bitwise_or_rule(Parser *p)
11576{
11577 D(p->level++);
11578 if (p->error_indicator) {
11579 D(p->level--);
11580 return NULL;
11581 }
11582 CmpopExprPair* _res = NULL;
11583 int _mark = p->mark;
11584 { // '<=' bitwise_or
11585 if (p->error_indicator) {
11586 D(p->level--);
11587 return NULL;
11588 }
11589 D(fprintf(stderr, "%*c> lte_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'<=' bitwise_or"));
11590 Token * _literal;
11591 expr_ty a;
11592 if (
11593 (_literal = _PyPegen_expect_token(p, 29)) // token='<='
11594 &&
11595 (a = bitwise_or_rule(p)) // bitwise_or
11596 )
11597 {
11598 D(fprintf(stderr, "%*c+ lte_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'<=' bitwise_or"));
11599 _res = _PyPegen_cmpop_expr_pair ( p , LtE , a );
11600 if (_res == NULL && PyErr_Occurred()) {
11601 p->error_indicator = 1;
11602 D(p->level--);
11603 return NULL;
11604 }
11605 goto done;
11606 }
11607 p->mark = _mark;
11608 D(fprintf(stderr, "%*c%s lte_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
11609 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'<=' bitwise_or"));
11610 }
11611 _res = NULL;
11612 done:
11613 D(p->level--);
11614 return _res;
11615}
11616
11617// lt_bitwise_or: '<' bitwise_or
11618static CmpopExprPair*
11619lt_bitwise_or_rule(Parser *p)
11620{
11621 D(p->level++);
11622 if (p->error_indicator) {
11623 D(p->level--);
11624 return NULL;
11625 }
11626 CmpopExprPair* _res = NULL;
11627 int _mark = p->mark;
11628 { // '<' bitwise_or
11629 if (p->error_indicator) {
11630 D(p->level--);
11631 return NULL;
11632 }
11633 D(fprintf(stderr, "%*c> lt_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'<' bitwise_or"));
11634 Token * _literal;
11635 expr_ty a;
11636 if (
11637 (_literal = _PyPegen_expect_token(p, 20)) // token='<'
11638 &&
11639 (a = bitwise_or_rule(p)) // bitwise_or
11640 )
11641 {
11642 D(fprintf(stderr, "%*c+ lt_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'<' bitwise_or"));
11643 _res = _PyPegen_cmpop_expr_pair ( p , Lt , a );
11644 if (_res == NULL && PyErr_Occurred()) {
11645 p->error_indicator = 1;
11646 D(p->level--);
11647 return NULL;
11648 }
11649 goto done;
11650 }
11651 p->mark = _mark;
11652 D(fprintf(stderr, "%*c%s lt_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
11653 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'<' bitwise_or"));
11654 }
11655 _res = NULL;
11656 done:
11657 D(p->level--);
11658 return _res;
11659}
11660
11661// gte_bitwise_or: '>=' bitwise_or
11662static CmpopExprPair*
11663gte_bitwise_or_rule(Parser *p)
11664{
11665 D(p->level++);
11666 if (p->error_indicator) {
11667 D(p->level--);
11668 return NULL;
11669 }
11670 CmpopExprPair* _res = NULL;
11671 int _mark = p->mark;
11672 { // '>=' bitwise_or
11673 if (p->error_indicator) {
11674 D(p->level--);
11675 return NULL;
11676 }
11677 D(fprintf(stderr, "%*c> gte_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'>=' bitwise_or"));
11678 Token * _literal;
11679 expr_ty a;
11680 if (
11681 (_literal = _PyPegen_expect_token(p, 30)) // token='>='
11682 &&
11683 (a = bitwise_or_rule(p)) // bitwise_or
11684 )
11685 {
11686 D(fprintf(stderr, "%*c+ gte_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'>=' bitwise_or"));
11687 _res = _PyPegen_cmpop_expr_pair ( p , GtE , a );
11688 if (_res == NULL && PyErr_Occurred()) {
11689 p->error_indicator = 1;
11690 D(p->level--);
11691 return NULL;
11692 }
11693 goto done;
11694 }
11695 p->mark = _mark;
11696 D(fprintf(stderr, "%*c%s gte_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
11697 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'>=' bitwise_or"));
11698 }
11699 _res = NULL;
11700 done:
11701 D(p->level--);
11702 return _res;
11703}
11704
11705// gt_bitwise_or: '>' bitwise_or
11706static CmpopExprPair*
11707gt_bitwise_or_rule(Parser *p)
11708{
11709 D(p->level++);
11710 if (p->error_indicator) {
11711 D(p->level--);
11712 return NULL;
11713 }
11714 CmpopExprPair* _res = NULL;
11715 int _mark = p->mark;
11716 { // '>' bitwise_or
11717 if (p->error_indicator) {
11718 D(p->level--);
11719 return NULL;
11720 }
11721 D(fprintf(stderr, "%*c> gt_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'>' bitwise_or"));
11722 Token * _literal;
11723 expr_ty a;
11724 if (
11725 (_literal = _PyPegen_expect_token(p, 21)) // token='>'
11726 &&
11727 (a = bitwise_or_rule(p)) // bitwise_or
11728 )
11729 {
11730 D(fprintf(stderr, "%*c+ gt_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'>' bitwise_or"));
11731 _res = _PyPegen_cmpop_expr_pair ( p , Gt , a );
11732 if (_res == NULL && PyErr_Occurred()) {
11733 p->error_indicator = 1;
11734 D(p->level--);
11735 return NULL;
11736 }
11737 goto done;
11738 }
11739 p->mark = _mark;
11740 D(fprintf(stderr, "%*c%s gt_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
11741 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'>' bitwise_or"));
11742 }
11743 _res = NULL;
11744 done:
11745 D(p->level--);
11746 return _res;
11747}
11748
11749// notin_bitwise_or: 'not' 'in' bitwise_or
11750static CmpopExprPair*
11751notin_bitwise_or_rule(Parser *p)
11752{
11753 D(p->level++);
11754 if (p->error_indicator) {
11755 D(p->level--);
11756 return NULL;
11757 }
11758 CmpopExprPair* _res = NULL;
11759 int _mark = p->mark;
11760 { // 'not' 'in' bitwise_or
11761 if (p->error_indicator) {
11762 D(p->level--);
11763 return NULL;
11764 }
11765 D(fprintf(stderr, "%*c> notin_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'not' 'in' bitwise_or"));
11766 Token * _keyword;
11767 Token * _keyword_1;
11768 expr_ty a;
11769 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080011770 (_keyword = _PyPegen_expect_token(p, 529)) // token='not'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011771 &&
11772 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
11773 &&
11774 (a = bitwise_or_rule(p)) // bitwise_or
11775 )
11776 {
11777 D(fprintf(stderr, "%*c+ notin_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'not' 'in' bitwise_or"));
11778 _res = _PyPegen_cmpop_expr_pair ( p , NotIn , a );
11779 if (_res == NULL && PyErr_Occurred()) {
11780 p->error_indicator = 1;
11781 D(p->level--);
11782 return NULL;
11783 }
11784 goto done;
11785 }
11786 p->mark = _mark;
11787 D(fprintf(stderr, "%*c%s notin_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
11788 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'not' 'in' bitwise_or"));
11789 }
11790 _res = NULL;
11791 done:
11792 D(p->level--);
11793 return _res;
11794}
11795
11796// in_bitwise_or: 'in' bitwise_or
11797static CmpopExprPair*
11798in_bitwise_or_rule(Parser *p)
11799{
11800 D(p->level++);
11801 if (p->error_indicator) {
11802 D(p->level--);
11803 return NULL;
11804 }
11805 CmpopExprPair* _res = NULL;
11806 int _mark = p->mark;
11807 { // 'in' bitwise_or
11808 if (p->error_indicator) {
11809 D(p->level--);
11810 return NULL;
11811 }
11812 D(fprintf(stderr, "%*c> in_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'in' bitwise_or"));
11813 Token * _keyword;
11814 expr_ty a;
11815 if (
11816 (_keyword = _PyPegen_expect_token(p, 518)) // token='in'
11817 &&
11818 (a = bitwise_or_rule(p)) // bitwise_or
11819 )
11820 {
11821 D(fprintf(stderr, "%*c+ in_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'in' bitwise_or"));
11822 _res = _PyPegen_cmpop_expr_pair ( p , In , a );
11823 if (_res == NULL && PyErr_Occurred()) {
11824 p->error_indicator = 1;
11825 D(p->level--);
11826 return NULL;
11827 }
11828 goto done;
11829 }
11830 p->mark = _mark;
11831 D(fprintf(stderr, "%*c%s in_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
11832 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'in' bitwise_or"));
11833 }
11834 _res = NULL;
11835 done:
11836 D(p->level--);
11837 return _res;
11838}
11839
11840// isnot_bitwise_or: 'is' 'not' bitwise_or
11841static CmpopExprPair*
11842isnot_bitwise_or_rule(Parser *p)
11843{
11844 D(p->level++);
11845 if (p->error_indicator) {
11846 D(p->level--);
11847 return NULL;
11848 }
11849 CmpopExprPair* _res = NULL;
11850 int _mark = p->mark;
11851 { // 'is' 'not' bitwise_or
11852 if (p->error_indicator) {
11853 D(p->level--);
11854 return NULL;
11855 }
11856 D(fprintf(stderr, "%*c> isnot_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'is' 'not' bitwise_or"));
11857 Token * _keyword;
11858 Token * _keyword_1;
11859 expr_ty a;
11860 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080011861 (_keyword = _PyPegen_expect_token(p, 530)) // token='is'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011862 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080011863 (_keyword_1 = _PyPegen_expect_token(p, 529)) // token='not'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011864 &&
11865 (a = bitwise_or_rule(p)) // bitwise_or
11866 )
11867 {
11868 D(fprintf(stderr, "%*c+ isnot_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'is' 'not' bitwise_or"));
11869 _res = _PyPegen_cmpop_expr_pair ( p , IsNot , a );
11870 if (_res == NULL && PyErr_Occurred()) {
11871 p->error_indicator = 1;
11872 D(p->level--);
11873 return NULL;
11874 }
11875 goto done;
11876 }
11877 p->mark = _mark;
11878 D(fprintf(stderr, "%*c%s isnot_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
11879 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'is' 'not' bitwise_or"));
11880 }
11881 _res = NULL;
11882 done:
11883 D(p->level--);
11884 return _res;
11885}
11886
11887// is_bitwise_or: 'is' bitwise_or
11888static CmpopExprPair*
11889is_bitwise_or_rule(Parser *p)
11890{
11891 D(p->level++);
11892 if (p->error_indicator) {
11893 D(p->level--);
11894 return NULL;
11895 }
11896 CmpopExprPair* _res = NULL;
11897 int _mark = p->mark;
11898 { // 'is' bitwise_or
11899 if (p->error_indicator) {
11900 D(p->level--);
11901 return NULL;
11902 }
11903 D(fprintf(stderr, "%*c> is_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'is' bitwise_or"));
11904 Token * _keyword;
11905 expr_ty a;
11906 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080011907 (_keyword = _PyPegen_expect_token(p, 530)) // token='is'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011908 &&
11909 (a = bitwise_or_rule(p)) // bitwise_or
11910 )
11911 {
11912 D(fprintf(stderr, "%*c+ is_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'is' bitwise_or"));
11913 _res = _PyPegen_cmpop_expr_pair ( p , Is , a );
11914 if (_res == NULL && PyErr_Occurred()) {
11915 p->error_indicator = 1;
11916 D(p->level--);
11917 return NULL;
11918 }
11919 goto done;
11920 }
11921 p->mark = _mark;
11922 D(fprintf(stderr, "%*c%s is_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
11923 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'is' bitwise_or"));
11924 }
11925 _res = NULL;
11926 done:
11927 D(p->level--);
11928 return _res;
11929}
11930
11931// Left-recursive
11932// bitwise_or: bitwise_or '|' bitwise_xor | bitwise_xor
11933static expr_ty bitwise_or_raw(Parser *);
11934static expr_ty
11935bitwise_or_rule(Parser *p)
11936{
11937 D(p->level++);
11938 expr_ty _res = NULL;
11939 if (_PyPegen_is_memoized(p, bitwise_or_type, &_res)) {
11940 D(p->level--);
11941 return _res;
11942 }
11943 int _mark = p->mark;
11944 int _resmark = p->mark;
11945 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080011946 int tmpvar_2 = _PyPegen_update_memo(p, _mark, bitwise_or_type, _res);
11947 if (tmpvar_2) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011948 D(p->level--);
11949 return _res;
11950 }
11951 p->mark = _mark;
11952 void *_raw = bitwise_or_raw(p);
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020011953 if (p->error_indicator)
11954 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011955 if (_raw == NULL || p->mark <= _resmark)
11956 break;
11957 _resmark = p->mark;
11958 _res = _raw;
11959 }
11960 p->mark = _resmark;
11961 D(p->level--);
11962 return _res;
11963}
11964static expr_ty
11965bitwise_or_raw(Parser *p)
11966{
11967 D(p->level++);
11968 if (p->error_indicator) {
11969 D(p->level--);
11970 return NULL;
11971 }
11972 expr_ty _res = NULL;
11973 int _mark = p->mark;
11974 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11975 p->error_indicator = 1;
11976 D(p->level--);
11977 return NULL;
11978 }
11979 int _start_lineno = p->tokens[_mark]->lineno;
11980 UNUSED(_start_lineno); // Only used by EXTRA macro
11981 int _start_col_offset = p->tokens[_mark]->col_offset;
11982 UNUSED(_start_col_offset); // Only used by EXTRA macro
11983 { // bitwise_or '|' bitwise_xor
11984 if (p->error_indicator) {
11985 D(p->level--);
11986 return NULL;
11987 }
11988 D(fprintf(stderr, "%*c> bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_or '|' bitwise_xor"));
11989 Token * _literal;
11990 expr_ty a;
11991 expr_ty b;
11992 if (
11993 (a = bitwise_or_rule(p)) // bitwise_or
11994 &&
11995 (_literal = _PyPegen_expect_token(p, 18)) // token='|'
11996 &&
11997 (b = bitwise_xor_rule(p)) // bitwise_xor
11998 )
11999 {
12000 D(fprintf(stderr, "%*c+ bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_or '|' bitwise_xor"));
12001 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12002 if (_token == NULL) {
12003 D(p->level--);
12004 return NULL;
12005 }
12006 int _end_lineno = _token->end_lineno;
12007 UNUSED(_end_lineno); // Only used by EXTRA macro
12008 int _end_col_offset = _token->end_col_offset;
12009 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020012010 _res = _PyAST_BinOp ( a , BitOr , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012011 if (_res == NULL && PyErr_Occurred()) {
12012 p->error_indicator = 1;
12013 D(p->level--);
12014 return NULL;
12015 }
12016 goto done;
12017 }
12018 p->mark = _mark;
12019 D(fprintf(stderr, "%*c%s bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12020 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_or '|' bitwise_xor"));
12021 }
12022 { // bitwise_xor
12023 if (p->error_indicator) {
12024 D(p->level--);
12025 return NULL;
12026 }
12027 D(fprintf(stderr, "%*c> bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_xor"));
12028 expr_ty bitwise_xor_var;
12029 if (
12030 (bitwise_xor_var = bitwise_xor_rule(p)) // bitwise_xor
12031 )
12032 {
12033 D(fprintf(stderr, "%*c+ bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_xor"));
12034 _res = bitwise_xor_var;
12035 goto done;
12036 }
12037 p->mark = _mark;
12038 D(fprintf(stderr, "%*c%s bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12039 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_xor"));
12040 }
12041 _res = NULL;
12042 done:
12043 D(p->level--);
12044 return _res;
12045}
12046
12047// Left-recursive
12048// bitwise_xor: bitwise_xor '^' bitwise_and | bitwise_and
12049static expr_ty bitwise_xor_raw(Parser *);
12050static expr_ty
12051bitwise_xor_rule(Parser *p)
12052{
12053 D(p->level++);
12054 expr_ty _res = NULL;
12055 if (_PyPegen_is_memoized(p, bitwise_xor_type, &_res)) {
12056 D(p->level--);
12057 return _res;
12058 }
12059 int _mark = p->mark;
12060 int _resmark = p->mark;
12061 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080012062 int tmpvar_3 = _PyPegen_update_memo(p, _mark, bitwise_xor_type, _res);
12063 if (tmpvar_3) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012064 D(p->level--);
12065 return _res;
12066 }
12067 p->mark = _mark;
12068 void *_raw = bitwise_xor_raw(p);
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020012069 if (p->error_indicator)
12070 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012071 if (_raw == NULL || p->mark <= _resmark)
12072 break;
12073 _resmark = p->mark;
12074 _res = _raw;
12075 }
12076 p->mark = _resmark;
12077 D(p->level--);
12078 return _res;
12079}
12080static expr_ty
12081bitwise_xor_raw(Parser *p)
12082{
12083 D(p->level++);
12084 if (p->error_indicator) {
12085 D(p->level--);
12086 return NULL;
12087 }
12088 expr_ty _res = NULL;
12089 int _mark = p->mark;
12090 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12091 p->error_indicator = 1;
12092 D(p->level--);
12093 return NULL;
12094 }
12095 int _start_lineno = p->tokens[_mark]->lineno;
12096 UNUSED(_start_lineno); // Only used by EXTRA macro
12097 int _start_col_offset = p->tokens[_mark]->col_offset;
12098 UNUSED(_start_col_offset); // Only used by EXTRA macro
12099 { // bitwise_xor '^' bitwise_and
12100 if (p->error_indicator) {
12101 D(p->level--);
12102 return NULL;
12103 }
12104 D(fprintf(stderr, "%*c> bitwise_xor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_xor '^' bitwise_and"));
12105 Token * _literal;
12106 expr_ty a;
12107 expr_ty b;
12108 if (
12109 (a = bitwise_xor_rule(p)) // bitwise_xor
12110 &&
12111 (_literal = _PyPegen_expect_token(p, 32)) // token='^'
12112 &&
12113 (b = bitwise_and_rule(p)) // bitwise_and
12114 )
12115 {
12116 D(fprintf(stderr, "%*c+ bitwise_xor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_xor '^' bitwise_and"));
12117 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12118 if (_token == NULL) {
12119 D(p->level--);
12120 return NULL;
12121 }
12122 int _end_lineno = _token->end_lineno;
12123 UNUSED(_end_lineno); // Only used by EXTRA macro
12124 int _end_col_offset = _token->end_col_offset;
12125 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020012126 _res = _PyAST_BinOp ( a , BitXor , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012127 if (_res == NULL && PyErr_Occurred()) {
12128 p->error_indicator = 1;
12129 D(p->level--);
12130 return NULL;
12131 }
12132 goto done;
12133 }
12134 p->mark = _mark;
12135 D(fprintf(stderr, "%*c%s bitwise_xor[%d-%d]: %s failed!\n", p->level, ' ',
12136 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_xor '^' bitwise_and"));
12137 }
12138 { // bitwise_and
12139 if (p->error_indicator) {
12140 D(p->level--);
12141 return NULL;
12142 }
12143 D(fprintf(stderr, "%*c> bitwise_xor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_and"));
12144 expr_ty bitwise_and_var;
12145 if (
12146 (bitwise_and_var = bitwise_and_rule(p)) // bitwise_and
12147 )
12148 {
12149 D(fprintf(stderr, "%*c+ bitwise_xor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_and"));
12150 _res = bitwise_and_var;
12151 goto done;
12152 }
12153 p->mark = _mark;
12154 D(fprintf(stderr, "%*c%s bitwise_xor[%d-%d]: %s failed!\n", p->level, ' ',
12155 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_and"));
12156 }
12157 _res = NULL;
12158 done:
12159 D(p->level--);
12160 return _res;
12161}
12162
12163// Left-recursive
12164// bitwise_and: bitwise_and '&' shift_expr | shift_expr
12165static expr_ty bitwise_and_raw(Parser *);
12166static expr_ty
12167bitwise_and_rule(Parser *p)
12168{
12169 D(p->level++);
12170 expr_ty _res = NULL;
12171 if (_PyPegen_is_memoized(p, bitwise_and_type, &_res)) {
12172 D(p->level--);
12173 return _res;
12174 }
12175 int _mark = p->mark;
12176 int _resmark = p->mark;
12177 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080012178 int tmpvar_4 = _PyPegen_update_memo(p, _mark, bitwise_and_type, _res);
12179 if (tmpvar_4) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012180 D(p->level--);
12181 return _res;
12182 }
12183 p->mark = _mark;
12184 void *_raw = bitwise_and_raw(p);
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020012185 if (p->error_indicator)
12186 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012187 if (_raw == NULL || p->mark <= _resmark)
12188 break;
12189 _resmark = p->mark;
12190 _res = _raw;
12191 }
12192 p->mark = _resmark;
12193 D(p->level--);
12194 return _res;
12195}
12196static expr_ty
12197bitwise_and_raw(Parser *p)
12198{
12199 D(p->level++);
12200 if (p->error_indicator) {
12201 D(p->level--);
12202 return NULL;
12203 }
12204 expr_ty _res = NULL;
12205 int _mark = p->mark;
12206 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12207 p->error_indicator = 1;
12208 D(p->level--);
12209 return NULL;
12210 }
12211 int _start_lineno = p->tokens[_mark]->lineno;
12212 UNUSED(_start_lineno); // Only used by EXTRA macro
12213 int _start_col_offset = p->tokens[_mark]->col_offset;
12214 UNUSED(_start_col_offset); // Only used by EXTRA macro
12215 { // bitwise_and '&' shift_expr
12216 if (p->error_indicator) {
12217 D(p->level--);
12218 return NULL;
12219 }
12220 D(fprintf(stderr, "%*c> bitwise_and[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_and '&' shift_expr"));
12221 Token * _literal;
12222 expr_ty a;
12223 expr_ty b;
12224 if (
12225 (a = bitwise_and_rule(p)) // bitwise_and
12226 &&
12227 (_literal = _PyPegen_expect_token(p, 19)) // token='&'
12228 &&
12229 (b = shift_expr_rule(p)) // shift_expr
12230 )
12231 {
12232 D(fprintf(stderr, "%*c+ bitwise_and[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_and '&' shift_expr"));
12233 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12234 if (_token == NULL) {
12235 D(p->level--);
12236 return NULL;
12237 }
12238 int _end_lineno = _token->end_lineno;
12239 UNUSED(_end_lineno); // Only used by EXTRA macro
12240 int _end_col_offset = _token->end_col_offset;
12241 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020012242 _res = _PyAST_BinOp ( a , BitAnd , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012243 if (_res == NULL && PyErr_Occurred()) {
12244 p->error_indicator = 1;
12245 D(p->level--);
12246 return NULL;
12247 }
12248 goto done;
12249 }
12250 p->mark = _mark;
12251 D(fprintf(stderr, "%*c%s bitwise_and[%d-%d]: %s failed!\n", p->level, ' ',
12252 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_and '&' shift_expr"));
12253 }
12254 { // shift_expr
12255 if (p->error_indicator) {
12256 D(p->level--);
12257 return NULL;
12258 }
12259 D(fprintf(stderr, "%*c> bitwise_and[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "shift_expr"));
12260 expr_ty shift_expr_var;
12261 if (
12262 (shift_expr_var = shift_expr_rule(p)) // shift_expr
12263 )
12264 {
12265 D(fprintf(stderr, "%*c+ bitwise_and[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "shift_expr"));
12266 _res = shift_expr_var;
12267 goto done;
12268 }
12269 p->mark = _mark;
12270 D(fprintf(stderr, "%*c%s bitwise_and[%d-%d]: %s failed!\n", p->level, ' ',
12271 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "shift_expr"));
12272 }
12273 _res = NULL;
12274 done:
12275 D(p->level--);
12276 return _res;
12277}
12278
12279// Left-recursive
12280// shift_expr: shift_expr '<<' sum | shift_expr '>>' sum | sum
12281static expr_ty shift_expr_raw(Parser *);
12282static expr_ty
12283shift_expr_rule(Parser *p)
12284{
12285 D(p->level++);
12286 expr_ty _res = NULL;
12287 if (_PyPegen_is_memoized(p, shift_expr_type, &_res)) {
12288 D(p->level--);
12289 return _res;
12290 }
12291 int _mark = p->mark;
12292 int _resmark = p->mark;
12293 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080012294 int tmpvar_5 = _PyPegen_update_memo(p, _mark, shift_expr_type, _res);
12295 if (tmpvar_5) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012296 D(p->level--);
12297 return _res;
12298 }
12299 p->mark = _mark;
12300 void *_raw = shift_expr_raw(p);
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020012301 if (p->error_indicator)
12302 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012303 if (_raw == NULL || p->mark <= _resmark)
12304 break;
12305 _resmark = p->mark;
12306 _res = _raw;
12307 }
12308 p->mark = _resmark;
12309 D(p->level--);
12310 return _res;
12311}
12312static expr_ty
12313shift_expr_raw(Parser *p)
12314{
12315 D(p->level++);
12316 if (p->error_indicator) {
12317 D(p->level--);
12318 return NULL;
12319 }
12320 expr_ty _res = NULL;
12321 int _mark = p->mark;
12322 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12323 p->error_indicator = 1;
12324 D(p->level--);
12325 return NULL;
12326 }
12327 int _start_lineno = p->tokens[_mark]->lineno;
12328 UNUSED(_start_lineno); // Only used by EXTRA macro
12329 int _start_col_offset = p->tokens[_mark]->col_offset;
12330 UNUSED(_start_col_offset); // Only used by EXTRA macro
12331 { // shift_expr '<<' sum
12332 if (p->error_indicator) {
12333 D(p->level--);
12334 return NULL;
12335 }
12336 D(fprintf(stderr, "%*c> shift_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "shift_expr '<<' sum"));
12337 Token * _literal;
12338 expr_ty a;
12339 expr_ty b;
12340 if (
12341 (a = shift_expr_rule(p)) // shift_expr
12342 &&
12343 (_literal = _PyPegen_expect_token(p, 33)) // token='<<'
12344 &&
12345 (b = sum_rule(p)) // sum
12346 )
12347 {
12348 D(fprintf(stderr, "%*c+ shift_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "shift_expr '<<' sum"));
12349 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12350 if (_token == NULL) {
12351 D(p->level--);
12352 return NULL;
12353 }
12354 int _end_lineno = _token->end_lineno;
12355 UNUSED(_end_lineno); // Only used by EXTRA macro
12356 int _end_col_offset = _token->end_col_offset;
12357 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020012358 _res = _PyAST_BinOp ( a , LShift , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012359 if (_res == NULL && PyErr_Occurred()) {
12360 p->error_indicator = 1;
12361 D(p->level--);
12362 return NULL;
12363 }
12364 goto done;
12365 }
12366 p->mark = _mark;
12367 D(fprintf(stderr, "%*c%s shift_expr[%d-%d]: %s failed!\n", p->level, ' ',
12368 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "shift_expr '<<' sum"));
12369 }
12370 { // shift_expr '>>' sum
12371 if (p->error_indicator) {
12372 D(p->level--);
12373 return NULL;
12374 }
12375 D(fprintf(stderr, "%*c> shift_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "shift_expr '>>' sum"));
12376 Token * _literal;
12377 expr_ty a;
12378 expr_ty b;
12379 if (
12380 (a = shift_expr_rule(p)) // shift_expr
12381 &&
12382 (_literal = _PyPegen_expect_token(p, 34)) // token='>>'
12383 &&
12384 (b = sum_rule(p)) // sum
12385 )
12386 {
12387 D(fprintf(stderr, "%*c+ shift_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "shift_expr '>>' sum"));
12388 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12389 if (_token == NULL) {
12390 D(p->level--);
12391 return NULL;
12392 }
12393 int _end_lineno = _token->end_lineno;
12394 UNUSED(_end_lineno); // Only used by EXTRA macro
12395 int _end_col_offset = _token->end_col_offset;
12396 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020012397 _res = _PyAST_BinOp ( a , RShift , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012398 if (_res == NULL && PyErr_Occurred()) {
12399 p->error_indicator = 1;
12400 D(p->level--);
12401 return NULL;
12402 }
12403 goto done;
12404 }
12405 p->mark = _mark;
12406 D(fprintf(stderr, "%*c%s shift_expr[%d-%d]: %s failed!\n", p->level, ' ',
12407 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "shift_expr '>>' sum"));
12408 }
12409 { // sum
12410 if (p->error_indicator) {
12411 D(p->level--);
12412 return NULL;
12413 }
12414 D(fprintf(stderr, "%*c> shift_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "sum"));
12415 expr_ty sum_var;
12416 if (
12417 (sum_var = sum_rule(p)) // sum
12418 )
12419 {
12420 D(fprintf(stderr, "%*c+ shift_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "sum"));
12421 _res = sum_var;
12422 goto done;
12423 }
12424 p->mark = _mark;
12425 D(fprintf(stderr, "%*c%s shift_expr[%d-%d]: %s failed!\n", p->level, ' ',
12426 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "sum"));
12427 }
12428 _res = NULL;
12429 done:
12430 D(p->level--);
12431 return _res;
12432}
12433
12434// Left-recursive
12435// sum: sum '+' term | sum '-' term | term
12436static expr_ty sum_raw(Parser *);
12437static expr_ty
12438sum_rule(Parser *p)
12439{
12440 D(p->level++);
12441 expr_ty _res = NULL;
12442 if (_PyPegen_is_memoized(p, sum_type, &_res)) {
12443 D(p->level--);
12444 return _res;
12445 }
12446 int _mark = p->mark;
12447 int _resmark = p->mark;
12448 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080012449 int tmpvar_6 = _PyPegen_update_memo(p, _mark, sum_type, _res);
12450 if (tmpvar_6) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012451 D(p->level--);
12452 return _res;
12453 }
12454 p->mark = _mark;
12455 void *_raw = sum_raw(p);
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020012456 if (p->error_indicator)
12457 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012458 if (_raw == NULL || p->mark <= _resmark)
12459 break;
12460 _resmark = p->mark;
12461 _res = _raw;
12462 }
12463 p->mark = _resmark;
12464 D(p->level--);
12465 return _res;
12466}
12467static expr_ty
12468sum_raw(Parser *p)
12469{
12470 D(p->level++);
12471 if (p->error_indicator) {
12472 D(p->level--);
12473 return NULL;
12474 }
12475 expr_ty _res = NULL;
12476 int _mark = p->mark;
12477 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12478 p->error_indicator = 1;
12479 D(p->level--);
12480 return NULL;
12481 }
12482 int _start_lineno = p->tokens[_mark]->lineno;
12483 UNUSED(_start_lineno); // Only used by EXTRA macro
12484 int _start_col_offset = p->tokens[_mark]->col_offset;
12485 UNUSED(_start_col_offset); // Only used by EXTRA macro
12486 { // sum '+' term
12487 if (p->error_indicator) {
12488 D(p->level--);
12489 return NULL;
12490 }
12491 D(fprintf(stderr, "%*c> sum[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "sum '+' term"));
12492 Token * _literal;
12493 expr_ty a;
12494 expr_ty b;
12495 if (
12496 (a = sum_rule(p)) // sum
12497 &&
12498 (_literal = _PyPegen_expect_token(p, 14)) // token='+'
12499 &&
12500 (b = term_rule(p)) // term
12501 )
12502 {
12503 D(fprintf(stderr, "%*c+ sum[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "sum '+' term"));
12504 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12505 if (_token == NULL) {
12506 D(p->level--);
12507 return NULL;
12508 }
12509 int _end_lineno = _token->end_lineno;
12510 UNUSED(_end_lineno); // Only used by EXTRA macro
12511 int _end_col_offset = _token->end_col_offset;
12512 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020012513 _res = _PyAST_BinOp ( a , Add , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012514 if (_res == NULL && PyErr_Occurred()) {
12515 p->error_indicator = 1;
12516 D(p->level--);
12517 return NULL;
12518 }
12519 goto done;
12520 }
12521 p->mark = _mark;
12522 D(fprintf(stderr, "%*c%s sum[%d-%d]: %s failed!\n", p->level, ' ',
12523 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "sum '+' term"));
12524 }
12525 { // sum '-' term
12526 if (p->error_indicator) {
12527 D(p->level--);
12528 return NULL;
12529 }
12530 D(fprintf(stderr, "%*c> sum[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "sum '-' term"));
12531 Token * _literal;
12532 expr_ty a;
12533 expr_ty b;
12534 if (
12535 (a = sum_rule(p)) // sum
12536 &&
12537 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
12538 &&
12539 (b = term_rule(p)) // term
12540 )
12541 {
12542 D(fprintf(stderr, "%*c+ sum[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "sum '-' term"));
12543 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12544 if (_token == NULL) {
12545 D(p->level--);
12546 return NULL;
12547 }
12548 int _end_lineno = _token->end_lineno;
12549 UNUSED(_end_lineno); // Only used by EXTRA macro
12550 int _end_col_offset = _token->end_col_offset;
12551 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020012552 _res = _PyAST_BinOp ( a , Sub , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012553 if (_res == NULL && PyErr_Occurred()) {
12554 p->error_indicator = 1;
12555 D(p->level--);
12556 return NULL;
12557 }
12558 goto done;
12559 }
12560 p->mark = _mark;
12561 D(fprintf(stderr, "%*c%s sum[%d-%d]: %s failed!\n", p->level, ' ',
12562 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "sum '-' term"));
12563 }
12564 { // term
12565 if (p->error_indicator) {
12566 D(p->level--);
12567 return NULL;
12568 }
12569 D(fprintf(stderr, "%*c> sum[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term"));
12570 expr_ty term_var;
12571 if (
12572 (term_var = term_rule(p)) // term
12573 )
12574 {
12575 D(fprintf(stderr, "%*c+ sum[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term"));
12576 _res = term_var;
12577 goto done;
12578 }
12579 p->mark = _mark;
12580 D(fprintf(stderr, "%*c%s sum[%d-%d]: %s failed!\n", p->level, ' ',
12581 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term"));
12582 }
12583 _res = NULL;
12584 done:
12585 D(p->level--);
12586 return _res;
12587}
12588
12589// Left-recursive
12590// term:
12591// | term '*' factor
12592// | term '/' factor
12593// | term '//' factor
12594// | term '%' factor
12595// | term '@' factor
12596// | factor
12597static expr_ty term_raw(Parser *);
12598static expr_ty
12599term_rule(Parser *p)
12600{
12601 D(p->level++);
12602 expr_ty _res = NULL;
12603 if (_PyPegen_is_memoized(p, term_type, &_res)) {
12604 D(p->level--);
12605 return _res;
12606 }
12607 int _mark = p->mark;
12608 int _resmark = p->mark;
12609 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080012610 int tmpvar_7 = _PyPegen_update_memo(p, _mark, term_type, _res);
12611 if (tmpvar_7) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012612 D(p->level--);
12613 return _res;
12614 }
12615 p->mark = _mark;
12616 void *_raw = term_raw(p);
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020012617 if (p->error_indicator)
12618 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012619 if (_raw == NULL || p->mark <= _resmark)
12620 break;
12621 _resmark = p->mark;
12622 _res = _raw;
12623 }
12624 p->mark = _resmark;
12625 D(p->level--);
12626 return _res;
12627}
12628static expr_ty
12629term_raw(Parser *p)
12630{
12631 D(p->level++);
12632 if (p->error_indicator) {
12633 D(p->level--);
12634 return NULL;
12635 }
12636 expr_ty _res = NULL;
12637 int _mark = p->mark;
12638 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12639 p->error_indicator = 1;
12640 D(p->level--);
12641 return NULL;
12642 }
12643 int _start_lineno = p->tokens[_mark]->lineno;
12644 UNUSED(_start_lineno); // Only used by EXTRA macro
12645 int _start_col_offset = p->tokens[_mark]->col_offset;
12646 UNUSED(_start_col_offset); // Only used by EXTRA macro
12647 { // term '*' factor
12648 if (p->error_indicator) {
12649 D(p->level--);
12650 return NULL;
12651 }
12652 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '*' factor"));
12653 Token * _literal;
12654 expr_ty a;
12655 expr_ty b;
12656 if (
12657 (a = term_rule(p)) // term
12658 &&
12659 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
12660 &&
12661 (b = factor_rule(p)) // factor
12662 )
12663 {
12664 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '*' factor"));
12665 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12666 if (_token == NULL) {
12667 D(p->level--);
12668 return NULL;
12669 }
12670 int _end_lineno = _token->end_lineno;
12671 UNUSED(_end_lineno); // Only used by EXTRA macro
12672 int _end_col_offset = _token->end_col_offset;
12673 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020012674 _res = _PyAST_BinOp ( a , Mult , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012675 if (_res == NULL && PyErr_Occurred()) {
12676 p->error_indicator = 1;
12677 D(p->level--);
12678 return NULL;
12679 }
12680 goto done;
12681 }
12682 p->mark = _mark;
12683 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
12684 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '*' factor"));
12685 }
12686 { // term '/' factor
12687 if (p->error_indicator) {
12688 D(p->level--);
12689 return NULL;
12690 }
12691 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '/' factor"));
12692 Token * _literal;
12693 expr_ty a;
12694 expr_ty b;
12695 if (
12696 (a = term_rule(p)) // term
12697 &&
12698 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
12699 &&
12700 (b = factor_rule(p)) // factor
12701 )
12702 {
12703 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '/' factor"));
12704 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12705 if (_token == NULL) {
12706 D(p->level--);
12707 return NULL;
12708 }
12709 int _end_lineno = _token->end_lineno;
12710 UNUSED(_end_lineno); // Only used by EXTRA macro
12711 int _end_col_offset = _token->end_col_offset;
12712 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020012713 _res = _PyAST_BinOp ( a , Div , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012714 if (_res == NULL && PyErr_Occurred()) {
12715 p->error_indicator = 1;
12716 D(p->level--);
12717 return NULL;
12718 }
12719 goto done;
12720 }
12721 p->mark = _mark;
12722 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
12723 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '/' factor"));
12724 }
12725 { // term '//' factor
12726 if (p->error_indicator) {
12727 D(p->level--);
12728 return NULL;
12729 }
12730 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '//' factor"));
12731 Token * _literal;
12732 expr_ty a;
12733 expr_ty b;
12734 if (
12735 (a = term_rule(p)) // term
12736 &&
12737 (_literal = _PyPegen_expect_token(p, 47)) // token='//'
12738 &&
12739 (b = factor_rule(p)) // factor
12740 )
12741 {
12742 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '//' factor"));
12743 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12744 if (_token == NULL) {
12745 D(p->level--);
12746 return NULL;
12747 }
12748 int _end_lineno = _token->end_lineno;
12749 UNUSED(_end_lineno); // Only used by EXTRA macro
12750 int _end_col_offset = _token->end_col_offset;
12751 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020012752 _res = _PyAST_BinOp ( a , FloorDiv , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012753 if (_res == NULL && PyErr_Occurred()) {
12754 p->error_indicator = 1;
12755 D(p->level--);
12756 return NULL;
12757 }
12758 goto done;
12759 }
12760 p->mark = _mark;
12761 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
12762 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '//' factor"));
12763 }
12764 { // term '%' factor
12765 if (p->error_indicator) {
12766 D(p->level--);
12767 return NULL;
12768 }
12769 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '%' factor"));
12770 Token * _literal;
12771 expr_ty a;
12772 expr_ty b;
12773 if (
12774 (a = term_rule(p)) // term
12775 &&
12776 (_literal = _PyPegen_expect_token(p, 24)) // token='%'
12777 &&
12778 (b = factor_rule(p)) // factor
12779 )
12780 {
12781 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '%' factor"));
12782 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12783 if (_token == NULL) {
12784 D(p->level--);
12785 return NULL;
12786 }
12787 int _end_lineno = _token->end_lineno;
12788 UNUSED(_end_lineno); // Only used by EXTRA macro
12789 int _end_col_offset = _token->end_col_offset;
12790 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020012791 _res = _PyAST_BinOp ( a , Mod , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012792 if (_res == NULL && PyErr_Occurred()) {
12793 p->error_indicator = 1;
12794 D(p->level--);
12795 return NULL;
12796 }
12797 goto done;
12798 }
12799 p->mark = _mark;
12800 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
12801 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '%' factor"));
12802 }
12803 { // term '@' factor
12804 if (p->error_indicator) {
12805 D(p->level--);
12806 return NULL;
12807 }
12808 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '@' factor"));
12809 Token * _literal;
12810 expr_ty a;
12811 expr_ty b;
12812 if (
12813 (a = term_rule(p)) // term
12814 &&
12815 (_literal = _PyPegen_expect_token(p, 49)) // token='@'
12816 &&
12817 (b = factor_rule(p)) // factor
12818 )
12819 {
12820 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '@' factor"));
12821 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12822 if (_token == NULL) {
12823 D(p->level--);
12824 return NULL;
12825 }
12826 int _end_lineno = _token->end_lineno;
12827 UNUSED(_end_lineno); // Only used by EXTRA macro
12828 int _end_col_offset = _token->end_col_offset;
12829 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020012830 _res = CHECK_VERSION ( expr_ty , 5 , "The '@' operator is" , _PyAST_BinOp ( a , MatMult , b , EXTRA ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012831 if (_res == NULL && PyErr_Occurred()) {
12832 p->error_indicator = 1;
12833 D(p->level--);
12834 return NULL;
12835 }
12836 goto done;
12837 }
12838 p->mark = _mark;
12839 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
12840 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '@' factor"));
12841 }
12842 { // factor
12843 if (p->error_indicator) {
12844 D(p->level--);
12845 return NULL;
12846 }
12847 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "factor"));
12848 expr_ty factor_var;
12849 if (
12850 (factor_var = factor_rule(p)) // factor
12851 )
12852 {
12853 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "factor"));
12854 _res = factor_var;
12855 goto done;
12856 }
12857 p->mark = _mark;
12858 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
12859 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "factor"));
12860 }
12861 _res = NULL;
12862 done:
12863 D(p->level--);
12864 return _res;
12865}
12866
12867// factor: '+' factor | '-' factor | '~' factor | power
12868static expr_ty
12869factor_rule(Parser *p)
12870{
12871 D(p->level++);
12872 if (p->error_indicator) {
12873 D(p->level--);
12874 return NULL;
12875 }
12876 expr_ty _res = NULL;
12877 if (_PyPegen_is_memoized(p, factor_type, &_res)) {
12878 D(p->level--);
12879 return _res;
12880 }
12881 int _mark = p->mark;
12882 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12883 p->error_indicator = 1;
12884 D(p->level--);
12885 return NULL;
12886 }
12887 int _start_lineno = p->tokens[_mark]->lineno;
12888 UNUSED(_start_lineno); // Only used by EXTRA macro
12889 int _start_col_offset = p->tokens[_mark]->col_offset;
12890 UNUSED(_start_col_offset); // Only used by EXTRA macro
12891 { // '+' factor
12892 if (p->error_indicator) {
12893 D(p->level--);
12894 return NULL;
12895 }
12896 D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'+' factor"));
12897 Token * _literal;
12898 expr_ty a;
12899 if (
12900 (_literal = _PyPegen_expect_token(p, 14)) // token='+'
12901 &&
12902 (a = factor_rule(p)) // factor
12903 )
12904 {
12905 D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'+' factor"));
12906 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12907 if (_token == NULL) {
12908 D(p->level--);
12909 return NULL;
12910 }
12911 int _end_lineno = _token->end_lineno;
12912 UNUSED(_end_lineno); // Only used by EXTRA macro
12913 int _end_col_offset = _token->end_col_offset;
12914 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020012915 _res = _PyAST_UnaryOp ( UAdd , a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012916 if (_res == NULL && PyErr_Occurred()) {
12917 p->error_indicator = 1;
12918 D(p->level--);
12919 return NULL;
12920 }
12921 goto done;
12922 }
12923 p->mark = _mark;
12924 D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
12925 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'+' factor"));
12926 }
12927 { // '-' factor
12928 if (p->error_indicator) {
12929 D(p->level--);
12930 return NULL;
12931 }
12932 D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-' factor"));
12933 Token * _literal;
12934 expr_ty a;
12935 if (
12936 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
12937 &&
12938 (a = factor_rule(p)) // factor
12939 )
12940 {
12941 D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-' factor"));
12942 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12943 if (_token == NULL) {
12944 D(p->level--);
12945 return NULL;
12946 }
12947 int _end_lineno = _token->end_lineno;
12948 UNUSED(_end_lineno); // Only used by EXTRA macro
12949 int _end_col_offset = _token->end_col_offset;
12950 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020012951 _res = _PyAST_UnaryOp ( USub , a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012952 if (_res == NULL && PyErr_Occurred()) {
12953 p->error_indicator = 1;
12954 D(p->level--);
12955 return NULL;
12956 }
12957 goto done;
12958 }
12959 p->mark = _mark;
12960 D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
12961 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-' factor"));
12962 }
12963 { // '~' factor
12964 if (p->error_indicator) {
12965 D(p->level--);
12966 return NULL;
12967 }
12968 D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'~' factor"));
12969 Token * _literal;
12970 expr_ty a;
12971 if (
12972 (_literal = _PyPegen_expect_token(p, 31)) // token='~'
12973 &&
12974 (a = factor_rule(p)) // factor
12975 )
12976 {
12977 D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'~' factor"));
12978 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12979 if (_token == NULL) {
12980 D(p->level--);
12981 return NULL;
12982 }
12983 int _end_lineno = _token->end_lineno;
12984 UNUSED(_end_lineno); // Only used by EXTRA macro
12985 int _end_col_offset = _token->end_col_offset;
12986 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020012987 _res = _PyAST_UnaryOp ( Invert , a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012988 if (_res == NULL && PyErr_Occurred()) {
12989 p->error_indicator = 1;
12990 D(p->level--);
12991 return NULL;
12992 }
12993 goto done;
12994 }
12995 p->mark = _mark;
12996 D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
12997 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'~' factor"));
12998 }
12999 { // power
13000 if (p->error_indicator) {
13001 D(p->level--);
13002 return NULL;
13003 }
13004 D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "power"));
13005 expr_ty power_var;
13006 if (
13007 (power_var = power_rule(p)) // power
13008 )
13009 {
13010 D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "power"));
13011 _res = power_var;
13012 goto done;
13013 }
13014 p->mark = _mark;
13015 D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
13016 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "power"));
13017 }
13018 _res = NULL;
13019 done:
13020 _PyPegen_insert_memo(p, _mark, factor_type, _res);
13021 D(p->level--);
13022 return _res;
13023}
13024
13025// power: await_primary '**' factor | await_primary
13026static expr_ty
13027power_rule(Parser *p)
13028{
13029 D(p->level++);
13030 if (p->error_indicator) {
13031 D(p->level--);
13032 return NULL;
13033 }
13034 expr_ty _res = NULL;
13035 int _mark = p->mark;
13036 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13037 p->error_indicator = 1;
13038 D(p->level--);
13039 return NULL;
13040 }
13041 int _start_lineno = p->tokens[_mark]->lineno;
13042 UNUSED(_start_lineno); // Only used by EXTRA macro
13043 int _start_col_offset = p->tokens[_mark]->col_offset;
13044 UNUSED(_start_col_offset); // Only used by EXTRA macro
13045 { // await_primary '**' factor
13046 if (p->error_indicator) {
13047 D(p->level--);
13048 return NULL;
13049 }
13050 D(fprintf(stderr, "%*c> power[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "await_primary '**' factor"));
13051 Token * _literal;
13052 expr_ty a;
13053 expr_ty b;
13054 if (
13055 (a = await_primary_rule(p)) // await_primary
13056 &&
13057 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
13058 &&
13059 (b = factor_rule(p)) // factor
13060 )
13061 {
13062 D(fprintf(stderr, "%*c+ power[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "await_primary '**' factor"));
13063 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13064 if (_token == NULL) {
13065 D(p->level--);
13066 return NULL;
13067 }
13068 int _end_lineno = _token->end_lineno;
13069 UNUSED(_end_lineno); // Only used by EXTRA macro
13070 int _end_col_offset = _token->end_col_offset;
13071 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013072 _res = _PyAST_BinOp ( a , Pow , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013073 if (_res == NULL && PyErr_Occurred()) {
13074 p->error_indicator = 1;
13075 D(p->level--);
13076 return NULL;
13077 }
13078 goto done;
13079 }
13080 p->mark = _mark;
13081 D(fprintf(stderr, "%*c%s power[%d-%d]: %s failed!\n", p->level, ' ',
13082 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "await_primary '**' factor"));
13083 }
13084 { // await_primary
13085 if (p->error_indicator) {
13086 D(p->level--);
13087 return NULL;
13088 }
13089 D(fprintf(stderr, "%*c> power[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "await_primary"));
13090 expr_ty await_primary_var;
13091 if (
13092 (await_primary_var = await_primary_rule(p)) // await_primary
13093 )
13094 {
13095 D(fprintf(stderr, "%*c+ power[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "await_primary"));
13096 _res = await_primary_var;
13097 goto done;
13098 }
13099 p->mark = _mark;
13100 D(fprintf(stderr, "%*c%s power[%d-%d]: %s failed!\n", p->level, ' ',
13101 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "await_primary"));
13102 }
13103 _res = NULL;
13104 done:
13105 D(p->level--);
13106 return _res;
13107}
13108
13109// await_primary: AWAIT primary | primary
13110static expr_ty
13111await_primary_rule(Parser *p)
13112{
13113 D(p->level++);
13114 if (p->error_indicator) {
13115 D(p->level--);
13116 return NULL;
13117 }
13118 expr_ty _res = NULL;
13119 if (_PyPegen_is_memoized(p, await_primary_type, &_res)) {
13120 D(p->level--);
13121 return _res;
13122 }
13123 int _mark = p->mark;
13124 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13125 p->error_indicator = 1;
13126 D(p->level--);
13127 return NULL;
13128 }
13129 int _start_lineno = p->tokens[_mark]->lineno;
13130 UNUSED(_start_lineno); // Only used by EXTRA macro
13131 int _start_col_offset = p->tokens[_mark]->col_offset;
13132 UNUSED(_start_col_offset); // Only used by EXTRA macro
13133 { // AWAIT primary
13134 if (p->error_indicator) {
13135 D(p->level--);
13136 return NULL;
13137 }
13138 D(fprintf(stderr, "%*c> await_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "AWAIT primary"));
13139 expr_ty a;
13140 Token * await_var;
13141 if (
13142 (await_var = _PyPegen_expect_token(p, AWAIT)) // token='AWAIT'
13143 &&
13144 (a = primary_rule(p)) // primary
13145 )
13146 {
13147 D(fprintf(stderr, "%*c+ await_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "AWAIT primary"));
13148 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13149 if (_token == NULL) {
13150 D(p->level--);
13151 return NULL;
13152 }
13153 int _end_lineno = _token->end_lineno;
13154 UNUSED(_end_lineno); // Only used by EXTRA macro
13155 int _end_col_offset = _token->end_col_offset;
13156 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013157 _res = CHECK_VERSION ( expr_ty , 5 , "Await expressions are" , _PyAST_Await ( a , EXTRA ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013158 if (_res == NULL && PyErr_Occurred()) {
13159 p->error_indicator = 1;
13160 D(p->level--);
13161 return NULL;
13162 }
13163 goto done;
13164 }
13165 p->mark = _mark;
13166 D(fprintf(stderr, "%*c%s await_primary[%d-%d]: %s failed!\n", p->level, ' ',
13167 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "AWAIT primary"));
13168 }
13169 { // primary
13170 if (p->error_indicator) {
13171 D(p->level--);
13172 return NULL;
13173 }
13174 D(fprintf(stderr, "%*c> await_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary"));
13175 expr_ty primary_var;
13176 if (
13177 (primary_var = primary_rule(p)) // primary
13178 )
13179 {
13180 D(fprintf(stderr, "%*c+ await_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary"));
13181 _res = primary_var;
13182 goto done;
13183 }
13184 p->mark = _mark;
13185 D(fprintf(stderr, "%*c%s await_primary[%d-%d]: %s failed!\n", p->level, ' ',
13186 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary"));
13187 }
13188 _res = NULL;
13189 done:
13190 _PyPegen_insert_memo(p, _mark, await_primary_type, _res);
13191 D(p->level--);
13192 return _res;
13193}
13194
13195// Left-recursive
13196// primary:
Lysandros Nikolaou15acc4e2020-10-27 20:54:20 +020013197// | invalid_primary
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013198// | primary '.' NAME
13199// | primary genexp
13200// | primary '(' arguments? ')'
13201// | primary '[' slices ']'
13202// | atom
13203static expr_ty primary_raw(Parser *);
13204static expr_ty
13205primary_rule(Parser *p)
13206{
13207 D(p->level++);
13208 expr_ty _res = NULL;
13209 if (_PyPegen_is_memoized(p, primary_type, &_res)) {
13210 D(p->level--);
13211 return _res;
13212 }
13213 int _mark = p->mark;
13214 int _resmark = p->mark;
13215 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080013216 int tmpvar_8 = _PyPegen_update_memo(p, _mark, primary_type, _res);
13217 if (tmpvar_8) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013218 D(p->level--);
13219 return _res;
13220 }
13221 p->mark = _mark;
13222 void *_raw = primary_raw(p);
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020013223 if (p->error_indicator)
13224 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013225 if (_raw == NULL || p->mark <= _resmark)
13226 break;
13227 _resmark = p->mark;
13228 _res = _raw;
13229 }
13230 p->mark = _resmark;
13231 D(p->level--);
13232 return _res;
13233}
13234static expr_ty
13235primary_raw(Parser *p)
13236{
13237 D(p->level++);
13238 if (p->error_indicator) {
13239 D(p->level--);
13240 return NULL;
13241 }
13242 expr_ty _res = NULL;
13243 int _mark = p->mark;
13244 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13245 p->error_indicator = 1;
13246 D(p->level--);
13247 return NULL;
13248 }
13249 int _start_lineno = p->tokens[_mark]->lineno;
13250 UNUSED(_start_lineno); // Only used by EXTRA macro
13251 int _start_col_offset = p->tokens[_mark]->col_offset;
13252 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou15acc4e2020-10-27 20:54:20 +020013253 if (p->call_invalid_rules) { // invalid_primary
13254 if (p->error_indicator) {
13255 D(p->level--);
13256 return NULL;
13257 }
13258 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_primary"));
13259 void *invalid_primary_var;
13260 if (
13261 (invalid_primary_var = invalid_primary_rule(p)) // invalid_primary
13262 )
13263 {
13264 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_primary"));
13265 _res = invalid_primary_var;
13266 goto done;
13267 }
13268 p->mark = _mark;
13269 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
13270 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_primary"));
13271 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013272 { // primary '.' NAME
13273 if (p->error_indicator) {
13274 D(p->level--);
13275 return NULL;
13276 }
13277 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '.' NAME"));
13278 Token * _literal;
13279 expr_ty a;
13280 expr_ty b;
13281 if (
13282 (a = primary_rule(p)) // primary
13283 &&
13284 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
13285 &&
13286 (b = _PyPegen_name_token(p)) // NAME
13287 )
13288 {
13289 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '.' NAME"));
13290 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13291 if (_token == NULL) {
13292 D(p->level--);
13293 return NULL;
13294 }
13295 int _end_lineno = _token->end_lineno;
13296 UNUSED(_end_lineno); // Only used by EXTRA macro
13297 int _end_col_offset = _token->end_col_offset;
13298 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013299 _res = _PyAST_Attribute ( a , b -> v . Name . id , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013300 if (_res == NULL && PyErr_Occurred()) {
13301 p->error_indicator = 1;
13302 D(p->level--);
13303 return NULL;
13304 }
13305 goto done;
13306 }
13307 p->mark = _mark;
13308 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
13309 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '.' NAME"));
13310 }
13311 { // primary genexp
13312 if (p->error_indicator) {
13313 D(p->level--);
13314 return NULL;
13315 }
13316 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary genexp"));
13317 expr_ty a;
13318 expr_ty b;
13319 if (
13320 (a = primary_rule(p)) // primary
13321 &&
13322 (b = genexp_rule(p)) // genexp
13323 )
13324 {
13325 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary genexp"));
13326 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13327 if (_token == NULL) {
13328 D(p->level--);
13329 return NULL;
13330 }
13331 int _end_lineno = _token->end_lineno;
13332 UNUSED(_end_lineno); // Only used by EXTRA macro
13333 int _end_col_offset = _token->end_col_offset;
13334 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013335 _res = _PyAST_Call ( a , CHECK ( asdl_expr_seq * , ( asdl_expr_seq * ) _PyPegen_singleton_seq ( p , b ) ) , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013336 if (_res == NULL && PyErr_Occurred()) {
13337 p->error_indicator = 1;
13338 D(p->level--);
13339 return NULL;
13340 }
13341 goto done;
13342 }
13343 p->mark = _mark;
13344 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
13345 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary genexp"));
13346 }
13347 { // primary '(' arguments? ')'
13348 if (p->error_indicator) {
13349 D(p->level--);
13350 return NULL;
13351 }
13352 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '(' arguments? ')'"));
13353 Token * _literal;
13354 Token * _literal_1;
13355 expr_ty a;
13356 void *b;
13357 if (
13358 (a = primary_rule(p)) // primary
13359 &&
13360 (_literal = _PyPegen_expect_token(p, 7)) // token='('
13361 &&
13362 (b = arguments_rule(p), 1) // arguments?
13363 &&
13364 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
13365 )
13366 {
13367 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '(' arguments? ')'"));
13368 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13369 if (_token == NULL) {
13370 D(p->level--);
13371 return NULL;
13372 }
13373 int _end_lineno = _token->end_lineno;
13374 UNUSED(_end_lineno); // Only used by EXTRA macro
13375 int _end_col_offset = _token->end_col_offset;
13376 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013377 _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 +010013378 if (_res == NULL && PyErr_Occurred()) {
13379 p->error_indicator = 1;
13380 D(p->level--);
13381 return NULL;
13382 }
13383 goto done;
13384 }
13385 p->mark = _mark;
13386 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
13387 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '(' arguments? ')'"));
13388 }
13389 { // primary '[' slices ']'
13390 if (p->error_indicator) {
13391 D(p->level--);
13392 return NULL;
13393 }
13394 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '[' slices ']'"));
13395 Token * _literal;
13396 Token * _literal_1;
13397 expr_ty a;
13398 expr_ty b;
13399 if (
13400 (a = primary_rule(p)) // primary
13401 &&
13402 (_literal = _PyPegen_expect_token(p, 9)) // token='['
13403 &&
13404 (b = slices_rule(p)) // slices
13405 &&
13406 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
13407 )
13408 {
13409 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '[' slices ']'"));
13410 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13411 if (_token == NULL) {
13412 D(p->level--);
13413 return NULL;
13414 }
13415 int _end_lineno = _token->end_lineno;
13416 UNUSED(_end_lineno); // Only used by EXTRA macro
13417 int _end_col_offset = _token->end_col_offset;
13418 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013419 _res = _PyAST_Subscript ( a , b , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013420 if (_res == NULL && PyErr_Occurred()) {
13421 p->error_indicator = 1;
13422 D(p->level--);
13423 return NULL;
13424 }
13425 goto done;
13426 }
13427 p->mark = _mark;
13428 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
13429 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '[' slices ']'"));
13430 }
13431 { // atom
13432 if (p->error_indicator) {
13433 D(p->level--);
13434 return NULL;
13435 }
13436 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "atom"));
13437 expr_ty atom_var;
13438 if (
13439 (atom_var = atom_rule(p)) // atom
13440 )
13441 {
13442 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "atom"));
13443 _res = atom_var;
13444 goto done;
13445 }
13446 p->mark = _mark;
13447 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
13448 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "atom"));
13449 }
13450 _res = NULL;
13451 done:
13452 D(p->level--);
13453 return _res;
13454}
13455
13456// slices: slice !',' | ','.slice+ ','?
13457static expr_ty
13458slices_rule(Parser *p)
13459{
13460 D(p->level++);
13461 if (p->error_indicator) {
13462 D(p->level--);
13463 return NULL;
13464 }
13465 expr_ty _res = NULL;
13466 int _mark = p->mark;
13467 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13468 p->error_indicator = 1;
13469 D(p->level--);
13470 return NULL;
13471 }
13472 int _start_lineno = p->tokens[_mark]->lineno;
13473 UNUSED(_start_lineno); // Only used by EXTRA macro
13474 int _start_col_offset = p->tokens[_mark]->col_offset;
13475 UNUSED(_start_col_offset); // Only used by EXTRA macro
13476 { // slice !','
13477 if (p->error_indicator) {
13478 D(p->level--);
13479 return NULL;
13480 }
13481 D(fprintf(stderr, "%*c> slices[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slice !','"));
13482 expr_ty a;
13483 if (
13484 (a = slice_rule(p)) // slice
13485 &&
13486 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 12) // token=','
13487 )
13488 {
13489 D(fprintf(stderr, "%*c+ slices[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slice !','"));
13490 _res = a;
13491 if (_res == NULL && PyErr_Occurred()) {
13492 p->error_indicator = 1;
13493 D(p->level--);
13494 return NULL;
13495 }
13496 goto done;
13497 }
13498 p->mark = _mark;
13499 D(fprintf(stderr, "%*c%s slices[%d-%d]: %s failed!\n", p->level, ' ',
13500 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slice !','"));
13501 }
13502 { // ','.slice+ ','?
13503 if (p->error_indicator) {
13504 D(p->level--);
13505 return NULL;
13506 }
13507 D(fprintf(stderr, "%*c> slices[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.slice+ ','?"));
13508 void *_opt_var;
13509 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +010013510 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013511 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080013512 (a = (asdl_expr_seq*)_gather_108_rule(p)) // ','.slice+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013513 &&
13514 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
13515 )
13516 {
13517 D(fprintf(stderr, "%*c+ slices[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.slice+ ','?"));
13518 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13519 if (_token == NULL) {
13520 D(p->level--);
13521 return NULL;
13522 }
13523 int _end_lineno = _token->end_lineno;
13524 UNUSED(_end_lineno); // Only used by EXTRA macro
13525 int _end_col_offset = _token->end_col_offset;
13526 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013527 _res = _PyAST_Tuple ( a , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013528 if (_res == NULL && PyErr_Occurred()) {
13529 p->error_indicator = 1;
13530 D(p->level--);
13531 return NULL;
13532 }
13533 goto done;
13534 }
13535 p->mark = _mark;
13536 D(fprintf(stderr, "%*c%s slices[%d-%d]: %s failed!\n", p->level, ' ',
13537 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.slice+ ','?"));
13538 }
13539 _res = NULL;
13540 done:
13541 D(p->level--);
13542 return _res;
13543}
13544
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020013545// slice: expression? ':' expression? [':' expression?] | named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013546static expr_ty
13547slice_rule(Parser *p)
13548{
13549 D(p->level++);
13550 if (p->error_indicator) {
13551 D(p->level--);
13552 return NULL;
13553 }
13554 expr_ty _res = NULL;
13555 int _mark = p->mark;
13556 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13557 p->error_indicator = 1;
13558 D(p->level--);
13559 return NULL;
13560 }
13561 int _start_lineno = p->tokens[_mark]->lineno;
13562 UNUSED(_start_lineno); // Only used by EXTRA macro
13563 int _start_col_offset = p->tokens[_mark]->col_offset;
13564 UNUSED(_start_col_offset); // Only used by EXTRA macro
13565 { // expression? ':' expression? [':' expression?]
13566 if (p->error_indicator) {
13567 D(p->level--);
13568 return NULL;
13569 }
13570 D(fprintf(stderr, "%*c> slice[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression? ':' expression? [':' expression?]"));
13571 Token * _literal;
13572 void *a;
13573 void *b;
13574 void *c;
13575 if (
13576 (a = expression_rule(p), 1) // expression?
13577 &&
13578 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
13579 &&
13580 (b = expression_rule(p), 1) // expression?
13581 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080013582 (c = _tmp_110_rule(p), 1) // [':' expression?]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013583 )
13584 {
13585 D(fprintf(stderr, "%*c+ slice[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression? ':' expression? [':' expression?]"));
13586 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13587 if (_token == NULL) {
13588 D(p->level--);
13589 return NULL;
13590 }
13591 int _end_lineno = _token->end_lineno;
13592 UNUSED(_end_lineno); // Only used by EXTRA macro
13593 int _end_col_offset = _token->end_col_offset;
13594 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013595 _res = _PyAST_Slice ( a , b , c , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013596 if (_res == NULL && PyErr_Occurred()) {
13597 p->error_indicator = 1;
13598 D(p->level--);
13599 return NULL;
13600 }
13601 goto done;
13602 }
13603 p->mark = _mark;
13604 D(fprintf(stderr, "%*c%s slice[%d-%d]: %s failed!\n", p->level, ' ',
13605 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression? ':' expression? [':' expression?]"));
13606 }
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020013607 { // named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013608 if (p->error_indicator) {
13609 D(p->level--);
13610 return NULL;
13611 }
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020013612 D(fprintf(stderr, "%*c> slice[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013613 expr_ty a;
13614 if (
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020013615 (a = named_expression_rule(p)) // named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013616 )
13617 {
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020013618 D(fprintf(stderr, "%*c+ slice[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "named_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013619 _res = a;
13620 if (_res == NULL && PyErr_Occurred()) {
13621 p->error_indicator = 1;
13622 D(p->level--);
13623 return NULL;
13624 }
13625 goto done;
13626 }
13627 p->mark = _mark;
13628 D(fprintf(stderr, "%*c%s slice[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020013629 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013630 }
13631 _res = NULL;
13632 done:
13633 D(p->level--);
13634 return _res;
13635}
13636
13637// atom:
13638// | NAME
13639// | 'True'
13640// | 'False'
13641// | 'None'
13642// | &STRING strings
13643// | NUMBER
13644// | &'(' (tuple | group | genexp)
13645// | &'[' (list | listcomp)
13646// | &'{' (dict | set | dictcomp | setcomp)
13647// | '...'
13648static expr_ty
13649atom_rule(Parser *p)
13650{
13651 D(p->level++);
13652 if (p->error_indicator) {
13653 D(p->level--);
13654 return NULL;
13655 }
13656 expr_ty _res = NULL;
13657 int _mark = p->mark;
13658 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13659 p->error_indicator = 1;
13660 D(p->level--);
13661 return NULL;
13662 }
13663 int _start_lineno = p->tokens[_mark]->lineno;
13664 UNUSED(_start_lineno); // Only used by EXTRA macro
13665 int _start_col_offset = p->tokens[_mark]->col_offset;
13666 UNUSED(_start_col_offset); // Only used by EXTRA macro
13667 { // NAME
13668 if (p->error_indicator) {
13669 D(p->level--);
13670 return NULL;
13671 }
13672 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
13673 expr_ty name_var;
13674 if (
13675 (name_var = _PyPegen_name_token(p)) // NAME
13676 )
13677 {
13678 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
13679 _res = name_var;
13680 goto done;
13681 }
13682 p->mark = _mark;
13683 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
13684 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
13685 }
13686 { // 'True'
13687 if (p->error_indicator) {
13688 D(p->level--);
13689 return NULL;
13690 }
13691 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'True'"));
13692 Token * _keyword;
13693 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080013694 (_keyword = _PyPegen_expect_token(p, 524)) // token='True'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013695 )
13696 {
13697 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'"));
13698 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13699 if (_token == NULL) {
13700 D(p->level--);
13701 return NULL;
13702 }
13703 int _end_lineno = _token->end_lineno;
13704 UNUSED(_end_lineno); // Only used by EXTRA macro
13705 int _end_col_offset = _token->end_col_offset;
13706 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013707 _res = _PyAST_Constant ( Py_True , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013708 if (_res == NULL && PyErr_Occurred()) {
13709 p->error_indicator = 1;
13710 D(p->level--);
13711 return NULL;
13712 }
13713 goto done;
13714 }
13715 p->mark = _mark;
13716 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
13717 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'True'"));
13718 }
13719 { // 'False'
13720 if (p->error_indicator) {
13721 D(p->level--);
13722 return NULL;
13723 }
13724 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False'"));
13725 Token * _keyword;
13726 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080013727 (_keyword = _PyPegen_expect_token(p, 525)) // token='False'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013728 )
13729 {
13730 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'"));
13731 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13732 if (_token == NULL) {
13733 D(p->level--);
13734 return NULL;
13735 }
13736 int _end_lineno = _token->end_lineno;
13737 UNUSED(_end_lineno); // Only used by EXTRA macro
13738 int _end_col_offset = _token->end_col_offset;
13739 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013740 _res = _PyAST_Constant ( Py_False , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013741 if (_res == NULL && PyErr_Occurred()) {
13742 p->error_indicator = 1;
13743 D(p->level--);
13744 return NULL;
13745 }
13746 goto done;
13747 }
13748 p->mark = _mark;
13749 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
13750 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'False'"));
13751 }
13752 { // 'None'
13753 if (p->error_indicator) {
13754 D(p->level--);
13755 return NULL;
13756 }
13757 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'None'"));
13758 Token * _keyword;
13759 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080013760 (_keyword = _PyPegen_expect_token(p, 523)) // token='None'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013761 )
13762 {
13763 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'"));
13764 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13765 if (_token == NULL) {
13766 D(p->level--);
13767 return NULL;
13768 }
13769 int _end_lineno = _token->end_lineno;
13770 UNUSED(_end_lineno); // Only used by EXTRA macro
13771 int _end_col_offset = _token->end_col_offset;
13772 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013773 _res = _PyAST_Constant ( Py_None , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013774 if (_res == NULL && PyErr_Occurred()) {
13775 p->error_indicator = 1;
13776 D(p->level--);
13777 return NULL;
13778 }
13779 goto done;
13780 }
13781 p->mark = _mark;
13782 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
13783 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'None'"));
13784 }
13785 { // &STRING strings
13786 if (p->error_indicator) {
13787 D(p->level--);
13788 return NULL;
13789 }
13790 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&STRING strings"));
13791 expr_ty strings_var;
13792 if (
13793 _PyPegen_lookahead(1, _PyPegen_string_token, p)
13794 &&
13795 (strings_var = strings_rule(p)) // strings
13796 )
13797 {
13798 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&STRING strings"));
13799 _res = strings_var;
13800 goto done;
13801 }
13802 p->mark = _mark;
13803 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
13804 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&STRING strings"));
13805 }
13806 { // NUMBER
13807 if (p->error_indicator) {
13808 D(p->level--);
13809 return NULL;
13810 }
13811 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NUMBER"));
13812 expr_ty number_var;
13813 if (
13814 (number_var = _PyPegen_number_token(p)) // NUMBER
13815 )
13816 {
13817 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NUMBER"));
13818 _res = number_var;
13819 goto done;
13820 }
13821 p->mark = _mark;
13822 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
13823 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NUMBER"));
13824 }
13825 { // &'(' (tuple | group | genexp)
13826 if (p->error_indicator) {
13827 D(p->level--);
13828 return NULL;
13829 }
13830 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'(' (tuple | group | genexp)"));
Brandt Bucher145bf262021-02-26 14:51:55 -080013831 void *_tmp_111_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013832 if (
13833 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 7) // token='('
13834 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080013835 (_tmp_111_var = _tmp_111_rule(p)) // tuple | group | genexp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013836 )
13837 {
13838 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 -080013839 _res = _tmp_111_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013840 goto done;
13841 }
13842 p->mark = _mark;
13843 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
13844 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'(' (tuple | group | genexp)"));
13845 }
13846 { // &'[' (list | listcomp)
13847 if (p->error_indicator) {
13848 D(p->level--);
13849 return NULL;
13850 }
13851 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'[' (list | listcomp)"));
Brandt Bucher145bf262021-02-26 14:51:55 -080013852 void *_tmp_112_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013853 if (
13854 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 9) // token='['
13855 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080013856 (_tmp_112_var = _tmp_112_rule(p)) // list | listcomp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013857 )
13858 {
13859 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'[' (list | listcomp)"));
Brandt Bucher145bf262021-02-26 14:51:55 -080013860 _res = _tmp_112_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013861 goto done;
13862 }
13863 p->mark = _mark;
13864 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
13865 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'[' (list | listcomp)"));
13866 }
13867 { // &'{' (dict | set | dictcomp | setcomp)
13868 if (p->error_indicator) {
13869 D(p->level--);
13870 return NULL;
13871 }
13872 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 -080013873 void *_tmp_113_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013874 if (
13875 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 25) // token='{'
13876 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080013877 (_tmp_113_var = _tmp_113_rule(p)) // dict | set | dictcomp | setcomp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013878 )
13879 {
13880 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 -080013881 _res = _tmp_113_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013882 goto done;
13883 }
13884 p->mark = _mark;
13885 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
13886 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'{' (dict | set | dictcomp | setcomp)"));
13887 }
13888 { // '...'
13889 if (p->error_indicator) {
13890 D(p->level--);
13891 return NULL;
13892 }
13893 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'"));
13894 Token * _literal;
13895 if (
13896 (_literal = _PyPegen_expect_token(p, 52)) // token='...'
13897 )
13898 {
13899 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'"));
13900 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13901 if (_token == NULL) {
13902 D(p->level--);
13903 return NULL;
13904 }
13905 int _end_lineno = _token->end_lineno;
13906 UNUSED(_end_lineno); // Only used by EXTRA macro
13907 int _end_col_offset = _token->end_col_offset;
13908 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013909 _res = _PyAST_Constant ( Py_Ellipsis , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013910 if (_res == NULL && PyErr_Occurred()) {
13911 p->error_indicator = 1;
13912 D(p->level--);
13913 return NULL;
13914 }
13915 goto done;
13916 }
13917 p->mark = _mark;
13918 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
13919 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'...'"));
13920 }
13921 _res = NULL;
13922 done:
13923 D(p->level--);
13924 return _res;
13925}
13926
13927// strings: STRING+
13928static expr_ty
13929strings_rule(Parser *p)
13930{
13931 D(p->level++);
13932 if (p->error_indicator) {
13933 D(p->level--);
13934 return NULL;
13935 }
13936 expr_ty _res = NULL;
13937 if (_PyPegen_is_memoized(p, strings_type, &_res)) {
13938 D(p->level--);
13939 return _res;
13940 }
13941 int _mark = p->mark;
13942 { // STRING+
13943 if (p->error_indicator) {
13944 D(p->level--);
13945 return NULL;
13946 }
13947 D(fprintf(stderr, "%*c> strings[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "STRING+"));
13948 asdl_seq * a;
13949 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080013950 (a = _loop1_114_rule(p)) // STRING+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013951 )
13952 {
13953 D(fprintf(stderr, "%*c+ strings[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "STRING+"));
13954 _res = _PyPegen_concatenate_strings ( p , a );
13955 if (_res == NULL && PyErr_Occurred()) {
13956 p->error_indicator = 1;
13957 D(p->level--);
13958 return NULL;
13959 }
13960 goto done;
13961 }
13962 p->mark = _mark;
13963 D(fprintf(stderr, "%*c%s strings[%d-%d]: %s failed!\n", p->level, ' ',
13964 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "STRING+"));
13965 }
13966 _res = NULL;
13967 done:
13968 _PyPegen_insert_memo(p, _mark, strings_type, _res);
13969 D(p->level--);
13970 return _res;
13971}
13972
13973// list: '[' star_named_expressions? ']'
13974static expr_ty
13975list_rule(Parser *p)
13976{
13977 D(p->level++);
13978 if (p->error_indicator) {
13979 D(p->level--);
13980 return NULL;
13981 }
13982 expr_ty _res = NULL;
13983 int _mark = p->mark;
13984 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13985 p->error_indicator = 1;
13986 D(p->level--);
13987 return NULL;
13988 }
13989 int _start_lineno = p->tokens[_mark]->lineno;
13990 UNUSED(_start_lineno); // Only used by EXTRA macro
13991 int _start_col_offset = p->tokens[_mark]->col_offset;
13992 UNUSED(_start_col_offset); // Only used by EXTRA macro
13993 { // '[' star_named_expressions? ']'
13994 if (p->error_indicator) {
13995 D(p->level--);
13996 return NULL;
13997 }
13998 D(fprintf(stderr, "%*c> list[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' star_named_expressions? ']'"));
13999 Token * _literal;
14000 Token * _literal_1;
14001 void *a;
14002 if (
14003 (_literal = _PyPegen_expect_token(p, 9)) // token='['
14004 &&
14005 (a = star_named_expressions_rule(p), 1) // star_named_expressions?
14006 &&
14007 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
14008 )
14009 {
14010 D(fprintf(stderr, "%*c+ list[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'[' star_named_expressions? ']'"));
14011 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14012 if (_token == NULL) {
14013 D(p->level--);
14014 return NULL;
14015 }
14016 int _end_lineno = _token->end_lineno;
14017 UNUSED(_end_lineno); // Only used by EXTRA macro
14018 int _end_col_offset = _token->end_col_offset;
14019 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014020 _res = _PyAST_List ( a , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014021 if (_res == NULL && PyErr_Occurred()) {
14022 p->error_indicator = 1;
14023 D(p->level--);
14024 return NULL;
14025 }
14026 goto done;
14027 }
14028 p->mark = _mark;
14029 D(fprintf(stderr, "%*c%s list[%d-%d]: %s failed!\n", p->level, ' ',
14030 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' star_named_expressions? ']'"));
14031 }
14032 _res = NULL;
14033 done:
14034 D(p->level--);
14035 return _res;
14036}
14037
Pablo Galindo835f14f2021-01-31 22:52:56 +000014038// listcomp: '[' named_expression for_if_clauses ']' | invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014039static expr_ty
14040listcomp_rule(Parser *p)
14041{
14042 D(p->level++);
14043 if (p->error_indicator) {
14044 D(p->level--);
14045 return NULL;
14046 }
14047 expr_ty _res = NULL;
14048 int _mark = p->mark;
14049 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14050 p->error_indicator = 1;
14051 D(p->level--);
14052 return NULL;
14053 }
14054 int _start_lineno = p->tokens[_mark]->lineno;
14055 UNUSED(_start_lineno); // Only used by EXTRA macro
14056 int _start_col_offset = p->tokens[_mark]->col_offset;
14057 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo835f14f2021-01-31 22:52:56 +000014058 { // '[' named_expression for_if_clauses ']'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014059 if (p->error_indicator) {
14060 D(p->level--);
14061 return NULL;
14062 }
Pablo Galindo835f14f2021-01-31 22:52:56 +000014063 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 +010014064 Token * _literal;
14065 Token * _literal_1;
14066 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010014067 asdl_comprehension_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014068 if (
14069 (_literal = _PyPegen_expect_token(p, 9)) // token='['
14070 &&
14071 (a = named_expression_rule(p)) // named_expression
14072 &&
14073 (b = for_if_clauses_rule(p)) // for_if_clauses
14074 &&
14075 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
14076 )
14077 {
Pablo Galindo835f14f2021-01-31 22:52:56 +000014078 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 +010014079 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14080 if (_token == NULL) {
14081 D(p->level--);
14082 return NULL;
14083 }
14084 int _end_lineno = _token->end_lineno;
14085 UNUSED(_end_lineno); // Only used by EXTRA macro
14086 int _end_col_offset = _token->end_col_offset;
14087 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014088 _res = _PyAST_ListComp ( a , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014089 if (_res == NULL && PyErr_Occurred()) {
14090 p->error_indicator = 1;
14091 D(p->level--);
14092 return NULL;
14093 }
14094 goto done;
14095 }
14096 p->mark = _mark;
14097 D(fprintf(stderr, "%*c%s listcomp[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo835f14f2021-01-31 22:52:56 +000014098 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' named_expression for_if_clauses ']'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014099 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014100 if (p->call_invalid_rules) { // invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014101 if (p->error_indicator) {
14102 D(p->level--);
14103 return NULL;
14104 }
14105 D(fprintf(stderr, "%*c> listcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
14106 void *invalid_comprehension_var;
14107 if (
14108 (invalid_comprehension_var = invalid_comprehension_rule(p)) // invalid_comprehension
14109 )
14110 {
14111 D(fprintf(stderr, "%*c+ listcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
14112 _res = invalid_comprehension_var;
14113 goto done;
14114 }
14115 p->mark = _mark;
14116 D(fprintf(stderr, "%*c%s listcomp[%d-%d]: %s failed!\n", p->level, ' ',
14117 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_comprehension"));
14118 }
14119 _res = NULL;
14120 done:
14121 D(p->level--);
14122 return _res;
14123}
14124
14125// tuple: '(' [star_named_expression ',' star_named_expressions?] ')'
14126static expr_ty
14127tuple_rule(Parser *p)
14128{
14129 D(p->level++);
14130 if (p->error_indicator) {
14131 D(p->level--);
14132 return NULL;
14133 }
14134 expr_ty _res = NULL;
14135 int _mark = p->mark;
14136 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14137 p->error_indicator = 1;
14138 D(p->level--);
14139 return NULL;
14140 }
14141 int _start_lineno = p->tokens[_mark]->lineno;
14142 UNUSED(_start_lineno); // Only used by EXTRA macro
14143 int _start_col_offset = p->tokens[_mark]->col_offset;
14144 UNUSED(_start_col_offset); // Only used by EXTRA macro
14145 { // '(' [star_named_expression ',' star_named_expressions?] ')'
14146 if (p->error_indicator) {
14147 D(p->level--);
14148 return NULL;
14149 }
14150 D(fprintf(stderr, "%*c> tuple[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' [star_named_expression ',' star_named_expressions?] ')'"));
14151 Token * _literal;
14152 Token * _literal_1;
14153 void *a;
14154 if (
14155 (_literal = _PyPegen_expect_token(p, 7)) // token='('
14156 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080014157 (a = _tmp_115_rule(p), 1) // [star_named_expression ',' star_named_expressions?]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014158 &&
14159 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
14160 )
14161 {
14162 D(fprintf(stderr, "%*c+ tuple[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' [star_named_expression ',' star_named_expressions?] ')'"));
14163 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14164 if (_token == NULL) {
14165 D(p->level--);
14166 return NULL;
14167 }
14168 int _end_lineno = _token->end_lineno;
14169 UNUSED(_end_lineno); // Only used by EXTRA macro
14170 int _end_col_offset = _token->end_col_offset;
14171 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014172 _res = _PyAST_Tuple ( a , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014173 if (_res == NULL && PyErr_Occurred()) {
14174 p->error_indicator = 1;
14175 D(p->level--);
14176 return NULL;
14177 }
14178 goto done;
14179 }
14180 p->mark = _mark;
14181 D(fprintf(stderr, "%*c%s tuple[%d-%d]: %s failed!\n", p->level, ' ',
14182 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' [star_named_expression ',' star_named_expressions?] ')'"));
14183 }
14184 _res = NULL;
14185 done:
14186 D(p->level--);
14187 return _res;
14188}
14189
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030014190// group: '(' (yield_expr | named_expression) ')' | invalid_group
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014191static expr_ty
14192group_rule(Parser *p)
14193{
14194 D(p->level++);
14195 if (p->error_indicator) {
14196 D(p->level--);
14197 return NULL;
14198 }
14199 expr_ty _res = NULL;
14200 int _mark = p->mark;
14201 { // '(' (yield_expr | named_expression) ')'
14202 if (p->error_indicator) {
14203 D(p->level--);
14204 return NULL;
14205 }
14206 D(fprintf(stderr, "%*c> group[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' (yield_expr | named_expression) ')'"));
14207 Token * _literal;
14208 Token * _literal_1;
14209 void *a;
14210 if (
14211 (_literal = _PyPegen_expect_token(p, 7)) // token='('
14212 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080014213 (a = _tmp_116_rule(p)) // yield_expr | named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014214 &&
14215 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
14216 )
14217 {
14218 D(fprintf(stderr, "%*c+ group[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' (yield_expr | named_expression) ')'"));
14219 _res = a;
14220 if (_res == NULL && PyErr_Occurred()) {
14221 p->error_indicator = 1;
14222 D(p->level--);
14223 return NULL;
14224 }
14225 goto done;
14226 }
14227 p->mark = _mark;
14228 D(fprintf(stderr, "%*c%s group[%d-%d]: %s failed!\n", p->level, ' ',
14229 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' (yield_expr | named_expression) ')'"));
14230 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014231 if (p->call_invalid_rules) { // invalid_group
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030014232 if (p->error_indicator) {
14233 D(p->level--);
14234 return NULL;
14235 }
14236 D(fprintf(stderr, "%*c> group[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_group"));
14237 void *invalid_group_var;
14238 if (
14239 (invalid_group_var = invalid_group_rule(p)) // invalid_group
14240 )
14241 {
14242 D(fprintf(stderr, "%*c+ group[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_group"));
14243 _res = invalid_group_var;
14244 goto done;
14245 }
14246 p->mark = _mark;
14247 D(fprintf(stderr, "%*c%s group[%d-%d]: %s failed!\n", p->level, ' ',
14248 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_group"));
14249 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014250 _res = NULL;
14251 done:
14252 D(p->level--);
14253 return _res;
14254}
14255
Pablo Galindo30ed93b2021-04-13 17:51:21 +010014256// genexp: '(' direct_named_expression for_if_clauses ')' | invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014257static expr_ty
14258genexp_rule(Parser *p)
14259{
14260 D(p->level++);
14261 if (p->error_indicator) {
14262 D(p->level--);
14263 return NULL;
14264 }
14265 expr_ty _res = NULL;
14266 int _mark = p->mark;
14267 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14268 p->error_indicator = 1;
14269 D(p->level--);
14270 return NULL;
14271 }
14272 int _start_lineno = p->tokens[_mark]->lineno;
14273 UNUSED(_start_lineno); // Only used by EXTRA macro
14274 int _start_col_offset = p->tokens[_mark]->col_offset;
14275 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo30ed93b2021-04-13 17:51:21 +010014276 { // '(' direct_named_expression for_if_clauses ')'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014277 if (p->error_indicator) {
14278 D(p->level--);
14279 return NULL;
14280 }
Pablo Galindo30ed93b2021-04-13 17:51:21 +010014281 D(fprintf(stderr, "%*c> genexp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' direct_named_expression for_if_clauses ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014282 Token * _literal;
14283 Token * _literal_1;
14284 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010014285 asdl_comprehension_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014286 if (
14287 (_literal = _PyPegen_expect_token(p, 7)) // token='('
14288 &&
Pablo Galindo30ed93b2021-04-13 17:51:21 +010014289 (a = direct_named_expression_rule(p)) // direct_named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014290 &&
14291 (b = for_if_clauses_rule(p)) // for_if_clauses
14292 &&
14293 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
14294 )
14295 {
Pablo Galindo30ed93b2021-04-13 17:51:21 +010014296 D(fprintf(stderr, "%*c+ genexp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' direct_named_expression for_if_clauses ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014297 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14298 if (_token == NULL) {
14299 D(p->level--);
14300 return NULL;
14301 }
14302 int _end_lineno = _token->end_lineno;
14303 UNUSED(_end_lineno); // Only used by EXTRA macro
14304 int _end_col_offset = _token->end_col_offset;
14305 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014306 _res = _PyAST_GeneratorExp ( a , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014307 if (_res == NULL && PyErr_Occurred()) {
14308 p->error_indicator = 1;
14309 D(p->level--);
14310 return NULL;
14311 }
14312 goto done;
14313 }
14314 p->mark = _mark;
14315 D(fprintf(stderr, "%*c%s genexp[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo30ed93b2021-04-13 17:51:21 +010014316 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' direct_named_expression for_if_clauses ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014317 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014318 if (p->call_invalid_rules) { // invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014319 if (p->error_indicator) {
14320 D(p->level--);
14321 return NULL;
14322 }
14323 D(fprintf(stderr, "%*c> genexp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
14324 void *invalid_comprehension_var;
14325 if (
14326 (invalid_comprehension_var = invalid_comprehension_rule(p)) // invalid_comprehension
14327 )
14328 {
14329 D(fprintf(stderr, "%*c+ genexp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
14330 _res = invalid_comprehension_var;
14331 goto done;
14332 }
14333 p->mark = _mark;
14334 D(fprintf(stderr, "%*c%s genexp[%d-%d]: %s failed!\n", p->level, ' ',
14335 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_comprehension"));
14336 }
14337 _res = NULL;
14338 done:
14339 D(p->level--);
14340 return _res;
14341}
14342
Pablo Galindob0aba1f2020-11-17 01:17:12 +000014343// set: '{' star_named_expressions '}'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014344static expr_ty
14345set_rule(Parser *p)
14346{
14347 D(p->level++);
14348 if (p->error_indicator) {
14349 D(p->level--);
14350 return NULL;
14351 }
14352 expr_ty _res = NULL;
14353 int _mark = p->mark;
14354 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14355 p->error_indicator = 1;
14356 D(p->level--);
14357 return NULL;
14358 }
14359 int _start_lineno = p->tokens[_mark]->lineno;
14360 UNUSED(_start_lineno); // Only used by EXTRA macro
14361 int _start_col_offset = p->tokens[_mark]->col_offset;
14362 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindob0aba1f2020-11-17 01:17:12 +000014363 { // '{' star_named_expressions '}'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014364 if (p->error_indicator) {
14365 D(p->level--);
14366 return NULL;
14367 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000014368 D(fprintf(stderr, "%*c> set[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' star_named_expressions '}'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014369 Token * _literal;
14370 Token * _literal_1;
Pablo Galindoa5634c42020-09-16 19:42:00 +010014371 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014372 if (
14373 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
14374 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000014375 (a = star_named_expressions_rule(p)) // star_named_expressions
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014376 &&
14377 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
14378 )
14379 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000014380 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 +010014381 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14382 if (_token == NULL) {
14383 D(p->level--);
14384 return NULL;
14385 }
14386 int _end_lineno = _token->end_lineno;
14387 UNUSED(_end_lineno); // Only used by EXTRA macro
14388 int _end_col_offset = _token->end_col_offset;
14389 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014390 _res = _PyAST_Set ( a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014391 if (_res == NULL && PyErr_Occurred()) {
14392 p->error_indicator = 1;
14393 D(p->level--);
14394 return NULL;
14395 }
14396 goto done;
14397 }
14398 p->mark = _mark;
14399 D(fprintf(stderr, "%*c%s set[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000014400 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' star_named_expressions '}'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014401 }
14402 _res = NULL;
14403 done:
14404 D(p->level--);
14405 return _res;
14406}
14407
Pablo Galindo835f14f2021-01-31 22:52:56 +000014408// setcomp: '{' named_expression for_if_clauses '}' | invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014409static expr_ty
14410setcomp_rule(Parser *p)
14411{
14412 D(p->level++);
14413 if (p->error_indicator) {
14414 D(p->level--);
14415 return NULL;
14416 }
14417 expr_ty _res = NULL;
14418 int _mark = p->mark;
14419 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14420 p->error_indicator = 1;
14421 D(p->level--);
14422 return NULL;
14423 }
14424 int _start_lineno = p->tokens[_mark]->lineno;
14425 UNUSED(_start_lineno); // Only used by EXTRA macro
14426 int _start_col_offset = p->tokens[_mark]->col_offset;
14427 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo835f14f2021-01-31 22:52:56 +000014428 { // '{' named_expression for_if_clauses '}'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014429 if (p->error_indicator) {
14430 D(p->level--);
14431 return NULL;
14432 }
Pablo Galindo835f14f2021-01-31 22:52:56 +000014433 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 +010014434 Token * _literal;
14435 Token * _literal_1;
14436 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010014437 asdl_comprehension_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014438 if (
14439 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
14440 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000014441 (a = named_expression_rule(p)) // named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014442 &&
14443 (b = for_if_clauses_rule(p)) // for_if_clauses
14444 &&
14445 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
14446 )
14447 {
Pablo Galindo835f14f2021-01-31 22:52:56 +000014448 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 +010014449 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14450 if (_token == NULL) {
14451 D(p->level--);
14452 return NULL;
14453 }
14454 int _end_lineno = _token->end_lineno;
14455 UNUSED(_end_lineno); // Only used by EXTRA macro
14456 int _end_col_offset = _token->end_col_offset;
14457 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014458 _res = _PyAST_SetComp ( a , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014459 if (_res == NULL && PyErr_Occurred()) {
14460 p->error_indicator = 1;
14461 D(p->level--);
14462 return NULL;
14463 }
14464 goto done;
14465 }
14466 p->mark = _mark;
14467 D(fprintf(stderr, "%*c%s setcomp[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo835f14f2021-01-31 22:52:56 +000014468 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' named_expression for_if_clauses '}'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014469 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014470 if (p->call_invalid_rules) { // invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014471 if (p->error_indicator) {
14472 D(p->level--);
14473 return NULL;
14474 }
14475 D(fprintf(stderr, "%*c> setcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
14476 void *invalid_comprehension_var;
14477 if (
14478 (invalid_comprehension_var = invalid_comprehension_rule(p)) // invalid_comprehension
14479 )
14480 {
14481 D(fprintf(stderr, "%*c+ setcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
14482 _res = invalid_comprehension_var;
14483 goto done;
14484 }
14485 p->mark = _mark;
14486 D(fprintf(stderr, "%*c%s setcomp[%d-%d]: %s failed!\n", p->level, ' ',
14487 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_comprehension"));
14488 }
14489 _res = NULL;
14490 done:
14491 D(p->level--);
14492 return _res;
14493}
14494
Pablo Galindoda743502021-04-15 14:06:39 +010014495// dict: '{' double_starred_kvpairs? '}' | '{' invalid_double_starred_kvpairs '}'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014496static expr_ty
14497dict_rule(Parser *p)
14498{
14499 D(p->level++);
14500 if (p->error_indicator) {
14501 D(p->level--);
14502 return NULL;
14503 }
14504 expr_ty _res = NULL;
14505 int _mark = p->mark;
14506 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14507 p->error_indicator = 1;
14508 D(p->level--);
14509 return NULL;
14510 }
14511 int _start_lineno = p->tokens[_mark]->lineno;
14512 UNUSED(_start_lineno); // Only used by EXTRA macro
14513 int _start_col_offset = p->tokens[_mark]->col_offset;
14514 UNUSED(_start_col_offset); // Only used by EXTRA macro
14515 { // '{' double_starred_kvpairs? '}'
14516 if (p->error_indicator) {
14517 D(p->level--);
14518 return NULL;
14519 }
14520 D(fprintf(stderr, "%*c> dict[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' double_starred_kvpairs? '}'"));
14521 Token * _literal;
14522 Token * _literal_1;
14523 void *a;
14524 if (
14525 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
14526 &&
14527 (a = double_starred_kvpairs_rule(p), 1) // double_starred_kvpairs?
14528 &&
14529 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
14530 )
14531 {
14532 D(fprintf(stderr, "%*c+ dict[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' double_starred_kvpairs? '}'"));
14533 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14534 if (_token == NULL) {
14535 D(p->level--);
14536 return NULL;
14537 }
14538 int _end_lineno = _token->end_lineno;
14539 UNUSED(_end_lineno); // Only used by EXTRA macro
14540 int _end_col_offset = _token->end_col_offset;
14541 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014542 _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 +010014543 if (_res == NULL && PyErr_Occurred()) {
14544 p->error_indicator = 1;
14545 D(p->level--);
14546 return NULL;
14547 }
14548 goto done;
14549 }
14550 p->mark = _mark;
14551 D(fprintf(stderr, "%*c%s dict[%d-%d]: %s failed!\n", p->level, ' ',
14552 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' double_starred_kvpairs? '}'"));
14553 }
Pablo Galindoda743502021-04-15 14:06:39 +010014554 { // '{' invalid_double_starred_kvpairs '}'
14555 if (p->error_indicator) {
14556 D(p->level--);
14557 return NULL;
14558 }
14559 D(fprintf(stderr, "%*c> dict[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' invalid_double_starred_kvpairs '}'"));
14560 Token * _literal;
14561 Token * _literal_1;
14562 void *invalid_double_starred_kvpairs_var;
14563 if (
14564 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
14565 &&
14566 (invalid_double_starred_kvpairs_var = invalid_double_starred_kvpairs_rule(p)) // invalid_double_starred_kvpairs
14567 &&
14568 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
14569 )
14570 {
14571 D(fprintf(stderr, "%*c+ dict[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' invalid_double_starred_kvpairs '}'"));
14572 _res = _PyPegen_dummy_name(p, _literal, invalid_double_starred_kvpairs_var, _literal_1);
14573 goto done;
14574 }
14575 p->mark = _mark;
14576 D(fprintf(stderr, "%*c%s dict[%d-%d]: %s failed!\n", p->level, ' ',
14577 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' invalid_double_starred_kvpairs '}'"));
14578 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014579 _res = NULL;
14580 done:
14581 D(p->level--);
14582 return _res;
14583}
14584
14585// dictcomp: '{' kvpair for_if_clauses '}' | invalid_dict_comprehension
14586static expr_ty
14587dictcomp_rule(Parser *p)
14588{
14589 D(p->level++);
14590 if (p->error_indicator) {
14591 D(p->level--);
14592 return NULL;
14593 }
14594 expr_ty _res = NULL;
14595 int _mark = p->mark;
14596 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14597 p->error_indicator = 1;
14598 D(p->level--);
14599 return NULL;
14600 }
14601 int _start_lineno = p->tokens[_mark]->lineno;
14602 UNUSED(_start_lineno); // Only used by EXTRA macro
14603 int _start_col_offset = p->tokens[_mark]->col_offset;
14604 UNUSED(_start_col_offset); // Only used by EXTRA macro
14605 { // '{' kvpair for_if_clauses '}'
14606 if (p->error_indicator) {
14607 D(p->level--);
14608 return NULL;
14609 }
14610 D(fprintf(stderr, "%*c> dictcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' kvpair for_if_clauses '}'"));
14611 Token * _literal;
14612 Token * _literal_1;
14613 KeyValuePair* a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010014614 asdl_comprehension_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014615 if (
14616 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
14617 &&
14618 (a = kvpair_rule(p)) // kvpair
14619 &&
14620 (b = for_if_clauses_rule(p)) // for_if_clauses
14621 &&
14622 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
14623 )
14624 {
14625 D(fprintf(stderr, "%*c+ dictcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' kvpair for_if_clauses '}'"));
14626 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14627 if (_token == NULL) {
14628 D(p->level--);
14629 return NULL;
14630 }
14631 int _end_lineno = _token->end_lineno;
14632 UNUSED(_end_lineno); // Only used by EXTRA macro
14633 int _end_col_offset = _token->end_col_offset;
14634 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014635 _res = _PyAST_DictComp ( a -> key , a -> value , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014636 if (_res == NULL && PyErr_Occurred()) {
14637 p->error_indicator = 1;
14638 D(p->level--);
14639 return NULL;
14640 }
14641 goto done;
14642 }
14643 p->mark = _mark;
14644 D(fprintf(stderr, "%*c%s dictcomp[%d-%d]: %s failed!\n", p->level, ' ',
14645 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' kvpair for_if_clauses '}'"));
14646 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014647 if (p->call_invalid_rules) { // invalid_dict_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014648 if (p->error_indicator) {
14649 D(p->level--);
14650 return NULL;
14651 }
14652 D(fprintf(stderr, "%*c> dictcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_dict_comprehension"));
14653 void *invalid_dict_comprehension_var;
14654 if (
14655 (invalid_dict_comprehension_var = invalid_dict_comprehension_rule(p)) // invalid_dict_comprehension
14656 )
14657 {
14658 D(fprintf(stderr, "%*c+ dictcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_dict_comprehension"));
14659 _res = invalid_dict_comprehension_var;
14660 goto done;
14661 }
14662 p->mark = _mark;
14663 D(fprintf(stderr, "%*c%s dictcomp[%d-%d]: %s failed!\n", p->level, ' ',
14664 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_dict_comprehension"));
14665 }
14666 _res = NULL;
14667 done:
14668 D(p->level--);
14669 return _res;
14670}
14671
14672// double_starred_kvpairs: ','.double_starred_kvpair+ ','?
14673static asdl_seq*
14674double_starred_kvpairs_rule(Parser *p)
14675{
14676 D(p->level++);
14677 if (p->error_indicator) {
14678 D(p->level--);
14679 return NULL;
14680 }
14681 asdl_seq* _res = NULL;
14682 int _mark = p->mark;
14683 { // ','.double_starred_kvpair+ ','?
14684 if (p->error_indicator) {
14685 D(p->level--);
14686 return NULL;
14687 }
14688 D(fprintf(stderr, "%*c> double_starred_kvpairs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.double_starred_kvpair+ ','?"));
14689 void *_opt_var;
14690 UNUSED(_opt_var); // Silence compiler warnings
14691 asdl_seq * a;
14692 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080014693 (a = _gather_117_rule(p)) // ','.double_starred_kvpair+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014694 &&
14695 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
14696 )
14697 {
14698 D(fprintf(stderr, "%*c+ double_starred_kvpairs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.double_starred_kvpair+ ','?"));
14699 _res = a;
14700 if (_res == NULL && PyErr_Occurred()) {
14701 p->error_indicator = 1;
14702 D(p->level--);
14703 return NULL;
14704 }
14705 goto done;
14706 }
14707 p->mark = _mark;
14708 D(fprintf(stderr, "%*c%s double_starred_kvpairs[%d-%d]: %s failed!\n", p->level, ' ',
14709 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.double_starred_kvpair+ ','?"));
14710 }
14711 _res = NULL;
14712 done:
14713 D(p->level--);
14714 return _res;
14715}
14716
14717// double_starred_kvpair: '**' bitwise_or | kvpair
14718static KeyValuePair*
14719double_starred_kvpair_rule(Parser *p)
14720{
14721 D(p->level++);
14722 if (p->error_indicator) {
14723 D(p->level--);
14724 return NULL;
14725 }
14726 KeyValuePair* _res = NULL;
14727 int _mark = p->mark;
14728 { // '**' bitwise_or
14729 if (p->error_indicator) {
14730 D(p->level--);
14731 return NULL;
14732 }
14733 D(fprintf(stderr, "%*c> double_starred_kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' bitwise_or"));
14734 Token * _literal;
14735 expr_ty a;
14736 if (
14737 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
14738 &&
14739 (a = bitwise_or_rule(p)) // bitwise_or
14740 )
14741 {
14742 D(fprintf(stderr, "%*c+ double_starred_kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' bitwise_or"));
14743 _res = _PyPegen_key_value_pair ( p , NULL , a );
14744 if (_res == NULL && PyErr_Occurred()) {
14745 p->error_indicator = 1;
14746 D(p->level--);
14747 return NULL;
14748 }
14749 goto done;
14750 }
14751 p->mark = _mark;
14752 D(fprintf(stderr, "%*c%s double_starred_kvpair[%d-%d]: %s failed!\n", p->level, ' ',
14753 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' bitwise_or"));
14754 }
14755 { // kvpair
14756 if (p->error_indicator) {
14757 D(p->level--);
14758 return NULL;
14759 }
14760 D(fprintf(stderr, "%*c> double_starred_kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kvpair"));
14761 KeyValuePair* kvpair_var;
14762 if (
14763 (kvpair_var = kvpair_rule(p)) // kvpair
14764 )
14765 {
14766 D(fprintf(stderr, "%*c+ double_starred_kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kvpair"));
14767 _res = kvpair_var;
14768 goto done;
14769 }
14770 p->mark = _mark;
14771 D(fprintf(stderr, "%*c%s double_starred_kvpair[%d-%d]: %s failed!\n", p->level, ' ',
14772 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kvpair"));
14773 }
14774 _res = NULL;
14775 done:
14776 D(p->level--);
14777 return _res;
14778}
14779
14780// kvpair: expression ':' expression
14781static KeyValuePair*
14782kvpair_rule(Parser *p)
14783{
14784 D(p->level++);
14785 if (p->error_indicator) {
14786 D(p->level--);
14787 return NULL;
14788 }
14789 KeyValuePair* _res = NULL;
14790 int _mark = p->mark;
14791 { // expression ':' expression
14792 if (p->error_indicator) {
14793 D(p->level--);
14794 return NULL;
14795 }
14796 D(fprintf(stderr, "%*c> kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':' expression"));
14797 Token * _literal;
14798 expr_ty a;
14799 expr_ty b;
14800 if (
14801 (a = expression_rule(p)) // expression
14802 &&
14803 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
14804 &&
14805 (b = expression_rule(p)) // expression
14806 )
14807 {
14808 D(fprintf(stderr, "%*c+ kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':' expression"));
14809 _res = _PyPegen_key_value_pair ( p , a , b );
14810 if (_res == NULL && PyErr_Occurred()) {
14811 p->error_indicator = 1;
14812 D(p->level--);
14813 return NULL;
14814 }
14815 goto done;
14816 }
14817 p->mark = _mark;
14818 D(fprintf(stderr, "%*c%s kvpair[%d-%d]: %s failed!\n", p->level, ' ',
14819 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' expression"));
14820 }
14821 _res = NULL;
14822 done:
14823 D(p->level--);
14824 return _res;
14825}
14826
14827// for_if_clauses: for_if_clause+
Pablo Galindoa5634c42020-09-16 19:42:00 +010014828static asdl_comprehension_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014829for_if_clauses_rule(Parser *p)
14830{
14831 D(p->level++);
14832 if (p->error_indicator) {
14833 D(p->level--);
14834 return NULL;
14835 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010014836 asdl_comprehension_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014837 int _mark = p->mark;
14838 { // for_if_clause+
14839 if (p->error_indicator) {
14840 D(p->level--);
14841 return NULL;
14842 }
14843 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 +010014844 asdl_comprehension_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014845 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080014846 (a = (asdl_comprehension_seq*)_loop1_119_rule(p)) // for_if_clause+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014847 )
14848 {
14849 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 +010014850 _res = a;
14851 if (_res == NULL && PyErr_Occurred()) {
14852 p->error_indicator = 1;
14853 D(p->level--);
14854 return NULL;
14855 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014856 goto done;
14857 }
14858 p->mark = _mark;
14859 D(fprintf(stderr, "%*c%s for_if_clauses[%d-%d]: %s failed!\n", p->level, ' ',
14860 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "for_if_clause+"));
14861 }
14862 _res = NULL;
14863 done:
14864 D(p->level--);
14865 return _res;
14866}
14867
14868// for_if_clause:
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030014869// | ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*
14870// | 'for' star_targets 'in' ~ disjunction (('if' disjunction))*
14871// | invalid_for_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014872static comprehension_ty
14873for_if_clause_rule(Parser *p)
14874{
14875 D(p->level++);
14876 if (p->error_indicator) {
14877 D(p->level--);
14878 return NULL;
14879 }
14880 comprehension_ty _res = NULL;
14881 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030014882 { // ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014883 if (p->error_indicator) {
14884 D(p->level--);
14885 return NULL;
14886 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030014887 D(fprintf(stderr, "%*c> for_if_clause[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
14888 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014889 Token * _keyword;
14890 Token * _keyword_1;
14891 expr_ty a;
14892 Token * async_var;
14893 expr_ty b;
Pablo Galindoa5634c42020-09-16 19:42:00 +010014894 asdl_expr_seq* c;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014895 if (
14896 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
14897 &&
14898 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
14899 &&
14900 (a = star_targets_rule(p)) // star_targets
14901 &&
14902 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
14903 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030014904 (_cut_var = 1)
14905 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014906 (b = disjunction_rule(p)) // disjunction
14907 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080014908 (c = (asdl_expr_seq*)_loop0_120_rule(p)) // (('if' disjunction))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014909 )
14910 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030014911 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 +020014912 _res = CHECK_VERSION ( comprehension_ty , 6 , "Async comprehensions are" , _PyAST_comprehension ( a , b , c , 1 , p -> arena ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014913 if (_res == NULL && PyErr_Occurred()) {
14914 p->error_indicator = 1;
14915 D(p->level--);
14916 return NULL;
14917 }
14918 goto done;
14919 }
14920 p->mark = _mark;
14921 D(fprintf(stderr, "%*c%s for_if_clause[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030014922 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
14923 if (_cut_var) {
14924 D(p->level--);
14925 return NULL;
14926 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014927 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030014928 { // 'for' star_targets 'in' ~ disjunction (('if' disjunction))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014929 if (p->error_indicator) {
14930 D(p->level--);
14931 return NULL;
14932 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030014933 D(fprintf(stderr, "%*c> for_if_clause[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
14934 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014935 Token * _keyword;
14936 Token * _keyword_1;
14937 expr_ty a;
14938 expr_ty b;
Pablo Galindoa5634c42020-09-16 19:42:00 +010014939 asdl_expr_seq* c;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014940 if (
14941 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
14942 &&
14943 (a = star_targets_rule(p)) // star_targets
14944 &&
14945 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
14946 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030014947 (_cut_var = 1)
14948 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014949 (b = disjunction_rule(p)) // disjunction
14950 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080014951 (c = (asdl_expr_seq*)_loop0_121_rule(p)) // (('if' disjunction))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014952 )
14953 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030014954 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 +020014955 _res = _PyAST_comprehension ( a , b , c , 0 , p -> arena );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014956 if (_res == NULL && PyErr_Occurred()) {
14957 p->error_indicator = 1;
14958 D(p->level--);
14959 return NULL;
14960 }
14961 goto done;
14962 }
14963 p->mark = _mark;
14964 D(fprintf(stderr, "%*c%s for_if_clause[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030014965 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
14966 if (_cut_var) {
14967 D(p->level--);
14968 return NULL;
14969 }
14970 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014971 if (p->call_invalid_rules) { // invalid_for_target
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030014972 if (p->error_indicator) {
14973 D(p->level--);
14974 return NULL;
14975 }
14976 D(fprintf(stderr, "%*c> for_if_clause[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_for_target"));
14977 void *invalid_for_target_var;
14978 if (
14979 (invalid_for_target_var = invalid_for_target_rule(p)) // invalid_for_target
14980 )
14981 {
14982 D(fprintf(stderr, "%*c+ for_if_clause[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_for_target"));
14983 _res = invalid_for_target_var;
14984 goto done;
14985 }
14986 p->mark = _mark;
14987 D(fprintf(stderr, "%*c%s for_if_clause[%d-%d]: %s failed!\n", p->level, ' ',
14988 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_for_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014989 }
14990 _res = NULL;
14991 done:
14992 D(p->level--);
14993 return _res;
14994}
14995
14996// yield_expr: 'yield' 'from' expression | 'yield' star_expressions?
14997static expr_ty
14998yield_expr_rule(Parser *p)
14999{
15000 D(p->level++);
15001 if (p->error_indicator) {
15002 D(p->level--);
15003 return NULL;
15004 }
15005 expr_ty _res = NULL;
15006 int _mark = p->mark;
15007 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
15008 p->error_indicator = 1;
15009 D(p->level--);
15010 return NULL;
15011 }
15012 int _start_lineno = p->tokens[_mark]->lineno;
15013 UNUSED(_start_lineno); // Only used by EXTRA macro
15014 int _start_col_offset = p->tokens[_mark]->col_offset;
15015 UNUSED(_start_col_offset); // Only used by EXTRA macro
15016 { // 'yield' 'from' expression
15017 if (p->error_indicator) {
15018 D(p->level--);
15019 return NULL;
15020 }
15021 D(fprintf(stderr, "%*c> yield_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'yield' 'from' expression"));
15022 Token * _keyword;
15023 Token * _keyword_1;
15024 expr_ty a;
15025 if (
15026 (_keyword = _PyPegen_expect_token(p, 504)) // token='yield'
15027 &&
15028 (_keyword_1 = _PyPegen_expect_token(p, 514)) // token='from'
15029 &&
15030 (a = expression_rule(p)) // expression
15031 )
15032 {
15033 D(fprintf(stderr, "%*c+ yield_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'yield' 'from' expression"));
15034 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15035 if (_token == NULL) {
15036 D(p->level--);
15037 return NULL;
15038 }
15039 int _end_lineno = _token->end_lineno;
15040 UNUSED(_end_lineno); // Only used by EXTRA macro
15041 int _end_col_offset = _token->end_col_offset;
15042 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015043 _res = _PyAST_YieldFrom ( a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015044 if (_res == NULL && PyErr_Occurred()) {
15045 p->error_indicator = 1;
15046 D(p->level--);
15047 return NULL;
15048 }
15049 goto done;
15050 }
15051 p->mark = _mark;
15052 D(fprintf(stderr, "%*c%s yield_expr[%d-%d]: %s failed!\n", p->level, ' ',
15053 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'yield' 'from' expression"));
15054 }
15055 { // 'yield' star_expressions?
15056 if (p->error_indicator) {
15057 D(p->level--);
15058 return NULL;
15059 }
15060 D(fprintf(stderr, "%*c> yield_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'yield' star_expressions?"));
15061 Token * _keyword;
15062 void *a;
15063 if (
15064 (_keyword = _PyPegen_expect_token(p, 504)) // token='yield'
15065 &&
15066 (a = star_expressions_rule(p), 1) // star_expressions?
15067 )
15068 {
15069 D(fprintf(stderr, "%*c+ yield_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'yield' star_expressions?"));
15070 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15071 if (_token == NULL) {
15072 D(p->level--);
15073 return NULL;
15074 }
15075 int _end_lineno = _token->end_lineno;
15076 UNUSED(_end_lineno); // Only used by EXTRA macro
15077 int _end_col_offset = _token->end_col_offset;
15078 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015079 _res = _PyAST_Yield ( a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015080 if (_res == NULL && PyErr_Occurred()) {
15081 p->error_indicator = 1;
15082 D(p->level--);
15083 return NULL;
15084 }
15085 goto done;
15086 }
15087 p->mark = _mark;
15088 D(fprintf(stderr, "%*c%s yield_expr[%d-%d]: %s failed!\n", p->level, ' ',
15089 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'yield' star_expressions?"));
15090 }
15091 _res = NULL;
15092 done:
15093 D(p->level--);
15094 return _res;
15095}
15096
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020015097// arguments: args ','? &')' | invalid_arguments
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015098static expr_ty
15099arguments_rule(Parser *p)
15100{
15101 D(p->level++);
15102 if (p->error_indicator) {
15103 D(p->level--);
15104 return NULL;
15105 }
15106 expr_ty _res = NULL;
15107 if (_PyPegen_is_memoized(p, arguments_type, &_res)) {
15108 D(p->level--);
15109 return _res;
15110 }
15111 int _mark = p->mark;
15112 { // args ','? &')'
15113 if (p->error_indicator) {
15114 D(p->level--);
15115 return NULL;
15116 }
15117 D(fprintf(stderr, "%*c> arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args ','? &')'"));
15118 void *_opt_var;
15119 UNUSED(_opt_var); // Silence compiler warnings
15120 expr_ty a;
15121 if (
15122 (a = args_rule(p)) // args
15123 &&
15124 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
15125 &&
15126 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
15127 )
15128 {
15129 D(fprintf(stderr, "%*c+ arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args ','? &')'"));
15130 _res = a;
15131 if (_res == NULL && PyErr_Occurred()) {
15132 p->error_indicator = 1;
15133 D(p->level--);
15134 return NULL;
15135 }
15136 goto done;
15137 }
15138 p->mark = _mark;
15139 D(fprintf(stderr, "%*c%s arguments[%d-%d]: %s failed!\n", p->level, ' ',
15140 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ','? &')'"));
15141 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020015142 if (p->call_invalid_rules) { // invalid_arguments
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015143 if (p->error_indicator) {
15144 D(p->level--);
15145 return NULL;
15146 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020015147 D(fprintf(stderr, "%*c> arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_arguments"));
15148 void *invalid_arguments_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015149 if (
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020015150 (invalid_arguments_var = invalid_arguments_rule(p)) // invalid_arguments
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015151 )
15152 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020015153 D(fprintf(stderr, "%*c+ arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_arguments"));
15154 _res = invalid_arguments_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015155 goto done;
15156 }
15157 p->mark = _mark;
15158 D(fprintf(stderr, "%*c%s arguments[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020015159 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_arguments"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015160 }
15161 _res = NULL;
15162 done:
15163 _PyPegen_insert_memo(p, _mark, arguments_type, _res);
15164 D(p->level--);
15165 return _res;
15166}
15167
Pablo Galindod9151cb2021-04-13 02:32:33 +010015168// args: ','.(starred_expression | direct_named_expression !'=')+ [',' kwargs] | kwargs
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015169static expr_ty
15170args_rule(Parser *p)
15171{
15172 D(p->level++);
15173 if (p->error_indicator) {
15174 D(p->level--);
15175 return NULL;
15176 }
15177 expr_ty _res = NULL;
15178 int _mark = p->mark;
15179 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
15180 p->error_indicator = 1;
15181 D(p->level--);
15182 return NULL;
15183 }
15184 int _start_lineno = p->tokens[_mark]->lineno;
15185 UNUSED(_start_lineno); // Only used by EXTRA macro
15186 int _start_col_offset = p->tokens[_mark]->col_offset;
15187 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindod9151cb2021-04-13 02:32:33 +010015188 { // ','.(starred_expression | direct_named_expression !'=')+ [',' kwargs]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015189 if (p->error_indicator) {
15190 D(p->level--);
15191 return NULL;
15192 }
Pablo Galindod9151cb2021-04-13 02:32:33 +010015193 D(fprintf(stderr, "%*c> args[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.(starred_expression | direct_named_expression !'=')+ [',' kwargs]"));
Pablo Galindoa5634c42020-09-16 19:42:00 +010015194 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015195 void *b;
15196 if (
Pablo Galindod9151cb2021-04-13 02:32:33 +010015197 (a = (asdl_expr_seq*)_gather_122_rule(p)) // ','.(starred_expression | direct_named_expression !'=')+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015198 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080015199 (b = _tmp_124_rule(p), 1) // [',' kwargs]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015200 )
15201 {
Pablo Galindod9151cb2021-04-13 02:32:33 +010015202 D(fprintf(stderr, "%*c+ args[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.(starred_expression | direct_named_expression !'=')+ [',' kwargs]"));
Pablo Galindo315a61f2020-09-03 15:29:32 +010015203 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15204 if (_token == NULL) {
15205 D(p->level--);
15206 return NULL;
15207 }
15208 int _end_lineno = _token->end_lineno;
15209 UNUSED(_end_lineno); // Only used by EXTRA macro
15210 int _end_col_offset = _token->end_col_offset;
15211 UNUSED(_end_col_offset); // Only used by EXTRA macro
15212 _res = _PyPegen_collect_call_seqs ( p , a , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015213 if (_res == NULL && PyErr_Occurred()) {
15214 p->error_indicator = 1;
15215 D(p->level--);
15216 return NULL;
15217 }
15218 goto done;
15219 }
15220 p->mark = _mark;
15221 D(fprintf(stderr, "%*c%s args[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindod9151cb2021-04-13 02:32:33 +010015222 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.(starred_expression | direct_named_expression !'=')+ [',' kwargs]"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015223 }
15224 { // kwargs
15225 if (p->error_indicator) {
15226 D(p->level--);
15227 return NULL;
15228 }
15229 D(fprintf(stderr, "%*c> args[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwargs"));
15230 asdl_seq* a;
15231 if (
15232 (a = kwargs_rule(p)) // kwargs
15233 )
15234 {
15235 D(fprintf(stderr, "%*c+ args[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwargs"));
15236 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15237 if (_token == NULL) {
15238 D(p->level--);
15239 return NULL;
15240 }
15241 int _end_lineno = _token->end_lineno;
15242 UNUSED(_end_lineno); // Only used by EXTRA macro
15243 int _end_col_offset = _token->end_col_offset;
15244 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015245 _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 +010015246 if (_res == NULL && PyErr_Occurred()) {
15247 p->error_indicator = 1;
15248 D(p->level--);
15249 return NULL;
15250 }
15251 goto done;
15252 }
15253 p->mark = _mark;
15254 D(fprintf(stderr, "%*c%s args[%d-%d]: %s failed!\n", p->level, ' ',
15255 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwargs"));
15256 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015257 _res = NULL;
15258 done:
15259 D(p->level--);
15260 return _res;
15261}
15262
15263// kwargs:
15264// | ','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+
15265// | ','.kwarg_or_starred+
15266// | ','.kwarg_or_double_starred+
15267static asdl_seq*
15268kwargs_rule(Parser *p)
15269{
15270 D(p->level++);
15271 if (p->error_indicator) {
15272 D(p->level--);
15273 return NULL;
15274 }
15275 asdl_seq* _res = NULL;
15276 int _mark = p->mark;
15277 { // ','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+
15278 if (p->error_indicator) {
15279 D(p->level--);
15280 return NULL;
15281 }
15282 D(fprintf(stderr, "%*c> kwargs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+"));
15283 Token * _literal;
15284 asdl_seq * a;
15285 asdl_seq * b;
15286 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080015287 (a = _gather_125_rule(p)) // ','.kwarg_or_starred+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015288 &&
15289 (_literal = _PyPegen_expect_token(p, 12)) // token=','
15290 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080015291 (b = _gather_127_rule(p)) // ','.kwarg_or_double_starred+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015292 )
15293 {
15294 D(fprintf(stderr, "%*c+ kwargs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+"));
15295 _res = _PyPegen_join_sequences ( p , a , b );
15296 if (_res == NULL && PyErr_Occurred()) {
15297 p->error_indicator = 1;
15298 D(p->level--);
15299 return NULL;
15300 }
15301 goto done;
15302 }
15303 p->mark = _mark;
15304 D(fprintf(stderr, "%*c%s kwargs[%d-%d]: %s failed!\n", p->level, ' ',
15305 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+"));
15306 }
15307 { // ','.kwarg_or_starred+
15308 if (p->error_indicator) {
15309 D(p->level--);
15310 return NULL;
15311 }
15312 D(fprintf(stderr, "%*c> kwargs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_starred+"));
Brandt Bucher145bf262021-02-26 14:51:55 -080015313 asdl_seq * _gather_129_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015314 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080015315 (_gather_129_var = _gather_129_rule(p)) // ','.kwarg_or_starred+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015316 )
15317 {
15318 D(fprintf(stderr, "%*c+ kwargs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_starred+"));
Brandt Bucher145bf262021-02-26 14:51:55 -080015319 _res = _gather_129_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015320 goto done;
15321 }
15322 p->mark = _mark;
15323 D(fprintf(stderr, "%*c%s kwargs[%d-%d]: %s failed!\n", p->level, ' ',
15324 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.kwarg_or_starred+"));
15325 }
15326 { // ','.kwarg_or_double_starred+
15327 if (p->error_indicator) {
15328 D(p->level--);
15329 return NULL;
15330 }
15331 D(fprintf(stderr, "%*c> kwargs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_double_starred+"));
Brandt Bucher145bf262021-02-26 14:51:55 -080015332 asdl_seq * _gather_131_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015333 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080015334 (_gather_131_var = _gather_131_rule(p)) // ','.kwarg_or_double_starred+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015335 )
15336 {
15337 D(fprintf(stderr, "%*c+ kwargs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_double_starred+"));
Brandt Bucher145bf262021-02-26 14:51:55 -080015338 _res = _gather_131_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015339 goto done;
15340 }
15341 p->mark = _mark;
15342 D(fprintf(stderr, "%*c%s kwargs[%d-%d]: %s failed!\n", p->level, ' ',
15343 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.kwarg_or_double_starred+"));
15344 }
15345 _res = NULL;
15346 done:
15347 D(p->level--);
15348 return _res;
15349}
15350
15351// starred_expression: '*' expression
15352static expr_ty
15353starred_expression_rule(Parser *p)
15354{
15355 D(p->level++);
15356 if (p->error_indicator) {
15357 D(p->level--);
15358 return NULL;
15359 }
15360 expr_ty _res = NULL;
15361 int _mark = p->mark;
15362 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
15363 p->error_indicator = 1;
15364 D(p->level--);
15365 return NULL;
15366 }
15367 int _start_lineno = p->tokens[_mark]->lineno;
15368 UNUSED(_start_lineno); // Only used by EXTRA macro
15369 int _start_col_offset = p->tokens[_mark]->col_offset;
15370 UNUSED(_start_col_offset); // Only used by EXTRA macro
15371 { // '*' expression
15372 if (p->error_indicator) {
15373 D(p->level--);
15374 return NULL;
15375 }
15376 D(fprintf(stderr, "%*c> starred_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' expression"));
15377 Token * _literal;
15378 expr_ty a;
15379 if (
15380 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
15381 &&
15382 (a = expression_rule(p)) // expression
15383 )
15384 {
15385 D(fprintf(stderr, "%*c+ starred_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' expression"));
15386 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15387 if (_token == NULL) {
15388 D(p->level--);
15389 return NULL;
15390 }
15391 int _end_lineno = _token->end_lineno;
15392 UNUSED(_end_lineno); // Only used by EXTRA macro
15393 int _end_col_offset = _token->end_col_offset;
15394 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015395 _res = _PyAST_Starred ( a , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015396 if (_res == NULL && PyErr_Occurred()) {
15397 p->error_indicator = 1;
15398 D(p->level--);
15399 return NULL;
15400 }
15401 goto done;
15402 }
15403 p->mark = _mark;
15404 D(fprintf(stderr, "%*c%s starred_expression[%d-%d]: %s failed!\n", p->level, ' ',
15405 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' expression"));
15406 }
15407 _res = NULL;
15408 done:
15409 D(p->level--);
15410 return _res;
15411}
15412
15413// kwarg_or_starred: NAME '=' expression | starred_expression | invalid_kwarg
15414static KeywordOrStarred*
15415kwarg_or_starred_rule(Parser *p)
15416{
15417 D(p->level++);
15418 if (p->error_indicator) {
15419 D(p->level--);
15420 return NULL;
15421 }
15422 KeywordOrStarred* _res = NULL;
15423 int _mark = p->mark;
15424 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
15425 p->error_indicator = 1;
15426 D(p->level--);
15427 return NULL;
15428 }
15429 int _start_lineno = p->tokens[_mark]->lineno;
15430 UNUSED(_start_lineno); // Only used by EXTRA macro
15431 int _start_col_offset = p->tokens[_mark]->col_offset;
15432 UNUSED(_start_col_offset); // Only used by EXTRA macro
15433 { // NAME '=' expression
15434 if (p->error_indicator) {
15435 D(p->level--);
15436 return NULL;
15437 }
15438 D(fprintf(stderr, "%*c> kwarg_or_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME '=' expression"));
15439 Token * _literal;
15440 expr_ty a;
15441 expr_ty b;
15442 if (
15443 (a = _PyPegen_name_token(p)) // NAME
15444 &&
15445 (_literal = _PyPegen_expect_token(p, 22)) // token='='
15446 &&
15447 (b = expression_rule(p)) // expression
15448 )
15449 {
15450 D(fprintf(stderr, "%*c+ kwarg_or_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '=' expression"));
15451 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15452 if (_token == NULL) {
15453 D(p->level--);
15454 return NULL;
15455 }
15456 int _end_lineno = _token->end_lineno;
15457 UNUSED(_end_lineno); // Only used by EXTRA macro
15458 int _end_col_offset = _token->end_col_offset;
15459 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015460 _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 +010015461 if (_res == NULL && PyErr_Occurred()) {
15462 p->error_indicator = 1;
15463 D(p->level--);
15464 return NULL;
15465 }
15466 goto done;
15467 }
15468 p->mark = _mark;
15469 D(fprintf(stderr, "%*c%s kwarg_or_starred[%d-%d]: %s failed!\n", p->level, ' ',
15470 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' expression"));
15471 }
15472 { // starred_expression
15473 if (p->error_indicator) {
15474 D(p->level--);
15475 return NULL;
15476 }
15477 D(fprintf(stderr, "%*c> kwarg_or_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "starred_expression"));
15478 expr_ty a;
15479 if (
15480 (a = starred_expression_rule(p)) // starred_expression
15481 )
15482 {
15483 D(fprintf(stderr, "%*c+ kwarg_or_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "starred_expression"));
15484 _res = _PyPegen_keyword_or_starred ( p , a , 0 );
15485 if (_res == NULL && PyErr_Occurred()) {
15486 p->error_indicator = 1;
15487 D(p->level--);
15488 return NULL;
15489 }
15490 goto done;
15491 }
15492 p->mark = _mark;
15493 D(fprintf(stderr, "%*c%s kwarg_or_starred[%d-%d]: %s failed!\n", p->level, ' ',
15494 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "starred_expression"));
15495 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020015496 if (p->call_invalid_rules) { // invalid_kwarg
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015497 if (p->error_indicator) {
15498 D(p->level--);
15499 return NULL;
15500 }
15501 D(fprintf(stderr, "%*c> kwarg_or_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_kwarg"));
15502 void *invalid_kwarg_var;
15503 if (
15504 (invalid_kwarg_var = invalid_kwarg_rule(p)) // invalid_kwarg
15505 )
15506 {
15507 D(fprintf(stderr, "%*c+ kwarg_or_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_kwarg"));
15508 _res = invalid_kwarg_var;
15509 goto done;
15510 }
15511 p->mark = _mark;
15512 D(fprintf(stderr, "%*c%s kwarg_or_starred[%d-%d]: %s failed!\n", p->level, ' ',
15513 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_kwarg"));
15514 }
15515 _res = NULL;
15516 done:
15517 D(p->level--);
15518 return _res;
15519}
15520
15521// kwarg_or_double_starred: NAME '=' expression | '**' expression | invalid_kwarg
15522static KeywordOrStarred*
15523kwarg_or_double_starred_rule(Parser *p)
15524{
15525 D(p->level++);
15526 if (p->error_indicator) {
15527 D(p->level--);
15528 return NULL;
15529 }
15530 KeywordOrStarred* _res = NULL;
15531 int _mark = p->mark;
15532 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
15533 p->error_indicator = 1;
15534 D(p->level--);
15535 return NULL;
15536 }
15537 int _start_lineno = p->tokens[_mark]->lineno;
15538 UNUSED(_start_lineno); // Only used by EXTRA macro
15539 int _start_col_offset = p->tokens[_mark]->col_offset;
15540 UNUSED(_start_col_offset); // Only used by EXTRA macro
15541 { // NAME '=' expression
15542 if (p->error_indicator) {
15543 D(p->level--);
15544 return NULL;
15545 }
15546 D(fprintf(stderr, "%*c> kwarg_or_double_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME '=' expression"));
15547 Token * _literal;
15548 expr_ty a;
15549 expr_ty b;
15550 if (
15551 (a = _PyPegen_name_token(p)) // NAME
15552 &&
15553 (_literal = _PyPegen_expect_token(p, 22)) // token='='
15554 &&
15555 (b = expression_rule(p)) // expression
15556 )
15557 {
15558 D(fprintf(stderr, "%*c+ kwarg_or_double_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '=' expression"));
15559 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15560 if (_token == NULL) {
15561 D(p->level--);
15562 return NULL;
15563 }
15564 int _end_lineno = _token->end_lineno;
15565 UNUSED(_end_lineno); // Only used by EXTRA macro
15566 int _end_col_offset = _token->end_col_offset;
15567 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015568 _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 +010015569 if (_res == NULL && PyErr_Occurred()) {
15570 p->error_indicator = 1;
15571 D(p->level--);
15572 return NULL;
15573 }
15574 goto done;
15575 }
15576 p->mark = _mark;
15577 D(fprintf(stderr, "%*c%s kwarg_or_double_starred[%d-%d]: %s failed!\n", p->level, ' ',
15578 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' expression"));
15579 }
15580 { // '**' expression
15581 if (p->error_indicator) {
15582 D(p->level--);
15583 return NULL;
15584 }
15585 D(fprintf(stderr, "%*c> kwarg_or_double_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' expression"));
15586 Token * _literal;
15587 expr_ty a;
15588 if (
15589 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
15590 &&
15591 (a = expression_rule(p)) // expression
15592 )
15593 {
15594 D(fprintf(stderr, "%*c+ kwarg_or_double_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' expression"));
15595 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15596 if (_token == NULL) {
15597 D(p->level--);
15598 return NULL;
15599 }
15600 int _end_lineno = _token->end_lineno;
15601 UNUSED(_end_lineno); // Only used by EXTRA macro
15602 int _end_col_offset = _token->end_col_offset;
15603 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015604 _res = _PyPegen_keyword_or_starred ( p , CHECK ( keyword_ty , _PyAST_keyword ( NULL , a , EXTRA ) ) , 1 );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015605 if (_res == NULL && PyErr_Occurred()) {
15606 p->error_indicator = 1;
15607 D(p->level--);
15608 return NULL;
15609 }
15610 goto done;
15611 }
15612 p->mark = _mark;
15613 D(fprintf(stderr, "%*c%s kwarg_or_double_starred[%d-%d]: %s failed!\n", p->level, ' ',
15614 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' expression"));
15615 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020015616 if (p->call_invalid_rules) { // invalid_kwarg
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015617 if (p->error_indicator) {
15618 D(p->level--);
15619 return NULL;
15620 }
15621 D(fprintf(stderr, "%*c> kwarg_or_double_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_kwarg"));
15622 void *invalid_kwarg_var;
15623 if (
15624 (invalid_kwarg_var = invalid_kwarg_rule(p)) // invalid_kwarg
15625 )
15626 {
15627 D(fprintf(stderr, "%*c+ kwarg_or_double_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_kwarg"));
15628 _res = invalid_kwarg_var;
15629 goto done;
15630 }
15631 p->mark = _mark;
15632 D(fprintf(stderr, "%*c%s kwarg_or_double_starred[%d-%d]: %s failed!\n", p->level, ' ',
15633 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_kwarg"));
15634 }
15635 _res = NULL;
15636 done:
15637 D(p->level--);
15638 return _res;
15639}
15640
15641// star_targets: star_target !',' | star_target ((',' star_target))* ','?
15642static expr_ty
15643star_targets_rule(Parser *p)
15644{
15645 D(p->level++);
15646 if (p->error_indicator) {
15647 D(p->level--);
15648 return NULL;
15649 }
15650 expr_ty _res = NULL;
15651 int _mark = p->mark;
15652 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
15653 p->error_indicator = 1;
15654 D(p->level--);
15655 return NULL;
15656 }
15657 int _start_lineno = p->tokens[_mark]->lineno;
15658 UNUSED(_start_lineno); // Only used by EXTRA macro
15659 int _start_col_offset = p->tokens[_mark]->col_offset;
15660 UNUSED(_start_col_offset); // Only used by EXTRA macro
15661 { // star_target !','
15662 if (p->error_indicator) {
15663 D(p->level--);
15664 return NULL;
15665 }
15666 D(fprintf(stderr, "%*c> star_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target !','"));
15667 expr_ty a;
15668 if (
15669 (a = star_target_rule(p)) // star_target
15670 &&
15671 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 12) // token=','
15672 )
15673 {
15674 D(fprintf(stderr, "%*c+ star_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target !','"));
15675 _res = a;
15676 if (_res == NULL && PyErr_Occurred()) {
15677 p->error_indicator = 1;
15678 D(p->level--);
15679 return NULL;
15680 }
15681 goto done;
15682 }
15683 p->mark = _mark;
15684 D(fprintf(stderr, "%*c%s star_targets[%d-%d]: %s failed!\n", p->level, ' ',
15685 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target !','"));
15686 }
15687 { // star_target ((',' star_target))* ','?
15688 if (p->error_indicator) {
15689 D(p->level--);
15690 return NULL;
15691 }
15692 D(fprintf(stderr, "%*c> star_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target ((',' star_target))* ','?"));
15693 void *_opt_var;
15694 UNUSED(_opt_var); // Silence compiler warnings
15695 expr_ty a;
15696 asdl_seq * b;
15697 if (
15698 (a = star_target_rule(p)) // star_target
15699 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080015700 (b = _loop0_133_rule(p)) // ((',' star_target))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015701 &&
15702 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
15703 )
15704 {
15705 D(fprintf(stderr, "%*c+ star_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target ((',' star_target))* ','?"));
15706 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15707 if (_token == NULL) {
15708 D(p->level--);
15709 return NULL;
15710 }
15711 int _end_lineno = _token->end_lineno;
15712 UNUSED(_end_lineno); // Only used by EXTRA macro
15713 int _end_col_offset = _token->end_col_offset;
15714 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015715 _res = _PyAST_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , a , b ) ) , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015716 if (_res == NULL && PyErr_Occurred()) {
15717 p->error_indicator = 1;
15718 D(p->level--);
15719 return NULL;
15720 }
15721 goto done;
15722 }
15723 p->mark = _mark;
15724 D(fprintf(stderr, "%*c%s star_targets[%d-%d]: %s failed!\n", p->level, ' ',
15725 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target ((',' star_target))* ','?"));
15726 }
15727 _res = NULL;
15728 done:
15729 D(p->level--);
15730 return _res;
15731}
15732
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015733// star_targets_list_seq: ','.star_target+ ','?
Pablo Galindoa5634c42020-09-16 19:42:00 +010015734static asdl_expr_seq*
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015735star_targets_list_seq_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015736{
15737 D(p->level++);
15738 if (p->error_indicator) {
15739 D(p->level--);
15740 return NULL;
15741 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010015742 asdl_expr_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015743 int _mark = p->mark;
15744 { // ','.star_target+ ','?
15745 if (p->error_indicator) {
15746 D(p->level--);
15747 return NULL;
15748 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015749 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 +010015750 void *_opt_var;
15751 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +010015752 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015753 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080015754 (a = (asdl_expr_seq*)_gather_134_rule(p)) // ','.star_target+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015755 &&
15756 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
15757 )
15758 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015759 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 +010015760 _res = a;
15761 if (_res == NULL && PyErr_Occurred()) {
15762 p->error_indicator = 1;
15763 D(p->level--);
15764 return NULL;
15765 }
15766 goto done;
15767 }
15768 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015769 D(fprintf(stderr, "%*c%s star_targets_list_seq[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015770 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.star_target+ ','?"));
15771 }
15772 _res = NULL;
15773 done:
15774 D(p->level--);
15775 return _res;
15776}
15777
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015778// star_targets_tuple_seq: star_target ((',' star_target))+ ','? | star_target ','
15779static asdl_expr_seq*
15780star_targets_tuple_seq_rule(Parser *p)
15781{
15782 D(p->level++);
15783 if (p->error_indicator) {
15784 D(p->level--);
15785 return NULL;
15786 }
15787 asdl_expr_seq* _res = NULL;
15788 int _mark = p->mark;
15789 { // star_target ((',' star_target))+ ','?
15790 if (p->error_indicator) {
15791 D(p->level--);
15792 return NULL;
15793 }
15794 D(fprintf(stderr, "%*c> star_targets_tuple_seq[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target ((',' star_target))+ ','?"));
15795 void *_opt_var;
15796 UNUSED(_opt_var); // Silence compiler warnings
15797 expr_ty a;
15798 asdl_seq * b;
15799 if (
15800 (a = star_target_rule(p)) // star_target
15801 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080015802 (b = _loop1_136_rule(p)) // ((',' star_target))+
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015803 &&
15804 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
15805 )
15806 {
15807 D(fprintf(stderr, "%*c+ star_targets_tuple_seq[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target ((',' star_target))+ ','?"));
15808 _res = ( asdl_expr_seq * ) _PyPegen_seq_insert_in_front ( p , a , b );
15809 if (_res == NULL && PyErr_Occurred()) {
15810 p->error_indicator = 1;
15811 D(p->level--);
15812 return NULL;
15813 }
15814 goto done;
15815 }
15816 p->mark = _mark;
15817 D(fprintf(stderr, "%*c%s star_targets_tuple_seq[%d-%d]: %s failed!\n", p->level, ' ',
15818 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target ((',' star_target))+ ','?"));
15819 }
15820 { // star_target ','
15821 if (p->error_indicator) {
15822 D(p->level--);
15823 return NULL;
15824 }
15825 D(fprintf(stderr, "%*c> star_targets_tuple_seq[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target ','"));
15826 Token * _literal;
15827 expr_ty a;
15828 if (
15829 (a = star_target_rule(p)) // star_target
15830 &&
15831 (_literal = _PyPegen_expect_token(p, 12)) // token=','
15832 )
15833 {
15834 D(fprintf(stderr, "%*c+ star_targets_tuple_seq[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target ','"));
15835 _res = ( asdl_expr_seq * ) _PyPegen_singleton_seq ( p , a );
15836 if (_res == NULL && PyErr_Occurred()) {
15837 p->error_indicator = 1;
15838 D(p->level--);
15839 return NULL;
15840 }
15841 goto done;
15842 }
15843 p->mark = _mark;
15844 D(fprintf(stderr, "%*c%s star_targets_tuple_seq[%d-%d]: %s failed!\n", p->level, ' ',
15845 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target ','"));
15846 }
15847 _res = NULL;
15848 done:
15849 D(p->level--);
15850 return _res;
15851}
15852
15853// star_target: '*' (!'*' star_target) | target_with_star_atom
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015854static expr_ty
15855star_target_rule(Parser *p)
15856{
15857 D(p->level++);
15858 if (p->error_indicator) {
15859 D(p->level--);
15860 return NULL;
15861 }
15862 expr_ty _res = NULL;
15863 if (_PyPegen_is_memoized(p, star_target_type, &_res)) {
15864 D(p->level--);
15865 return _res;
15866 }
15867 int _mark = p->mark;
15868 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
15869 p->error_indicator = 1;
15870 D(p->level--);
15871 return NULL;
15872 }
15873 int _start_lineno = p->tokens[_mark]->lineno;
15874 UNUSED(_start_lineno); // Only used by EXTRA macro
15875 int _start_col_offset = p->tokens[_mark]->col_offset;
15876 UNUSED(_start_col_offset); // Only used by EXTRA macro
15877 { // '*' (!'*' star_target)
15878 if (p->error_indicator) {
15879 D(p->level--);
15880 return NULL;
15881 }
15882 D(fprintf(stderr, "%*c> star_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (!'*' star_target)"));
15883 Token * _literal;
15884 void *a;
15885 if (
15886 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
15887 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080015888 (a = _tmp_137_rule(p)) // !'*' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015889 )
15890 {
15891 D(fprintf(stderr, "%*c+ star_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' (!'*' star_target)"));
15892 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15893 if (_token == NULL) {
15894 D(p->level--);
15895 return NULL;
15896 }
15897 int _end_lineno = _token->end_lineno;
15898 UNUSED(_end_lineno); // Only used by EXTRA macro
15899 int _end_col_offset = _token->end_col_offset;
15900 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015901 _res = _PyAST_Starred ( CHECK ( expr_ty , _PyPegen_set_expr_context ( p , a , Store ) ) , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015902 if (_res == NULL && PyErr_Occurred()) {
15903 p->error_indicator = 1;
15904 D(p->level--);
15905 return NULL;
15906 }
15907 goto done;
15908 }
15909 p->mark = _mark;
15910 D(fprintf(stderr, "%*c%s star_target[%d-%d]: %s failed!\n", p->level, ' ',
15911 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' (!'*' star_target)"));
15912 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015913 { // target_with_star_atom
15914 if (p->error_indicator) {
15915 D(p->level--);
15916 return NULL;
15917 }
15918 D(fprintf(stderr, "%*c> star_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "target_with_star_atom"));
15919 expr_ty target_with_star_atom_var;
15920 if (
15921 (target_with_star_atom_var = target_with_star_atom_rule(p)) // target_with_star_atom
15922 )
15923 {
15924 D(fprintf(stderr, "%*c+ star_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "target_with_star_atom"));
15925 _res = target_with_star_atom_var;
15926 goto done;
15927 }
15928 p->mark = _mark;
15929 D(fprintf(stderr, "%*c%s star_target[%d-%d]: %s failed!\n", p->level, ' ',
15930 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "target_with_star_atom"));
15931 }
15932 _res = NULL;
15933 done:
15934 _PyPegen_insert_memo(p, _mark, star_target_type, _res);
15935 D(p->level--);
15936 return _res;
15937}
15938
15939// target_with_star_atom:
15940// | t_primary '.' NAME !t_lookahead
15941// | t_primary '[' slices ']' !t_lookahead
15942// | star_atom
15943static expr_ty
15944target_with_star_atom_rule(Parser *p)
15945{
15946 D(p->level++);
15947 if (p->error_indicator) {
15948 D(p->level--);
15949 return NULL;
15950 }
15951 expr_ty _res = NULL;
15952 if (_PyPegen_is_memoized(p, target_with_star_atom_type, &_res)) {
15953 D(p->level--);
15954 return _res;
15955 }
15956 int _mark = p->mark;
15957 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
15958 p->error_indicator = 1;
15959 D(p->level--);
15960 return NULL;
15961 }
15962 int _start_lineno = p->tokens[_mark]->lineno;
15963 UNUSED(_start_lineno); // Only used by EXTRA macro
15964 int _start_col_offset = p->tokens[_mark]->col_offset;
15965 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015966 { // t_primary '.' NAME !t_lookahead
15967 if (p->error_indicator) {
15968 D(p->level--);
15969 return NULL;
15970 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015971 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 +010015972 Token * _literal;
15973 expr_ty a;
15974 expr_ty b;
15975 if (
15976 (a = t_primary_rule(p)) // t_primary
15977 &&
15978 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
15979 &&
15980 (b = _PyPegen_name_token(p)) // NAME
15981 &&
15982 _PyPegen_lookahead(0, t_lookahead_rule, p)
15983 )
15984 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015985 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 +010015986 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15987 if (_token == NULL) {
15988 D(p->level--);
15989 return NULL;
15990 }
15991 int _end_lineno = _token->end_lineno;
15992 UNUSED(_end_lineno); // Only used by EXTRA macro
15993 int _end_col_offset = _token->end_col_offset;
15994 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015995 _res = _PyAST_Attribute ( a , b -> v . Name . id , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015996 if (_res == NULL && PyErr_Occurred()) {
15997 p->error_indicator = 1;
15998 D(p->level--);
15999 return NULL;
16000 }
16001 goto done;
16002 }
16003 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016004 D(fprintf(stderr, "%*c%s target_with_star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016005 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
16006 }
16007 { // t_primary '[' slices ']' !t_lookahead
16008 if (p->error_indicator) {
16009 D(p->level--);
16010 return NULL;
16011 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016012 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 +010016013 Token * _literal;
16014 Token * _literal_1;
16015 expr_ty a;
16016 expr_ty b;
16017 if (
16018 (a = t_primary_rule(p)) // t_primary
16019 &&
16020 (_literal = _PyPegen_expect_token(p, 9)) // token='['
16021 &&
16022 (b = slices_rule(p)) // slices
16023 &&
16024 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
16025 &&
16026 _PyPegen_lookahead(0, t_lookahead_rule, p)
16027 )
16028 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016029 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 +010016030 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16031 if (_token == NULL) {
16032 D(p->level--);
16033 return NULL;
16034 }
16035 int _end_lineno = _token->end_lineno;
16036 UNUSED(_end_lineno); // Only used by EXTRA macro
16037 int _end_col_offset = _token->end_col_offset;
16038 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016039 _res = _PyAST_Subscript ( a , b , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016040 if (_res == NULL && PyErr_Occurred()) {
16041 p->error_indicator = 1;
16042 D(p->level--);
16043 return NULL;
16044 }
16045 goto done;
16046 }
16047 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016048 D(fprintf(stderr, "%*c%s target_with_star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016049 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
16050 }
16051 { // star_atom
16052 if (p->error_indicator) {
16053 D(p->level--);
16054 return NULL;
16055 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016056 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 +010016057 expr_ty star_atom_var;
16058 if (
16059 (star_atom_var = star_atom_rule(p)) // star_atom
16060 )
16061 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016062 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 +010016063 _res = star_atom_var;
16064 goto done;
16065 }
16066 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016067 D(fprintf(stderr, "%*c%s target_with_star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016068 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_atom"));
16069 }
16070 _res = NULL;
16071 done:
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016072 _PyPegen_insert_memo(p, _mark, target_with_star_atom_type, _res);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016073 D(p->level--);
16074 return _res;
16075}
16076
16077// star_atom:
16078// | NAME
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016079// | '(' target_with_star_atom ')'
16080// | '(' star_targets_tuple_seq? ')'
16081// | '[' star_targets_list_seq? ']'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016082static expr_ty
16083star_atom_rule(Parser *p)
16084{
16085 D(p->level++);
16086 if (p->error_indicator) {
16087 D(p->level--);
16088 return NULL;
16089 }
16090 expr_ty _res = NULL;
16091 int _mark = p->mark;
16092 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
16093 p->error_indicator = 1;
16094 D(p->level--);
16095 return NULL;
16096 }
16097 int _start_lineno = p->tokens[_mark]->lineno;
16098 UNUSED(_start_lineno); // Only used by EXTRA macro
16099 int _start_col_offset = p->tokens[_mark]->col_offset;
16100 UNUSED(_start_col_offset); // Only used by EXTRA macro
16101 { // NAME
16102 if (p->error_indicator) {
16103 D(p->level--);
16104 return NULL;
16105 }
16106 D(fprintf(stderr, "%*c> star_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
16107 expr_ty a;
16108 if (
16109 (a = _PyPegen_name_token(p)) // NAME
16110 )
16111 {
16112 D(fprintf(stderr, "%*c+ star_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
16113 _res = _PyPegen_set_expr_context ( p , a , Store );
16114 if (_res == NULL && PyErr_Occurred()) {
16115 p->error_indicator = 1;
16116 D(p->level--);
16117 return NULL;
16118 }
16119 goto done;
16120 }
16121 p->mark = _mark;
16122 D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
16123 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
16124 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016125 { // '(' target_with_star_atom ')'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016126 if (p->error_indicator) {
16127 D(p->level--);
16128 return NULL;
16129 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016130 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 +010016131 Token * _literal;
16132 Token * _literal_1;
16133 expr_ty a;
16134 if (
16135 (_literal = _PyPegen_expect_token(p, 7)) // token='('
16136 &&
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016137 (a = target_with_star_atom_rule(p)) // target_with_star_atom
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016138 &&
16139 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
16140 )
16141 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016142 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 +010016143 _res = _PyPegen_set_expr_context ( p , a , Store );
16144 if (_res == NULL && PyErr_Occurred()) {
16145 p->error_indicator = 1;
16146 D(p->level--);
16147 return NULL;
16148 }
16149 goto done;
16150 }
16151 p->mark = _mark;
16152 D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016153 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' target_with_star_atom ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016154 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016155 { // '(' star_targets_tuple_seq? ')'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016156 if (p->error_indicator) {
16157 D(p->level--);
16158 return NULL;
16159 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016160 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 +010016161 Token * _literal;
16162 Token * _literal_1;
16163 void *a;
16164 if (
16165 (_literal = _PyPegen_expect_token(p, 7)) // token='('
16166 &&
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016167 (a = star_targets_tuple_seq_rule(p), 1) // star_targets_tuple_seq?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016168 &&
16169 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
16170 )
16171 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016172 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 +010016173 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16174 if (_token == NULL) {
16175 D(p->level--);
16176 return NULL;
16177 }
16178 int _end_lineno = _token->end_lineno;
16179 UNUSED(_end_lineno); // Only used by EXTRA macro
16180 int _end_col_offset = _token->end_col_offset;
16181 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016182 _res = _PyAST_Tuple ( a , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016183 if (_res == NULL && PyErr_Occurred()) {
16184 p->error_indicator = 1;
16185 D(p->level--);
16186 return NULL;
16187 }
16188 goto done;
16189 }
16190 p->mark = _mark;
16191 D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016192 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' star_targets_tuple_seq? ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016193 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016194 { // '[' star_targets_list_seq? ']'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016195 if (p->error_indicator) {
16196 D(p->level--);
16197 return NULL;
16198 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016199 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 +010016200 Token * _literal;
16201 Token * _literal_1;
16202 void *a;
16203 if (
16204 (_literal = _PyPegen_expect_token(p, 9)) // token='['
16205 &&
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016206 (a = star_targets_list_seq_rule(p), 1) // star_targets_list_seq?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016207 &&
16208 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
16209 )
16210 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016211 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 +010016212 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16213 if (_token == NULL) {
16214 D(p->level--);
16215 return NULL;
16216 }
16217 int _end_lineno = _token->end_lineno;
16218 UNUSED(_end_lineno); // Only used by EXTRA macro
16219 int _end_col_offset = _token->end_col_offset;
16220 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016221 _res = _PyAST_List ( a , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016222 if (_res == NULL && PyErr_Occurred()) {
16223 p->error_indicator = 1;
16224 D(p->level--);
16225 return NULL;
16226 }
16227 goto done;
16228 }
16229 p->mark = _mark;
16230 D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016231 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' star_targets_list_seq? ']'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016232 }
16233 _res = NULL;
16234 done:
16235 D(p->level--);
16236 return _res;
16237}
16238
16239// single_target: single_subscript_attribute_target | NAME | '(' single_target ')'
16240static expr_ty
16241single_target_rule(Parser *p)
16242{
16243 D(p->level++);
16244 if (p->error_indicator) {
16245 D(p->level--);
16246 return NULL;
16247 }
16248 expr_ty _res = NULL;
16249 int _mark = p->mark;
16250 { // single_subscript_attribute_target
16251 if (p->error_indicator) {
16252 D(p->level--);
16253 return NULL;
16254 }
16255 D(fprintf(stderr, "%*c> single_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "single_subscript_attribute_target"));
16256 expr_ty single_subscript_attribute_target_var;
16257 if (
16258 (single_subscript_attribute_target_var = single_subscript_attribute_target_rule(p)) // single_subscript_attribute_target
16259 )
16260 {
16261 D(fprintf(stderr, "%*c+ single_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "single_subscript_attribute_target"));
16262 _res = single_subscript_attribute_target_var;
16263 goto done;
16264 }
16265 p->mark = _mark;
16266 D(fprintf(stderr, "%*c%s single_target[%d-%d]: %s failed!\n", p->level, ' ',
16267 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "single_subscript_attribute_target"));
16268 }
16269 { // NAME
16270 if (p->error_indicator) {
16271 D(p->level--);
16272 return NULL;
16273 }
16274 D(fprintf(stderr, "%*c> single_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
16275 expr_ty a;
16276 if (
16277 (a = _PyPegen_name_token(p)) // NAME
16278 )
16279 {
16280 D(fprintf(stderr, "%*c+ single_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
16281 _res = _PyPegen_set_expr_context ( p , a , Store );
16282 if (_res == NULL && PyErr_Occurred()) {
16283 p->error_indicator = 1;
16284 D(p->level--);
16285 return NULL;
16286 }
16287 goto done;
16288 }
16289 p->mark = _mark;
16290 D(fprintf(stderr, "%*c%s single_target[%d-%d]: %s failed!\n", p->level, ' ',
16291 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
16292 }
16293 { // '(' single_target ')'
16294 if (p->error_indicator) {
16295 D(p->level--);
16296 return NULL;
16297 }
16298 D(fprintf(stderr, "%*c> single_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'"));
16299 Token * _literal;
16300 Token * _literal_1;
16301 expr_ty a;
16302 if (
16303 (_literal = _PyPegen_expect_token(p, 7)) // token='('
16304 &&
16305 (a = single_target_rule(p)) // single_target
16306 &&
16307 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
16308 )
16309 {
16310 D(fprintf(stderr, "%*c+ single_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'"));
16311 _res = a;
16312 if (_res == NULL && PyErr_Occurred()) {
16313 p->error_indicator = 1;
16314 D(p->level--);
16315 return NULL;
16316 }
16317 goto done;
16318 }
16319 p->mark = _mark;
16320 D(fprintf(stderr, "%*c%s single_target[%d-%d]: %s failed!\n", p->level, ' ',
16321 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' single_target ')'"));
16322 }
16323 _res = NULL;
16324 done:
16325 D(p->level--);
16326 return _res;
16327}
16328
16329// single_subscript_attribute_target:
16330// | t_primary '.' NAME !t_lookahead
16331// | t_primary '[' slices ']' !t_lookahead
16332static expr_ty
16333single_subscript_attribute_target_rule(Parser *p)
16334{
16335 D(p->level++);
16336 if (p->error_indicator) {
16337 D(p->level--);
16338 return NULL;
16339 }
16340 expr_ty _res = NULL;
16341 int _mark = p->mark;
16342 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
16343 p->error_indicator = 1;
16344 D(p->level--);
16345 return NULL;
16346 }
16347 int _start_lineno = p->tokens[_mark]->lineno;
16348 UNUSED(_start_lineno); // Only used by EXTRA macro
16349 int _start_col_offset = p->tokens[_mark]->col_offset;
16350 UNUSED(_start_col_offset); // Only used by EXTRA macro
16351 { // t_primary '.' NAME !t_lookahead
16352 if (p->error_indicator) {
16353 D(p->level--);
16354 return NULL;
16355 }
16356 D(fprintf(stderr, "%*c> single_subscript_attribute_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
16357 Token * _literal;
16358 expr_ty a;
16359 expr_ty b;
16360 if (
16361 (a = t_primary_rule(p)) // t_primary
16362 &&
16363 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
16364 &&
16365 (b = _PyPegen_name_token(p)) // NAME
16366 &&
16367 _PyPegen_lookahead(0, t_lookahead_rule, p)
16368 )
16369 {
16370 D(fprintf(stderr, "%*c+ single_subscript_attribute_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
16371 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16372 if (_token == NULL) {
16373 D(p->level--);
16374 return NULL;
16375 }
16376 int _end_lineno = _token->end_lineno;
16377 UNUSED(_end_lineno); // Only used by EXTRA macro
16378 int _end_col_offset = _token->end_col_offset;
16379 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016380 _res = _PyAST_Attribute ( a , b -> v . Name . id , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016381 if (_res == NULL && PyErr_Occurred()) {
16382 p->error_indicator = 1;
16383 D(p->level--);
16384 return NULL;
16385 }
16386 goto done;
16387 }
16388 p->mark = _mark;
16389 D(fprintf(stderr, "%*c%s single_subscript_attribute_target[%d-%d]: %s failed!\n", p->level, ' ',
16390 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
16391 }
16392 { // t_primary '[' slices ']' !t_lookahead
16393 if (p->error_indicator) {
16394 D(p->level--);
16395 return NULL;
16396 }
16397 D(fprintf(stderr, "%*c> single_subscript_attribute_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
16398 Token * _literal;
16399 Token * _literal_1;
16400 expr_ty a;
16401 expr_ty b;
16402 if (
16403 (a = t_primary_rule(p)) // t_primary
16404 &&
16405 (_literal = _PyPegen_expect_token(p, 9)) // token='['
16406 &&
16407 (b = slices_rule(p)) // slices
16408 &&
16409 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
16410 &&
16411 _PyPegen_lookahead(0, t_lookahead_rule, p)
16412 )
16413 {
16414 D(fprintf(stderr, "%*c+ single_subscript_attribute_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
16415 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16416 if (_token == NULL) {
16417 D(p->level--);
16418 return NULL;
16419 }
16420 int _end_lineno = _token->end_lineno;
16421 UNUSED(_end_lineno); // Only used by EXTRA macro
16422 int _end_col_offset = _token->end_col_offset;
16423 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016424 _res = _PyAST_Subscript ( a , b , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016425 if (_res == NULL && PyErr_Occurred()) {
16426 p->error_indicator = 1;
16427 D(p->level--);
16428 return NULL;
16429 }
16430 goto done;
16431 }
16432 p->mark = _mark;
16433 D(fprintf(stderr, "%*c%s single_subscript_attribute_target[%d-%d]: %s failed!\n", p->level, ' ',
16434 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
16435 }
16436 _res = NULL;
16437 done:
16438 D(p->level--);
16439 return _res;
16440}
16441
16442// del_targets: ','.del_target+ ','?
Pablo Galindoa5634c42020-09-16 19:42:00 +010016443static asdl_expr_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016444del_targets_rule(Parser *p)
16445{
16446 D(p->level++);
16447 if (p->error_indicator) {
16448 D(p->level--);
16449 return NULL;
16450 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010016451 asdl_expr_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016452 int _mark = p->mark;
16453 { // ','.del_target+ ','?
16454 if (p->error_indicator) {
16455 D(p->level--);
16456 return NULL;
16457 }
16458 D(fprintf(stderr, "%*c> del_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.del_target+ ','?"));
16459 void *_opt_var;
16460 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +010016461 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016462 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080016463 (a = (asdl_expr_seq*)_gather_138_rule(p)) // ','.del_target+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016464 &&
16465 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
16466 )
16467 {
16468 D(fprintf(stderr, "%*c+ del_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.del_target+ ','?"));
16469 _res = a;
16470 if (_res == NULL && PyErr_Occurred()) {
16471 p->error_indicator = 1;
16472 D(p->level--);
16473 return NULL;
16474 }
16475 goto done;
16476 }
16477 p->mark = _mark;
16478 D(fprintf(stderr, "%*c%s del_targets[%d-%d]: %s failed!\n", p->level, ' ',
16479 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.del_target+ ','?"));
16480 }
16481 _res = NULL;
16482 done:
16483 D(p->level--);
16484 return _res;
16485}
16486
16487// del_target:
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016488// | t_primary '.' NAME !t_lookahead
16489// | t_primary '[' slices ']' !t_lookahead
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016490// | del_t_atom
16491static expr_ty
16492del_target_rule(Parser *p)
16493{
16494 D(p->level++);
16495 if (p->error_indicator) {
16496 D(p->level--);
16497 return NULL;
16498 }
16499 expr_ty _res = NULL;
16500 if (_PyPegen_is_memoized(p, del_target_type, &_res)) {
16501 D(p->level--);
16502 return _res;
16503 }
16504 int _mark = p->mark;
16505 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
16506 p->error_indicator = 1;
16507 D(p->level--);
16508 return NULL;
16509 }
16510 int _start_lineno = p->tokens[_mark]->lineno;
16511 UNUSED(_start_lineno); // Only used by EXTRA macro
16512 int _start_col_offset = p->tokens[_mark]->col_offset;
16513 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016514 { // t_primary '.' NAME !t_lookahead
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016515 if (p->error_indicator) {
16516 D(p->level--);
16517 return NULL;
16518 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016519 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 +010016520 Token * _literal;
16521 expr_ty a;
16522 expr_ty b;
16523 if (
16524 (a = t_primary_rule(p)) // t_primary
16525 &&
16526 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
16527 &&
16528 (b = _PyPegen_name_token(p)) // NAME
16529 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016530 _PyPegen_lookahead(0, t_lookahead_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016531 )
16532 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016533 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 +010016534 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16535 if (_token == NULL) {
16536 D(p->level--);
16537 return NULL;
16538 }
16539 int _end_lineno = _token->end_lineno;
16540 UNUSED(_end_lineno); // Only used by EXTRA macro
16541 int _end_col_offset = _token->end_col_offset;
16542 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016543 _res = _PyAST_Attribute ( a , b -> v . Name . id , Del , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016544 if (_res == NULL && PyErr_Occurred()) {
16545 p->error_indicator = 1;
16546 D(p->level--);
16547 return NULL;
16548 }
16549 goto done;
16550 }
16551 p->mark = _mark;
16552 D(fprintf(stderr, "%*c%s del_target[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016553 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016554 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016555 { // t_primary '[' slices ']' !t_lookahead
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016556 if (p->error_indicator) {
16557 D(p->level--);
16558 return NULL;
16559 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016560 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 +010016561 Token * _literal;
16562 Token * _literal_1;
16563 expr_ty a;
16564 expr_ty b;
16565 if (
16566 (a = t_primary_rule(p)) // t_primary
16567 &&
16568 (_literal = _PyPegen_expect_token(p, 9)) // token='['
16569 &&
16570 (b = slices_rule(p)) // slices
16571 &&
16572 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
16573 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016574 _PyPegen_lookahead(0, t_lookahead_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016575 )
16576 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016577 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 +010016578 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16579 if (_token == NULL) {
16580 D(p->level--);
16581 return NULL;
16582 }
16583 int _end_lineno = _token->end_lineno;
16584 UNUSED(_end_lineno); // Only used by EXTRA macro
16585 int _end_col_offset = _token->end_col_offset;
16586 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016587 _res = _PyAST_Subscript ( a , b , Del , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016588 if (_res == NULL && PyErr_Occurred()) {
16589 p->error_indicator = 1;
16590 D(p->level--);
16591 return NULL;
16592 }
16593 goto done;
16594 }
16595 p->mark = _mark;
16596 D(fprintf(stderr, "%*c%s del_target[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016597 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016598 }
16599 { // del_t_atom
16600 if (p->error_indicator) {
16601 D(p->level--);
16602 return NULL;
16603 }
16604 D(fprintf(stderr, "%*c> del_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "del_t_atom"));
16605 expr_ty del_t_atom_var;
16606 if (
16607 (del_t_atom_var = del_t_atom_rule(p)) // del_t_atom
16608 )
16609 {
16610 D(fprintf(stderr, "%*c+ del_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "del_t_atom"));
16611 _res = del_t_atom_var;
16612 goto done;
16613 }
16614 p->mark = _mark;
16615 D(fprintf(stderr, "%*c%s del_target[%d-%d]: %s failed!\n", p->level, ' ',
16616 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "del_t_atom"));
16617 }
16618 _res = NULL;
16619 done:
16620 _PyPegen_insert_memo(p, _mark, del_target_type, _res);
16621 D(p->level--);
16622 return _res;
16623}
16624
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016625// del_t_atom: NAME | '(' del_target ')' | '(' del_targets? ')' | '[' del_targets? ']'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016626static expr_ty
16627del_t_atom_rule(Parser *p)
16628{
16629 D(p->level++);
16630 if (p->error_indicator) {
16631 D(p->level--);
16632 return NULL;
16633 }
16634 expr_ty _res = NULL;
16635 int _mark = p->mark;
16636 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
16637 p->error_indicator = 1;
16638 D(p->level--);
16639 return NULL;
16640 }
16641 int _start_lineno = p->tokens[_mark]->lineno;
16642 UNUSED(_start_lineno); // Only used by EXTRA macro
16643 int _start_col_offset = p->tokens[_mark]->col_offset;
16644 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016645 { // NAME
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016646 if (p->error_indicator) {
16647 D(p->level--);
16648 return NULL;
16649 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016650 D(fprintf(stderr, "%*c> del_t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016651 expr_ty a;
16652 if (
16653 (a = _PyPegen_name_token(p)) // NAME
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016654 )
16655 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016656 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 +010016657 _res = _PyPegen_set_expr_context ( p , a , Del );
16658 if (_res == NULL && PyErr_Occurred()) {
16659 p->error_indicator = 1;
16660 D(p->level--);
16661 return NULL;
16662 }
16663 goto done;
16664 }
16665 p->mark = _mark;
16666 D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016667 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016668 }
16669 { // '(' del_target ')'
16670 if (p->error_indicator) {
16671 D(p->level--);
16672 return NULL;
16673 }
16674 D(fprintf(stderr, "%*c> del_t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' del_target ')'"));
16675 Token * _literal;
16676 Token * _literal_1;
16677 expr_ty a;
16678 if (
16679 (_literal = _PyPegen_expect_token(p, 7)) // token='('
16680 &&
16681 (a = del_target_rule(p)) // del_target
16682 &&
16683 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
16684 )
16685 {
16686 D(fprintf(stderr, "%*c+ del_t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' del_target ')'"));
16687 _res = _PyPegen_set_expr_context ( p , a , Del );
16688 if (_res == NULL && PyErr_Occurred()) {
16689 p->error_indicator = 1;
16690 D(p->level--);
16691 return NULL;
16692 }
16693 goto done;
16694 }
16695 p->mark = _mark;
16696 D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
16697 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' del_target ')'"));
16698 }
16699 { // '(' del_targets? ')'
16700 if (p->error_indicator) {
16701 D(p->level--);
16702 return NULL;
16703 }
16704 D(fprintf(stderr, "%*c> del_t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' del_targets? ')'"));
16705 Token * _literal;
16706 Token * _literal_1;
16707 void *a;
16708 if (
16709 (_literal = _PyPegen_expect_token(p, 7)) // token='('
16710 &&
16711 (a = del_targets_rule(p), 1) // del_targets?
16712 &&
16713 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
16714 )
16715 {
16716 D(fprintf(stderr, "%*c+ del_t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' del_targets? ')'"));
16717 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16718 if (_token == NULL) {
16719 D(p->level--);
16720 return NULL;
16721 }
16722 int _end_lineno = _token->end_lineno;
16723 UNUSED(_end_lineno); // Only used by EXTRA macro
16724 int _end_col_offset = _token->end_col_offset;
16725 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016726 _res = _PyAST_Tuple ( a , Del , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016727 if (_res == NULL && PyErr_Occurred()) {
16728 p->error_indicator = 1;
16729 D(p->level--);
16730 return NULL;
16731 }
16732 goto done;
16733 }
16734 p->mark = _mark;
16735 D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
16736 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' del_targets? ')'"));
16737 }
16738 { // '[' del_targets? ']'
16739 if (p->error_indicator) {
16740 D(p->level--);
16741 return NULL;
16742 }
16743 D(fprintf(stderr, "%*c> del_t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' del_targets? ']'"));
16744 Token * _literal;
16745 Token * _literal_1;
16746 void *a;
16747 if (
16748 (_literal = _PyPegen_expect_token(p, 9)) // token='['
16749 &&
16750 (a = del_targets_rule(p), 1) // del_targets?
16751 &&
16752 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
16753 )
16754 {
16755 D(fprintf(stderr, "%*c+ del_t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'[' del_targets? ']'"));
16756 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16757 if (_token == NULL) {
16758 D(p->level--);
16759 return NULL;
16760 }
16761 int _end_lineno = _token->end_lineno;
16762 UNUSED(_end_lineno); // Only used by EXTRA macro
16763 int _end_col_offset = _token->end_col_offset;
16764 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016765 _res = _PyAST_List ( a , Del , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016766 if (_res == NULL && PyErr_Occurred()) {
16767 p->error_indicator = 1;
16768 D(p->level--);
16769 return NULL;
16770 }
16771 goto done;
16772 }
16773 p->mark = _mark;
16774 D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
16775 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' del_targets? ']'"));
16776 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016777 _res = NULL;
16778 done:
16779 D(p->level--);
16780 return _res;
16781}
16782
16783// targets: ','.target+ ','?
Pablo Galindoa5634c42020-09-16 19:42:00 +010016784static asdl_expr_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016785targets_rule(Parser *p)
16786{
16787 D(p->level++);
16788 if (p->error_indicator) {
16789 D(p->level--);
16790 return NULL;
16791 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010016792 asdl_expr_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016793 int _mark = p->mark;
16794 { // ','.target+ ','?
16795 if (p->error_indicator) {
16796 D(p->level--);
16797 return NULL;
16798 }
16799 D(fprintf(stderr, "%*c> targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.target+ ','?"));
16800 void *_opt_var;
16801 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +010016802 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016803 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080016804 (a = (asdl_expr_seq*)_gather_140_rule(p)) // ','.target+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016805 &&
16806 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
16807 )
16808 {
16809 D(fprintf(stderr, "%*c+ targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.target+ ','?"));
16810 _res = a;
16811 if (_res == NULL && PyErr_Occurred()) {
16812 p->error_indicator = 1;
16813 D(p->level--);
16814 return NULL;
16815 }
16816 goto done;
16817 }
16818 p->mark = _mark;
16819 D(fprintf(stderr, "%*c%s targets[%d-%d]: %s failed!\n", p->level, ' ',
16820 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.target+ ','?"));
16821 }
16822 _res = NULL;
16823 done:
16824 D(p->level--);
16825 return _res;
16826}
16827
16828// target:
16829// | t_primary '.' NAME !t_lookahead
16830// | t_primary '[' slices ']' !t_lookahead
16831// | t_atom
16832static expr_ty
16833target_rule(Parser *p)
16834{
16835 D(p->level++);
16836 if (p->error_indicator) {
16837 D(p->level--);
16838 return NULL;
16839 }
16840 expr_ty _res = NULL;
16841 if (_PyPegen_is_memoized(p, target_type, &_res)) {
16842 D(p->level--);
16843 return _res;
16844 }
16845 int _mark = p->mark;
16846 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
16847 p->error_indicator = 1;
16848 D(p->level--);
16849 return NULL;
16850 }
16851 int _start_lineno = p->tokens[_mark]->lineno;
16852 UNUSED(_start_lineno); // Only used by EXTRA macro
16853 int _start_col_offset = p->tokens[_mark]->col_offset;
16854 UNUSED(_start_col_offset); // Only used by EXTRA macro
16855 { // t_primary '.' NAME !t_lookahead
16856 if (p->error_indicator) {
16857 D(p->level--);
16858 return NULL;
16859 }
16860 D(fprintf(stderr, "%*c> target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
16861 Token * _literal;
16862 expr_ty a;
16863 expr_ty b;
16864 if (
16865 (a = t_primary_rule(p)) // t_primary
16866 &&
16867 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
16868 &&
16869 (b = _PyPegen_name_token(p)) // NAME
16870 &&
16871 _PyPegen_lookahead(0, t_lookahead_rule, p)
16872 )
16873 {
16874 D(fprintf(stderr, "%*c+ target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
16875 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16876 if (_token == NULL) {
16877 D(p->level--);
16878 return NULL;
16879 }
16880 int _end_lineno = _token->end_lineno;
16881 UNUSED(_end_lineno); // Only used by EXTRA macro
16882 int _end_col_offset = _token->end_col_offset;
16883 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016884 _res = _PyAST_Attribute ( a , b -> v . Name . id , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016885 if (_res == NULL && PyErr_Occurred()) {
16886 p->error_indicator = 1;
16887 D(p->level--);
16888 return NULL;
16889 }
16890 goto done;
16891 }
16892 p->mark = _mark;
16893 D(fprintf(stderr, "%*c%s target[%d-%d]: %s failed!\n", p->level, ' ',
16894 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
16895 }
16896 { // t_primary '[' slices ']' !t_lookahead
16897 if (p->error_indicator) {
16898 D(p->level--);
16899 return NULL;
16900 }
16901 D(fprintf(stderr, "%*c> target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
16902 Token * _literal;
16903 Token * _literal_1;
16904 expr_ty a;
16905 expr_ty b;
16906 if (
16907 (a = t_primary_rule(p)) // t_primary
16908 &&
16909 (_literal = _PyPegen_expect_token(p, 9)) // token='['
16910 &&
16911 (b = slices_rule(p)) // slices
16912 &&
16913 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
16914 &&
16915 _PyPegen_lookahead(0, t_lookahead_rule, p)
16916 )
16917 {
16918 D(fprintf(stderr, "%*c+ target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
16919 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16920 if (_token == NULL) {
16921 D(p->level--);
16922 return NULL;
16923 }
16924 int _end_lineno = _token->end_lineno;
16925 UNUSED(_end_lineno); // Only used by EXTRA macro
16926 int _end_col_offset = _token->end_col_offset;
16927 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016928 _res = _PyAST_Subscript ( a , b , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016929 if (_res == NULL && PyErr_Occurred()) {
16930 p->error_indicator = 1;
16931 D(p->level--);
16932 return NULL;
16933 }
16934 goto done;
16935 }
16936 p->mark = _mark;
16937 D(fprintf(stderr, "%*c%s target[%d-%d]: %s failed!\n", p->level, ' ',
16938 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
16939 }
16940 { // t_atom
16941 if (p->error_indicator) {
16942 D(p->level--);
16943 return NULL;
16944 }
16945 D(fprintf(stderr, "%*c> target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_atom"));
16946 expr_ty t_atom_var;
16947 if (
16948 (t_atom_var = t_atom_rule(p)) // t_atom
16949 )
16950 {
16951 D(fprintf(stderr, "%*c+ target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_atom"));
16952 _res = t_atom_var;
16953 goto done;
16954 }
16955 p->mark = _mark;
16956 D(fprintf(stderr, "%*c%s target[%d-%d]: %s failed!\n", p->level, ' ',
16957 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_atom"));
16958 }
16959 _res = NULL;
16960 done:
16961 _PyPegen_insert_memo(p, _mark, target_type, _res);
16962 D(p->level--);
16963 return _res;
16964}
16965
16966// Left-recursive
16967// t_primary:
16968// | t_primary '.' NAME &t_lookahead
16969// | t_primary '[' slices ']' &t_lookahead
16970// | t_primary genexp &t_lookahead
16971// | t_primary '(' arguments? ')' &t_lookahead
16972// | atom &t_lookahead
16973static expr_ty t_primary_raw(Parser *);
16974static expr_ty
16975t_primary_rule(Parser *p)
16976{
16977 D(p->level++);
16978 expr_ty _res = NULL;
16979 if (_PyPegen_is_memoized(p, t_primary_type, &_res)) {
16980 D(p->level--);
16981 return _res;
16982 }
16983 int _mark = p->mark;
16984 int _resmark = p->mark;
16985 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080016986 int tmpvar_9 = _PyPegen_update_memo(p, _mark, t_primary_type, _res);
16987 if (tmpvar_9) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016988 D(p->level--);
16989 return _res;
16990 }
16991 p->mark = _mark;
16992 void *_raw = t_primary_raw(p);
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020016993 if (p->error_indicator)
16994 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016995 if (_raw == NULL || p->mark <= _resmark)
16996 break;
16997 _resmark = p->mark;
16998 _res = _raw;
16999 }
17000 p->mark = _resmark;
17001 D(p->level--);
17002 return _res;
17003}
17004static expr_ty
17005t_primary_raw(Parser *p)
17006{
17007 D(p->level++);
17008 if (p->error_indicator) {
17009 D(p->level--);
17010 return NULL;
17011 }
17012 expr_ty _res = NULL;
17013 int _mark = p->mark;
17014 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
17015 p->error_indicator = 1;
17016 D(p->level--);
17017 return NULL;
17018 }
17019 int _start_lineno = p->tokens[_mark]->lineno;
17020 UNUSED(_start_lineno); // Only used by EXTRA macro
17021 int _start_col_offset = p->tokens[_mark]->col_offset;
17022 UNUSED(_start_col_offset); // Only used by EXTRA macro
17023 { // t_primary '.' NAME &t_lookahead
17024 if (p->error_indicator) {
17025 D(p->level--);
17026 return NULL;
17027 }
17028 D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME &t_lookahead"));
17029 Token * _literal;
17030 expr_ty a;
17031 expr_ty b;
17032 if (
17033 (a = t_primary_rule(p)) // t_primary
17034 &&
17035 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
17036 &&
17037 (b = _PyPegen_name_token(p)) // NAME
17038 &&
17039 _PyPegen_lookahead(1, t_lookahead_rule, p)
17040 )
17041 {
17042 D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME &t_lookahead"));
17043 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17044 if (_token == NULL) {
17045 D(p->level--);
17046 return NULL;
17047 }
17048 int _end_lineno = _token->end_lineno;
17049 UNUSED(_end_lineno); // Only used by EXTRA macro
17050 int _end_col_offset = _token->end_col_offset;
17051 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017052 _res = _PyAST_Attribute ( a , b -> v . Name . id , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017053 if (_res == NULL && PyErr_Occurred()) {
17054 p->error_indicator = 1;
17055 D(p->level--);
17056 return NULL;
17057 }
17058 goto done;
17059 }
17060 p->mark = _mark;
17061 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
17062 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME &t_lookahead"));
17063 }
17064 { // t_primary '[' slices ']' &t_lookahead
17065 if (p->error_indicator) {
17066 D(p->level--);
17067 return NULL;
17068 }
17069 D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' &t_lookahead"));
17070 Token * _literal;
17071 Token * _literal_1;
17072 expr_ty a;
17073 expr_ty b;
17074 if (
17075 (a = t_primary_rule(p)) // t_primary
17076 &&
17077 (_literal = _PyPegen_expect_token(p, 9)) // token='['
17078 &&
17079 (b = slices_rule(p)) // slices
17080 &&
17081 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
17082 &&
17083 _PyPegen_lookahead(1, t_lookahead_rule, p)
17084 )
17085 {
17086 D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' &t_lookahead"));
17087 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17088 if (_token == NULL) {
17089 D(p->level--);
17090 return NULL;
17091 }
17092 int _end_lineno = _token->end_lineno;
17093 UNUSED(_end_lineno); // Only used by EXTRA macro
17094 int _end_col_offset = _token->end_col_offset;
17095 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017096 _res = _PyAST_Subscript ( a , b , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017097 if (_res == NULL && PyErr_Occurred()) {
17098 p->error_indicator = 1;
17099 D(p->level--);
17100 return NULL;
17101 }
17102 goto done;
17103 }
17104 p->mark = _mark;
17105 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
17106 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' &t_lookahead"));
17107 }
17108 { // t_primary genexp &t_lookahead
17109 if (p->error_indicator) {
17110 D(p->level--);
17111 return NULL;
17112 }
17113 D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary genexp &t_lookahead"));
17114 expr_ty a;
17115 expr_ty b;
17116 if (
17117 (a = t_primary_rule(p)) // t_primary
17118 &&
17119 (b = genexp_rule(p)) // genexp
17120 &&
17121 _PyPegen_lookahead(1, t_lookahead_rule, p)
17122 )
17123 {
17124 D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary genexp &t_lookahead"));
17125 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17126 if (_token == NULL) {
17127 D(p->level--);
17128 return NULL;
17129 }
17130 int _end_lineno = _token->end_lineno;
17131 UNUSED(_end_lineno); // Only used by EXTRA macro
17132 int _end_col_offset = _token->end_col_offset;
17133 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017134 _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 +010017135 if (_res == NULL && PyErr_Occurred()) {
17136 p->error_indicator = 1;
17137 D(p->level--);
17138 return NULL;
17139 }
17140 goto done;
17141 }
17142 p->mark = _mark;
17143 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
17144 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary genexp &t_lookahead"));
17145 }
17146 { // t_primary '(' arguments? ')' &t_lookahead
17147 if (p->error_indicator) {
17148 D(p->level--);
17149 return NULL;
17150 }
17151 D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '(' arguments? ')' &t_lookahead"));
17152 Token * _literal;
17153 Token * _literal_1;
17154 expr_ty a;
17155 void *b;
17156 if (
17157 (a = t_primary_rule(p)) // t_primary
17158 &&
17159 (_literal = _PyPegen_expect_token(p, 7)) // token='('
17160 &&
17161 (b = arguments_rule(p), 1) // arguments?
17162 &&
17163 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
17164 &&
17165 _PyPegen_lookahead(1, t_lookahead_rule, p)
17166 )
17167 {
17168 D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '(' arguments? ')' &t_lookahead"));
17169 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17170 if (_token == NULL) {
17171 D(p->level--);
17172 return NULL;
17173 }
17174 int _end_lineno = _token->end_lineno;
17175 UNUSED(_end_lineno); // Only used by EXTRA macro
17176 int _end_col_offset = _token->end_col_offset;
17177 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017178 _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 +010017179 if (_res == NULL && PyErr_Occurred()) {
17180 p->error_indicator = 1;
17181 D(p->level--);
17182 return NULL;
17183 }
17184 goto done;
17185 }
17186 p->mark = _mark;
17187 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
17188 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '(' arguments? ')' &t_lookahead"));
17189 }
17190 { // atom &t_lookahead
17191 if (p->error_indicator) {
17192 D(p->level--);
17193 return NULL;
17194 }
17195 D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "atom &t_lookahead"));
17196 expr_ty a;
17197 if (
17198 (a = atom_rule(p)) // atom
17199 &&
17200 _PyPegen_lookahead(1, t_lookahead_rule, p)
17201 )
17202 {
17203 D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "atom &t_lookahead"));
17204 _res = a;
17205 if (_res == NULL && PyErr_Occurred()) {
17206 p->error_indicator = 1;
17207 D(p->level--);
17208 return NULL;
17209 }
17210 goto done;
17211 }
17212 p->mark = _mark;
17213 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
17214 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "atom &t_lookahead"));
17215 }
17216 _res = NULL;
17217 done:
17218 D(p->level--);
17219 return _res;
17220}
17221
17222// t_lookahead: '(' | '[' | '.'
17223static void *
17224t_lookahead_rule(Parser *p)
17225{
17226 D(p->level++);
17227 if (p->error_indicator) {
17228 D(p->level--);
17229 return NULL;
17230 }
17231 void * _res = NULL;
17232 int _mark = p->mark;
17233 { // '('
17234 if (p->error_indicator) {
17235 D(p->level--);
17236 return NULL;
17237 }
17238 D(fprintf(stderr, "%*c> t_lookahead[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'('"));
17239 Token * _literal;
17240 if (
17241 (_literal = _PyPegen_expect_token(p, 7)) // token='('
17242 )
17243 {
17244 D(fprintf(stderr, "%*c+ t_lookahead[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'('"));
17245 _res = _literal;
17246 goto done;
17247 }
17248 p->mark = _mark;
17249 D(fprintf(stderr, "%*c%s t_lookahead[%d-%d]: %s failed!\n", p->level, ' ',
17250 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'('"));
17251 }
17252 { // '['
17253 if (p->error_indicator) {
17254 D(p->level--);
17255 return NULL;
17256 }
17257 D(fprintf(stderr, "%*c> t_lookahead[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['"));
17258 Token * _literal;
17259 if (
17260 (_literal = _PyPegen_expect_token(p, 9)) // token='['
17261 )
17262 {
17263 D(fprintf(stderr, "%*c+ t_lookahead[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['"));
17264 _res = _literal;
17265 goto done;
17266 }
17267 p->mark = _mark;
17268 D(fprintf(stderr, "%*c%s t_lookahead[%d-%d]: %s failed!\n", p->level, ' ',
17269 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'['"));
17270 }
17271 { // '.'
17272 if (p->error_indicator) {
17273 D(p->level--);
17274 return NULL;
17275 }
17276 D(fprintf(stderr, "%*c> t_lookahead[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
17277 Token * _literal;
17278 if (
17279 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
17280 )
17281 {
17282 D(fprintf(stderr, "%*c+ t_lookahead[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
17283 _res = _literal;
17284 goto done;
17285 }
17286 p->mark = _mark;
17287 D(fprintf(stderr, "%*c%s t_lookahead[%d-%d]: %s failed!\n", p->level, ' ',
17288 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
17289 }
17290 _res = NULL;
17291 done:
17292 D(p->level--);
17293 return _res;
17294}
17295
17296// t_atom: NAME | '(' target ')' | '(' targets? ')' | '[' targets? ']'
17297static expr_ty
17298t_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
17316 { // NAME
17317 if (p->error_indicator) {
17318 D(p->level--);
17319 return NULL;
17320 }
17321 D(fprintf(stderr, "%*c> t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
17322 expr_ty a;
17323 if (
17324 (a = _PyPegen_name_token(p)) // NAME
17325 )
17326 {
17327 D(fprintf(stderr, "%*c+ t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
17328 _res = _PyPegen_set_expr_context ( p , a , Store );
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 t_atom[%d-%d]: %s failed!\n", p->level, ' ',
17338 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
17339 }
17340 { // '(' target ')'
17341 if (p->error_indicator) {
17342 D(p->level--);
17343 return NULL;
17344 }
17345 D(fprintf(stderr, "%*c> t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' 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 = target_rule(p)) // target
17353 &&
17354 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
17355 )
17356 {
17357 D(fprintf(stderr, "%*c+ t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' target ')'"));
17358 _res = _PyPegen_set_expr_context ( p , a , Store );
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 t_atom[%d-%d]: %s failed!\n", p->level, ' ',
17368 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' target ')'"));
17369 }
17370 { // '(' targets? ')'
17371 if (p->error_indicator) {
17372 D(p->level--);
17373 return NULL;
17374 }
17375 D(fprintf(stderr, "%*c> t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' targets? ')'"));
17376 Token * _literal;
17377 Token * _literal_1;
17378 void *b;
17379 if (
17380 (_literal = _PyPegen_expect_token(p, 7)) // token='('
17381 &&
17382 (b = targets_rule(p), 1) // targets?
17383 &&
17384 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
17385 )
17386 {
17387 D(fprintf(stderr, "%*c+ t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' 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 ( b , Store , 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 t_atom[%d-%d]: %s failed!\n", p->level, ' ',
17407 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' targets? ')'"));
17408 }
17409 { // '[' targets? ']'
17410 if (p->error_indicator) {
17411 D(p->level--);
17412 return NULL;
17413 }
17414 D(fprintf(stderr, "%*c> t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' targets? ']'"));
17415 Token * _literal;
17416 Token * _literal_1;
17417 void *b;
17418 if (
17419 (_literal = _PyPegen_expect_token(p, 9)) // token='['
17420 &&
17421 (b = targets_rule(p), 1) // targets?
17422 &&
17423 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
17424 )
17425 {
17426 D(fprintf(stderr, "%*c+ t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'[' 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 ( b , Store , 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 t_atom[%d-%d]: %s failed!\n", p->level, ' ',
17446 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' targets? ']'"));
17447 }
17448 _res = NULL;
17449 done:
17450 D(p->level--);
17451 return _res;
17452}
17453
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017454// invalid_arguments:
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017455// | args ',' '*'
17456// | expression for_if_clauses ',' [args | expression for_if_clauses]
17457// | args for_if_clauses
17458// | args ',' expression for_if_clauses
17459// | args ',' args
17460static void *
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017461invalid_arguments_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017462{
17463 D(p->level++);
17464 if (p->error_indicator) {
17465 D(p->level--);
17466 return NULL;
17467 }
17468 void * _res = NULL;
17469 int _mark = p->mark;
17470 { // args ',' '*'
17471 if (p->error_indicator) {
17472 D(p->level--);
17473 return NULL;
17474 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017475 D(fprintf(stderr, "%*c> invalid_arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args ',' '*'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017476 Token * _literal;
17477 Token * _literal_1;
17478 expr_ty args_var;
17479 if (
17480 (args_var = args_rule(p)) // args
17481 &&
17482 (_literal = _PyPegen_expect_token(p, 12)) // token=','
17483 &&
17484 (_literal_1 = _PyPegen_expect_token(p, 16)) // token='*'
17485 )
17486 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017487 D(fprintf(stderr, "%*c+ invalid_arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args ',' '*'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017488 _res = RAISE_SYNTAX_ERROR ( "iterable argument unpacking follows keyword argument unpacking" );
17489 if (_res == NULL && PyErr_Occurred()) {
17490 p->error_indicator = 1;
17491 D(p->level--);
17492 return NULL;
17493 }
17494 goto done;
17495 }
17496 p->mark = _mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017497 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017498 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ',' '*'"));
17499 }
17500 { // expression for_if_clauses ',' [args | expression for_if_clauses]
17501 if (p->error_indicator) {
17502 D(p->level--);
17503 return NULL;
17504 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017505 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 +010017506 Token * _literal;
17507 void *_opt_var;
17508 UNUSED(_opt_var); // Silence compiler warnings
17509 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010017510 asdl_comprehension_seq* for_if_clauses_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017511 if (
17512 (a = expression_rule(p)) // expression
17513 &&
17514 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
17515 &&
17516 (_literal = _PyPegen_expect_token(p, 12)) // token=','
17517 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080017518 (_opt_var = _tmp_142_rule(p), 1) // [args | expression for_if_clauses]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017519 )
17520 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017521 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 Galindo1ed83ad2020-06-11 17:30:46 +010017522 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "Generator expression must be parenthesized" );
17523 if (_res == NULL && PyErr_Occurred()) {
17524 p->error_indicator = 1;
17525 D(p->level--);
17526 return NULL;
17527 }
17528 goto done;
17529 }
17530 p->mark = _mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017531 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017532 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression for_if_clauses ',' [args | expression for_if_clauses]"));
17533 }
17534 { // args for_if_clauses
17535 if (p->error_indicator) {
17536 D(p->level--);
17537 return NULL;
17538 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017539 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 +010017540 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010017541 asdl_comprehension_seq* for_if_clauses_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017542 if (
17543 (a = args_rule(p)) // args
17544 &&
17545 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
17546 )
17547 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017548 D(fprintf(stderr, "%*c+ invalid_arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args for_if_clauses"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017549 _res = _PyPegen_nonparen_genexp_in_call ( p , a );
17550 if (_res == NULL && PyErr_Occurred()) {
17551 p->error_indicator = 1;
17552 D(p->level--);
17553 return NULL;
17554 }
17555 goto done;
17556 }
17557 p->mark = _mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017558 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017559 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args for_if_clauses"));
17560 }
17561 { // args ',' expression for_if_clauses
17562 if (p->error_indicator) {
17563 D(p->level--);
17564 return NULL;
17565 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017566 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 +010017567 Token * _literal;
17568 expr_ty a;
17569 expr_ty args_var;
Pablo Galindoa5634c42020-09-16 19:42:00 +010017570 asdl_comprehension_seq* for_if_clauses_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017571 if (
17572 (args_var = args_rule(p)) // args
17573 &&
17574 (_literal = _PyPegen_expect_token(p, 12)) // token=','
17575 &&
17576 (a = expression_rule(p)) // expression
17577 &&
17578 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
17579 )
17580 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017581 D(fprintf(stderr, "%*c+ invalid_arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args ',' expression for_if_clauses"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017582 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "Generator expression must be parenthesized" );
17583 if (_res == NULL && PyErr_Occurred()) {
17584 p->error_indicator = 1;
17585 D(p->level--);
17586 return NULL;
17587 }
17588 goto done;
17589 }
17590 p->mark = _mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017591 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017592 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ',' expression for_if_clauses"));
17593 }
17594 { // args ',' args
17595 if (p->error_indicator) {
17596 D(p->level--);
17597 return NULL;
17598 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017599 D(fprintf(stderr, "%*c> invalid_arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args ',' args"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017600 Token * _literal;
17601 expr_ty a;
17602 expr_ty args_var;
17603 if (
17604 (a = args_rule(p)) // args
17605 &&
17606 (_literal = _PyPegen_expect_token(p, 12)) // token=','
17607 &&
17608 (args_var = args_rule(p)) // args
17609 )
17610 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017611 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 +010017612 _res = _PyPegen_arguments_parsing_error ( p , a );
17613 if (_res == NULL && PyErr_Occurred()) {
17614 p->error_indicator = 1;
17615 D(p->level--);
17616 return NULL;
17617 }
17618 goto done;
17619 }
17620 p->mark = _mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017621 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017622 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ',' args"));
17623 }
17624 _res = NULL;
17625 done:
17626 D(p->level--);
17627 return _res;
17628}
17629
17630// invalid_kwarg: expression '='
17631static void *
17632invalid_kwarg_rule(Parser *p)
17633{
17634 D(p->level++);
17635 if (p->error_indicator) {
17636 D(p->level--);
17637 return NULL;
17638 }
17639 void * _res = NULL;
17640 int _mark = p->mark;
17641 { // expression '='
17642 if (p->error_indicator) {
17643 D(p->level--);
17644 return NULL;
17645 }
17646 D(fprintf(stderr, "%*c> invalid_kwarg[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression '='"));
Pablo Galindo43c4fb62020-12-13 16:46:48 +000017647 Token * a;
17648 expr_ty expression_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017649 if (
Pablo Galindo43c4fb62020-12-13 16:46:48 +000017650 (expression_var = expression_rule(p)) // expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017651 &&
Pablo Galindo43c4fb62020-12-13 16:46:48 +000017652 (a = _PyPegen_expect_token(p, 22)) // token='='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017653 )
17654 {
17655 D(fprintf(stderr, "%*c+ invalid_kwarg[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression '='"));
17656 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "expression cannot contain assignment, perhaps you meant \"==\"?" );
17657 if (_res == NULL && PyErr_Occurred()) {
17658 p->error_indicator = 1;
17659 D(p->level--);
17660 return NULL;
17661 }
17662 goto done;
17663 }
17664 p->mark = _mark;
17665 D(fprintf(stderr, "%*c%s invalid_kwarg[%d-%d]: %s failed!\n", p->level, ' ',
17666 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression '='"));
17667 }
17668 _res = NULL;
17669 done:
17670 D(p->level--);
17671 return _res;
17672}
17673
Pablo Galindob2802482021-04-15 21:38:45 +010017674// invalid_expression: !(NAME STRING | SOFT_KEYWORD) disjunction expression
17675static void *
17676invalid_expression_rule(Parser *p)
17677{
17678 D(p->level++);
17679 if (p->error_indicator) {
17680 D(p->level--);
17681 return NULL;
17682 }
17683 void * _res = NULL;
17684 int _mark = p->mark;
17685 { // !(NAME STRING | SOFT_KEYWORD) disjunction expression
17686 if (p->error_indicator) {
17687 D(p->level--);
17688 return NULL;
17689 }
17690 D(fprintf(stderr, "%*c> invalid_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "!(NAME STRING | SOFT_KEYWORD) disjunction expression"));
17691 expr_ty a;
17692 expr_ty expression_var;
17693 if (
17694 _PyPegen_lookahead(0, _tmp_143_rule, p)
17695 &&
17696 (a = disjunction_rule(p)) // disjunction
17697 &&
17698 (expression_var = expression_rule(p)) // expression
17699 )
17700 {
17701 D(fprintf(stderr, "%*c+ invalid_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "!(NAME STRING | SOFT_KEYWORD) disjunction expression"));
17702 _res = RAISE_ERROR_KNOWN_LOCATION ( p , PyExc_SyntaxError , a -> lineno , a -> end_col_offset - 1 , "invalid syntax. Perhaps you forgot a comma?" );
17703 if (_res == NULL && PyErr_Occurred()) {
17704 p->error_indicator = 1;
17705 D(p->level--);
17706 return NULL;
17707 }
17708 goto done;
17709 }
17710 p->mark = _mark;
17711 D(fprintf(stderr, "%*c%s invalid_expression[%d-%d]: %s failed!\n", p->level, ' ',
17712 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "!(NAME STRING | SOFT_KEYWORD) disjunction expression"));
17713 }
17714 _res = NULL;
17715 done:
17716 D(p->level--);
17717 return _res;
17718}
17719
Pablo Galindob86ed8e2021-04-12 16:59:30 +010017720// invalid_named_expression:
17721// | expression ':=' expression
17722// | NAME '=' bitwise_or !('=' | ':=' | ',')
17723// | !(list | tuple | genexp | 'True' | 'None' | 'False') bitwise_or '=' bitwise_or !('=' | ':=' | ',')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017724static void *
17725invalid_named_expression_rule(Parser *p)
17726{
17727 D(p->level++);
17728 if (p->error_indicator) {
17729 D(p->level--);
17730 return NULL;
17731 }
17732 void * _res = NULL;
17733 int _mark = p->mark;
17734 { // expression ':=' expression
17735 if (p->error_indicator) {
17736 D(p->level--);
17737 return NULL;
17738 }
17739 D(fprintf(stderr, "%*c> invalid_named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':=' expression"));
17740 Token * _literal;
17741 expr_ty a;
17742 expr_ty expression_var;
17743 if (
17744 (a = expression_rule(p)) // expression
17745 &&
17746 (_literal = _PyPegen_expect_token(p, 53)) // token=':='
17747 &&
17748 (expression_var = expression_rule(p)) // expression
17749 )
17750 {
17751 D(fprintf(stderr, "%*c+ invalid_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':=' expression"));
17752 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "cannot use assignment expressions with %s" , _PyPegen_get_expr_name ( a ) );
17753 if (_res == NULL && PyErr_Occurred()) {
17754 p->error_indicator = 1;
17755 D(p->level--);
17756 return NULL;
17757 }
17758 goto done;
17759 }
17760 p->mark = _mark;
17761 D(fprintf(stderr, "%*c%s invalid_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
17762 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':=' expression"));
17763 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010017764 { // NAME '=' bitwise_or !('=' | ':=' | ',')
17765 if (p->error_indicator) {
17766 D(p->level--);
17767 return NULL;
17768 }
17769 D(fprintf(stderr, "%*c> invalid_named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME '=' bitwise_or !('=' | ':=' | ',')"));
17770 expr_ty a;
17771 Token * b;
17772 expr_ty bitwise_or_var;
17773 if (
17774 (a = _PyPegen_name_token(p)) // NAME
17775 &&
17776 (b = _PyPegen_expect_token(p, 22)) // token='='
17777 &&
17778 (bitwise_or_var = bitwise_or_rule(p)) // bitwise_or
17779 &&
Pablo Galindob2802482021-04-15 21:38:45 +010017780 _PyPegen_lookahead(0, _tmp_144_rule, p)
Pablo Galindob86ed8e2021-04-12 16:59:30 +010017781 )
17782 {
17783 D(fprintf(stderr, "%*c+ invalid_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '=' bitwise_or !('=' | ':=' | ',')"));
17784 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( b , "invalid syntax. Maybe you meant '==' or ':=' instead of '='?" );
17785 if (_res == NULL && PyErr_Occurred()) {
17786 p->error_indicator = 1;
17787 D(p->level--);
17788 return NULL;
17789 }
17790 goto done;
17791 }
17792 p->mark = _mark;
17793 D(fprintf(stderr, "%*c%s invalid_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
17794 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' bitwise_or !('=' | ':=' | ',')"));
17795 }
17796 { // !(list | tuple | genexp | 'True' | 'None' | 'False') bitwise_or '=' bitwise_or !('=' | ':=' | ',')
17797 if (p->error_indicator) {
17798 D(p->level--);
17799 return NULL;
17800 }
17801 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 !('=' | ':=' | ',')"));
17802 expr_ty a;
17803 Token * b;
17804 expr_ty bitwise_or_var;
17805 if (
Pablo Galindob2802482021-04-15 21:38:45 +010017806 _PyPegen_lookahead(0, _tmp_145_rule, p)
Pablo Galindob86ed8e2021-04-12 16:59:30 +010017807 &&
17808 (a = bitwise_or_rule(p)) // bitwise_or
17809 &&
17810 (b = _PyPegen_expect_token(p, 22)) // token='='
17811 &&
17812 (bitwise_or_var = bitwise_or_rule(p)) // bitwise_or
17813 &&
Pablo Galindob2802482021-04-15 21:38:45 +010017814 _PyPegen_lookahead(0, _tmp_146_rule, p)
Pablo Galindob86ed8e2021-04-12 16:59:30 +010017815 )
17816 {
17817 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 !('=' | ':=' | ',')"));
17818 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( b , "cannot assign to %s here. Maybe you meant '==' instead of '='?" , _PyPegen_get_expr_name ( a ) );
17819 if (_res == NULL && PyErr_Occurred()) {
17820 p->error_indicator = 1;
17821 D(p->level--);
17822 return NULL;
17823 }
17824 goto done;
17825 }
17826 p->mark = _mark;
17827 D(fprintf(stderr, "%*c%s invalid_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
17828 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "!(list | tuple | genexp | 'True' | 'None' | 'False') bitwise_or '=' bitwise_or !('=' | ':=' | ',')"));
17829 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017830 _res = NULL;
17831 done:
17832 D(p->level--);
17833 return _res;
17834}
17835
17836// invalid_assignment:
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030017837// | invalid_ann_assign_target ':' expression
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030017838// | star_named_expression ',' star_named_expressions* ':' expression
17839// | expression ':' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017840// | ((star_targets '='))* star_expressions '='
17841// | ((star_targets '='))* yield_expr '='
17842// | star_expressions augassign (yield_expr | star_expressions)
17843static void *
17844invalid_assignment_rule(Parser *p)
17845{
17846 D(p->level++);
17847 if (p->error_indicator) {
17848 D(p->level--);
17849 return NULL;
17850 }
17851 void * _res = NULL;
17852 int _mark = p->mark;
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030017853 { // invalid_ann_assign_target ':' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017854 if (p->error_indicator) {
17855 D(p->level--);
17856 return NULL;
17857 }
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030017858 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 +010017859 Token * _literal;
17860 expr_ty a;
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030017861 expr_ty expression_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017862 if (
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030017863 (a = invalid_ann_assign_target_rule(p)) // invalid_ann_assign_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017864 &&
17865 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030017866 &&
17867 (expression_var = expression_rule(p)) // expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017868 )
17869 {
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030017870 D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_ann_assign_target ':' expression"));
17871 _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 +010017872 if (_res == NULL && PyErr_Occurred()) {
17873 p->error_indicator = 1;
17874 D(p->level--);
17875 return NULL;
17876 }
17877 goto done;
17878 }
17879 p->mark = _mark;
17880 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030017881 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_ann_assign_target ':' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017882 }
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030017883 { // star_named_expression ',' star_named_expressions* ':' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017884 if (p->error_indicator) {
17885 D(p->level--);
17886 return NULL;
17887 }
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030017888 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 +010017889 Token * _literal;
17890 Token * _literal_1;
Pablo Galindob2802482021-04-15 21:38:45 +010017891 asdl_seq * _loop0_147_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017892 expr_ty a;
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030017893 expr_ty expression_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017894 if (
17895 (a = star_named_expression_rule(p)) // star_named_expression
17896 &&
17897 (_literal = _PyPegen_expect_token(p, 12)) // token=','
17898 &&
Pablo Galindob2802482021-04-15 21:38:45 +010017899 (_loop0_147_var = _loop0_147_rule(p)) // star_named_expressions*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017900 &&
17901 (_literal_1 = _PyPegen_expect_token(p, 11)) // token=':'
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030017902 &&
17903 (expression_var = expression_rule(p)) // expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017904 )
17905 {
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030017906 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 +010017907 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "only single target (not tuple) can be annotated" );
17908 if (_res == NULL && PyErr_Occurred()) {
17909 p->error_indicator = 1;
17910 D(p->level--);
17911 return NULL;
17912 }
17913 goto done;
17914 }
17915 p->mark = _mark;
17916 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030017917 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression ',' star_named_expressions* ':' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017918 }
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030017919 { // expression ':' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017920 if (p->error_indicator) {
17921 D(p->level--);
17922 return NULL;
17923 }
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030017924 D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017925 Token * _literal;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017926 expr_ty a;
17927 expr_ty expression_var;
17928 if (
17929 (a = expression_rule(p)) // expression
17930 &&
17931 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
17932 &&
17933 (expression_var = expression_rule(p)) // expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017934 )
17935 {
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030017936 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 +010017937 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "illegal target for annotation" );
17938 if (_res == NULL && PyErr_Occurred()) {
17939 p->error_indicator = 1;
17940 D(p->level--);
17941 return NULL;
17942 }
17943 goto done;
17944 }
17945 p->mark = _mark;
17946 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030017947 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017948 }
17949 { // ((star_targets '='))* star_expressions '='
17950 if (p->error_indicator) {
17951 D(p->level--);
17952 return NULL;
17953 }
17954 D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "((star_targets '='))* star_expressions '='"));
17955 Token * _literal;
Pablo Galindob2802482021-04-15 21:38:45 +010017956 asdl_seq * _loop0_148_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017957 expr_ty a;
17958 if (
Pablo Galindob2802482021-04-15 21:38:45 +010017959 (_loop0_148_var = _loop0_148_rule(p)) // ((star_targets '='))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017960 &&
17961 (a = star_expressions_rule(p)) // star_expressions
17962 &&
17963 (_literal = _PyPegen_expect_token(p, 22)) // token='='
17964 )
17965 {
17966 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 +030017967 _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( STAR_TARGETS , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017968 if (_res == NULL && PyErr_Occurred()) {
17969 p->error_indicator = 1;
17970 D(p->level--);
17971 return NULL;
17972 }
17973 goto done;
17974 }
17975 p->mark = _mark;
17976 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
17977 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "((star_targets '='))* star_expressions '='"));
17978 }
17979 { // ((star_targets '='))* yield_expr '='
17980 if (p->error_indicator) {
17981 D(p->level--);
17982 return NULL;
17983 }
17984 D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "((star_targets '='))* yield_expr '='"));
17985 Token * _literal;
Pablo Galindob2802482021-04-15 21:38:45 +010017986 asdl_seq * _loop0_149_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017987 expr_ty a;
17988 if (
Pablo Galindob2802482021-04-15 21:38:45 +010017989 (_loop0_149_var = _loop0_149_rule(p)) // ((star_targets '='))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017990 &&
17991 (a = yield_expr_rule(p)) // yield_expr
17992 &&
17993 (_literal = _PyPegen_expect_token(p, 22)) // token='='
17994 )
17995 {
17996 D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "((star_targets '='))* yield_expr '='"));
17997 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "assignment to yield expression not possible" );
17998 if (_res == NULL && PyErr_Occurred()) {
17999 p->error_indicator = 1;
18000 D(p->level--);
18001 return NULL;
18002 }
18003 goto done;
18004 }
18005 p->mark = _mark;
18006 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
18007 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "((star_targets '='))* yield_expr '='"));
18008 }
18009 { // star_expressions augassign (yield_expr | star_expressions)
18010 if (p->error_indicator) {
18011 D(p->level--);
18012 return NULL;
18013 }
18014 D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions augassign (yield_expr | star_expressions)"));
Pablo Galindob2802482021-04-15 21:38:45 +010018015 void *_tmp_150_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018016 expr_ty a;
18017 AugOperator* augassign_var;
18018 if (
18019 (a = star_expressions_rule(p)) // star_expressions
18020 &&
18021 (augassign_var = augassign_rule(p)) // augassign
18022 &&
Pablo Galindob2802482021-04-15 21:38:45 +010018023 (_tmp_150_var = _tmp_150_rule(p)) // yield_expr | star_expressions
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018024 )
18025 {
18026 D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions augassign (yield_expr | star_expressions)"));
18027 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "'%s' is an illegal expression for augmented assignment" , _PyPegen_get_expr_name ( a ) );
18028 if (_res == NULL && PyErr_Occurred()) {
18029 p->error_indicator = 1;
18030 D(p->level--);
18031 return NULL;
18032 }
18033 goto done;
18034 }
18035 p->mark = _mark;
18036 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
18037 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions augassign (yield_expr | star_expressions)"));
18038 }
18039 _res = NULL;
18040 done:
18041 D(p->level--);
18042 return _res;
18043}
18044
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030018045// invalid_ann_assign_target: list | tuple | '(' invalid_ann_assign_target ')'
18046static expr_ty
18047invalid_ann_assign_target_rule(Parser *p)
18048{
18049 D(p->level++);
18050 if (p->error_indicator) {
18051 D(p->level--);
18052 return NULL;
18053 }
18054 expr_ty _res = NULL;
18055 int _mark = p->mark;
18056 { // list
18057 if (p->error_indicator) {
18058 D(p->level--);
18059 return NULL;
18060 }
18061 D(fprintf(stderr, "%*c> invalid_ann_assign_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "list"));
18062 expr_ty list_var;
18063 if (
18064 (list_var = list_rule(p)) // list
18065 )
18066 {
18067 D(fprintf(stderr, "%*c+ invalid_ann_assign_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "list"));
18068 _res = list_var;
18069 goto done;
18070 }
18071 p->mark = _mark;
18072 D(fprintf(stderr, "%*c%s invalid_ann_assign_target[%d-%d]: %s failed!\n", p->level, ' ',
18073 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "list"));
18074 }
18075 { // tuple
18076 if (p->error_indicator) {
18077 D(p->level--);
18078 return NULL;
18079 }
18080 D(fprintf(stderr, "%*c> invalid_ann_assign_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "tuple"));
18081 expr_ty tuple_var;
18082 if (
18083 (tuple_var = tuple_rule(p)) // tuple
18084 )
18085 {
18086 D(fprintf(stderr, "%*c+ invalid_ann_assign_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "tuple"));
18087 _res = tuple_var;
18088 goto done;
18089 }
18090 p->mark = _mark;
18091 D(fprintf(stderr, "%*c%s invalid_ann_assign_target[%d-%d]: %s failed!\n", p->level, ' ',
18092 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "tuple"));
18093 }
18094 { // '(' invalid_ann_assign_target ')'
18095 if (p->error_indicator) {
18096 D(p->level--);
18097 return NULL;
18098 }
18099 D(fprintf(stderr, "%*c> invalid_ann_assign_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' invalid_ann_assign_target ')'"));
18100 Token * _literal;
18101 Token * _literal_1;
18102 expr_ty a;
18103 if (
18104 (_literal = _PyPegen_expect_token(p, 7)) // token='('
18105 &&
18106 (a = invalid_ann_assign_target_rule(p)) // invalid_ann_assign_target
18107 &&
18108 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
18109 )
18110 {
18111 D(fprintf(stderr, "%*c+ invalid_ann_assign_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' invalid_ann_assign_target ')'"));
18112 _res = a;
18113 if (_res == NULL && PyErr_Occurred()) {
18114 p->error_indicator = 1;
18115 D(p->level--);
18116 return NULL;
18117 }
18118 goto done;
18119 }
18120 p->mark = _mark;
18121 D(fprintf(stderr, "%*c%s invalid_ann_assign_target[%d-%d]: %s failed!\n", p->level, ' ',
18122 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' invalid_ann_assign_target ')'"));
18123 }
18124 _res = NULL;
18125 done:
18126 D(p->level--);
18127 return _res;
18128}
18129
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018130// invalid_del_stmt: 'del' star_expressions
18131static void *
18132invalid_del_stmt_rule(Parser *p)
18133{
18134 D(p->level++);
18135 if (p->error_indicator) {
18136 D(p->level--);
18137 return NULL;
18138 }
18139 void * _res = NULL;
18140 int _mark = p->mark;
18141 { // 'del' star_expressions
18142 if (p->error_indicator) {
18143 D(p->level--);
18144 return NULL;
18145 }
18146 D(fprintf(stderr, "%*c> invalid_del_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'del' star_expressions"));
18147 Token * _keyword;
18148 expr_ty a;
18149 if (
18150 (_keyword = _PyPegen_expect_token(p, 503)) // token='del'
18151 &&
18152 (a = star_expressions_rule(p)) // star_expressions
18153 )
18154 {
18155 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 +030018156 _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( DEL_TARGETS , a );
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018157 if (_res == NULL && PyErr_Occurred()) {
18158 p->error_indicator = 1;
18159 D(p->level--);
18160 return NULL;
18161 }
18162 goto done;
18163 }
18164 p->mark = _mark;
18165 D(fprintf(stderr, "%*c%s invalid_del_stmt[%d-%d]: %s failed!\n", p->level, ' ',
18166 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'del' star_expressions"));
18167 }
18168 _res = NULL;
18169 done:
18170 D(p->level--);
18171 return _res;
18172}
18173
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018174// invalid_block: NEWLINE !INDENT
18175static void *
18176invalid_block_rule(Parser *p)
18177{
18178 D(p->level++);
18179 if (p->error_indicator) {
18180 D(p->level--);
18181 return NULL;
18182 }
18183 void * _res = NULL;
18184 int _mark = p->mark;
18185 { // NEWLINE !INDENT
18186 if (p->error_indicator) {
18187 D(p->level--);
18188 return NULL;
18189 }
18190 D(fprintf(stderr, "%*c> invalid_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE !INDENT"));
18191 Token * newline_var;
18192 if (
18193 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
18194 &&
18195 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
18196 )
18197 {
18198 D(fprintf(stderr, "%*c+ invalid_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE !INDENT"));
18199 _res = RAISE_INDENTATION_ERROR ( "expected an indented block" );
18200 if (_res == NULL && PyErr_Occurred()) {
18201 p->error_indicator = 1;
18202 D(p->level--);
18203 return NULL;
18204 }
18205 goto done;
18206 }
18207 p->mark = _mark;
18208 D(fprintf(stderr, "%*c%s invalid_block[%d-%d]: %s failed!\n", p->level, ' ',
18209 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE !INDENT"));
18210 }
18211 _res = NULL;
18212 done:
18213 D(p->level--);
18214 return _res;
18215}
18216
Lysandros Nikolaou15acc4e2020-10-27 20:54:20 +020018217// Left-recursive
18218// invalid_primary: primary '{'
18219static void *
18220invalid_primary_rule(Parser *p)
18221{
18222 D(p->level++);
18223 if (p->error_indicator) {
18224 D(p->level--);
18225 return NULL;
18226 }
18227 void * _res = NULL;
18228 int _mark = p->mark;
18229 { // primary '{'
18230 if (p->error_indicator) {
18231 D(p->level--);
18232 return NULL;
18233 }
18234 D(fprintf(stderr, "%*c> invalid_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '{'"));
18235 Token * a;
18236 expr_ty primary_var;
18237 if (
18238 (primary_var = primary_rule(p)) // primary
18239 &&
18240 (a = _PyPegen_expect_token(p, 25)) // token='{'
18241 )
18242 {
18243 D(fprintf(stderr, "%*c+ invalid_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '{'"));
18244 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "invalid syntax" );
18245 if (_res == NULL && PyErr_Occurred()) {
18246 p->error_indicator = 1;
18247 D(p->level--);
18248 return NULL;
18249 }
18250 goto done;
18251 }
18252 p->mark = _mark;
18253 D(fprintf(stderr, "%*c%s invalid_primary[%d-%d]: %s failed!\n", p->level, ' ',
18254 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '{'"));
18255 }
18256 _res = NULL;
18257 done:
18258 D(p->level--);
18259 return _res;
18260}
18261
Pablo Galindo835f14f2021-01-31 22:52:56 +000018262// invalid_comprehension:
18263// | ('[' | '(' | '{') starred_expression for_if_clauses
Pablo Galindod4e6ed72021-02-03 23:29:26 +000018264// | ('[' | '{') star_named_expression ',' star_named_expressions? for_if_clauses
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018265static void *
18266invalid_comprehension_rule(Parser *p)
18267{
18268 D(p->level++);
18269 if (p->error_indicator) {
18270 D(p->level--);
18271 return NULL;
18272 }
18273 void * _res = NULL;
18274 int _mark = p->mark;
18275 { // ('[' | '(' | '{') starred_expression for_if_clauses
18276 if (p->error_indicator) {
18277 D(p->level--);
18278 return NULL;
18279 }
18280 D(fprintf(stderr, "%*c> invalid_comprehension[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('[' | '(' | '{') starred_expression for_if_clauses"));
Pablo Galindob2802482021-04-15 21:38:45 +010018281 void *_tmp_151_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018282 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010018283 asdl_comprehension_seq* for_if_clauses_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018284 if (
Pablo Galindob2802482021-04-15 21:38:45 +010018285 (_tmp_151_var = _tmp_151_rule(p)) // '[' | '(' | '{'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018286 &&
18287 (a = starred_expression_rule(p)) // starred_expression
18288 &&
18289 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
18290 )
18291 {
18292 D(fprintf(stderr, "%*c+ invalid_comprehension[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "('[' | '(' | '{') starred_expression for_if_clauses"));
18293 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "iterable unpacking cannot be used in comprehension" );
18294 if (_res == NULL && PyErr_Occurred()) {
18295 p->error_indicator = 1;
18296 D(p->level--);
18297 return NULL;
18298 }
18299 goto done;
18300 }
18301 p->mark = _mark;
18302 D(fprintf(stderr, "%*c%s invalid_comprehension[%d-%d]: %s failed!\n", p->level, ' ',
18303 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('[' | '(' | '{') starred_expression for_if_clauses"));
18304 }
Pablo Galindod4e6ed72021-02-03 23:29:26 +000018305 { // ('[' | '{') star_named_expression ',' star_named_expressions? for_if_clauses
Pablo Galindo835f14f2021-01-31 22:52:56 +000018306 if (p->error_indicator) {
18307 D(p->level--);
18308 return NULL;
18309 }
Pablo Galindod4e6ed72021-02-03 23:29:26 +000018310 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 +000018311 Token * _literal;
18312 void *_opt_var;
18313 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindob2802482021-04-15 21:38:45 +010018314 void *_tmp_152_var;
Pablo Galindo835f14f2021-01-31 22:52:56 +000018315 expr_ty a;
Pablo Galindod4e6ed72021-02-03 23:29:26 +000018316 asdl_comprehension_seq* for_if_clauses_var;
Pablo Galindo835f14f2021-01-31 22:52:56 +000018317 if (
Pablo Galindob2802482021-04-15 21:38:45 +010018318 (_tmp_152_var = _tmp_152_rule(p)) // '[' | '{'
Pablo Galindo835f14f2021-01-31 22:52:56 +000018319 &&
18320 (a = star_named_expression_rule(p)) // star_named_expression
18321 &&
18322 (_literal = _PyPegen_expect_token(p, 12)) // token=','
18323 &&
18324 (_opt_var = star_named_expressions_rule(p), 1) // star_named_expressions?
Pablo Galindod4e6ed72021-02-03 23:29:26 +000018325 &&
18326 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
Pablo Galindo835f14f2021-01-31 22:52:56 +000018327 )
18328 {
Pablo Galindod4e6ed72021-02-03 23:29:26 +000018329 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"));
Pablo Galindo835f14f2021-01-31 22:52:56 +000018330 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "did you forget parentheses around the comprehension target?" );
18331 if (_res == NULL && PyErr_Occurred()) {
18332 p->error_indicator = 1;
18333 D(p->level--);
18334 return NULL;
18335 }
18336 goto done;
18337 }
18338 p->mark = _mark;
18339 D(fprintf(stderr, "%*c%s invalid_comprehension[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindod4e6ed72021-02-03 23:29:26 +000018340 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('[' | '{') star_named_expression ',' star_named_expressions? for_if_clauses"));
Pablo Galindo835f14f2021-01-31 22:52:56 +000018341 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018342 _res = NULL;
18343 done:
18344 D(p->level--);
18345 return _res;
18346}
18347
18348// invalid_dict_comprehension: '{' '**' bitwise_or for_if_clauses '}'
18349static void *
18350invalid_dict_comprehension_rule(Parser *p)
18351{
18352 D(p->level++);
18353 if (p->error_indicator) {
18354 D(p->level--);
18355 return NULL;
18356 }
18357 void * _res = NULL;
18358 int _mark = p->mark;
18359 { // '{' '**' bitwise_or for_if_clauses '}'
18360 if (p->error_indicator) {
18361 D(p->level--);
18362 return NULL;
18363 }
18364 D(fprintf(stderr, "%*c> invalid_dict_comprehension[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' '**' bitwise_or for_if_clauses '}'"));
18365 Token * _literal;
18366 Token * _literal_1;
18367 Token * a;
18368 expr_ty bitwise_or_var;
Pablo Galindoa5634c42020-09-16 19:42:00 +010018369 asdl_comprehension_seq* for_if_clauses_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018370 if (
18371 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
18372 &&
18373 (a = _PyPegen_expect_token(p, 35)) // token='**'
18374 &&
18375 (bitwise_or_var = bitwise_or_rule(p)) // bitwise_or
18376 &&
18377 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
18378 &&
18379 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
18380 )
18381 {
18382 D(fprintf(stderr, "%*c+ invalid_dict_comprehension[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' '**' bitwise_or for_if_clauses '}'"));
18383 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "dict unpacking cannot be used in dict comprehension" );
18384 if (_res == NULL && PyErr_Occurred()) {
18385 p->error_indicator = 1;
18386 D(p->level--);
18387 return NULL;
18388 }
18389 goto done;
18390 }
18391 p->mark = _mark;
18392 D(fprintf(stderr, "%*c%s invalid_dict_comprehension[%d-%d]: %s failed!\n", p->level, ' ',
18393 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' '**' bitwise_or for_if_clauses '}'"));
18394 }
18395 _res = NULL;
18396 done:
18397 D(p->level--);
18398 return _res;
18399}
18400
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020018401// invalid_parameters: param_no_default* invalid_parameters_helper param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018402static void *
18403invalid_parameters_rule(Parser *p)
18404{
18405 D(p->level++);
18406 if (p->error_indicator) {
18407 D(p->level--);
18408 return NULL;
18409 }
18410 void * _res = NULL;
18411 int _mark = p->mark;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020018412 { // param_no_default* invalid_parameters_helper param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018413 if (p->error_indicator) {
18414 D(p->level--);
18415 return NULL;
18416 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020018417 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 Galindob2802482021-04-15 21:38:45 +010018418 asdl_seq * _loop0_153_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020018419 void *invalid_parameters_helper_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018420 arg_ty param_no_default_var;
18421 if (
Pablo Galindob2802482021-04-15 21:38:45 +010018422 (_loop0_153_var = _loop0_153_rule(p)) // param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018423 &&
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020018424 (invalid_parameters_helper_var = invalid_parameters_helper_rule(p)) // invalid_parameters_helper
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018425 &&
18426 (param_no_default_var = param_no_default_rule(p)) // param_no_default
18427 )
18428 {
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020018429 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 Galindo1ed83ad2020-06-11 17:30:46 +010018430 _res = RAISE_SYNTAX_ERROR ( "non-default argument follows default argument" );
18431 if (_res == NULL && PyErr_Occurred()) {
18432 p->error_indicator = 1;
18433 D(p->level--);
18434 return NULL;
18435 }
18436 goto done;
18437 }
18438 p->mark = _mark;
18439 D(fprintf(stderr, "%*c%s invalid_parameters[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020018440 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default* invalid_parameters_helper param_no_default"));
18441 }
18442 _res = NULL;
18443 done:
18444 D(p->level--);
18445 return _res;
18446}
18447
18448// invalid_parameters_helper: slash_with_default | param_with_default+
18449static void *
18450invalid_parameters_helper_rule(Parser *p)
18451{
18452 D(p->level++);
18453 if (p->error_indicator) {
18454 D(p->level--);
18455 return NULL;
18456 }
18457 void * _res = NULL;
18458 int _mark = p->mark;
18459 { // slash_with_default
18460 if (p->error_indicator) {
18461 D(p->level--);
18462 return NULL;
18463 }
18464 D(fprintf(stderr, "%*c> invalid_parameters_helper[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slash_with_default"));
18465 SlashWithDefault* a;
18466 if (
18467 (a = slash_with_default_rule(p)) // slash_with_default
18468 )
18469 {
18470 D(fprintf(stderr, "%*c+ invalid_parameters_helper[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slash_with_default"));
18471 _res = _PyPegen_singleton_seq ( p , a );
18472 if (_res == NULL && PyErr_Occurred()) {
18473 p->error_indicator = 1;
18474 D(p->level--);
18475 return NULL;
18476 }
18477 goto done;
18478 }
18479 p->mark = _mark;
18480 D(fprintf(stderr, "%*c%s invalid_parameters_helper[%d-%d]: %s failed!\n", p->level, ' ',
18481 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slash_with_default"));
18482 }
18483 { // param_with_default+
18484 if (p->error_indicator) {
18485 D(p->level--);
18486 return NULL;
18487 }
18488 D(fprintf(stderr, "%*c> invalid_parameters_helper[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default+"));
Pablo Galindob2802482021-04-15 21:38:45 +010018489 asdl_seq * _loop1_154_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020018490 if (
Pablo Galindob2802482021-04-15 21:38:45 +010018491 (_loop1_154_var = _loop1_154_rule(p)) // param_with_default+
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020018492 )
18493 {
18494 D(fprintf(stderr, "%*c+ invalid_parameters_helper[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_with_default+"));
Pablo Galindob2802482021-04-15 21:38:45 +010018495 _res = _loop1_154_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020018496 goto done;
18497 }
18498 p->mark = _mark;
18499 D(fprintf(stderr, "%*c%s invalid_parameters_helper[%d-%d]: %s failed!\n", p->level, ' ',
18500 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default+"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018501 }
18502 _res = NULL;
18503 done:
18504 D(p->level--);
18505 return _res;
18506}
18507
18508// invalid_lambda_parameters:
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020018509// | lambda_param_no_default* invalid_lambda_parameters_helper lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018510static void *
18511invalid_lambda_parameters_rule(Parser *p)
18512{
18513 D(p->level++);
18514 if (p->error_indicator) {
18515 D(p->level--);
18516 return NULL;
18517 }
18518 void * _res = NULL;
18519 int _mark = p->mark;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020018520 { // lambda_param_no_default* invalid_lambda_parameters_helper lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018521 if (p->error_indicator) {
18522 D(p->level--);
18523 return NULL;
18524 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020018525 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 Galindob2802482021-04-15 21:38:45 +010018526 asdl_seq * _loop0_155_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020018527 void *invalid_lambda_parameters_helper_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018528 arg_ty lambda_param_no_default_var;
18529 if (
Pablo Galindob2802482021-04-15 21:38:45 +010018530 (_loop0_155_var = _loop0_155_rule(p)) // lambda_param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018531 &&
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020018532 (invalid_lambda_parameters_helper_var = invalid_lambda_parameters_helper_rule(p)) // invalid_lambda_parameters_helper
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018533 &&
18534 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
18535 )
18536 {
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020018537 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 Galindo1ed83ad2020-06-11 17:30:46 +010018538 _res = RAISE_SYNTAX_ERROR ( "non-default argument follows default argument" );
18539 if (_res == NULL && PyErr_Occurred()) {
18540 p->error_indicator = 1;
18541 D(p->level--);
18542 return NULL;
18543 }
18544 goto done;
18545 }
18546 p->mark = _mark;
18547 D(fprintf(stderr, "%*c%s invalid_lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020018548 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default* invalid_lambda_parameters_helper lambda_param_no_default"));
18549 }
18550 _res = NULL;
18551 done:
18552 D(p->level--);
18553 return _res;
18554}
18555
18556// invalid_lambda_parameters_helper:
18557// | lambda_slash_with_default
18558// | lambda_param_with_default+
18559static void *
18560invalid_lambda_parameters_helper_rule(Parser *p)
18561{
18562 D(p->level++);
18563 if (p->error_indicator) {
18564 D(p->level--);
18565 return NULL;
18566 }
18567 void * _res = NULL;
18568 int _mark = p->mark;
18569 { // lambda_slash_with_default
18570 if (p->error_indicator) {
18571 D(p->level--);
18572 return NULL;
18573 }
18574 D(fprintf(stderr, "%*c> invalid_lambda_parameters_helper[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_slash_with_default"));
18575 SlashWithDefault* a;
18576 if (
18577 (a = lambda_slash_with_default_rule(p)) // lambda_slash_with_default
18578 )
18579 {
18580 D(fprintf(stderr, "%*c+ invalid_lambda_parameters_helper[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_slash_with_default"));
18581 _res = _PyPegen_singleton_seq ( p , a );
18582 if (_res == NULL && PyErr_Occurred()) {
18583 p->error_indicator = 1;
18584 D(p->level--);
18585 return NULL;
18586 }
18587 goto done;
18588 }
18589 p->mark = _mark;
18590 D(fprintf(stderr, "%*c%s invalid_lambda_parameters_helper[%d-%d]: %s failed!\n", p->level, ' ',
18591 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_slash_with_default"));
18592 }
18593 { // lambda_param_with_default+
18594 if (p->error_indicator) {
18595 D(p->level--);
18596 return NULL;
18597 }
18598 D(fprintf(stderr, "%*c> invalid_lambda_parameters_helper[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default+"));
Pablo Galindob2802482021-04-15 21:38:45 +010018599 asdl_seq * _loop1_156_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020018600 if (
Pablo Galindob2802482021-04-15 21:38:45 +010018601 (_loop1_156_var = _loop1_156_rule(p)) // lambda_param_with_default+
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020018602 )
18603 {
18604 D(fprintf(stderr, "%*c+ invalid_lambda_parameters_helper[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default+"));
Pablo Galindob2802482021-04-15 21:38:45 +010018605 _res = _loop1_156_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020018606 goto done;
18607 }
18608 p->mark = _mark;
18609 D(fprintf(stderr, "%*c%s invalid_lambda_parameters_helper[%d-%d]: %s failed!\n", p->level, ' ',
18610 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default+"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018611 }
18612 _res = NULL;
18613 done:
18614 D(p->level--);
18615 return _res;
18616}
18617
18618// invalid_star_etc: '*' (')' | ',' (')' | '**')) | '*' ',' TYPE_COMMENT
18619static void *
18620invalid_star_etc_rule(Parser *p)
18621{
18622 D(p->level++);
18623 if (p->error_indicator) {
18624 D(p->level--);
18625 return NULL;
18626 }
18627 void * _res = NULL;
18628 int _mark = p->mark;
18629 { // '*' (')' | ',' (')' | '**'))
18630 if (p->error_indicator) {
18631 D(p->level--);
18632 return NULL;
18633 }
18634 D(fprintf(stderr, "%*c> invalid_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (')' | ',' (')' | '**'))"));
18635 Token * _literal;
Pablo Galindob2802482021-04-15 21:38:45 +010018636 void *_tmp_157_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018637 if (
18638 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
18639 &&
Pablo Galindob2802482021-04-15 21:38:45 +010018640 (_tmp_157_var = _tmp_157_rule(p)) // ')' | ',' (')' | '**')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018641 )
18642 {
18643 D(fprintf(stderr, "%*c+ invalid_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' (')' | ',' (')' | '**'))"));
18644 _res = RAISE_SYNTAX_ERROR ( "named arguments must follow bare *" );
18645 if (_res == NULL && PyErr_Occurred()) {
18646 p->error_indicator = 1;
18647 D(p->level--);
18648 return NULL;
18649 }
18650 goto done;
18651 }
18652 p->mark = _mark;
18653 D(fprintf(stderr, "%*c%s invalid_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
18654 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' (')' | ',' (')' | '**'))"));
18655 }
18656 { // '*' ',' TYPE_COMMENT
18657 if (p->error_indicator) {
18658 D(p->level--);
18659 return NULL;
18660 }
18661 D(fprintf(stderr, "%*c> invalid_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' ',' TYPE_COMMENT"));
18662 Token * _literal;
18663 Token * _literal_1;
18664 Token * type_comment_var;
18665 if (
18666 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
18667 &&
18668 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
18669 &&
18670 (type_comment_var = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
18671 )
18672 {
18673 D(fprintf(stderr, "%*c+ invalid_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' ',' TYPE_COMMENT"));
18674 _res = RAISE_SYNTAX_ERROR ( "bare * has associated type comment" );
18675 if (_res == NULL && PyErr_Occurred()) {
18676 p->error_indicator = 1;
18677 D(p->level--);
18678 return NULL;
18679 }
18680 goto done;
18681 }
18682 p->mark = _mark;
18683 D(fprintf(stderr, "%*c%s invalid_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
18684 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' ',' TYPE_COMMENT"));
18685 }
18686 _res = NULL;
18687 done:
18688 D(p->level--);
18689 return _res;
18690}
18691
18692// invalid_lambda_star_etc: '*' (':' | ',' (':' | '**'))
18693static void *
18694invalid_lambda_star_etc_rule(Parser *p)
18695{
18696 D(p->level++);
18697 if (p->error_indicator) {
18698 D(p->level--);
18699 return NULL;
18700 }
18701 void * _res = NULL;
18702 int _mark = p->mark;
18703 { // '*' (':' | ',' (':' | '**'))
18704 if (p->error_indicator) {
18705 D(p->level--);
18706 return NULL;
18707 }
18708 D(fprintf(stderr, "%*c> invalid_lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (':' | ',' (':' | '**'))"));
18709 Token * _literal;
Pablo Galindob2802482021-04-15 21:38:45 +010018710 void *_tmp_158_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018711 if (
18712 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
18713 &&
Pablo Galindob2802482021-04-15 21:38:45 +010018714 (_tmp_158_var = _tmp_158_rule(p)) // ':' | ',' (':' | '**')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018715 )
18716 {
18717 D(fprintf(stderr, "%*c+ invalid_lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' (':' | ',' (':' | '**'))"));
18718 _res = RAISE_SYNTAX_ERROR ( "named arguments must follow bare *" );
18719 if (_res == NULL && PyErr_Occurred()) {
18720 p->error_indicator = 1;
18721 D(p->level--);
18722 return NULL;
18723 }
18724 goto done;
18725 }
18726 p->mark = _mark;
18727 D(fprintf(stderr, "%*c%s invalid_lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
18728 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' (':' | ',' (':' | '**'))"));
18729 }
18730 _res = NULL;
18731 done:
18732 D(p->level--);
18733 return _res;
18734}
18735
18736// invalid_double_type_comments: TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT
18737static void *
18738invalid_double_type_comments_rule(Parser *p)
18739{
18740 D(p->level++);
18741 if (p->error_indicator) {
18742 D(p->level--);
18743 return NULL;
18744 }
18745 void * _res = NULL;
18746 int _mark = p->mark;
18747 { // TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT
18748 if (p->error_indicator) {
18749 D(p->level--);
18750 return NULL;
18751 }
18752 D(fprintf(stderr, "%*c> invalid_double_type_comments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT"));
18753 Token * indent_var;
18754 Token * newline_var;
18755 Token * newline_var_1;
18756 Token * type_comment_var;
18757 Token * type_comment_var_1;
18758 if (
18759 (type_comment_var = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
18760 &&
18761 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
18762 &&
18763 (type_comment_var_1 = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
18764 &&
18765 (newline_var_1 = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
18766 &&
18767 (indent_var = _PyPegen_expect_token(p, INDENT)) // token='INDENT'
18768 )
18769 {
18770 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"));
18771 _res = RAISE_SYNTAX_ERROR ( "Cannot have two type comments on def" );
18772 if (_res == NULL && PyErr_Occurred()) {
18773 p->error_indicator = 1;
18774 D(p->level--);
18775 return NULL;
18776 }
18777 goto done;
18778 }
18779 p->mark = _mark;
18780 D(fprintf(stderr, "%*c%s invalid_double_type_comments[%d-%d]: %s failed!\n", p->level, ' ',
18781 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT"));
18782 }
18783 _res = NULL;
18784 done:
18785 D(p->level--);
18786 return _res;
18787}
18788
Pablo Galindo58fb1562021-02-02 19:54:22 +000018789// invalid_with_item: expression 'as' expression &(',' | ')' | ':')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018790static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018791invalid_with_item_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018792{
18793 D(p->level++);
18794 if (p->error_indicator) {
18795 D(p->level--);
18796 return NULL;
18797 }
18798 void * _res = NULL;
18799 int _mark = p->mark;
Pablo Galindo58fb1562021-02-02 19:54:22 +000018800 { // expression 'as' expression &(',' | ')' | ':')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018801 if (p->error_indicator) {
18802 D(p->level--);
18803 return NULL;
18804 }
Pablo Galindo58fb1562021-02-02 19:54:22 +000018805 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 +030018806 Token * _keyword;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018807 expr_ty a;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018808 expr_ty expression_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018809 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018810 (expression_var = expression_rule(p)) // expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018811 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018812 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
18813 &&
18814 (a = expression_rule(p)) // expression
Pablo Galindo58fb1562021-02-02 19:54:22 +000018815 &&
Pablo Galindob2802482021-04-15 21:38:45 +010018816 _PyPegen_lookahead(1, _tmp_159_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018817 )
18818 {
Pablo Galindo58fb1562021-02-02 19:54:22 +000018819 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 +030018820 _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( STAR_TARGETS , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018821 if (_res == NULL && PyErr_Occurred()) {
18822 p->error_indicator = 1;
18823 D(p->level--);
18824 return NULL;
18825 }
18826 goto done;
18827 }
18828 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018829 D(fprintf(stderr, "%*c%s invalid_with_item[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +000018830 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression 'as' expression &(',' | ')' | ':')"));
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018831 }
18832 _res = NULL;
18833 done:
18834 D(p->level--);
18835 return _res;
18836}
18837
18838// invalid_for_target: ASYNC? 'for' star_expressions
18839static void *
18840invalid_for_target_rule(Parser *p)
18841{
18842 D(p->level++);
18843 if (p->error_indicator) {
18844 D(p->level--);
18845 return NULL;
18846 }
18847 void * _res = NULL;
18848 int _mark = p->mark;
18849 { // ASYNC? 'for' star_expressions
18850 if (p->error_indicator) {
18851 D(p->level--);
18852 return NULL;
18853 }
18854 D(fprintf(stderr, "%*c> invalid_for_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC? 'for' star_expressions"));
18855 Token * _keyword;
18856 void *_opt_var;
18857 UNUSED(_opt_var); // Silence compiler warnings
18858 expr_ty a;
18859 if (
18860 (_opt_var = _PyPegen_expect_token(p, ASYNC), 1) // ASYNC?
18861 &&
18862 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
18863 &&
18864 (a = star_expressions_rule(p)) // star_expressions
18865 )
18866 {
18867 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 +030018868 _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( FOR_TARGETS , a );
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018869 if (_res == NULL && PyErr_Occurred()) {
18870 p->error_indicator = 1;
18871 D(p->level--);
18872 return NULL;
18873 }
18874 goto done;
18875 }
18876 p->mark = _mark;
18877 D(fprintf(stderr, "%*c%s invalid_for_target[%d-%d]: %s failed!\n", p->level, ' ',
18878 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'for' star_expressions"));
18879 }
18880 _res = NULL;
18881 done:
18882 D(p->level--);
18883 return _res;
18884}
18885
Pablo Galindo8efad612021-03-24 19:34:17 +000018886// invalid_group: '(' starred_expression ')' | '(' '**' expression ')'
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018887static void *
18888invalid_group_rule(Parser *p)
18889{
18890 D(p->level++);
18891 if (p->error_indicator) {
18892 D(p->level--);
18893 return NULL;
18894 }
18895 void * _res = NULL;
18896 int _mark = p->mark;
18897 { // '(' starred_expression ')'
18898 if (p->error_indicator) {
18899 D(p->level--);
18900 return NULL;
18901 }
18902 D(fprintf(stderr, "%*c> invalid_group[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' starred_expression ')'"));
18903 Token * _literal;
18904 Token * _literal_1;
18905 expr_ty a;
18906 if (
18907 (_literal = _PyPegen_expect_token(p, 7)) // token='('
18908 &&
18909 (a = starred_expression_rule(p)) // starred_expression
18910 &&
18911 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
18912 )
18913 {
18914 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 +010018915 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "cannot use starred expression here" );
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018916 if (_res == NULL && PyErr_Occurred()) {
18917 p->error_indicator = 1;
18918 D(p->level--);
18919 return NULL;
18920 }
18921 goto done;
18922 }
18923 p->mark = _mark;
18924 D(fprintf(stderr, "%*c%s invalid_group[%d-%d]: %s failed!\n", p->level, ' ',
18925 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' starred_expression ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018926 }
Pablo Galindo8efad612021-03-24 19:34:17 +000018927 { // '(' '**' expression ')'
18928 if (p->error_indicator) {
18929 D(p->level--);
18930 return NULL;
18931 }
18932 D(fprintf(stderr, "%*c> invalid_group[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' '**' expression ')'"));
18933 Token * _literal;
18934 Token * _literal_1;
18935 Token * a;
18936 expr_ty expression_var;
18937 if (
18938 (_literal = _PyPegen_expect_token(p, 7)) // token='('
18939 &&
18940 (a = _PyPegen_expect_token(p, 35)) // token='**'
18941 &&
18942 (expression_var = expression_rule(p)) // expression
18943 &&
18944 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
18945 )
18946 {
18947 D(fprintf(stderr, "%*c+ invalid_group[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' '**' expression ')'"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018948 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "cannot use double starred expression here" );
Pablo Galindo8efad612021-03-24 19:34:17 +000018949 if (_res == NULL && PyErr_Occurred()) {
18950 p->error_indicator = 1;
18951 D(p->level--);
18952 return NULL;
18953 }
18954 goto done;
18955 }
18956 p->mark = _mark;
18957 D(fprintf(stderr, "%*c%s invalid_group[%d-%d]: %s failed!\n", p->level, ' ',
18958 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' '**' expression ')'"));
18959 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018960 _res = NULL;
18961 done:
18962 D(p->level--);
18963 return _res;
18964}
18965
18966// invalid_import_from_targets: import_from_as_names ','
18967static void *
18968invalid_import_from_targets_rule(Parser *p)
18969{
18970 D(p->level++);
18971 if (p->error_indicator) {
18972 D(p->level--);
18973 return NULL;
18974 }
18975 void * _res = NULL;
18976 int _mark = p->mark;
18977 { // import_from_as_names ','
18978 if (p->error_indicator) {
18979 D(p->level--);
18980 return NULL;
18981 }
18982 D(fprintf(stderr, "%*c> invalid_import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "import_from_as_names ','"));
18983 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +010018984 asdl_alias_seq* import_from_as_names_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018985 if (
18986 (import_from_as_names_var = import_from_as_names_rule(p)) // import_from_as_names
18987 &&
18988 (_literal = _PyPegen_expect_token(p, 12)) // token=','
18989 )
18990 {
18991 D(fprintf(stderr, "%*c+ invalid_import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "import_from_as_names ','"));
18992 _res = RAISE_SYNTAX_ERROR ( "trailing comma not allowed without surrounding parentheses" );
18993 if (_res == NULL && PyErr_Occurred()) {
18994 p->error_indicator = 1;
18995 D(p->level--);
18996 return NULL;
18997 }
18998 goto done;
18999 }
19000 p->mark = _mark;
19001 D(fprintf(stderr, "%*c%s invalid_import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
19002 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from_as_names ','"));
19003 }
19004 _res = NULL;
19005 done:
19006 D(p->level--);
19007 return _res;
19008}
19009
Pablo Galindo58fb1562021-02-02 19:54:22 +000019010// invalid_with_stmt:
19011// | ASYNC? 'with' ','.(expression ['as' star_target])+ &&':'
19012// | ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' &&':'
19013static void *
19014invalid_with_stmt_rule(Parser *p)
19015{
19016 D(p->level++);
19017 if (p->error_indicator) {
19018 D(p->level--);
19019 return NULL;
19020 }
19021 void * _res = NULL;
19022 int _mark = p->mark;
19023 { // ASYNC? 'with' ','.(expression ['as' star_target])+ &&':'
19024 if (p->error_indicator) {
19025 D(p->level--);
19026 return NULL;
19027 }
19028 D(fprintf(stderr, "%*c> invalid_with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' ','.(expression ['as' star_target])+ &&':'"));
Pablo Galindob2802482021-04-15 21:38:45 +010019029 asdl_seq * _gather_160_var;
Pablo Galindo58fb1562021-02-02 19:54:22 +000019030 Token * _keyword;
19031 Token * _literal;
19032 void *_opt_var;
19033 UNUSED(_opt_var); // Silence compiler warnings
19034 if (
19035 (_opt_var = _PyPegen_expect_token(p, ASYNC), 1) // ASYNC?
19036 &&
19037 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
19038 &&
Pablo Galindob2802482021-04-15 21:38:45 +010019039 (_gather_160_var = _gather_160_rule(p)) // ','.(expression ['as' star_target])+
Pablo Galindo58fb1562021-02-02 19:54:22 +000019040 &&
19041 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
19042 )
19043 {
19044 D(fprintf(stderr, "%*c+ invalid_with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' ','.(expression ['as' star_target])+ &&':'"));
Pablo Galindob2802482021-04-15 21:38:45 +010019045 _res = _PyPegen_dummy_name(p, _opt_var, _keyword, _gather_160_var, _literal);
Pablo Galindo58fb1562021-02-02 19:54:22 +000019046 goto done;
19047 }
19048 p->mark = _mark;
19049 D(fprintf(stderr, "%*c%s invalid_with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
19050 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'with' ','.(expression ['as' star_target])+ &&':'"));
19051 }
19052 { // ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' &&':'
19053 if (p->error_indicator) {
19054 D(p->level--);
19055 return NULL;
19056 }
19057 D(fprintf(stderr, "%*c> invalid_with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' &&':'"));
Pablo Galindob2802482021-04-15 21:38:45 +010019058 asdl_seq * _gather_162_var;
Pablo Galindo58fb1562021-02-02 19:54:22 +000019059 Token * _keyword;
19060 Token * _literal;
19061 Token * _literal_1;
19062 Token * _literal_2;
19063 void *_opt_var;
19064 UNUSED(_opt_var); // Silence compiler warnings
19065 void *_opt_var_1;
19066 UNUSED(_opt_var_1); // Silence compiler warnings
19067 if (
19068 (_opt_var = _PyPegen_expect_token(p, ASYNC), 1) // ASYNC?
19069 &&
19070 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
19071 &&
19072 (_literal = _PyPegen_expect_token(p, 7)) // token='('
19073 &&
Pablo Galindob2802482021-04-15 21:38:45 +010019074 (_gather_162_var = _gather_162_rule(p)) // ','.(expressions ['as' star_target])+
Pablo Galindo58fb1562021-02-02 19:54:22 +000019075 &&
19076 (_opt_var_1 = _PyPegen_expect_token(p, 12), 1) // ','?
19077 &&
19078 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
19079 &&
19080 (_literal_2 = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
19081 )
19082 {
19083 D(fprintf(stderr, "%*c+ invalid_with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' &&':'"));
Pablo Galindob2802482021-04-15 21:38:45 +010019084 _res = _PyPegen_dummy_name(p, _opt_var, _keyword, _literal, _gather_162_var, _opt_var_1, _literal_1, _literal_2);
Pablo Galindo58fb1562021-02-02 19:54:22 +000019085 goto done;
19086 }
19087 p->mark = _mark;
19088 D(fprintf(stderr, "%*c%s invalid_with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
19089 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' &&':'"));
19090 }
19091 _res = NULL;
19092 done:
19093 D(p->level--);
19094 return _res;
19095}
19096
Pablo Galindo56c95df2021-04-21 15:28:21 +010019097// invalid_with_stmt_indent:
19098// | ASYNC? 'with' ','.(expression ['as' star_target])+ ':' NEWLINE !INDENT
19099// | ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' ':' NEWLINE !INDENT
Pablo Galindo206cbda2021-02-07 18:42:21 +000019100static void *
Pablo Galindo56c95df2021-04-21 15:28:21 +010019101invalid_with_stmt_indent_rule(Parser *p)
19102{
19103 D(p->level++);
19104 if (p->error_indicator) {
19105 D(p->level--);
19106 return NULL;
19107 }
19108 void * _res = NULL;
19109 int _mark = p->mark;
19110 { // ASYNC? 'with' ','.(expression ['as' star_target])+ ':' NEWLINE !INDENT
19111 if (p->error_indicator) {
19112 D(p->level--);
19113 return NULL;
19114 }
19115 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"));
19116 asdl_seq * _gather_164_var;
19117 Token * _literal;
19118 void *_opt_var;
19119 UNUSED(_opt_var); // Silence compiler warnings
19120 Token * a;
19121 Token * newline_var;
19122 if (
19123 (_opt_var = _PyPegen_expect_token(p, ASYNC), 1) // ASYNC?
19124 &&
19125 (a = _PyPegen_expect_token(p, 519)) // token='with'
19126 &&
19127 (_gather_164_var = _gather_164_rule(p)) // ','.(expression ['as' star_target])+
19128 &&
19129 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
19130 &&
19131 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
19132 &&
19133 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
19134 )
19135 {
19136 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"));
19137 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'with' statement on line %d" , a -> lineno );
19138 if (_res == NULL && PyErr_Occurred()) {
19139 p->error_indicator = 1;
19140 D(p->level--);
19141 return NULL;
19142 }
19143 goto done;
19144 }
19145 p->mark = _mark;
19146 D(fprintf(stderr, "%*c%s invalid_with_stmt_indent[%d-%d]: %s failed!\n", p->level, ' ',
19147 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'with' ','.(expression ['as' star_target])+ ':' NEWLINE !INDENT"));
19148 }
19149 { // ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' ':' NEWLINE !INDENT
19150 if (p->error_indicator) {
19151 D(p->level--);
19152 return NULL;
19153 }
19154 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"));
19155 asdl_seq * _gather_166_var;
19156 Token * _literal;
19157 Token * _literal_1;
19158 Token * _literal_2;
19159 void *_opt_var;
19160 UNUSED(_opt_var); // Silence compiler warnings
19161 void *_opt_var_1;
19162 UNUSED(_opt_var_1); // Silence compiler warnings
19163 Token * a;
19164 Token * newline_var;
19165 if (
19166 (_opt_var = _PyPegen_expect_token(p, ASYNC), 1) // ASYNC?
19167 &&
19168 (a = _PyPegen_expect_token(p, 519)) // token='with'
19169 &&
19170 (_literal = _PyPegen_expect_token(p, 7)) // token='('
19171 &&
19172 (_gather_166_var = _gather_166_rule(p)) // ','.(expressions ['as' star_target])+
19173 &&
19174 (_opt_var_1 = _PyPegen_expect_token(p, 12), 1) // ','?
19175 &&
19176 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
19177 &&
19178 (_literal_2 = _PyPegen_expect_token(p, 11)) // token=':'
19179 &&
19180 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
19181 &&
19182 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
19183 )
19184 {
19185 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"));
19186 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'with' statement on line %d" , a -> lineno );
19187 if (_res == NULL && PyErr_Occurred()) {
19188 p->error_indicator = 1;
19189 D(p->level--);
19190 return NULL;
19191 }
19192 goto done;
19193 }
19194 p->mark = _mark;
19195 D(fprintf(stderr, "%*c%s invalid_with_stmt_indent[%d-%d]: %s failed!\n", p->level, ' ',
19196 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' ':' NEWLINE !INDENT"));
19197 }
19198 _res = NULL;
19199 done:
19200 D(p->level--);
19201 return _res;
19202}
19203
19204// invalid_try_stmt: 'try' ':' NEWLINE !INDENT
19205static void *
19206invalid_try_stmt_rule(Parser *p)
19207{
19208 D(p->level++);
19209 if (p->error_indicator) {
19210 D(p->level--);
19211 return NULL;
19212 }
19213 void * _res = NULL;
19214 int _mark = p->mark;
19215 { // 'try' ':' NEWLINE !INDENT
19216 if (p->error_indicator) {
19217 D(p->level--);
19218 return NULL;
19219 }
19220 D(fprintf(stderr, "%*c> invalid_try_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'try' ':' NEWLINE !INDENT"));
19221 Token * _literal;
19222 Token * a;
19223 Token * newline_var;
19224 if (
19225 (a = _PyPegen_expect_token(p, 511)) // token='try'
19226 &&
19227 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
19228 &&
19229 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
19230 &&
19231 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
19232 )
19233 {
19234 D(fprintf(stderr, "%*c+ invalid_try_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'try' ':' NEWLINE !INDENT"));
19235 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'try' statement on line %d" , a -> lineno );
19236 if (_res == NULL && PyErr_Occurred()) {
19237 p->error_indicator = 1;
19238 D(p->level--);
19239 return NULL;
19240 }
19241 goto done;
19242 }
19243 p->mark = _mark;
19244 D(fprintf(stderr, "%*c%s invalid_try_stmt[%d-%d]: %s failed!\n", p->level, ' ',
19245 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'try' ':' NEWLINE !INDENT"));
19246 }
19247 _res = NULL;
19248 done:
19249 D(p->level--);
19250 return _res;
19251}
19252
19253// invalid_except_stmt:
19254// | 'except' expression ',' expressions ['as' NAME] ':'
19255// | 'except' expression ['as' NAME] NEWLINE
19256// | 'except' NEWLINE
19257static void *
19258invalid_except_stmt_rule(Parser *p)
Pablo Galindo206cbda2021-02-07 18:42:21 +000019259{
19260 D(p->level++);
19261 if (p->error_indicator) {
19262 D(p->level--);
19263 return NULL;
19264 }
19265 void * _res = NULL;
19266 int _mark = p->mark;
19267 { // 'except' expression ',' expressions ['as' NAME] ':'
19268 if (p->error_indicator) {
19269 D(p->level--);
19270 return NULL;
19271 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010019272 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 +000019273 Token * _keyword;
19274 Token * _literal;
19275 Token * _literal_1;
19276 void *_opt_var;
19277 UNUSED(_opt_var); // Silence compiler warnings
19278 expr_ty a;
19279 expr_ty expressions_var;
19280 if (
19281 (_keyword = _PyPegen_expect_token(p, 521)) // token='except'
19282 &&
19283 (a = expression_rule(p)) // expression
19284 &&
19285 (_literal = _PyPegen_expect_token(p, 12)) // token=','
19286 &&
19287 (expressions_var = expressions_rule(p)) // expressions
19288 &&
Pablo Galindo56c95df2021-04-21 15:28:21 +010019289 (_opt_var = _tmp_168_rule(p), 1) // ['as' NAME]
Pablo Galindo206cbda2021-02-07 18:42:21 +000019290 &&
19291 (_literal_1 = _PyPegen_expect_token(p, 11)) // token=':'
19292 )
19293 {
Pablo Galindo56c95df2021-04-21 15:28:21 +010019294 D(fprintf(stderr, "%*c+ invalid_except_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' expression ',' expressions ['as' NAME] ':'"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000019295 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "exception group must be parenthesized" );
19296 if (_res == NULL && PyErr_Occurred()) {
19297 p->error_indicator = 1;
19298 D(p->level--);
19299 return NULL;
19300 }
19301 goto done;
19302 }
19303 p->mark = _mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +010019304 D(fprintf(stderr, "%*c%s invalid_except_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo206cbda2021-02-07 18:42:21 +000019305 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' expression ',' expressions ['as' NAME] ':'"));
19306 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010019307 { // 'except' expression ['as' NAME] NEWLINE
Pablo Galindo206cbda2021-02-07 18:42:21 +000019308 if (p->error_indicator) {
19309 D(p->level--);
19310 return NULL;
19311 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010019312 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 +000019313 void *_opt_var;
19314 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindo56c95df2021-04-21 15:28:21 +010019315 Token * a;
Pablo Galindo206cbda2021-02-07 18:42:21 +000019316 expr_ty expression_var;
Pablo Galindo56c95df2021-04-21 15:28:21 +010019317 Token * newline_var;
Pablo Galindo206cbda2021-02-07 18:42:21 +000019318 if (
Pablo Galindo56c95df2021-04-21 15:28:21 +010019319 (a = _PyPegen_expect_token(p, 521)) // token='except'
Pablo Galindo206cbda2021-02-07 18:42:21 +000019320 &&
19321 (expression_var = expression_rule(p)) // expression
19322 &&
Pablo Galindo56c95df2021-04-21 15:28:21 +010019323 (_opt_var = _tmp_169_rule(p), 1) // ['as' NAME]
Pablo Galindo206cbda2021-02-07 18:42:21 +000019324 &&
Pablo Galindo56c95df2021-04-21 15:28:21 +010019325 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
Pablo Galindo206cbda2021-02-07 18:42:21 +000019326 )
19327 {
Pablo Galindo56c95df2021-04-21 15:28:21 +010019328 D(fprintf(stderr, "%*c+ invalid_except_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' expression ['as' NAME] NEWLINE"));
19329 _res = RAISE_SYNTAX_ERROR ( "expected ':'" );
19330 if (_res == NULL && PyErr_Occurred()) {
19331 p->error_indicator = 1;
19332 D(p->level--);
19333 return NULL;
19334 }
Pablo Galindo206cbda2021-02-07 18:42:21 +000019335 goto done;
19336 }
19337 p->mark = _mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +010019338 D(fprintf(stderr, "%*c%s invalid_except_stmt[%d-%d]: %s failed!\n", p->level, ' ',
19339 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' expression ['as' NAME] NEWLINE"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000019340 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010019341 { // 'except' NEWLINE
Pablo Galindo206cbda2021-02-07 18:42:21 +000019342 if (p->error_indicator) {
19343 D(p->level--);
19344 return NULL;
19345 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010019346 D(fprintf(stderr, "%*c> invalid_except_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' NEWLINE"));
19347 Token * a;
19348 Token * newline_var;
Pablo Galindo206cbda2021-02-07 18:42:21 +000019349 if (
Pablo Galindo56c95df2021-04-21 15:28:21 +010019350 (a = _PyPegen_expect_token(p, 521)) // token='except'
Pablo Galindo206cbda2021-02-07 18:42:21 +000019351 &&
Pablo Galindo56c95df2021-04-21 15:28:21 +010019352 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
Pablo Galindo206cbda2021-02-07 18:42:21 +000019353 )
19354 {
Pablo Galindo56c95df2021-04-21 15:28:21 +010019355 D(fprintf(stderr, "%*c+ invalid_except_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' NEWLINE"));
19356 _res = RAISE_SYNTAX_ERROR ( "expected ':'" );
19357 if (_res == NULL && PyErr_Occurred()) {
19358 p->error_indicator = 1;
19359 D(p->level--);
19360 return NULL;
19361 }
Pablo Galindo206cbda2021-02-07 18:42:21 +000019362 goto done;
19363 }
19364 p->mark = _mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +010019365 D(fprintf(stderr, "%*c%s invalid_except_stmt[%d-%d]: %s failed!\n", p->level, ' ',
19366 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' NEWLINE"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000019367 }
19368 _res = NULL;
19369 done:
19370 D(p->level--);
19371 return _res;
19372}
19373
Pablo Galindo56c95df2021-04-21 15:28:21 +010019374// invalid_finally_stmt: 'finally' ':' NEWLINE !INDENT
19375static void *
19376invalid_finally_stmt_rule(Parser *p)
19377{
19378 D(p->level++);
19379 if (p->error_indicator) {
19380 D(p->level--);
19381 return NULL;
19382 }
19383 void * _res = NULL;
19384 int _mark = p->mark;
19385 { // 'finally' ':' NEWLINE !INDENT
19386 if (p->error_indicator) {
19387 D(p->level--);
19388 return NULL;
19389 }
19390 D(fprintf(stderr, "%*c> invalid_finally_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'finally' ':' NEWLINE !INDENT"));
19391 Token * _literal;
19392 Token * a;
19393 Token * newline_var;
19394 if (
19395 (a = _PyPegen_expect_token(p, 522)) // token='finally'
19396 &&
19397 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
19398 &&
19399 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
19400 &&
19401 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
19402 )
19403 {
19404 D(fprintf(stderr, "%*c+ invalid_finally_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'finally' ':' NEWLINE !INDENT"));
19405 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'finally' statement on line %d" , a -> lineno );
19406 if (_res == NULL && PyErr_Occurred()) {
19407 p->error_indicator = 1;
19408 D(p->level--);
19409 return NULL;
19410 }
19411 goto done;
19412 }
19413 p->mark = _mark;
19414 D(fprintf(stderr, "%*c%s invalid_finally_stmt[%d-%d]: %s failed!\n", p->level, ' ',
19415 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'finally' ':' NEWLINE !INDENT"));
19416 }
19417 _res = NULL;
19418 done:
19419 D(p->level--);
19420 return _res;
19421}
19422
19423// invalid_except_stmt_indent:
19424// | 'except' expression ['as' NAME] ':' NEWLINE !INDENT
19425// | 'except' ':' NEWLINE !INDENT
19426static void *
19427invalid_except_stmt_indent_rule(Parser *p)
19428{
19429 D(p->level++);
19430 if (p->error_indicator) {
19431 D(p->level--);
19432 return NULL;
19433 }
19434 void * _res = NULL;
19435 int _mark = p->mark;
19436 { // 'except' expression ['as' NAME] ':' NEWLINE !INDENT
19437 if (p->error_indicator) {
19438 D(p->level--);
19439 return NULL;
19440 }
19441 D(fprintf(stderr, "%*c> invalid_except_stmt_indent[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' expression ['as' NAME] ':' NEWLINE !INDENT"));
19442 Token * _literal;
19443 void *_opt_var;
19444 UNUSED(_opt_var); // Silence compiler warnings
19445 Token * a;
19446 expr_ty expression_var;
19447 Token * newline_var;
19448 if (
19449 (a = _PyPegen_expect_token(p, 521)) // token='except'
19450 &&
19451 (expression_var = expression_rule(p)) // expression
19452 &&
19453 (_opt_var = _tmp_170_rule(p), 1) // ['as' NAME]
19454 &&
19455 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
19456 &&
19457 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
19458 &&
19459 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
19460 )
19461 {
19462 D(fprintf(stderr, "%*c+ invalid_except_stmt_indent[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' expression ['as' NAME] ':' NEWLINE !INDENT"));
19463 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'except' statement on line %d" , a -> lineno );
19464 if (_res == NULL && PyErr_Occurred()) {
19465 p->error_indicator = 1;
19466 D(p->level--);
19467 return NULL;
19468 }
19469 goto done;
19470 }
19471 p->mark = _mark;
19472 D(fprintf(stderr, "%*c%s invalid_except_stmt_indent[%d-%d]: %s failed!\n", p->level, ' ',
19473 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' expression ['as' NAME] ':' NEWLINE !INDENT"));
19474 }
19475 { // 'except' ':' NEWLINE !INDENT
19476 if (p->error_indicator) {
19477 D(p->level--);
19478 return NULL;
19479 }
19480 D(fprintf(stderr, "%*c> invalid_except_stmt_indent[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' ':' NEWLINE !INDENT"));
19481 Token * _literal;
19482 Token * a;
19483 Token * newline_var;
19484 if (
19485 (a = _PyPegen_expect_token(p, 521)) // token='except'
19486 &&
19487 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
19488 &&
19489 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
19490 &&
19491 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
19492 )
19493 {
19494 D(fprintf(stderr, "%*c+ invalid_except_stmt_indent[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' ':' NEWLINE !INDENT"));
19495 _res = RAISE_SYNTAX_ERROR ( "expected an indented block after except statement on line %d" , a -> lineno );
19496 if (_res == NULL && PyErr_Occurred()) {
19497 p->error_indicator = 1;
19498 D(p->level--);
19499 return NULL;
19500 }
19501 goto done;
19502 }
19503 p->mark = _mark;
19504 D(fprintf(stderr, "%*c%s invalid_except_stmt_indent[%d-%d]: %s failed!\n", p->level, ' ',
19505 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' ':' NEWLINE !INDENT"));
19506 }
19507 _res = NULL;
19508 done:
19509 D(p->level--);
19510 return _res;
19511}
19512
19513// invalid_match_stmt:
19514// | "match" subject_expr !':'
19515// | "match" subject_expr ':' NEWLINE !INDENT
Pablo Galindo08fb8ac2021-03-18 01:03:11 +000019516static void *
19517invalid_match_stmt_rule(Parser *p)
19518{
19519 D(p->level++);
19520 if (p->error_indicator) {
19521 D(p->level--);
19522 return NULL;
19523 }
19524 void * _res = NULL;
19525 int _mark = p->mark;
19526 { // "match" subject_expr !':'
19527 if (p->error_indicator) {
19528 D(p->level--);
19529 return NULL;
19530 }
19531 D(fprintf(stderr, "%*c> invalid_match_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"match\" subject_expr !':'"));
19532 expr_ty _keyword;
19533 expr_ty subject_expr_var;
19534 if (
19535 (_keyword = _PyPegen_expect_soft_keyword(p, "match")) // soft_keyword='"match"'
19536 &&
19537 (subject_expr_var = subject_expr_rule(p)) // subject_expr
19538 &&
19539 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 11) // token=':'
19540 )
19541 {
19542 D(fprintf(stderr, "%*c+ invalid_match_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"match\" subject_expr !':'"));
19543 _res = CHECK_VERSION ( void * , 10 , "Pattern matching is" , RAISE_SYNTAX_ERROR ( "expected ':'" ) );
19544 if (_res == NULL && PyErr_Occurred()) {
19545 p->error_indicator = 1;
19546 D(p->level--);
19547 return NULL;
19548 }
19549 goto done;
19550 }
19551 p->mark = _mark;
19552 D(fprintf(stderr, "%*c%s invalid_match_stmt[%d-%d]: %s failed!\n", p->level, ' ',
19553 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"match\" subject_expr !':'"));
19554 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010019555 { // "match" subject_expr ':' NEWLINE !INDENT
19556 if (p->error_indicator) {
19557 D(p->level--);
19558 return NULL;
19559 }
19560 D(fprintf(stderr, "%*c> invalid_match_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"match\" subject_expr ':' NEWLINE !INDENT"));
19561 Token * _literal;
19562 expr_ty a;
19563 Token * newline_var;
19564 expr_ty subject;
19565 if (
19566 (a = _PyPegen_expect_soft_keyword(p, "match")) // soft_keyword='"match"'
19567 &&
19568 (subject = subject_expr_rule(p)) // subject_expr
19569 &&
19570 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
19571 &&
19572 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
19573 &&
19574 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
19575 )
19576 {
19577 D(fprintf(stderr, "%*c+ invalid_match_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"match\" subject_expr ':' NEWLINE !INDENT"));
19578 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'match' statement on line %d" , a -> lineno );
19579 if (_res == NULL && PyErr_Occurred()) {
19580 p->error_indicator = 1;
19581 D(p->level--);
19582 return NULL;
19583 }
19584 goto done;
19585 }
19586 p->mark = _mark;
19587 D(fprintf(stderr, "%*c%s invalid_match_stmt[%d-%d]: %s failed!\n", p->level, ' ',
19588 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"match\" subject_expr ':' NEWLINE !INDENT"));
19589 }
Pablo Galindo08fb8ac2021-03-18 01:03:11 +000019590 _res = NULL;
19591 done:
19592 D(p->level--);
19593 return _res;
19594}
19595
Pablo Galindo56c95df2021-04-21 15:28:21 +010019596// invalid_case_block:
19597// | "case" patterns guard? !':'
19598// | "case" patterns guard? ':' NEWLINE !INDENT
Pablo Galindo08fb8ac2021-03-18 01:03:11 +000019599static void *
19600invalid_case_block_rule(Parser *p)
19601{
19602 D(p->level++);
19603 if (p->error_indicator) {
19604 D(p->level--);
19605 return NULL;
19606 }
19607 void * _res = NULL;
19608 int _mark = p->mark;
19609 { // "case" patterns guard? !':'
19610 if (p->error_indicator) {
19611 D(p->level--);
19612 return NULL;
19613 }
19614 D(fprintf(stderr, "%*c> invalid_case_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"case\" patterns guard? !':'"));
19615 expr_ty _keyword;
19616 void *_opt_var;
19617 UNUSED(_opt_var); // Silence compiler warnings
19618 expr_ty patterns_var;
19619 if (
19620 (_keyword = _PyPegen_expect_soft_keyword(p, "case")) // soft_keyword='"case"'
19621 &&
19622 (patterns_var = patterns_rule(p)) // patterns
19623 &&
19624 (_opt_var = guard_rule(p), 1) // guard?
19625 &&
19626 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 11) // token=':'
19627 )
19628 {
19629 D(fprintf(stderr, "%*c+ invalid_case_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"case\" patterns guard? !':'"));
19630 _res = RAISE_SYNTAX_ERROR ( "expected ':'" );
19631 if (_res == NULL && PyErr_Occurred()) {
19632 p->error_indicator = 1;
19633 D(p->level--);
19634 return NULL;
19635 }
19636 goto done;
19637 }
19638 p->mark = _mark;
19639 D(fprintf(stderr, "%*c%s invalid_case_block[%d-%d]: %s failed!\n", p->level, ' ',
19640 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"case\" patterns guard? !':'"));
19641 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010019642 { // "case" patterns guard? ':' NEWLINE !INDENT
19643 if (p->error_indicator) {
19644 D(p->level--);
19645 return NULL;
19646 }
19647 D(fprintf(stderr, "%*c> invalid_case_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"case\" patterns guard? ':' NEWLINE !INDENT"));
19648 Token * _literal;
19649 void *_opt_var;
19650 UNUSED(_opt_var); // Silence compiler warnings
19651 expr_ty a;
19652 Token * newline_var;
19653 expr_ty patterns_var;
19654 if (
19655 (a = _PyPegen_expect_soft_keyword(p, "case")) // soft_keyword='"case"'
19656 &&
19657 (patterns_var = patterns_rule(p)) // patterns
19658 &&
19659 (_opt_var = guard_rule(p), 1) // guard?
19660 &&
19661 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
19662 &&
19663 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
19664 &&
19665 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
19666 )
19667 {
19668 D(fprintf(stderr, "%*c+ invalid_case_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"case\" patterns guard? ':' NEWLINE !INDENT"));
19669 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'case' statement on line %d" , a -> lineno );
19670 if (_res == NULL && PyErr_Occurred()) {
19671 p->error_indicator = 1;
19672 D(p->level--);
19673 return NULL;
19674 }
19675 goto done;
19676 }
19677 p->mark = _mark;
19678 D(fprintf(stderr, "%*c%s invalid_case_block[%d-%d]: %s failed!\n", p->level, ' ',
19679 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"case\" patterns guard? ':' NEWLINE !INDENT"));
19680 }
Pablo Galindo08fb8ac2021-03-18 01:03:11 +000019681 _res = NULL;
19682 done:
19683 D(p->level--);
19684 return _res;
19685}
19686
Pablo Galindo56c95df2021-04-21 15:28:21 +010019687// invalid_if_stmt:
19688// | 'if' named_expression NEWLINE
19689// | 'if' named_expression ':' NEWLINE !INDENT
Pablo Galindob86ed8e2021-04-12 16:59:30 +010019690static void *
19691invalid_if_stmt_rule(Parser *p)
19692{
19693 D(p->level++);
19694 if (p->error_indicator) {
19695 D(p->level--);
19696 return NULL;
19697 }
19698 void * _res = NULL;
19699 int _mark = p->mark;
19700 { // 'if' named_expression NEWLINE
19701 if (p->error_indicator) {
19702 D(p->level--);
19703 return NULL;
19704 }
19705 D(fprintf(stderr, "%*c> invalid_if_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' named_expression NEWLINE"));
19706 Token * _keyword;
19707 expr_ty named_expression_var;
19708 Token * newline_var;
19709 if (
19710 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
19711 &&
19712 (named_expression_var = named_expression_rule(p)) // named_expression
19713 &&
19714 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
19715 )
19716 {
19717 D(fprintf(stderr, "%*c+ invalid_if_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' named_expression NEWLINE"));
19718 _res = RAISE_SYNTAX_ERROR ( "expected ':'" );
19719 if (_res == NULL && PyErr_Occurred()) {
19720 p->error_indicator = 1;
19721 D(p->level--);
19722 return NULL;
19723 }
19724 goto done;
19725 }
19726 p->mark = _mark;
19727 D(fprintf(stderr, "%*c%s invalid_if_stmt[%d-%d]: %s failed!\n", p->level, ' ',
19728 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' named_expression NEWLINE"));
19729 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010019730 { // 'if' named_expression ':' NEWLINE !INDENT
19731 if (p->error_indicator) {
19732 D(p->level--);
19733 return NULL;
19734 }
19735 D(fprintf(stderr, "%*c> invalid_if_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' named_expression ':' NEWLINE !INDENT"));
19736 Token * _literal;
19737 Token * a;
19738 expr_ty a_1;
19739 Token * newline_var;
19740 if (
19741 (a = _PyPegen_expect_token(p, 510)) // token='if'
19742 &&
19743 (a_1 = named_expression_rule(p)) // named_expression
19744 &&
19745 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
19746 &&
19747 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
19748 &&
19749 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
19750 )
19751 {
19752 D(fprintf(stderr, "%*c+ invalid_if_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' named_expression ':' NEWLINE !INDENT"));
19753 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'if' statement on line %d" , a -> lineno );
19754 if (_res == NULL && PyErr_Occurred()) {
19755 p->error_indicator = 1;
19756 D(p->level--);
19757 return NULL;
19758 }
19759 goto done;
19760 }
19761 p->mark = _mark;
19762 D(fprintf(stderr, "%*c%s invalid_if_stmt[%d-%d]: %s failed!\n", p->level, ' ',
19763 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' named_expression ':' NEWLINE !INDENT"));
19764 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010019765 _res = NULL;
19766 done:
19767 D(p->level--);
19768 return _res;
19769}
19770
Pablo Galindo56c95df2021-04-21 15:28:21 +010019771// invalid_elif_stmt:
19772// | 'elif' named_expression NEWLINE
19773// | 'elif' named_expression ':' NEWLINE !INDENT
Pablo Galindob86ed8e2021-04-12 16:59:30 +010019774static void *
19775invalid_elif_stmt_rule(Parser *p)
19776{
19777 D(p->level++);
19778 if (p->error_indicator) {
19779 D(p->level--);
19780 return NULL;
19781 }
19782 void * _res = NULL;
19783 int _mark = p->mark;
19784 { // 'elif' named_expression NEWLINE
19785 if (p->error_indicator) {
19786 D(p->level--);
19787 return NULL;
19788 }
19789 D(fprintf(stderr, "%*c> invalid_elif_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'elif' named_expression NEWLINE"));
19790 Token * _keyword;
19791 expr_ty named_expression_var;
19792 Token * newline_var;
19793 if (
19794 (_keyword = _PyPegen_expect_token(p, 515)) // token='elif'
19795 &&
19796 (named_expression_var = named_expression_rule(p)) // named_expression
19797 &&
19798 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
19799 )
19800 {
19801 D(fprintf(stderr, "%*c+ invalid_elif_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'elif' named_expression NEWLINE"));
19802 _res = RAISE_SYNTAX_ERROR ( "expected ':'" );
19803 if (_res == NULL && PyErr_Occurred()) {
19804 p->error_indicator = 1;
19805 D(p->level--);
19806 return NULL;
19807 }
19808 goto done;
19809 }
19810 p->mark = _mark;
19811 D(fprintf(stderr, "%*c%s invalid_elif_stmt[%d-%d]: %s failed!\n", p->level, ' ',
19812 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'elif' named_expression NEWLINE"));
19813 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010019814 { // 'elif' named_expression ':' NEWLINE !INDENT
19815 if (p->error_indicator) {
19816 D(p->level--);
19817 return NULL;
19818 }
19819 D(fprintf(stderr, "%*c> invalid_elif_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'elif' named_expression ':' NEWLINE !INDENT"));
19820 Token * _literal;
19821 Token * a;
19822 expr_ty named_expression_var;
19823 Token * newline_var;
19824 if (
19825 (a = _PyPegen_expect_token(p, 515)) // token='elif'
19826 &&
19827 (named_expression_var = named_expression_rule(p)) // named_expression
19828 &&
19829 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
19830 &&
19831 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
19832 &&
19833 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
19834 )
19835 {
19836 D(fprintf(stderr, "%*c+ invalid_elif_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'elif' named_expression ':' NEWLINE !INDENT"));
19837 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'elif' statement on line %d" , a -> lineno );
19838 if (_res == NULL && PyErr_Occurred()) {
19839 p->error_indicator = 1;
19840 D(p->level--);
19841 return NULL;
19842 }
19843 goto done;
19844 }
19845 p->mark = _mark;
19846 D(fprintf(stderr, "%*c%s invalid_elif_stmt[%d-%d]: %s failed!\n", p->level, ' ',
19847 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'elif' named_expression ':' NEWLINE !INDENT"));
19848 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010019849 _res = NULL;
19850 done:
19851 D(p->level--);
19852 return _res;
19853}
19854
Pablo Galindo56c95df2021-04-21 15:28:21 +010019855// invalid_else_stmt: 'else' ':' NEWLINE !INDENT
19856static void *
19857invalid_else_stmt_rule(Parser *p)
19858{
19859 D(p->level++);
19860 if (p->error_indicator) {
19861 D(p->level--);
19862 return NULL;
19863 }
19864 void * _res = NULL;
19865 int _mark = p->mark;
19866 { // 'else' ':' NEWLINE !INDENT
19867 if (p->error_indicator) {
19868 D(p->level--);
19869 return NULL;
19870 }
19871 D(fprintf(stderr, "%*c> invalid_else_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'else' ':' NEWLINE !INDENT"));
19872 Token * _literal;
19873 Token * a;
19874 Token * newline_var;
19875 if (
19876 (a = _PyPegen_expect_token(p, 516)) // token='else'
19877 &&
19878 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
19879 &&
19880 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
19881 &&
19882 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
19883 )
19884 {
19885 D(fprintf(stderr, "%*c+ invalid_else_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'else' ':' NEWLINE !INDENT"));
19886 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'else' statement on line %d" , a -> lineno );
19887 if (_res == NULL && PyErr_Occurred()) {
19888 p->error_indicator = 1;
19889 D(p->level--);
19890 return NULL;
19891 }
19892 goto done;
19893 }
19894 p->mark = _mark;
19895 D(fprintf(stderr, "%*c%s invalid_else_stmt[%d-%d]: %s failed!\n", p->level, ' ',
19896 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'else' ':' NEWLINE !INDENT"));
19897 }
19898 _res = NULL;
19899 done:
19900 D(p->level--);
19901 return _res;
19902}
19903
19904// invalid_while_stmt:
19905// | 'while' named_expression NEWLINE
19906// | 'while' named_expression ':' NEWLINE !INDENT
Pablo Galindob86ed8e2021-04-12 16:59:30 +010019907static void *
19908invalid_while_stmt_rule(Parser *p)
19909{
19910 D(p->level++);
19911 if (p->error_indicator) {
19912 D(p->level--);
19913 return NULL;
19914 }
19915 void * _res = NULL;
19916 int _mark = p->mark;
19917 { // 'while' named_expression NEWLINE
19918 if (p->error_indicator) {
19919 D(p->level--);
19920 return NULL;
19921 }
19922 D(fprintf(stderr, "%*c> invalid_while_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'while' named_expression NEWLINE"));
19923 Token * _keyword;
19924 expr_ty named_expression_var;
19925 Token * newline_var;
19926 if (
19927 (_keyword = _PyPegen_expect_token(p, 512)) // token='while'
19928 &&
19929 (named_expression_var = named_expression_rule(p)) // named_expression
19930 &&
19931 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
19932 )
19933 {
19934 D(fprintf(stderr, "%*c+ invalid_while_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'while' named_expression NEWLINE"));
19935 _res = RAISE_SYNTAX_ERROR ( "expected ':'" );
19936 if (_res == NULL && PyErr_Occurred()) {
19937 p->error_indicator = 1;
19938 D(p->level--);
19939 return NULL;
19940 }
19941 goto done;
19942 }
19943 p->mark = _mark;
19944 D(fprintf(stderr, "%*c%s invalid_while_stmt[%d-%d]: %s failed!\n", p->level, ' ',
19945 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'while' named_expression NEWLINE"));
19946 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010019947 { // 'while' named_expression ':' NEWLINE !INDENT
19948 if (p->error_indicator) {
19949 D(p->level--);
19950 return NULL;
19951 }
19952 D(fprintf(stderr, "%*c> invalid_while_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'while' named_expression ':' NEWLINE !INDENT"));
19953 Token * _literal;
19954 Token * a;
19955 expr_ty named_expression_var;
19956 Token * newline_var;
19957 if (
19958 (a = _PyPegen_expect_token(p, 512)) // token='while'
19959 &&
19960 (named_expression_var = named_expression_rule(p)) // named_expression
19961 &&
19962 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
19963 &&
19964 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
19965 &&
19966 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
19967 )
19968 {
19969 D(fprintf(stderr, "%*c+ invalid_while_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'while' named_expression ':' NEWLINE !INDENT"));
19970 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'while' statement on line %d" , a -> lineno );
19971 if (_res == NULL && PyErr_Occurred()) {
19972 p->error_indicator = 1;
19973 D(p->level--);
19974 return NULL;
19975 }
19976 goto done;
19977 }
19978 p->mark = _mark;
19979 D(fprintf(stderr, "%*c%s invalid_while_stmt[%d-%d]: %s failed!\n", p->level, ' ',
19980 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'while' named_expression ':' NEWLINE !INDENT"));
19981 }
19982 _res = NULL;
19983 done:
19984 D(p->level--);
19985 return _res;
19986}
19987
19988// invalid_for_stmt: ASYNC? 'for' star_targets 'in' star_expressions ':' NEWLINE !INDENT
19989static void *
19990invalid_for_stmt_rule(Parser *p)
19991{
19992 D(p->level++);
19993 if (p->error_indicator) {
19994 D(p->level--);
19995 return NULL;
19996 }
19997 void * _res = NULL;
19998 int _mark = p->mark;
19999 { // ASYNC? 'for' star_targets 'in' star_expressions ':' NEWLINE !INDENT
20000 if (p->error_indicator) {
20001 D(p->level--);
20002 return NULL;
20003 }
20004 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"));
20005 Token * _keyword;
20006 Token * _literal;
20007 void *_opt_var;
20008 UNUSED(_opt_var); // Silence compiler warnings
20009 Token * a;
20010 Token * newline_var;
20011 expr_ty star_expressions_var;
20012 expr_ty star_targets_var;
20013 if (
20014 (_opt_var = _PyPegen_expect_token(p, ASYNC), 1) // ASYNC?
20015 &&
20016 (a = _PyPegen_expect_token(p, 517)) // token='for'
20017 &&
20018 (star_targets_var = star_targets_rule(p)) // star_targets
20019 &&
20020 (_keyword = _PyPegen_expect_token(p, 518)) // token='in'
20021 &&
20022 (star_expressions_var = star_expressions_rule(p)) // star_expressions
20023 &&
20024 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
20025 &&
20026 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20027 &&
20028 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20029 )
20030 {
20031 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"));
20032 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'for' statement on line %d" , a -> lineno );
20033 if (_res == NULL && PyErr_Occurred()) {
20034 p->error_indicator = 1;
20035 D(p->level--);
20036 return NULL;
20037 }
20038 goto done;
20039 }
20040 p->mark = _mark;
20041 D(fprintf(stderr, "%*c%s invalid_for_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20042 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'for' star_targets 'in' star_expressions ':' NEWLINE !INDENT"));
20043 }
20044 _res = NULL;
20045 done:
20046 D(p->level--);
20047 return _res;
20048}
20049
20050// invalid_def_raw:
20051// | ASYNC? 'def' NAME '(' params? ')' ['->' expression] ':' NEWLINE !INDENT
20052static void *
20053invalid_def_raw_rule(Parser *p)
20054{
20055 D(p->level++);
20056 if (p->error_indicator) {
20057 D(p->level--);
20058 return NULL;
20059 }
20060 void * _res = NULL;
20061 int _mark = p->mark;
20062 { // ASYNC? 'def' NAME '(' params? ')' ['->' expression] ':' NEWLINE !INDENT
20063 if (p->error_indicator) {
20064 D(p->level--);
20065 return NULL;
20066 }
20067 D(fprintf(stderr, "%*c> invalid_def_raw[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC? 'def' NAME '(' params? ')' ['->' expression] ':' NEWLINE !INDENT"));
20068 Token * _literal;
20069 Token * _literal_1;
20070 Token * _literal_2;
20071 void *_opt_var;
20072 UNUSED(_opt_var); // Silence compiler warnings
20073 void *_opt_var_1;
20074 UNUSED(_opt_var_1); // Silence compiler warnings
20075 void *_opt_var_2;
20076 UNUSED(_opt_var_2); // Silence compiler warnings
20077 Token * a;
20078 expr_ty name_var;
20079 Token * newline_var;
20080 if (
20081 (_opt_var = _PyPegen_expect_token(p, ASYNC), 1) // ASYNC?
20082 &&
20083 (a = _PyPegen_expect_token(p, 526)) // token='def'
20084 &&
20085 (name_var = _PyPegen_name_token(p)) // NAME
20086 &&
20087 (_literal = _PyPegen_expect_token(p, 7)) // token='('
20088 &&
20089 (_opt_var_1 = params_rule(p), 1) // params?
20090 &&
20091 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
20092 &&
20093 (_opt_var_2 = _tmp_171_rule(p), 1) // ['->' expression]
20094 &&
20095 (_literal_2 = _PyPegen_expect_token(p, 11)) // token=':'
20096 &&
20097 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20098 &&
20099 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20100 )
20101 {
20102 D(fprintf(stderr, "%*c+ invalid_def_raw[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC? 'def' NAME '(' params? ')' ['->' expression] ':' NEWLINE !INDENT"));
20103 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after function definition on line %d" , a -> lineno );
20104 if (_res == NULL && PyErr_Occurred()) {
20105 p->error_indicator = 1;
20106 D(p->level--);
20107 return NULL;
20108 }
20109 goto done;
20110 }
20111 p->mark = _mark;
20112 D(fprintf(stderr, "%*c%s invalid_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
20113 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'def' NAME '(' params? ')' ['->' expression] ':' NEWLINE !INDENT"));
20114 }
20115 _res = NULL;
20116 done:
20117 D(p->level--);
20118 return _res;
20119}
20120
20121// invalid_class_def_raw: 'class' NAME ['(' arguments? ')'] ':' NEWLINE !INDENT
20122static void *
20123invalid_class_def_raw_rule(Parser *p)
20124{
20125 D(p->level++);
20126 if (p->error_indicator) {
20127 D(p->level--);
20128 return NULL;
20129 }
20130 void * _res = NULL;
20131 int _mark = p->mark;
20132 { // 'class' NAME ['(' arguments? ')'] ':' NEWLINE !INDENT
20133 if (p->error_indicator) {
20134 D(p->level--);
20135 return NULL;
20136 }
20137 D(fprintf(stderr, "%*c> invalid_class_def_raw[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'class' NAME ['(' arguments? ')'] ':' NEWLINE !INDENT"));
20138 Token * _literal;
20139 void *_opt_var;
20140 UNUSED(_opt_var); // Silence compiler warnings
20141 Token * a;
20142 expr_ty name_var;
20143 Token * newline_var;
20144 if (
20145 (a = _PyPegen_expect_token(p, 527)) // token='class'
20146 &&
20147 (name_var = _PyPegen_name_token(p)) // NAME
20148 &&
20149 (_opt_var = _tmp_172_rule(p), 1) // ['(' arguments? ')']
20150 &&
20151 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
20152 &&
20153 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20154 &&
20155 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20156 )
20157 {
20158 D(fprintf(stderr, "%*c+ invalid_class_def_raw[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'class' NAME ['(' arguments? ')'] ':' NEWLINE !INDENT"));
20159 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after class definition on line %d" , a -> lineno );
20160 if (_res == NULL && PyErr_Occurred()) {
20161 p->error_indicator = 1;
20162 D(p->level--);
20163 return NULL;
20164 }
20165 goto done;
20166 }
20167 p->mark = _mark;
20168 D(fprintf(stderr, "%*c%s invalid_class_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
20169 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'class' NAME ['(' arguments? ')'] ':' NEWLINE !INDENT"));
20170 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010020171 _res = NULL;
20172 done:
20173 D(p->level--);
20174 return _res;
20175}
20176
Pablo Galindoda743502021-04-15 14:06:39 +010020177// invalid_double_starred_kvpairs:
20178// | ','.double_starred_kvpair+ ',' invalid_kvpair
20179// | expression ':' '*' bitwise_or
20180// | expression ':' &('}' | ',')
20181static void *
20182invalid_double_starred_kvpairs_rule(Parser *p)
20183{
20184 D(p->level++);
20185 if (p->error_indicator) {
20186 D(p->level--);
20187 return NULL;
20188 }
20189 void * _res = NULL;
20190 int _mark = p->mark;
20191 { // ','.double_starred_kvpair+ ',' invalid_kvpair
20192 if (p->error_indicator) {
20193 D(p->level--);
20194 return NULL;
20195 }
20196 D(fprintf(stderr, "%*c> invalid_double_starred_kvpairs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.double_starred_kvpair+ ',' invalid_kvpair"));
Pablo Galindo56c95df2021-04-21 15:28:21 +010020197 asdl_seq * _gather_173_var;
Pablo Galindoda743502021-04-15 14:06:39 +010020198 Token * _literal;
20199 void *invalid_kvpair_var;
20200 if (
Pablo Galindo56c95df2021-04-21 15:28:21 +010020201 (_gather_173_var = _gather_173_rule(p)) // ','.double_starred_kvpair+
Pablo Galindoda743502021-04-15 14:06:39 +010020202 &&
20203 (_literal = _PyPegen_expect_token(p, 12)) // token=','
20204 &&
20205 (invalid_kvpair_var = invalid_kvpair_rule(p)) // invalid_kvpair
20206 )
20207 {
20208 D(fprintf(stderr, "%*c+ invalid_double_starred_kvpairs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.double_starred_kvpair+ ',' invalid_kvpair"));
Pablo Galindo56c95df2021-04-21 15:28:21 +010020209 _res = _PyPegen_dummy_name(p, _gather_173_var, _literal, invalid_kvpair_var);
Pablo Galindoda743502021-04-15 14:06:39 +010020210 goto done;
20211 }
20212 p->mark = _mark;
20213 D(fprintf(stderr, "%*c%s invalid_double_starred_kvpairs[%d-%d]: %s failed!\n", p->level, ' ',
20214 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.double_starred_kvpair+ ',' invalid_kvpair"));
20215 }
20216 { // expression ':' '*' bitwise_or
20217 if (p->error_indicator) {
20218 D(p->level--);
20219 return NULL;
20220 }
20221 D(fprintf(stderr, "%*c> invalid_double_starred_kvpairs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':' '*' bitwise_or"));
20222 Token * _literal;
20223 Token * a;
20224 expr_ty bitwise_or_var;
20225 expr_ty expression_var;
20226 if (
20227 (expression_var = expression_rule(p)) // expression
20228 &&
20229 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
20230 &&
20231 (a = _PyPegen_expect_token(p, 16)) // token='*'
20232 &&
20233 (bitwise_or_var = bitwise_or_rule(p)) // bitwise_or
20234 )
20235 {
20236 D(fprintf(stderr, "%*c+ invalid_double_starred_kvpairs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':' '*' bitwise_or"));
20237 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "cannot use a starred expression in a dictionary value" );
20238 if (_res == NULL && PyErr_Occurred()) {
20239 p->error_indicator = 1;
20240 D(p->level--);
20241 return NULL;
20242 }
20243 goto done;
20244 }
20245 p->mark = _mark;
20246 D(fprintf(stderr, "%*c%s invalid_double_starred_kvpairs[%d-%d]: %s failed!\n", p->level, ' ',
20247 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' '*' bitwise_or"));
20248 }
20249 { // expression ':' &('}' | ',')
20250 if (p->error_indicator) {
20251 D(p->level--);
20252 return NULL;
20253 }
20254 D(fprintf(stderr, "%*c> invalid_double_starred_kvpairs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':' &('}' | ',')"));
20255 Token * a;
20256 expr_ty expression_var;
20257 if (
20258 (expression_var = expression_rule(p)) // expression
20259 &&
20260 (a = _PyPegen_expect_token(p, 11)) // token=':'
20261 &&
Pablo Galindo56c95df2021-04-21 15:28:21 +010020262 _PyPegen_lookahead(1, _tmp_175_rule, p)
Pablo Galindoda743502021-04-15 14:06:39 +010020263 )
20264 {
20265 D(fprintf(stderr, "%*c+ invalid_double_starred_kvpairs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':' &('}' | ',')"));
20266 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "expression expected after dictionary key and ':'" );
20267 if (_res == NULL && PyErr_Occurred()) {
20268 p->error_indicator = 1;
20269 D(p->level--);
20270 return NULL;
20271 }
20272 goto done;
20273 }
20274 p->mark = _mark;
20275 D(fprintf(stderr, "%*c%s invalid_double_starred_kvpairs[%d-%d]: %s failed!\n", p->level, ' ',
20276 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' &('}' | ',')"));
20277 }
20278 _res = NULL;
20279 done:
20280 D(p->level--);
20281 return _res;
20282}
20283
20284// invalid_kvpair: expression !(':') | expression ':' '*' bitwise_or | expression ':'
20285static void *
20286invalid_kvpair_rule(Parser *p)
20287{
20288 D(p->level++);
20289 if (p->error_indicator) {
20290 D(p->level--);
20291 return NULL;
20292 }
20293 void * _res = NULL;
20294 int _mark = p->mark;
20295 { // expression !(':')
20296 if (p->error_indicator) {
20297 D(p->level--);
20298 return NULL;
20299 }
20300 D(fprintf(stderr, "%*c> invalid_kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression !(':')"));
20301 expr_ty a;
20302 if (
20303 (a = expression_rule(p)) // expression
20304 &&
20305 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 11) // token=(':')
20306 )
20307 {
20308 D(fprintf(stderr, "%*c+ invalid_kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression !(':')"));
Pablo Galindob5b98bd2021-04-16 00:45:42 +010020309 _res = RAISE_ERROR_KNOWN_LOCATION ( p , PyExc_SyntaxError , a -> lineno , a -> end_col_offset - 1 , "':' expected after dictionary key" );
Pablo Galindoda743502021-04-15 14:06:39 +010020310 if (_res == NULL && PyErr_Occurred()) {
20311 p->error_indicator = 1;
20312 D(p->level--);
20313 return NULL;
20314 }
20315 goto done;
20316 }
20317 p->mark = _mark;
20318 D(fprintf(stderr, "%*c%s invalid_kvpair[%d-%d]: %s failed!\n", p->level, ' ',
20319 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression !(':')"));
20320 }
20321 { // expression ':' '*' bitwise_or
20322 if (p->error_indicator) {
20323 D(p->level--);
20324 return NULL;
20325 }
20326 D(fprintf(stderr, "%*c> invalid_kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':' '*' bitwise_or"));
20327 Token * _literal;
20328 Token * a;
20329 expr_ty bitwise_or_var;
20330 expr_ty expression_var;
20331 if (
20332 (expression_var = expression_rule(p)) // expression
20333 &&
20334 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
20335 &&
20336 (a = _PyPegen_expect_token(p, 16)) // token='*'
20337 &&
20338 (bitwise_or_var = bitwise_or_rule(p)) // bitwise_or
20339 )
20340 {
20341 D(fprintf(stderr, "%*c+ invalid_kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':' '*' bitwise_or"));
20342 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "cannot use a starred expression in a dictionary value" );
20343 if (_res == NULL && PyErr_Occurred()) {
20344 p->error_indicator = 1;
20345 D(p->level--);
20346 return NULL;
20347 }
20348 goto done;
20349 }
20350 p->mark = _mark;
20351 D(fprintf(stderr, "%*c%s invalid_kvpair[%d-%d]: %s failed!\n", p->level, ' ',
20352 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' '*' bitwise_or"));
20353 }
20354 { // expression ':'
20355 if (p->error_indicator) {
20356 D(p->level--);
20357 return NULL;
20358 }
20359 D(fprintf(stderr, "%*c> invalid_kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':'"));
20360 Token * a;
20361 expr_ty expression_var;
20362 if (
20363 (expression_var = expression_rule(p)) // expression
20364 &&
20365 (a = _PyPegen_expect_token(p, 11)) // token=':'
20366 )
20367 {
20368 D(fprintf(stderr, "%*c+ invalid_kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':'"));
20369 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "expression expected after dictionary key and ':'" );
20370 if (_res == NULL && PyErr_Occurred()) {
20371 p->error_indicator = 1;
20372 D(p->level--);
20373 return NULL;
20374 }
20375 goto done;
20376 }
20377 p->mark = _mark;
20378 D(fprintf(stderr, "%*c%s invalid_kvpair[%d-%d]: %s failed!\n", p->level, ' ',
20379 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':'"));
20380 }
20381 _res = NULL;
20382 done:
20383 D(p->level--);
20384 return _res;
20385}
20386
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020387// _loop0_1: NEWLINE
20388static asdl_seq *
20389_loop0_1_rule(Parser *p)
20390{
20391 D(p->level++);
20392 if (p->error_indicator) {
20393 D(p->level--);
20394 return NULL;
20395 }
20396 void *_res = NULL;
20397 int _mark = p->mark;
20398 int _start_mark = p->mark;
20399 void **_children = PyMem_Malloc(sizeof(void *));
20400 if (!_children) {
20401 p->error_indicator = 1;
20402 PyErr_NoMemory();
20403 D(p->level--);
20404 return NULL;
20405 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010020406 Py_ssize_t _children_capacity = 1;
20407 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020408 { // NEWLINE
20409 if (p->error_indicator) {
20410 D(p->level--);
20411 return NULL;
20412 }
20413 D(fprintf(stderr, "%*c> _loop0_1[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
20414 Token * newline_var;
20415 while (
20416 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20417 )
20418 {
20419 _res = newline_var;
20420 if (_n == _children_capacity) {
20421 _children_capacity *= 2;
20422 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20423 if (!_new_children) {
20424 p->error_indicator = 1;
20425 PyErr_NoMemory();
20426 D(p->level--);
20427 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000020428 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020429 _children = _new_children;
20430 }
20431 _children[_n++] = _res;
20432 _mark = p->mark;
20433 }
20434 p->mark = _mark;
20435 D(fprintf(stderr, "%*c%s _loop0_1[%d-%d]: %s failed!\n", p->level, ' ',
20436 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
20437 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020438 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020439 if (!_seq) {
20440 PyMem_Free(_children);
20441 p->error_indicator = 1;
20442 PyErr_NoMemory();
20443 D(p->level--);
20444 return NULL;
20445 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020446 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020447 PyMem_Free(_children);
20448 _PyPegen_insert_memo(p, _start_mark, _loop0_1_type, _seq);
20449 D(p->level--);
20450 return _seq;
20451}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000020452
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020453// _loop0_2: NEWLINE
20454static asdl_seq *
20455_loop0_2_rule(Parser *p)
20456{
20457 D(p->level++);
20458 if (p->error_indicator) {
20459 D(p->level--);
20460 return NULL;
20461 }
20462 void *_res = NULL;
20463 int _mark = p->mark;
20464 int _start_mark = p->mark;
20465 void **_children = PyMem_Malloc(sizeof(void *));
20466 if (!_children) {
20467 p->error_indicator = 1;
20468 PyErr_NoMemory();
20469 D(p->level--);
20470 return NULL;
20471 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010020472 Py_ssize_t _children_capacity = 1;
20473 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020474 { // NEWLINE
20475 if (p->error_indicator) {
20476 D(p->level--);
20477 return NULL;
20478 }
20479 D(fprintf(stderr, "%*c> _loop0_2[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
20480 Token * newline_var;
20481 while (
20482 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20483 )
20484 {
20485 _res = newline_var;
20486 if (_n == _children_capacity) {
20487 _children_capacity *= 2;
20488 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20489 if (!_new_children) {
20490 p->error_indicator = 1;
20491 PyErr_NoMemory();
20492 D(p->level--);
20493 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000020494 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020495 _children = _new_children;
20496 }
20497 _children[_n++] = _res;
20498 _mark = p->mark;
20499 }
20500 p->mark = _mark;
20501 D(fprintf(stderr, "%*c%s _loop0_2[%d-%d]: %s failed!\n", p->level, ' ',
20502 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
20503 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020504 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020505 if (!_seq) {
20506 PyMem_Free(_children);
20507 p->error_indicator = 1;
20508 PyErr_NoMemory();
20509 D(p->level--);
20510 return NULL;
20511 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020512 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020513 PyMem_Free(_children);
20514 _PyPegen_insert_memo(p, _start_mark, _loop0_2_type, _seq);
20515 D(p->level--);
20516 return _seq;
20517}
20518
20519// _loop0_4: ',' expression
20520static asdl_seq *
20521_loop0_4_rule(Parser *p)
20522{
20523 D(p->level++);
20524 if (p->error_indicator) {
20525 D(p->level--);
20526 return NULL;
20527 }
20528 void *_res = NULL;
20529 int _mark = p->mark;
20530 int _start_mark = p->mark;
20531 void **_children = PyMem_Malloc(sizeof(void *));
20532 if (!_children) {
20533 p->error_indicator = 1;
20534 PyErr_NoMemory();
20535 D(p->level--);
20536 return NULL;
20537 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010020538 Py_ssize_t _children_capacity = 1;
20539 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020540 { // ',' expression
20541 if (p->error_indicator) {
20542 D(p->level--);
20543 return NULL;
20544 }
20545 D(fprintf(stderr, "%*c> _loop0_4[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
20546 Token * _literal;
20547 expr_ty elem;
20548 while (
20549 (_literal = _PyPegen_expect_token(p, 12)) // token=','
20550 &&
20551 (elem = expression_rule(p)) // expression
20552 )
20553 {
20554 _res = elem;
20555 if (_res == NULL && PyErr_Occurred()) {
20556 p->error_indicator = 1;
20557 PyMem_Free(_children);
20558 D(p->level--);
20559 return NULL;
20560 }
20561 if (_n == _children_capacity) {
20562 _children_capacity *= 2;
20563 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20564 if (!_new_children) {
20565 p->error_indicator = 1;
20566 PyErr_NoMemory();
20567 D(p->level--);
20568 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000020569 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020570 _children = _new_children;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000020571 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020572 _children[_n++] = _res;
20573 _mark = p->mark;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000020574 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020575 p->mark = _mark;
20576 D(fprintf(stderr, "%*c%s _loop0_4[%d-%d]: %s failed!\n", p->level, ' ',
20577 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000020578 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020579 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020580 if (!_seq) {
20581 PyMem_Free(_children);
20582 p->error_indicator = 1;
20583 PyErr_NoMemory();
20584 D(p->level--);
20585 return NULL;
20586 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020587 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020588 PyMem_Free(_children);
20589 _PyPegen_insert_memo(p, _start_mark, _loop0_4_type, _seq);
20590 D(p->level--);
20591 return _seq;
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000020592}
20593
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020594// _gather_3: expression _loop0_4
20595static asdl_seq *
20596_gather_3_rule(Parser *p)
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000020597{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020598 D(p->level++);
20599 if (p->error_indicator) {
20600 D(p->level--);
20601 return NULL;
20602 }
20603 asdl_seq * _res = NULL;
20604 int _mark = p->mark;
20605 { // expression _loop0_4
20606 if (p->error_indicator) {
20607 D(p->level--);
20608 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000020609 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020610 D(fprintf(stderr, "%*c> _gather_3[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression _loop0_4"));
20611 expr_ty elem;
20612 asdl_seq * seq;
20613 if (
20614 (elem = expression_rule(p)) // expression
20615 &&
20616 (seq = _loop0_4_rule(p)) // _loop0_4
20617 )
20618 {
20619 D(fprintf(stderr, "%*c+ _gather_3[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression _loop0_4"));
20620 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
20621 goto done;
20622 }
20623 p->mark = _mark;
20624 D(fprintf(stderr, "%*c%s _gather_3[%d-%d]: %s failed!\n", p->level, ' ',
20625 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_4"));
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000020626 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020627 _res = NULL;
20628 done:
20629 D(p->level--);
20630 return _res;
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000020631}
20632
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020633// _loop0_6: ',' expression
20634static asdl_seq *
20635_loop0_6_rule(Parser *p)
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000020636{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020637 D(p->level++);
20638 if (p->error_indicator) {
20639 D(p->level--);
20640 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000020641 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020642 void *_res = NULL;
20643 int _mark = p->mark;
20644 int _start_mark = p->mark;
20645 void **_children = PyMem_Malloc(sizeof(void *));
20646 if (!_children) {
20647 p->error_indicator = 1;
20648 PyErr_NoMemory();
20649 D(p->level--);
20650 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000020651 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010020652 Py_ssize_t _children_capacity = 1;
20653 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020654 { // ',' expression
20655 if (p->error_indicator) {
20656 D(p->level--);
20657 return NULL;
20658 }
20659 D(fprintf(stderr, "%*c> _loop0_6[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
20660 Token * _literal;
20661 expr_ty elem;
20662 while (
20663 (_literal = _PyPegen_expect_token(p, 12)) // token=','
20664 &&
20665 (elem = expression_rule(p)) // expression
20666 )
20667 {
20668 _res = elem;
20669 if (_res == NULL && PyErr_Occurred()) {
20670 p->error_indicator = 1;
20671 PyMem_Free(_children);
20672 D(p->level--);
20673 return NULL;
20674 }
20675 if (_n == _children_capacity) {
20676 _children_capacity *= 2;
20677 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20678 if (!_new_children) {
20679 p->error_indicator = 1;
20680 PyErr_NoMemory();
20681 D(p->level--);
20682 return NULL;
20683 }
20684 _children = _new_children;
20685 }
20686 _children[_n++] = _res;
20687 _mark = p->mark;
20688 }
20689 p->mark = _mark;
20690 D(fprintf(stderr, "%*c%s _loop0_6[%d-%d]: %s failed!\n", p->level, ' ',
20691 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
20692 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020693 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020694 if (!_seq) {
20695 PyMem_Free(_children);
20696 p->error_indicator = 1;
20697 PyErr_NoMemory();
20698 D(p->level--);
20699 return NULL;
20700 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020701 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020702 PyMem_Free(_children);
20703 _PyPegen_insert_memo(p, _start_mark, _loop0_6_type, _seq);
20704 D(p->level--);
20705 return _seq;
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000020706}
20707
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020708// _gather_5: expression _loop0_6
20709static asdl_seq *
20710_gather_5_rule(Parser *p)
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000020711{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020712 D(p->level++);
20713 if (p->error_indicator) {
20714 D(p->level--);
20715 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000020716 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020717 asdl_seq * _res = NULL;
20718 int _mark = p->mark;
20719 { // expression _loop0_6
20720 if (p->error_indicator) {
20721 D(p->level--);
20722 return NULL;
20723 }
20724 D(fprintf(stderr, "%*c> _gather_5[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression _loop0_6"));
20725 expr_ty elem;
20726 asdl_seq * seq;
20727 if (
20728 (elem = expression_rule(p)) // expression
20729 &&
20730 (seq = _loop0_6_rule(p)) // _loop0_6
20731 )
20732 {
20733 D(fprintf(stderr, "%*c+ _gather_5[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression _loop0_6"));
20734 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
20735 goto done;
20736 }
20737 p->mark = _mark;
20738 D(fprintf(stderr, "%*c%s _gather_5[%d-%d]: %s failed!\n", p->level, ' ',
20739 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_6"));
20740 }
20741 _res = NULL;
20742 done:
20743 D(p->level--);
20744 return _res;
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000020745}
20746
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020747// _loop0_8: ',' expression
20748static asdl_seq *
20749_loop0_8_rule(Parser *p)
20750{
20751 D(p->level++);
20752 if (p->error_indicator) {
20753 D(p->level--);
20754 return NULL;
20755 }
20756 void *_res = NULL;
20757 int _mark = p->mark;
20758 int _start_mark = p->mark;
20759 void **_children = PyMem_Malloc(sizeof(void *));
20760 if (!_children) {
20761 p->error_indicator = 1;
20762 PyErr_NoMemory();
20763 D(p->level--);
20764 return NULL;
20765 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010020766 Py_ssize_t _children_capacity = 1;
20767 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020768 { // ',' expression
20769 if (p->error_indicator) {
20770 D(p->level--);
20771 return NULL;
20772 }
20773 D(fprintf(stderr, "%*c> _loop0_8[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
20774 Token * _literal;
20775 expr_ty elem;
20776 while (
20777 (_literal = _PyPegen_expect_token(p, 12)) // token=','
20778 &&
20779 (elem = expression_rule(p)) // expression
20780 )
20781 {
20782 _res = elem;
20783 if (_res == NULL && PyErr_Occurred()) {
20784 p->error_indicator = 1;
20785 PyMem_Free(_children);
20786 D(p->level--);
20787 return NULL;
20788 }
20789 if (_n == _children_capacity) {
20790 _children_capacity *= 2;
20791 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20792 if (!_new_children) {
20793 p->error_indicator = 1;
20794 PyErr_NoMemory();
20795 D(p->level--);
20796 return NULL;
20797 }
20798 _children = _new_children;
20799 }
20800 _children[_n++] = _res;
20801 _mark = p->mark;
20802 }
20803 p->mark = _mark;
20804 D(fprintf(stderr, "%*c%s _loop0_8[%d-%d]: %s failed!\n", p->level, ' ',
20805 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
20806 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020807 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020808 if (!_seq) {
20809 PyMem_Free(_children);
20810 p->error_indicator = 1;
20811 PyErr_NoMemory();
20812 D(p->level--);
20813 return NULL;
20814 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020815 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020816 PyMem_Free(_children);
20817 _PyPegen_insert_memo(p, _start_mark, _loop0_8_type, _seq);
20818 D(p->level--);
20819 return _seq;
20820}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000020821
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020822// _gather_7: expression _loop0_8
20823static asdl_seq *
20824_gather_7_rule(Parser *p)
20825{
20826 D(p->level++);
20827 if (p->error_indicator) {
20828 D(p->level--);
20829 return NULL;
20830 }
20831 asdl_seq * _res = NULL;
20832 int _mark = p->mark;
20833 { // expression _loop0_8
20834 if (p->error_indicator) {
20835 D(p->level--);
20836 return NULL;
20837 }
20838 D(fprintf(stderr, "%*c> _gather_7[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression _loop0_8"));
20839 expr_ty elem;
20840 asdl_seq * seq;
20841 if (
20842 (elem = expression_rule(p)) // expression
20843 &&
20844 (seq = _loop0_8_rule(p)) // _loop0_8
20845 )
20846 {
20847 D(fprintf(stderr, "%*c+ _gather_7[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression _loop0_8"));
20848 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
20849 goto done;
20850 }
20851 p->mark = _mark;
20852 D(fprintf(stderr, "%*c%s _gather_7[%d-%d]: %s failed!\n", p->level, ' ',
20853 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_8"));
20854 }
20855 _res = NULL;
20856 done:
20857 D(p->level--);
20858 return _res;
20859}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000020860
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020861// _loop0_10: ',' expression
20862static asdl_seq *
20863_loop0_10_rule(Parser *p)
20864{
20865 D(p->level++);
20866 if (p->error_indicator) {
20867 D(p->level--);
20868 return NULL;
20869 }
20870 void *_res = NULL;
20871 int _mark = p->mark;
20872 int _start_mark = p->mark;
20873 void **_children = PyMem_Malloc(sizeof(void *));
20874 if (!_children) {
20875 p->error_indicator = 1;
20876 PyErr_NoMemory();
20877 D(p->level--);
20878 return NULL;
20879 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010020880 Py_ssize_t _children_capacity = 1;
20881 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020882 { // ',' expression
20883 if (p->error_indicator) {
20884 D(p->level--);
20885 return NULL;
20886 }
20887 D(fprintf(stderr, "%*c> _loop0_10[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
20888 Token * _literal;
20889 expr_ty elem;
20890 while (
20891 (_literal = _PyPegen_expect_token(p, 12)) // token=','
20892 &&
20893 (elem = expression_rule(p)) // expression
20894 )
20895 {
20896 _res = elem;
20897 if (_res == NULL && PyErr_Occurred()) {
20898 p->error_indicator = 1;
20899 PyMem_Free(_children);
20900 D(p->level--);
20901 return NULL;
20902 }
20903 if (_n == _children_capacity) {
20904 _children_capacity *= 2;
20905 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20906 if (!_new_children) {
20907 p->error_indicator = 1;
20908 PyErr_NoMemory();
20909 D(p->level--);
20910 return NULL;
20911 }
20912 _children = _new_children;
20913 }
20914 _children[_n++] = _res;
20915 _mark = p->mark;
20916 }
20917 p->mark = _mark;
20918 D(fprintf(stderr, "%*c%s _loop0_10[%d-%d]: %s failed!\n", p->level, ' ',
20919 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
20920 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020921 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020922 if (!_seq) {
20923 PyMem_Free(_children);
20924 p->error_indicator = 1;
20925 PyErr_NoMemory();
20926 D(p->level--);
20927 return NULL;
20928 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020929 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020930 PyMem_Free(_children);
20931 _PyPegen_insert_memo(p, _start_mark, _loop0_10_type, _seq);
20932 D(p->level--);
20933 return _seq;
20934}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000020935
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020936// _gather_9: expression _loop0_10
20937static asdl_seq *
20938_gather_9_rule(Parser *p)
20939{
20940 D(p->level++);
20941 if (p->error_indicator) {
20942 D(p->level--);
20943 return NULL;
20944 }
20945 asdl_seq * _res = NULL;
20946 int _mark = p->mark;
20947 { // expression _loop0_10
20948 if (p->error_indicator) {
20949 D(p->level--);
20950 return NULL;
20951 }
20952 D(fprintf(stderr, "%*c> _gather_9[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression _loop0_10"));
20953 expr_ty elem;
20954 asdl_seq * seq;
20955 if (
20956 (elem = expression_rule(p)) // expression
20957 &&
20958 (seq = _loop0_10_rule(p)) // _loop0_10
20959 )
20960 {
20961 D(fprintf(stderr, "%*c+ _gather_9[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression _loop0_10"));
20962 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
20963 goto done;
20964 }
20965 p->mark = _mark;
20966 D(fprintf(stderr, "%*c%s _gather_9[%d-%d]: %s failed!\n", p->level, ' ',
20967 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_10"));
20968 }
20969 _res = NULL;
20970 done:
20971 D(p->level--);
20972 return _res;
20973}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000020974
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020975// _loop1_11: statement
20976static asdl_seq *
20977_loop1_11_rule(Parser *p)
20978{
20979 D(p->level++);
20980 if (p->error_indicator) {
20981 D(p->level--);
20982 return NULL;
20983 }
20984 void *_res = NULL;
20985 int _mark = p->mark;
20986 int _start_mark = p->mark;
20987 void **_children = PyMem_Malloc(sizeof(void *));
20988 if (!_children) {
20989 p->error_indicator = 1;
20990 PyErr_NoMemory();
20991 D(p->level--);
20992 return NULL;
20993 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010020994 Py_ssize_t _children_capacity = 1;
20995 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020996 { // statement
20997 if (p->error_indicator) {
20998 D(p->level--);
20999 return NULL;
21000 }
21001 D(fprintf(stderr, "%*c> _loop1_11[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statement"));
Pablo Galindoa5634c42020-09-16 19:42:00 +010021002 asdl_stmt_seq* statement_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021003 while (
21004 (statement_var = statement_rule(p)) // statement
21005 )
21006 {
21007 _res = statement_var;
21008 if (_n == _children_capacity) {
21009 _children_capacity *= 2;
21010 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21011 if (!_new_children) {
21012 p->error_indicator = 1;
21013 PyErr_NoMemory();
21014 D(p->level--);
21015 return NULL;
21016 }
21017 _children = _new_children;
21018 }
21019 _children[_n++] = _res;
21020 _mark = p->mark;
21021 }
21022 p->mark = _mark;
21023 D(fprintf(stderr, "%*c%s _loop1_11[%d-%d]: %s failed!\n", p->level, ' ',
21024 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statement"));
21025 }
21026 if (_n == 0 || p->error_indicator) {
21027 PyMem_Free(_children);
21028 D(p->level--);
21029 return NULL;
21030 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021031 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021032 if (!_seq) {
21033 PyMem_Free(_children);
21034 p->error_indicator = 1;
21035 PyErr_NoMemory();
21036 D(p->level--);
21037 return NULL;
21038 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021039 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021040 PyMem_Free(_children);
21041 _PyPegen_insert_memo(p, _start_mark, _loop1_11_type, _seq);
21042 D(p->level--);
21043 return _seq;
21044}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021045
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000021046// _loop0_13: ';' simple_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021047static asdl_seq *
21048_loop0_13_rule(Parser *p)
21049{
21050 D(p->level++);
21051 if (p->error_indicator) {
21052 D(p->level--);
21053 return NULL;
21054 }
21055 void *_res = NULL;
21056 int _mark = p->mark;
21057 int _start_mark = p->mark;
21058 void **_children = PyMem_Malloc(sizeof(void *));
21059 if (!_children) {
21060 p->error_indicator = 1;
21061 PyErr_NoMemory();
21062 D(p->level--);
21063 return NULL;
21064 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010021065 Py_ssize_t _children_capacity = 1;
21066 Py_ssize_t _n = 0;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000021067 { // ';' simple_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021068 if (p->error_indicator) {
21069 D(p->level--);
21070 return NULL;
21071 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000021072 D(fprintf(stderr, "%*c> _loop0_13[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "';' simple_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021073 Token * _literal;
21074 stmt_ty elem;
21075 while (
21076 (_literal = _PyPegen_expect_token(p, 13)) // token=';'
21077 &&
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000021078 (elem = simple_stmt_rule(p)) // simple_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021079 )
21080 {
21081 _res = elem;
21082 if (_res == NULL && PyErr_Occurred()) {
21083 p->error_indicator = 1;
21084 PyMem_Free(_children);
21085 D(p->level--);
21086 return NULL;
21087 }
21088 if (_n == _children_capacity) {
21089 _children_capacity *= 2;
21090 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21091 if (!_new_children) {
21092 p->error_indicator = 1;
21093 PyErr_NoMemory();
21094 D(p->level--);
21095 return NULL;
21096 }
21097 _children = _new_children;
21098 }
21099 _children[_n++] = _res;
21100 _mark = p->mark;
21101 }
21102 p->mark = _mark;
21103 D(fprintf(stderr, "%*c%s _loop0_13[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000021104 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "';' simple_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021105 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021106 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021107 if (!_seq) {
21108 PyMem_Free(_children);
21109 p->error_indicator = 1;
21110 PyErr_NoMemory();
21111 D(p->level--);
21112 return NULL;
21113 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021114 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021115 PyMem_Free(_children);
21116 _PyPegen_insert_memo(p, _start_mark, _loop0_13_type, _seq);
21117 D(p->level--);
21118 return _seq;
21119}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021120
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000021121// _gather_12: simple_stmt _loop0_13
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021122static asdl_seq *
21123_gather_12_rule(Parser *p)
21124{
21125 D(p->level++);
21126 if (p->error_indicator) {
21127 D(p->level--);
21128 return NULL;
21129 }
21130 asdl_seq * _res = NULL;
21131 int _mark = p->mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000021132 { // simple_stmt _loop0_13
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021133 if (p->error_indicator) {
21134 D(p->level--);
21135 return NULL;
21136 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000021137 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 +010021138 stmt_ty elem;
21139 asdl_seq * seq;
21140 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000021141 (elem = simple_stmt_rule(p)) // simple_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021142 &&
21143 (seq = _loop0_13_rule(p)) // _loop0_13
21144 )
21145 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000021146 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 +010021147 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
21148 goto done;
21149 }
21150 p->mark = _mark;
21151 D(fprintf(stderr, "%*c%s _gather_12[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000021152 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmt _loop0_13"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021153 }
21154 _res = NULL;
21155 done:
21156 D(p->level--);
21157 return _res;
21158}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021159
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021160// _tmp_14: 'import' | 'from'
21161static void *
21162_tmp_14_rule(Parser *p)
21163{
21164 D(p->level++);
21165 if (p->error_indicator) {
21166 D(p->level--);
21167 return NULL;
21168 }
21169 void * _res = NULL;
21170 int _mark = p->mark;
21171 { // 'import'
21172 if (p->error_indicator) {
21173 D(p->level--);
21174 return NULL;
21175 }
21176 D(fprintf(stderr, "%*c> _tmp_14[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'import'"));
21177 Token * _keyword;
21178 if (
21179 (_keyword = _PyPegen_expect_token(p, 513)) // token='import'
21180 )
21181 {
21182 D(fprintf(stderr, "%*c+ _tmp_14[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'import'"));
21183 _res = _keyword;
21184 goto done;
21185 }
21186 p->mark = _mark;
21187 D(fprintf(stderr, "%*c%s _tmp_14[%d-%d]: %s failed!\n", p->level, ' ',
21188 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'import'"));
21189 }
21190 { // 'from'
21191 if (p->error_indicator) {
21192 D(p->level--);
21193 return NULL;
21194 }
21195 D(fprintf(stderr, "%*c> _tmp_14[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from'"));
21196 Token * _keyword;
21197 if (
21198 (_keyword = _PyPegen_expect_token(p, 514)) // token='from'
21199 )
21200 {
21201 D(fprintf(stderr, "%*c+ _tmp_14[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'from'"));
21202 _res = _keyword;
21203 goto done;
21204 }
21205 p->mark = _mark;
21206 D(fprintf(stderr, "%*c%s _tmp_14[%d-%d]: %s failed!\n", p->level, ' ',
21207 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from'"));
21208 }
21209 _res = NULL;
21210 done:
21211 D(p->level--);
21212 return _res;
21213}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021214
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021215// _tmp_15: 'def' | '@' | ASYNC
21216static void *
21217_tmp_15_rule(Parser *p)
21218{
21219 D(p->level++);
21220 if (p->error_indicator) {
21221 D(p->level--);
21222 return NULL;
21223 }
21224 void * _res = NULL;
21225 int _mark = p->mark;
21226 { // 'def'
21227 if (p->error_indicator) {
21228 D(p->level--);
21229 return NULL;
21230 }
21231 D(fprintf(stderr, "%*c> _tmp_15[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'def'"));
21232 Token * _keyword;
21233 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080021234 (_keyword = _PyPegen_expect_token(p, 526)) // token='def'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021235 )
21236 {
21237 D(fprintf(stderr, "%*c+ _tmp_15[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'def'"));
21238 _res = _keyword;
21239 goto done;
21240 }
21241 p->mark = _mark;
21242 D(fprintf(stderr, "%*c%s _tmp_15[%d-%d]: %s failed!\n", p->level, ' ',
21243 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'def'"));
21244 }
21245 { // '@'
21246 if (p->error_indicator) {
21247 D(p->level--);
21248 return NULL;
21249 }
21250 D(fprintf(stderr, "%*c> _tmp_15[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@'"));
21251 Token * _literal;
21252 if (
21253 (_literal = _PyPegen_expect_token(p, 49)) // token='@'
21254 )
21255 {
21256 D(fprintf(stderr, "%*c+ _tmp_15[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@'"));
21257 _res = _literal;
21258 goto done;
21259 }
21260 p->mark = _mark;
21261 D(fprintf(stderr, "%*c%s _tmp_15[%d-%d]: %s failed!\n", p->level, ' ',
21262 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@'"));
21263 }
21264 { // ASYNC
21265 if (p->error_indicator) {
21266 D(p->level--);
21267 return NULL;
21268 }
21269 D(fprintf(stderr, "%*c> _tmp_15[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC"));
21270 Token * async_var;
21271 if (
21272 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
21273 )
21274 {
21275 D(fprintf(stderr, "%*c+ _tmp_15[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC"));
21276 _res = async_var;
21277 goto done;
21278 }
21279 p->mark = _mark;
21280 D(fprintf(stderr, "%*c%s _tmp_15[%d-%d]: %s failed!\n", p->level, ' ',
21281 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC"));
21282 }
21283 _res = NULL;
21284 done:
21285 D(p->level--);
21286 return _res;
21287}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021288
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021289// _tmp_16: 'class' | '@'
21290static void *
21291_tmp_16_rule(Parser *p)
21292{
21293 D(p->level++);
21294 if (p->error_indicator) {
21295 D(p->level--);
21296 return NULL;
21297 }
21298 void * _res = NULL;
21299 int _mark = p->mark;
21300 { // 'class'
21301 if (p->error_indicator) {
21302 D(p->level--);
21303 return NULL;
21304 }
21305 D(fprintf(stderr, "%*c> _tmp_16[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'class'"));
21306 Token * _keyword;
21307 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080021308 (_keyword = _PyPegen_expect_token(p, 527)) // token='class'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021309 )
21310 {
21311 D(fprintf(stderr, "%*c+ _tmp_16[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'class'"));
21312 _res = _keyword;
21313 goto done;
21314 }
21315 p->mark = _mark;
21316 D(fprintf(stderr, "%*c%s _tmp_16[%d-%d]: %s failed!\n", p->level, ' ',
21317 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'class'"));
21318 }
21319 { // '@'
21320 if (p->error_indicator) {
21321 D(p->level--);
21322 return NULL;
21323 }
21324 D(fprintf(stderr, "%*c> _tmp_16[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@'"));
21325 Token * _literal;
21326 if (
21327 (_literal = _PyPegen_expect_token(p, 49)) // token='@'
21328 )
21329 {
21330 D(fprintf(stderr, "%*c+ _tmp_16[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@'"));
21331 _res = _literal;
21332 goto done;
21333 }
21334 p->mark = _mark;
21335 D(fprintf(stderr, "%*c%s _tmp_16[%d-%d]: %s failed!\n", p->level, ' ',
21336 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@'"));
21337 }
21338 _res = NULL;
21339 done:
21340 D(p->level--);
21341 return _res;
21342}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021343
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021344// _tmp_17: 'with' | ASYNC
21345static void *
21346_tmp_17_rule(Parser *p)
21347{
21348 D(p->level++);
21349 if (p->error_indicator) {
21350 D(p->level--);
21351 return NULL;
21352 }
21353 void * _res = NULL;
21354 int _mark = p->mark;
21355 { // 'with'
21356 if (p->error_indicator) {
21357 D(p->level--);
21358 return NULL;
21359 }
21360 D(fprintf(stderr, "%*c> _tmp_17[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'with'"));
21361 Token * _keyword;
21362 if (
21363 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
21364 )
21365 {
21366 D(fprintf(stderr, "%*c+ _tmp_17[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'with'"));
21367 _res = _keyword;
21368 goto done;
21369 }
21370 p->mark = _mark;
21371 D(fprintf(stderr, "%*c%s _tmp_17[%d-%d]: %s failed!\n", p->level, ' ',
21372 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'with'"));
21373 }
21374 { // ASYNC
21375 if (p->error_indicator) {
21376 D(p->level--);
21377 return NULL;
21378 }
21379 D(fprintf(stderr, "%*c> _tmp_17[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC"));
21380 Token * async_var;
21381 if (
21382 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
21383 )
21384 {
21385 D(fprintf(stderr, "%*c+ _tmp_17[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC"));
21386 _res = async_var;
21387 goto done;
21388 }
21389 p->mark = _mark;
21390 D(fprintf(stderr, "%*c%s _tmp_17[%d-%d]: %s failed!\n", p->level, ' ',
21391 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC"));
21392 }
21393 _res = NULL;
21394 done:
21395 D(p->level--);
21396 return _res;
21397}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021398
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021399// _tmp_18: 'for' | ASYNC
21400static void *
21401_tmp_18_rule(Parser *p)
21402{
21403 D(p->level++);
21404 if (p->error_indicator) {
21405 D(p->level--);
21406 return NULL;
21407 }
21408 void * _res = NULL;
21409 int _mark = p->mark;
21410 { // 'for'
21411 if (p->error_indicator) {
21412 D(p->level--);
21413 return NULL;
21414 }
21415 D(fprintf(stderr, "%*c> _tmp_18[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'for'"));
21416 Token * _keyword;
21417 if (
21418 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
21419 )
21420 {
21421 D(fprintf(stderr, "%*c+ _tmp_18[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'for'"));
21422 _res = _keyword;
21423 goto done;
21424 }
21425 p->mark = _mark;
21426 D(fprintf(stderr, "%*c%s _tmp_18[%d-%d]: %s failed!\n", p->level, ' ',
21427 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'for'"));
21428 }
21429 { // ASYNC
21430 if (p->error_indicator) {
21431 D(p->level--);
21432 return NULL;
21433 }
21434 D(fprintf(stderr, "%*c> _tmp_18[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC"));
21435 Token * async_var;
21436 if (
21437 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
21438 )
21439 {
21440 D(fprintf(stderr, "%*c+ _tmp_18[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC"));
21441 _res = async_var;
21442 goto done;
21443 }
21444 p->mark = _mark;
21445 D(fprintf(stderr, "%*c%s _tmp_18[%d-%d]: %s failed!\n", p->level, ' ',
21446 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC"));
21447 }
21448 _res = NULL;
21449 done:
21450 D(p->level--);
21451 return _res;
21452}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021453
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021454// _tmp_19: '=' annotated_rhs
21455static void *
21456_tmp_19_rule(Parser *p)
21457{
21458 D(p->level++);
21459 if (p->error_indicator) {
21460 D(p->level--);
21461 return NULL;
21462 }
21463 void * _res = NULL;
21464 int _mark = p->mark;
21465 { // '=' annotated_rhs
21466 if (p->error_indicator) {
21467 D(p->level--);
21468 return NULL;
21469 }
21470 D(fprintf(stderr, "%*c> _tmp_19[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
21471 Token * _literal;
21472 expr_ty d;
21473 if (
21474 (_literal = _PyPegen_expect_token(p, 22)) // token='='
21475 &&
21476 (d = annotated_rhs_rule(p)) // annotated_rhs
21477 )
21478 {
21479 D(fprintf(stderr, "%*c+ _tmp_19[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
21480 _res = d;
21481 if (_res == NULL && PyErr_Occurred()) {
21482 p->error_indicator = 1;
21483 D(p->level--);
21484 return NULL;
21485 }
21486 goto done;
21487 }
21488 p->mark = _mark;
21489 D(fprintf(stderr, "%*c%s _tmp_19[%d-%d]: %s failed!\n", p->level, ' ',
21490 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'=' annotated_rhs"));
21491 }
21492 _res = NULL;
21493 done:
21494 D(p->level--);
21495 return _res;
21496}
21497
21498// _tmp_20: '(' single_target ')' | single_subscript_attribute_target
21499static void *
21500_tmp_20_rule(Parser *p)
21501{
21502 D(p->level++);
21503 if (p->error_indicator) {
21504 D(p->level--);
21505 return NULL;
21506 }
21507 void * _res = NULL;
21508 int _mark = p->mark;
21509 { // '(' single_target ')'
21510 if (p->error_indicator) {
21511 D(p->level--);
21512 return NULL;
21513 }
21514 D(fprintf(stderr, "%*c> _tmp_20[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'"));
21515 Token * _literal;
21516 Token * _literal_1;
21517 expr_ty b;
21518 if (
21519 (_literal = _PyPegen_expect_token(p, 7)) // token='('
21520 &&
21521 (b = single_target_rule(p)) // single_target
21522 &&
21523 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
21524 )
21525 {
21526 D(fprintf(stderr, "%*c+ _tmp_20[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'"));
21527 _res = b;
21528 if (_res == NULL && PyErr_Occurred()) {
21529 p->error_indicator = 1;
21530 D(p->level--);
21531 return NULL;
21532 }
21533 goto done;
21534 }
21535 p->mark = _mark;
21536 D(fprintf(stderr, "%*c%s _tmp_20[%d-%d]: %s failed!\n", p->level, ' ',
21537 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' single_target ')'"));
21538 }
21539 { // single_subscript_attribute_target
21540 if (p->error_indicator) {
21541 D(p->level--);
21542 return NULL;
21543 }
21544 D(fprintf(stderr, "%*c> _tmp_20[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "single_subscript_attribute_target"));
21545 expr_ty single_subscript_attribute_target_var;
21546 if (
21547 (single_subscript_attribute_target_var = single_subscript_attribute_target_rule(p)) // single_subscript_attribute_target
21548 )
21549 {
21550 D(fprintf(stderr, "%*c+ _tmp_20[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "single_subscript_attribute_target"));
21551 _res = single_subscript_attribute_target_var;
21552 goto done;
21553 }
21554 p->mark = _mark;
21555 D(fprintf(stderr, "%*c%s _tmp_20[%d-%d]: %s failed!\n", p->level, ' ',
21556 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "single_subscript_attribute_target"));
21557 }
21558 _res = NULL;
21559 done:
21560 D(p->level--);
21561 return _res;
21562}
21563
21564// _tmp_21: '=' annotated_rhs
21565static void *
21566_tmp_21_rule(Parser *p)
21567{
21568 D(p->level++);
21569 if (p->error_indicator) {
21570 D(p->level--);
21571 return NULL;
21572 }
21573 void * _res = NULL;
21574 int _mark = p->mark;
21575 { // '=' annotated_rhs
21576 if (p->error_indicator) {
21577 D(p->level--);
21578 return NULL;
21579 }
21580 D(fprintf(stderr, "%*c> _tmp_21[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
21581 Token * _literal;
21582 expr_ty d;
21583 if (
21584 (_literal = _PyPegen_expect_token(p, 22)) // token='='
21585 &&
21586 (d = annotated_rhs_rule(p)) // annotated_rhs
21587 )
21588 {
21589 D(fprintf(stderr, "%*c+ _tmp_21[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
21590 _res = d;
21591 if (_res == NULL && PyErr_Occurred()) {
21592 p->error_indicator = 1;
21593 D(p->level--);
21594 return NULL;
21595 }
21596 goto done;
21597 }
21598 p->mark = _mark;
21599 D(fprintf(stderr, "%*c%s _tmp_21[%d-%d]: %s failed!\n", p->level, ' ',
21600 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'=' annotated_rhs"));
21601 }
21602 _res = NULL;
21603 done:
21604 D(p->level--);
21605 return _res;
21606}
21607
21608// _loop1_22: (star_targets '=')
21609static asdl_seq *
21610_loop1_22_rule(Parser *p)
21611{
21612 D(p->level++);
21613 if (p->error_indicator) {
21614 D(p->level--);
21615 return NULL;
21616 }
21617 void *_res = NULL;
21618 int _mark = p->mark;
21619 int _start_mark = p->mark;
21620 void **_children = PyMem_Malloc(sizeof(void *));
21621 if (!_children) {
21622 p->error_indicator = 1;
21623 PyErr_NoMemory();
21624 D(p->level--);
21625 return NULL;
21626 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010021627 Py_ssize_t _children_capacity = 1;
21628 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021629 { // (star_targets '=')
21630 if (p->error_indicator) {
21631 D(p->level--);
21632 return NULL;
21633 }
21634 D(fprintf(stderr, "%*c> _loop1_22[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')"));
Pablo Galindo56c95df2021-04-21 15:28:21 +010021635 void *_tmp_176_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021636 while (
Pablo Galindo56c95df2021-04-21 15:28:21 +010021637 (_tmp_176_var = _tmp_176_rule(p)) // star_targets '='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021638 )
21639 {
Pablo Galindo56c95df2021-04-21 15:28:21 +010021640 _res = _tmp_176_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021641 if (_n == _children_capacity) {
21642 _children_capacity *= 2;
21643 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21644 if (!_new_children) {
21645 p->error_indicator = 1;
21646 PyErr_NoMemory();
21647 D(p->level--);
21648 return NULL;
21649 }
21650 _children = _new_children;
21651 }
21652 _children[_n++] = _res;
21653 _mark = p->mark;
21654 }
21655 p->mark = _mark;
21656 D(fprintf(stderr, "%*c%s _loop1_22[%d-%d]: %s failed!\n", p->level, ' ',
21657 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(star_targets '=')"));
21658 }
21659 if (_n == 0 || p->error_indicator) {
21660 PyMem_Free(_children);
21661 D(p->level--);
21662 return NULL;
21663 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021664 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021665 if (!_seq) {
21666 PyMem_Free(_children);
21667 p->error_indicator = 1;
21668 PyErr_NoMemory();
21669 D(p->level--);
21670 return NULL;
21671 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021672 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021673 PyMem_Free(_children);
21674 _PyPegen_insert_memo(p, _start_mark, _loop1_22_type, _seq);
21675 D(p->level--);
21676 return _seq;
21677}
21678
21679// _tmp_23: yield_expr | star_expressions
21680static void *
21681_tmp_23_rule(Parser *p)
21682{
21683 D(p->level++);
21684 if (p->error_indicator) {
21685 D(p->level--);
21686 return NULL;
21687 }
21688 void * _res = NULL;
21689 int _mark = p->mark;
21690 { // yield_expr
21691 if (p->error_indicator) {
21692 D(p->level--);
21693 return NULL;
21694 }
21695 D(fprintf(stderr, "%*c> _tmp_23[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
21696 expr_ty yield_expr_var;
21697 if (
21698 (yield_expr_var = yield_expr_rule(p)) // yield_expr
21699 )
21700 {
21701 D(fprintf(stderr, "%*c+ _tmp_23[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
21702 _res = yield_expr_var;
21703 goto done;
21704 }
21705 p->mark = _mark;
21706 D(fprintf(stderr, "%*c%s _tmp_23[%d-%d]: %s failed!\n", p->level, ' ',
21707 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
21708 }
21709 { // star_expressions
21710 if (p->error_indicator) {
21711 D(p->level--);
21712 return NULL;
21713 }
21714 D(fprintf(stderr, "%*c> _tmp_23[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
21715 expr_ty star_expressions_var;
21716 if (
21717 (star_expressions_var = star_expressions_rule(p)) // star_expressions
21718 )
21719 {
21720 D(fprintf(stderr, "%*c+ _tmp_23[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
21721 _res = star_expressions_var;
21722 goto done;
21723 }
21724 p->mark = _mark;
21725 D(fprintf(stderr, "%*c%s _tmp_23[%d-%d]: %s failed!\n", p->level, ' ',
21726 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
21727 }
21728 _res = NULL;
21729 done:
21730 D(p->level--);
21731 return _res;
21732}
21733
21734// _tmp_24: yield_expr | star_expressions
21735static void *
21736_tmp_24_rule(Parser *p)
21737{
21738 D(p->level++);
21739 if (p->error_indicator) {
21740 D(p->level--);
21741 return NULL;
21742 }
21743 void * _res = NULL;
21744 int _mark = p->mark;
21745 { // yield_expr
21746 if (p->error_indicator) {
21747 D(p->level--);
21748 return NULL;
21749 }
21750 D(fprintf(stderr, "%*c> _tmp_24[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
21751 expr_ty yield_expr_var;
21752 if (
21753 (yield_expr_var = yield_expr_rule(p)) // yield_expr
21754 )
21755 {
21756 D(fprintf(stderr, "%*c+ _tmp_24[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
21757 _res = yield_expr_var;
21758 goto done;
21759 }
21760 p->mark = _mark;
21761 D(fprintf(stderr, "%*c%s _tmp_24[%d-%d]: %s failed!\n", p->level, ' ',
21762 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
21763 }
21764 { // star_expressions
21765 if (p->error_indicator) {
21766 D(p->level--);
21767 return NULL;
21768 }
21769 D(fprintf(stderr, "%*c> _tmp_24[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
21770 expr_ty star_expressions_var;
21771 if (
21772 (star_expressions_var = star_expressions_rule(p)) // star_expressions
21773 )
21774 {
21775 D(fprintf(stderr, "%*c+ _tmp_24[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
21776 _res = star_expressions_var;
21777 goto done;
21778 }
21779 p->mark = _mark;
21780 D(fprintf(stderr, "%*c%s _tmp_24[%d-%d]: %s failed!\n", p->level, ' ',
21781 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
21782 }
21783 _res = NULL;
21784 done:
21785 D(p->level--);
21786 return _res;
21787}
21788
21789// _loop0_26: ',' NAME
21790static asdl_seq *
21791_loop0_26_rule(Parser *p)
21792{
21793 D(p->level++);
21794 if (p->error_indicator) {
21795 D(p->level--);
21796 return NULL;
21797 }
21798 void *_res = NULL;
21799 int _mark = p->mark;
21800 int _start_mark = p->mark;
21801 void **_children = PyMem_Malloc(sizeof(void *));
21802 if (!_children) {
21803 p->error_indicator = 1;
21804 PyErr_NoMemory();
21805 D(p->level--);
21806 return NULL;
21807 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010021808 Py_ssize_t _children_capacity = 1;
21809 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021810 { // ',' NAME
21811 if (p->error_indicator) {
21812 D(p->level--);
21813 return NULL;
21814 }
21815 D(fprintf(stderr, "%*c> _loop0_26[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' NAME"));
21816 Token * _literal;
21817 expr_ty elem;
21818 while (
21819 (_literal = _PyPegen_expect_token(p, 12)) // token=','
21820 &&
21821 (elem = _PyPegen_name_token(p)) // NAME
21822 )
21823 {
21824 _res = elem;
21825 if (_res == NULL && PyErr_Occurred()) {
21826 p->error_indicator = 1;
21827 PyMem_Free(_children);
21828 D(p->level--);
21829 return NULL;
21830 }
21831 if (_n == _children_capacity) {
21832 _children_capacity *= 2;
21833 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21834 if (!_new_children) {
21835 p->error_indicator = 1;
21836 PyErr_NoMemory();
21837 D(p->level--);
21838 return NULL;
21839 }
21840 _children = _new_children;
21841 }
21842 _children[_n++] = _res;
21843 _mark = p->mark;
21844 }
21845 p->mark = _mark;
21846 D(fprintf(stderr, "%*c%s _loop0_26[%d-%d]: %s failed!\n", p->level, ' ',
21847 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' NAME"));
21848 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021849 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021850 if (!_seq) {
21851 PyMem_Free(_children);
21852 p->error_indicator = 1;
21853 PyErr_NoMemory();
21854 D(p->level--);
21855 return NULL;
21856 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021857 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021858 PyMem_Free(_children);
21859 _PyPegen_insert_memo(p, _start_mark, _loop0_26_type, _seq);
21860 D(p->level--);
21861 return _seq;
21862}
21863
21864// _gather_25: NAME _loop0_26
21865static asdl_seq *
21866_gather_25_rule(Parser *p)
21867{
21868 D(p->level++);
21869 if (p->error_indicator) {
21870 D(p->level--);
21871 return NULL;
21872 }
21873 asdl_seq * _res = NULL;
21874 int _mark = p->mark;
21875 { // NAME _loop0_26
21876 if (p->error_indicator) {
21877 D(p->level--);
21878 return NULL;
21879 }
21880 D(fprintf(stderr, "%*c> _gather_25[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME _loop0_26"));
21881 expr_ty elem;
21882 asdl_seq * seq;
21883 if (
21884 (elem = _PyPegen_name_token(p)) // NAME
21885 &&
21886 (seq = _loop0_26_rule(p)) // _loop0_26
21887 )
21888 {
21889 D(fprintf(stderr, "%*c+ _gather_25[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME _loop0_26"));
21890 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
21891 goto done;
21892 }
21893 p->mark = _mark;
21894 D(fprintf(stderr, "%*c%s _gather_25[%d-%d]: %s failed!\n", p->level, ' ',
21895 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME _loop0_26"));
21896 }
21897 _res = NULL;
21898 done:
21899 D(p->level--);
21900 return _res;
21901}
21902
21903// _loop0_28: ',' NAME
21904static asdl_seq *
21905_loop0_28_rule(Parser *p)
21906{
21907 D(p->level++);
21908 if (p->error_indicator) {
21909 D(p->level--);
21910 return NULL;
21911 }
21912 void *_res = NULL;
21913 int _mark = p->mark;
21914 int _start_mark = p->mark;
21915 void **_children = PyMem_Malloc(sizeof(void *));
21916 if (!_children) {
21917 p->error_indicator = 1;
21918 PyErr_NoMemory();
21919 D(p->level--);
21920 return NULL;
21921 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010021922 Py_ssize_t _children_capacity = 1;
21923 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021924 { // ',' NAME
21925 if (p->error_indicator) {
21926 D(p->level--);
21927 return NULL;
21928 }
21929 D(fprintf(stderr, "%*c> _loop0_28[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' NAME"));
21930 Token * _literal;
21931 expr_ty elem;
21932 while (
21933 (_literal = _PyPegen_expect_token(p, 12)) // token=','
21934 &&
21935 (elem = _PyPegen_name_token(p)) // NAME
21936 )
21937 {
21938 _res = elem;
21939 if (_res == NULL && PyErr_Occurred()) {
21940 p->error_indicator = 1;
21941 PyMem_Free(_children);
21942 D(p->level--);
21943 return NULL;
21944 }
21945 if (_n == _children_capacity) {
21946 _children_capacity *= 2;
21947 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21948 if (!_new_children) {
21949 p->error_indicator = 1;
21950 PyErr_NoMemory();
21951 D(p->level--);
21952 return NULL;
21953 }
21954 _children = _new_children;
21955 }
21956 _children[_n++] = _res;
21957 _mark = p->mark;
21958 }
21959 p->mark = _mark;
21960 D(fprintf(stderr, "%*c%s _loop0_28[%d-%d]: %s failed!\n", p->level, ' ',
21961 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' NAME"));
21962 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021963 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021964 if (!_seq) {
21965 PyMem_Free(_children);
21966 p->error_indicator = 1;
21967 PyErr_NoMemory();
21968 D(p->level--);
21969 return NULL;
21970 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021971 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021972 PyMem_Free(_children);
21973 _PyPegen_insert_memo(p, _start_mark, _loop0_28_type, _seq);
21974 D(p->level--);
21975 return _seq;
21976}
21977
21978// _gather_27: NAME _loop0_28
21979static asdl_seq *
21980_gather_27_rule(Parser *p)
21981{
21982 D(p->level++);
21983 if (p->error_indicator) {
21984 D(p->level--);
21985 return NULL;
21986 }
21987 asdl_seq * _res = NULL;
21988 int _mark = p->mark;
21989 { // NAME _loop0_28
21990 if (p->error_indicator) {
21991 D(p->level--);
21992 return NULL;
21993 }
21994 D(fprintf(stderr, "%*c> _gather_27[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME _loop0_28"));
21995 expr_ty elem;
21996 asdl_seq * seq;
21997 if (
21998 (elem = _PyPegen_name_token(p)) // NAME
21999 &&
22000 (seq = _loop0_28_rule(p)) // _loop0_28
22001 )
22002 {
22003 D(fprintf(stderr, "%*c+ _gather_27[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME _loop0_28"));
22004 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
22005 goto done;
22006 }
22007 p->mark = _mark;
22008 D(fprintf(stderr, "%*c%s _gather_27[%d-%d]: %s failed!\n", p->level, ' ',
22009 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME _loop0_28"));
22010 }
22011 _res = NULL;
22012 done:
22013 D(p->level--);
22014 return _res;
22015}
22016
22017// _tmp_29: ',' expression
22018static void *
22019_tmp_29_rule(Parser *p)
22020{
22021 D(p->level++);
22022 if (p->error_indicator) {
22023 D(p->level--);
22024 return NULL;
22025 }
22026 void * _res = NULL;
22027 int _mark = p->mark;
22028 { // ',' expression
22029 if (p->error_indicator) {
22030 D(p->level--);
22031 return NULL;
22032 }
22033 D(fprintf(stderr, "%*c> _tmp_29[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
22034 Token * _literal;
22035 expr_ty z;
22036 if (
22037 (_literal = _PyPegen_expect_token(p, 12)) // token=','
22038 &&
22039 (z = expression_rule(p)) // expression
22040 )
22041 {
22042 D(fprintf(stderr, "%*c+ _tmp_29[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' expression"));
22043 _res = z;
22044 if (_res == NULL && PyErr_Occurred()) {
22045 p->error_indicator = 1;
22046 D(p->level--);
22047 return NULL;
22048 }
22049 goto done;
22050 }
22051 p->mark = _mark;
22052 D(fprintf(stderr, "%*c%s _tmp_29[%d-%d]: %s failed!\n", p->level, ' ',
22053 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
22054 }
22055 _res = NULL;
22056 done:
22057 D(p->level--);
22058 return _res;
22059}
22060
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022061// _tmp_30: ';' | NEWLINE
22062static void *
22063_tmp_30_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022064{
22065 D(p->level++);
22066 if (p->error_indicator) {
22067 D(p->level--);
22068 return NULL;
22069 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022070 void * _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022071 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022072 { // ';'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022073 if (p->error_indicator) {
22074 D(p->level--);
22075 return NULL;
22076 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022077 D(fprintf(stderr, "%*c> _tmp_30[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "';'"));
22078 Token * _literal;
22079 if (
22080 (_literal = _PyPegen_expect_token(p, 13)) // token=';'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022081 )
22082 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022083 D(fprintf(stderr, "%*c+ _tmp_30[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "';'"));
22084 _res = _literal;
22085 goto done;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022086 }
22087 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022088 D(fprintf(stderr, "%*c%s _tmp_30[%d-%d]: %s failed!\n", p->level, ' ',
22089 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "';'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022090 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022091 { // NEWLINE
22092 if (p->error_indicator) {
22093 D(p->level--);
22094 return NULL;
22095 }
22096 D(fprintf(stderr, "%*c> _tmp_30[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
22097 Token * newline_var;
22098 if (
22099 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
22100 )
22101 {
22102 D(fprintf(stderr, "%*c+ _tmp_30[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
22103 _res = newline_var;
22104 goto done;
22105 }
22106 p->mark = _mark;
22107 D(fprintf(stderr, "%*c%s _tmp_30[%d-%d]: %s failed!\n", p->level, ' ',
22108 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022109 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022110 _res = NULL;
22111 done:
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022112 D(p->level--);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022113 return _res;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022114}
22115
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022116// _loop0_31: ('.' | '...')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022117static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022118_loop0_31_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022119{
22120 D(p->level++);
22121 if (p->error_indicator) {
22122 D(p->level--);
22123 return NULL;
22124 }
22125 void *_res = NULL;
22126 int _mark = p->mark;
22127 int _start_mark = p->mark;
22128 void **_children = PyMem_Malloc(sizeof(void *));
22129 if (!_children) {
22130 p->error_indicator = 1;
22131 PyErr_NoMemory();
22132 D(p->level--);
22133 return NULL;
22134 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010022135 Py_ssize_t _children_capacity = 1;
22136 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022137 { // ('.' | '...')
22138 if (p->error_indicator) {
22139 D(p->level--);
22140 return NULL;
22141 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022142 D(fprintf(stderr, "%*c> _loop0_31[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('.' | '...')"));
Pablo Galindo56c95df2021-04-21 15:28:21 +010022143 void *_tmp_177_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022144 while (
Pablo Galindo56c95df2021-04-21 15:28:21 +010022145 (_tmp_177_var = _tmp_177_rule(p)) // '.' | '...'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022146 )
22147 {
Pablo Galindo56c95df2021-04-21 15:28:21 +010022148 _res = _tmp_177_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022149 if (_n == _children_capacity) {
22150 _children_capacity *= 2;
22151 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22152 if (!_new_children) {
22153 p->error_indicator = 1;
22154 PyErr_NoMemory();
22155 D(p->level--);
22156 return NULL;
22157 }
22158 _children = _new_children;
22159 }
22160 _children[_n++] = _res;
22161 _mark = p->mark;
22162 }
22163 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022164 D(fprintf(stderr, "%*c%s _loop0_31[%d-%d]: %s failed!\n", p->level, ' ',
22165 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('.' | '...')"));
22166 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022167 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022168 if (!_seq) {
22169 PyMem_Free(_children);
22170 p->error_indicator = 1;
22171 PyErr_NoMemory();
22172 D(p->level--);
22173 return NULL;
22174 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022175 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022176 PyMem_Free(_children);
22177 _PyPegen_insert_memo(p, _start_mark, _loop0_31_type, _seq);
22178 D(p->level--);
22179 return _seq;
22180}
22181
22182// _loop1_32: ('.' | '...')
22183static asdl_seq *
22184_loop1_32_rule(Parser *p)
22185{
22186 D(p->level++);
22187 if (p->error_indicator) {
22188 D(p->level--);
22189 return NULL;
22190 }
22191 void *_res = NULL;
22192 int _mark = p->mark;
22193 int _start_mark = p->mark;
22194 void **_children = PyMem_Malloc(sizeof(void *));
22195 if (!_children) {
22196 p->error_indicator = 1;
22197 PyErr_NoMemory();
22198 D(p->level--);
22199 return NULL;
22200 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010022201 Py_ssize_t _children_capacity = 1;
22202 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022203 { // ('.' | '...')
22204 if (p->error_indicator) {
22205 D(p->level--);
22206 return NULL;
22207 }
22208 D(fprintf(stderr, "%*c> _loop1_32[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('.' | '...')"));
Pablo Galindo56c95df2021-04-21 15:28:21 +010022209 void *_tmp_178_var;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022210 while (
Pablo Galindo56c95df2021-04-21 15:28:21 +010022211 (_tmp_178_var = _tmp_178_rule(p)) // '.' | '...'
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022212 )
22213 {
Pablo Galindo56c95df2021-04-21 15:28:21 +010022214 _res = _tmp_178_var;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022215 if (_n == _children_capacity) {
22216 _children_capacity *= 2;
22217 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22218 if (!_new_children) {
22219 p->error_indicator = 1;
22220 PyErr_NoMemory();
22221 D(p->level--);
22222 return NULL;
22223 }
22224 _children = _new_children;
22225 }
22226 _children[_n++] = _res;
22227 _mark = p->mark;
22228 }
22229 p->mark = _mark;
22230 D(fprintf(stderr, "%*c%s _loop1_32[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022231 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('.' | '...')"));
22232 }
22233 if (_n == 0 || p->error_indicator) {
22234 PyMem_Free(_children);
22235 D(p->level--);
22236 return NULL;
22237 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022238 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022239 if (!_seq) {
22240 PyMem_Free(_children);
22241 p->error_indicator = 1;
22242 PyErr_NoMemory();
22243 D(p->level--);
22244 return NULL;
22245 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022246 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022247 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022248 _PyPegen_insert_memo(p, _start_mark, _loop1_32_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022249 D(p->level--);
22250 return _seq;
22251}
22252
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022253// _loop0_34: ',' import_from_as_name
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022254static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022255_loop0_34_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022256{
22257 D(p->level++);
22258 if (p->error_indicator) {
22259 D(p->level--);
22260 return NULL;
22261 }
22262 void *_res = NULL;
22263 int _mark = p->mark;
22264 int _start_mark = p->mark;
22265 void **_children = PyMem_Malloc(sizeof(void *));
22266 if (!_children) {
22267 p->error_indicator = 1;
22268 PyErr_NoMemory();
22269 D(p->level--);
22270 return NULL;
22271 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010022272 Py_ssize_t _children_capacity = 1;
22273 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022274 { // ',' import_from_as_name
22275 if (p->error_indicator) {
22276 D(p->level--);
22277 return NULL;
22278 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022279 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 +010022280 Token * _literal;
22281 alias_ty elem;
22282 while (
22283 (_literal = _PyPegen_expect_token(p, 12)) // token=','
22284 &&
22285 (elem = import_from_as_name_rule(p)) // import_from_as_name
22286 )
22287 {
22288 _res = elem;
22289 if (_res == NULL && PyErr_Occurred()) {
22290 p->error_indicator = 1;
22291 PyMem_Free(_children);
22292 D(p->level--);
22293 return NULL;
22294 }
22295 if (_n == _children_capacity) {
22296 _children_capacity *= 2;
22297 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22298 if (!_new_children) {
22299 p->error_indicator = 1;
22300 PyErr_NoMemory();
22301 D(p->level--);
22302 return NULL;
22303 }
22304 _children = _new_children;
22305 }
22306 _children[_n++] = _res;
22307 _mark = p->mark;
22308 }
22309 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022310 D(fprintf(stderr, "%*c%s _loop0_34[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022311 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' import_from_as_name"));
22312 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022313 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022314 if (!_seq) {
22315 PyMem_Free(_children);
22316 p->error_indicator = 1;
22317 PyErr_NoMemory();
22318 D(p->level--);
22319 return NULL;
22320 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022321 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022322 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022323 _PyPegen_insert_memo(p, _start_mark, _loop0_34_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022324 D(p->level--);
22325 return _seq;
22326}
22327
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022328// _gather_33: import_from_as_name _loop0_34
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022329static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022330_gather_33_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022331{
22332 D(p->level++);
22333 if (p->error_indicator) {
22334 D(p->level--);
22335 return NULL;
22336 }
22337 asdl_seq * _res = NULL;
22338 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022339 { // import_from_as_name _loop0_34
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022340 if (p->error_indicator) {
22341 D(p->level--);
22342 return NULL;
22343 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022344 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 +010022345 alias_ty elem;
22346 asdl_seq * seq;
22347 if (
22348 (elem = import_from_as_name_rule(p)) // import_from_as_name
22349 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022350 (seq = _loop0_34_rule(p)) // _loop0_34
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022351 )
22352 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022353 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 +010022354 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
22355 goto done;
22356 }
22357 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022358 D(fprintf(stderr, "%*c%s _gather_33[%d-%d]: %s failed!\n", p->level, ' ',
22359 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from_as_name _loop0_34"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022360 }
22361 _res = NULL;
22362 done:
22363 D(p->level--);
22364 return _res;
22365}
22366
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022367// _tmp_35: 'as' NAME
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022368static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022369_tmp_35_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022370{
22371 D(p->level++);
22372 if (p->error_indicator) {
22373 D(p->level--);
22374 return NULL;
22375 }
22376 void * _res = NULL;
22377 int _mark = p->mark;
22378 { // 'as' NAME
22379 if (p->error_indicator) {
22380 D(p->level--);
22381 return NULL;
22382 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022383 D(fprintf(stderr, "%*c> _tmp_35[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022384 Token * _keyword;
22385 expr_ty z;
22386 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022387 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022388 &&
22389 (z = _PyPegen_name_token(p)) // NAME
22390 )
22391 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022392 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 +010022393 _res = z;
22394 if (_res == NULL && PyErr_Occurred()) {
22395 p->error_indicator = 1;
22396 D(p->level--);
22397 return NULL;
22398 }
22399 goto done;
22400 }
22401 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022402 D(fprintf(stderr, "%*c%s _tmp_35[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022403 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
22404 }
22405 _res = NULL;
22406 done:
22407 D(p->level--);
22408 return _res;
22409}
22410
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022411// _loop0_37: ',' dotted_as_name
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022412static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022413_loop0_37_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022414{
22415 D(p->level++);
22416 if (p->error_indicator) {
22417 D(p->level--);
22418 return NULL;
22419 }
22420 void *_res = NULL;
22421 int _mark = p->mark;
22422 int _start_mark = p->mark;
22423 void **_children = PyMem_Malloc(sizeof(void *));
22424 if (!_children) {
22425 p->error_indicator = 1;
22426 PyErr_NoMemory();
22427 D(p->level--);
22428 return NULL;
22429 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010022430 Py_ssize_t _children_capacity = 1;
22431 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022432 { // ',' dotted_as_name
22433 if (p->error_indicator) {
22434 D(p->level--);
22435 return NULL;
22436 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022437 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 +010022438 Token * _literal;
22439 alias_ty elem;
22440 while (
22441 (_literal = _PyPegen_expect_token(p, 12)) // token=','
22442 &&
22443 (elem = dotted_as_name_rule(p)) // dotted_as_name
22444 )
22445 {
22446 _res = elem;
22447 if (_res == NULL && PyErr_Occurred()) {
22448 p->error_indicator = 1;
22449 PyMem_Free(_children);
22450 D(p->level--);
22451 return NULL;
22452 }
22453 if (_n == _children_capacity) {
22454 _children_capacity *= 2;
22455 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22456 if (!_new_children) {
22457 p->error_indicator = 1;
22458 PyErr_NoMemory();
22459 D(p->level--);
22460 return NULL;
22461 }
22462 _children = _new_children;
22463 }
22464 _children[_n++] = _res;
22465 _mark = p->mark;
22466 }
22467 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022468 D(fprintf(stderr, "%*c%s _loop0_37[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022469 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' dotted_as_name"));
22470 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022471 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022472 if (!_seq) {
22473 PyMem_Free(_children);
22474 p->error_indicator = 1;
22475 PyErr_NoMemory();
22476 D(p->level--);
22477 return NULL;
22478 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022479 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022480 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022481 _PyPegen_insert_memo(p, _start_mark, _loop0_37_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022482 D(p->level--);
22483 return _seq;
22484}
22485
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022486// _gather_36: dotted_as_name _loop0_37
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022487static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022488_gather_36_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022489{
22490 D(p->level++);
22491 if (p->error_indicator) {
22492 D(p->level--);
22493 return NULL;
22494 }
22495 asdl_seq * _res = NULL;
22496 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022497 { // dotted_as_name _loop0_37
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022498 if (p->error_indicator) {
22499 D(p->level--);
22500 return NULL;
22501 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022502 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 +010022503 alias_ty elem;
22504 asdl_seq * seq;
22505 if (
22506 (elem = dotted_as_name_rule(p)) // dotted_as_name
22507 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022508 (seq = _loop0_37_rule(p)) // _loop0_37
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022509 )
22510 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022511 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 +010022512 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
22513 goto done;
22514 }
22515 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022516 D(fprintf(stderr, "%*c%s _gather_36[%d-%d]: %s failed!\n", p->level, ' ',
22517 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dotted_as_name _loop0_37"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022518 }
22519 _res = NULL;
22520 done:
22521 D(p->level--);
22522 return _res;
22523}
22524
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022525// _tmp_38: 'as' NAME
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022526static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022527_tmp_38_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022528{
22529 D(p->level++);
22530 if (p->error_indicator) {
22531 D(p->level--);
22532 return NULL;
22533 }
22534 void * _res = NULL;
22535 int _mark = p->mark;
22536 { // 'as' NAME
22537 if (p->error_indicator) {
22538 D(p->level--);
22539 return NULL;
22540 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022541 D(fprintf(stderr, "%*c> _tmp_38[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022542 Token * _keyword;
22543 expr_ty z;
22544 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022545 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022546 &&
22547 (z = _PyPegen_name_token(p)) // NAME
22548 )
22549 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022550 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 +010022551 _res = z;
22552 if (_res == NULL && PyErr_Occurred()) {
22553 p->error_indicator = 1;
22554 D(p->level--);
22555 return NULL;
22556 }
22557 goto done;
22558 }
22559 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022560 D(fprintf(stderr, "%*c%s _tmp_38[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022561 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
22562 }
22563 _res = NULL;
22564 done:
22565 D(p->level--);
22566 return _res;
22567}
22568
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022569// _loop0_40: ',' with_item
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022570static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022571_loop0_40_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022572{
22573 D(p->level++);
22574 if (p->error_indicator) {
22575 D(p->level--);
22576 return NULL;
22577 }
22578 void *_res = NULL;
22579 int _mark = p->mark;
22580 int _start_mark = p->mark;
22581 void **_children = PyMem_Malloc(sizeof(void *));
22582 if (!_children) {
22583 p->error_indicator = 1;
22584 PyErr_NoMemory();
22585 D(p->level--);
22586 return NULL;
22587 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010022588 Py_ssize_t _children_capacity = 1;
22589 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022590 { // ',' with_item
22591 if (p->error_indicator) {
22592 D(p->level--);
22593 return NULL;
22594 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022595 D(fprintf(stderr, "%*c> _loop0_40[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022596 Token * _literal;
22597 withitem_ty elem;
22598 while (
22599 (_literal = _PyPegen_expect_token(p, 12)) // token=','
22600 &&
22601 (elem = with_item_rule(p)) // with_item
22602 )
22603 {
22604 _res = elem;
22605 if (_res == NULL && PyErr_Occurred()) {
22606 p->error_indicator = 1;
22607 PyMem_Free(_children);
22608 D(p->level--);
22609 return NULL;
22610 }
22611 if (_n == _children_capacity) {
22612 _children_capacity *= 2;
22613 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22614 if (!_new_children) {
22615 p->error_indicator = 1;
22616 PyErr_NoMemory();
22617 D(p->level--);
22618 return NULL;
22619 }
22620 _children = _new_children;
22621 }
22622 _children[_n++] = _res;
22623 _mark = p->mark;
22624 }
22625 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022626 D(fprintf(stderr, "%*c%s _loop0_40[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022627 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
22628 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022629 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022630 if (!_seq) {
22631 PyMem_Free(_children);
22632 p->error_indicator = 1;
22633 PyErr_NoMemory();
22634 D(p->level--);
22635 return NULL;
22636 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022637 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022638 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022639 _PyPegen_insert_memo(p, _start_mark, _loop0_40_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022640 D(p->level--);
22641 return _seq;
22642}
22643
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022644// _gather_39: with_item _loop0_40
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022645static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022646_gather_39_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022647{
22648 D(p->level++);
22649 if (p->error_indicator) {
22650 D(p->level--);
22651 return NULL;
22652 }
22653 asdl_seq * _res = NULL;
22654 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022655 { // with_item _loop0_40
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022656 if (p->error_indicator) {
22657 D(p->level--);
22658 return NULL;
22659 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022660 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 +010022661 withitem_ty elem;
22662 asdl_seq * seq;
22663 if (
22664 (elem = with_item_rule(p)) // with_item
22665 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022666 (seq = _loop0_40_rule(p)) // _loop0_40
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022667 )
22668 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022669 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 +010022670 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
22671 goto done;
22672 }
22673 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022674 D(fprintf(stderr, "%*c%s _gather_39[%d-%d]: %s failed!\n", p->level, ' ',
22675 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_40"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022676 }
22677 _res = NULL;
22678 done:
22679 D(p->level--);
22680 return _res;
22681}
22682
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022683// _loop0_42: ',' with_item
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022684static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022685_loop0_42_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022686{
22687 D(p->level++);
22688 if (p->error_indicator) {
22689 D(p->level--);
22690 return NULL;
22691 }
22692 void *_res = NULL;
22693 int _mark = p->mark;
22694 int _start_mark = p->mark;
22695 void **_children = PyMem_Malloc(sizeof(void *));
22696 if (!_children) {
22697 p->error_indicator = 1;
22698 PyErr_NoMemory();
22699 D(p->level--);
22700 return NULL;
22701 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010022702 Py_ssize_t _children_capacity = 1;
22703 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022704 { // ',' with_item
22705 if (p->error_indicator) {
22706 D(p->level--);
22707 return NULL;
22708 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022709 D(fprintf(stderr, "%*c> _loop0_42[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022710 Token * _literal;
22711 withitem_ty elem;
22712 while (
22713 (_literal = _PyPegen_expect_token(p, 12)) // token=','
22714 &&
22715 (elem = with_item_rule(p)) // with_item
22716 )
22717 {
22718 _res = elem;
22719 if (_res == NULL && PyErr_Occurred()) {
22720 p->error_indicator = 1;
22721 PyMem_Free(_children);
22722 D(p->level--);
22723 return NULL;
22724 }
22725 if (_n == _children_capacity) {
22726 _children_capacity *= 2;
22727 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22728 if (!_new_children) {
22729 p->error_indicator = 1;
22730 PyErr_NoMemory();
22731 D(p->level--);
22732 return NULL;
22733 }
22734 _children = _new_children;
22735 }
22736 _children[_n++] = _res;
22737 _mark = p->mark;
22738 }
22739 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022740 D(fprintf(stderr, "%*c%s _loop0_42[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022741 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
22742 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022743 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022744 if (!_seq) {
22745 PyMem_Free(_children);
22746 p->error_indicator = 1;
22747 PyErr_NoMemory();
22748 D(p->level--);
22749 return NULL;
22750 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022751 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022752 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022753 _PyPegen_insert_memo(p, _start_mark, _loop0_42_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022754 D(p->level--);
22755 return _seq;
22756}
22757
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022758// _gather_41: with_item _loop0_42
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022759static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022760_gather_41_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022761{
22762 D(p->level++);
22763 if (p->error_indicator) {
22764 D(p->level--);
22765 return NULL;
22766 }
22767 asdl_seq * _res = NULL;
22768 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022769 { // with_item _loop0_42
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022770 if (p->error_indicator) {
22771 D(p->level--);
22772 return NULL;
22773 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022774 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 +010022775 withitem_ty elem;
22776 asdl_seq * seq;
22777 if (
22778 (elem = with_item_rule(p)) // with_item
22779 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022780 (seq = _loop0_42_rule(p)) // _loop0_42
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022781 )
22782 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022783 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 +010022784 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
22785 goto done;
22786 }
22787 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022788 D(fprintf(stderr, "%*c%s _gather_41[%d-%d]: %s failed!\n", p->level, ' ',
22789 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_42"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022790 }
22791 _res = NULL;
22792 done:
22793 D(p->level--);
22794 return _res;
22795}
22796
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022797// _loop0_44: ',' with_item
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022798static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022799_loop0_44_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022800{
22801 D(p->level++);
22802 if (p->error_indicator) {
22803 D(p->level--);
22804 return NULL;
22805 }
22806 void *_res = NULL;
22807 int _mark = p->mark;
22808 int _start_mark = p->mark;
22809 void **_children = PyMem_Malloc(sizeof(void *));
22810 if (!_children) {
22811 p->error_indicator = 1;
22812 PyErr_NoMemory();
22813 D(p->level--);
22814 return NULL;
22815 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010022816 Py_ssize_t _children_capacity = 1;
22817 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022818 { // ',' with_item
22819 if (p->error_indicator) {
22820 D(p->level--);
22821 return NULL;
22822 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022823 D(fprintf(stderr, "%*c> _loop0_44[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022824 Token * _literal;
22825 withitem_ty elem;
22826 while (
22827 (_literal = _PyPegen_expect_token(p, 12)) // token=','
22828 &&
22829 (elem = with_item_rule(p)) // with_item
22830 )
22831 {
22832 _res = elem;
22833 if (_res == NULL && PyErr_Occurred()) {
22834 p->error_indicator = 1;
22835 PyMem_Free(_children);
22836 D(p->level--);
22837 return NULL;
22838 }
22839 if (_n == _children_capacity) {
22840 _children_capacity *= 2;
22841 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22842 if (!_new_children) {
22843 p->error_indicator = 1;
22844 PyErr_NoMemory();
22845 D(p->level--);
22846 return NULL;
22847 }
22848 _children = _new_children;
22849 }
22850 _children[_n++] = _res;
22851 _mark = p->mark;
22852 }
22853 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022854 D(fprintf(stderr, "%*c%s _loop0_44[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022855 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
22856 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022857 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022858 if (!_seq) {
22859 PyMem_Free(_children);
22860 p->error_indicator = 1;
22861 PyErr_NoMemory();
22862 D(p->level--);
22863 return NULL;
22864 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022865 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022866 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022867 _PyPegen_insert_memo(p, _start_mark, _loop0_44_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022868 D(p->level--);
22869 return _seq;
22870}
22871
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022872// _gather_43: with_item _loop0_44
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022873static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022874_gather_43_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022875{
22876 D(p->level++);
22877 if (p->error_indicator) {
22878 D(p->level--);
22879 return NULL;
22880 }
22881 asdl_seq * _res = NULL;
22882 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022883 { // with_item _loop0_44
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022884 if (p->error_indicator) {
22885 D(p->level--);
22886 return NULL;
22887 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022888 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 +010022889 withitem_ty elem;
22890 asdl_seq * seq;
22891 if (
22892 (elem = with_item_rule(p)) // with_item
22893 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022894 (seq = _loop0_44_rule(p)) // _loop0_44
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022895 )
22896 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022897 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 +010022898 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
22899 goto done;
22900 }
22901 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022902 D(fprintf(stderr, "%*c%s _gather_43[%d-%d]: %s failed!\n", p->level, ' ',
22903 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_44"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022904 }
22905 _res = NULL;
22906 done:
22907 D(p->level--);
22908 return _res;
22909}
22910
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022911// _loop0_46: ',' with_item
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022912static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022913_loop0_46_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022914{
22915 D(p->level++);
22916 if (p->error_indicator) {
22917 D(p->level--);
22918 return NULL;
22919 }
22920 void *_res = NULL;
22921 int _mark = p->mark;
22922 int _start_mark = p->mark;
22923 void **_children = PyMem_Malloc(sizeof(void *));
22924 if (!_children) {
22925 p->error_indicator = 1;
22926 PyErr_NoMemory();
22927 D(p->level--);
22928 return NULL;
22929 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010022930 Py_ssize_t _children_capacity = 1;
22931 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022932 { // ',' with_item
22933 if (p->error_indicator) {
22934 D(p->level--);
22935 return NULL;
22936 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022937 D(fprintf(stderr, "%*c> _loop0_46[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022938 Token * _literal;
22939 withitem_ty elem;
22940 while (
22941 (_literal = _PyPegen_expect_token(p, 12)) // token=','
22942 &&
22943 (elem = with_item_rule(p)) // with_item
22944 )
22945 {
22946 _res = elem;
22947 if (_res == NULL && PyErr_Occurred()) {
22948 p->error_indicator = 1;
22949 PyMem_Free(_children);
22950 D(p->level--);
22951 return NULL;
22952 }
22953 if (_n == _children_capacity) {
22954 _children_capacity *= 2;
22955 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22956 if (!_new_children) {
22957 p->error_indicator = 1;
22958 PyErr_NoMemory();
22959 D(p->level--);
22960 return NULL;
22961 }
22962 _children = _new_children;
22963 }
22964 _children[_n++] = _res;
22965 _mark = p->mark;
22966 }
22967 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022968 D(fprintf(stderr, "%*c%s _loop0_46[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022969 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
22970 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022971 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022972 if (!_seq) {
22973 PyMem_Free(_children);
22974 p->error_indicator = 1;
22975 PyErr_NoMemory();
22976 D(p->level--);
22977 return NULL;
22978 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022979 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022980 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022981 _PyPegen_insert_memo(p, _start_mark, _loop0_46_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022982 D(p->level--);
22983 return _seq;
22984}
22985
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022986// _gather_45: with_item _loop0_46
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022987static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022988_gather_45_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022989{
22990 D(p->level++);
22991 if (p->error_indicator) {
22992 D(p->level--);
22993 return NULL;
22994 }
22995 asdl_seq * _res = NULL;
22996 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022997 { // with_item _loop0_46
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022998 if (p->error_indicator) {
22999 D(p->level--);
23000 return NULL;
23001 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023002 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 +010023003 withitem_ty elem;
23004 asdl_seq * seq;
23005 if (
23006 (elem = with_item_rule(p)) // with_item
23007 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023008 (seq = _loop0_46_rule(p)) // _loop0_46
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023009 )
23010 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023011 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 +010023012 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
23013 goto done;
23014 }
23015 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023016 D(fprintf(stderr, "%*c%s _gather_45[%d-%d]: %s failed!\n", p->level, ' ',
23017 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_46"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023018 }
23019 _res = NULL;
23020 done:
23021 D(p->level--);
23022 return _res;
23023}
23024
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023025// _tmp_47: ',' | ')' | ':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023026static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023027_tmp_47_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023028{
23029 D(p->level++);
23030 if (p->error_indicator) {
23031 D(p->level--);
23032 return NULL;
23033 }
23034 void * _res = NULL;
23035 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023036 { // ','
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023037 if (p->error_indicator) {
23038 D(p->level--);
23039 return NULL;
23040 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023041 D(fprintf(stderr, "%*c> _tmp_47[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','"));
23042 Token * _literal;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023043 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023044 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023045 )
23046 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023047 D(fprintf(stderr, "%*c+ _tmp_47[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','"));
23048 _res = _literal;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023049 goto done;
23050 }
23051 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023052 D(fprintf(stderr, "%*c%s _tmp_47[%d-%d]: %s failed!\n", p->level, ' ',
23053 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','"));
23054 }
23055 { // ')'
23056 if (p->error_indicator) {
23057 D(p->level--);
23058 return NULL;
23059 }
23060 D(fprintf(stderr, "%*c> _tmp_47[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
23061 Token * _literal;
23062 if (
23063 (_literal = _PyPegen_expect_token(p, 8)) // token=')'
23064 )
23065 {
23066 D(fprintf(stderr, "%*c+ _tmp_47[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
23067 _res = _literal;
23068 goto done;
23069 }
23070 p->mark = _mark;
23071 D(fprintf(stderr, "%*c%s _tmp_47[%d-%d]: %s failed!\n", p->level, ' ',
23072 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
23073 }
23074 { // ':'
23075 if (p->error_indicator) {
23076 D(p->level--);
23077 return NULL;
23078 }
23079 D(fprintf(stderr, "%*c> _tmp_47[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
23080 Token * _literal;
23081 if (
23082 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
23083 )
23084 {
23085 D(fprintf(stderr, "%*c+ _tmp_47[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
23086 _res = _literal;
23087 goto done;
23088 }
23089 p->mark = _mark;
23090 D(fprintf(stderr, "%*c%s _tmp_47[%d-%d]: %s failed!\n", p->level, ' ',
23091 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023092 }
23093 _res = NULL;
23094 done:
23095 D(p->level--);
23096 return _res;
23097}
23098
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023099// _loop1_48: except_block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023100static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023101_loop1_48_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023102{
23103 D(p->level++);
23104 if (p->error_indicator) {
23105 D(p->level--);
23106 return NULL;
23107 }
23108 void *_res = NULL;
23109 int _mark = p->mark;
23110 int _start_mark = p->mark;
23111 void **_children = PyMem_Malloc(sizeof(void *));
23112 if (!_children) {
23113 p->error_indicator = 1;
23114 PyErr_NoMemory();
23115 D(p->level--);
23116 return NULL;
23117 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023118 Py_ssize_t _children_capacity = 1;
23119 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023120 { // except_block
23121 if (p->error_indicator) {
23122 D(p->level--);
23123 return NULL;
23124 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023125 D(fprintf(stderr, "%*c> _loop1_48[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "except_block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023126 excepthandler_ty except_block_var;
23127 while (
23128 (except_block_var = except_block_rule(p)) // except_block
23129 )
23130 {
23131 _res = except_block_var;
23132 if (_n == _children_capacity) {
23133 _children_capacity *= 2;
23134 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23135 if (!_new_children) {
23136 p->error_indicator = 1;
23137 PyErr_NoMemory();
23138 D(p->level--);
23139 return NULL;
23140 }
23141 _children = _new_children;
23142 }
23143 _children[_n++] = _res;
23144 _mark = p->mark;
23145 }
23146 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023147 D(fprintf(stderr, "%*c%s _loop1_48[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023148 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "except_block"));
23149 }
23150 if (_n == 0 || p->error_indicator) {
23151 PyMem_Free(_children);
23152 D(p->level--);
23153 return NULL;
23154 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023155 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023156 if (!_seq) {
23157 PyMem_Free(_children);
23158 p->error_indicator = 1;
23159 PyErr_NoMemory();
23160 D(p->level--);
23161 return NULL;
23162 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023163 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023164 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023165 _PyPegen_insert_memo(p, _start_mark, _loop1_48_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023166 D(p->level--);
23167 return _seq;
23168}
23169
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023170// _tmp_49: 'as' NAME
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023171static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023172_tmp_49_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023173{
23174 D(p->level++);
23175 if (p->error_indicator) {
23176 D(p->level--);
23177 return NULL;
23178 }
23179 void * _res = NULL;
23180 int _mark = p->mark;
23181 { // 'as' NAME
23182 if (p->error_indicator) {
23183 D(p->level--);
23184 return NULL;
23185 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023186 D(fprintf(stderr, "%*c> _tmp_49[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023187 Token * _keyword;
23188 expr_ty z;
23189 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023190 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023191 &&
23192 (z = _PyPegen_name_token(p)) // NAME
23193 )
23194 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023195 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 +010023196 _res = z;
23197 if (_res == NULL && PyErr_Occurred()) {
23198 p->error_indicator = 1;
23199 D(p->level--);
23200 return NULL;
23201 }
23202 goto done;
23203 }
23204 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023205 D(fprintf(stderr, "%*c%s _tmp_49[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023206 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
23207 }
23208 _res = NULL;
23209 done:
23210 D(p->level--);
23211 return _res;
23212}
23213
Brandt Bucher145bf262021-02-26 14:51:55 -080023214// _loop1_50: case_block
23215static asdl_seq *
23216_loop1_50_rule(Parser *p)
23217{
23218 D(p->level++);
23219 if (p->error_indicator) {
23220 D(p->level--);
23221 return NULL;
23222 }
23223 void *_res = NULL;
23224 int _mark = p->mark;
23225 int _start_mark = p->mark;
23226 void **_children = PyMem_Malloc(sizeof(void *));
23227 if (!_children) {
23228 p->error_indicator = 1;
23229 PyErr_NoMemory();
23230 D(p->level--);
23231 return NULL;
23232 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023233 Py_ssize_t _children_capacity = 1;
23234 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080023235 { // case_block
23236 if (p->error_indicator) {
23237 D(p->level--);
23238 return NULL;
23239 }
23240 D(fprintf(stderr, "%*c> _loop1_50[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "case_block"));
23241 match_case_ty case_block_var;
23242 while (
23243 (case_block_var = case_block_rule(p)) // case_block
23244 )
23245 {
23246 _res = case_block_var;
23247 if (_n == _children_capacity) {
23248 _children_capacity *= 2;
23249 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23250 if (!_new_children) {
23251 p->error_indicator = 1;
23252 PyErr_NoMemory();
23253 D(p->level--);
23254 return NULL;
23255 }
23256 _children = _new_children;
23257 }
23258 _children[_n++] = _res;
23259 _mark = p->mark;
23260 }
23261 p->mark = _mark;
23262 D(fprintf(stderr, "%*c%s _loop1_50[%d-%d]: %s failed!\n", p->level, ' ',
23263 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "case_block"));
23264 }
23265 if (_n == 0 || p->error_indicator) {
23266 PyMem_Free(_children);
23267 D(p->level--);
23268 return NULL;
23269 }
23270 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
23271 if (!_seq) {
23272 PyMem_Free(_children);
23273 p->error_indicator = 1;
23274 PyErr_NoMemory();
23275 D(p->level--);
23276 return NULL;
23277 }
23278 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
23279 PyMem_Free(_children);
23280 _PyPegen_insert_memo(p, _start_mark, _loop1_50_type, _seq);
23281 D(p->level--);
23282 return _seq;
23283}
23284
23285// _loop0_52: '|' closed_pattern
23286static asdl_seq *
23287_loop0_52_rule(Parser *p)
23288{
23289 D(p->level++);
23290 if (p->error_indicator) {
23291 D(p->level--);
23292 return NULL;
23293 }
23294 void *_res = NULL;
23295 int _mark = p->mark;
23296 int _start_mark = p->mark;
23297 void **_children = PyMem_Malloc(sizeof(void *));
23298 if (!_children) {
23299 p->error_indicator = 1;
23300 PyErr_NoMemory();
23301 D(p->level--);
23302 return NULL;
23303 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023304 Py_ssize_t _children_capacity = 1;
23305 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080023306 { // '|' closed_pattern
23307 if (p->error_indicator) {
23308 D(p->level--);
23309 return NULL;
23310 }
23311 D(fprintf(stderr, "%*c> _loop0_52[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'|' closed_pattern"));
23312 Token * _literal;
23313 expr_ty elem;
23314 while (
23315 (_literal = _PyPegen_expect_token(p, 18)) // token='|'
23316 &&
23317 (elem = closed_pattern_rule(p)) // closed_pattern
23318 )
23319 {
23320 _res = elem;
23321 if (_res == NULL && PyErr_Occurred()) {
23322 p->error_indicator = 1;
23323 PyMem_Free(_children);
23324 D(p->level--);
23325 return NULL;
23326 }
23327 if (_n == _children_capacity) {
23328 _children_capacity *= 2;
23329 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23330 if (!_new_children) {
23331 p->error_indicator = 1;
23332 PyErr_NoMemory();
23333 D(p->level--);
23334 return NULL;
23335 }
23336 _children = _new_children;
23337 }
23338 _children[_n++] = _res;
23339 _mark = p->mark;
23340 }
23341 p->mark = _mark;
23342 D(fprintf(stderr, "%*c%s _loop0_52[%d-%d]: %s failed!\n", p->level, ' ',
23343 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'|' closed_pattern"));
23344 }
23345 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
23346 if (!_seq) {
23347 PyMem_Free(_children);
23348 p->error_indicator = 1;
23349 PyErr_NoMemory();
23350 D(p->level--);
23351 return NULL;
23352 }
23353 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
23354 PyMem_Free(_children);
23355 _PyPegen_insert_memo(p, _start_mark, _loop0_52_type, _seq);
23356 D(p->level--);
23357 return _seq;
23358}
23359
23360// _gather_51: closed_pattern _loop0_52
23361static asdl_seq *
23362_gather_51_rule(Parser *p)
23363{
23364 D(p->level++);
23365 if (p->error_indicator) {
23366 D(p->level--);
23367 return NULL;
23368 }
23369 asdl_seq * _res = NULL;
23370 int _mark = p->mark;
23371 { // closed_pattern _loop0_52
23372 if (p->error_indicator) {
23373 D(p->level--);
23374 return NULL;
23375 }
23376 D(fprintf(stderr, "%*c> _gather_51[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "closed_pattern _loop0_52"));
23377 expr_ty elem;
23378 asdl_seq * seq;
23379 if (
23380 (elem = closed_pattern_rule(p)) // closed_pattern
23381 &&
23382 (seq = _loop0_52_rule(p)) // _loop0_52
23383 )
23384 {
23385 D(fprintf(stderr, "%*c+ _gather_51[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "closed_pattern _loop0_52"));
23386 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
23387 goto done;
23388 }
23389 p->mark = _mark;
23390 D(fprintf(stderr, "%*c%s _gather_51[%d-%d]: %s failed!\n", p->level, ' ',
23391 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "closed_pattern _loop0_52"));
23392 }
23393 _res = NULL;
23394 done:
23395 D(p->level--);
23396 return _res;
23397}
23398
23399// _tmp_53: '+' | '-'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023400static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080023401_tmp_53_rule(Parser *p)
23402{
23403 D(p->level++);
23404 if (p->error_indicator) {
23405 D(p->level--);
23406 return NULL;
23407 }
23408 void * _res = NULL;
23409 int _mark = p->mark;
23410 { // '+'
23411 if (p->error_indicator) {
23412 D(p->level--);
23413 return NULL;
23414 }
23415 D(fprintf(stderr, "%*c> _tmp_53[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'+'"));
23416 Token * _literal;
23417 if (
23418 (_literal = _PyPegen_expect_token(p, 14)) // token='+'
23419 )
23420 {
23421 D(fprintf(stderr, "%*c+ _tmp_53[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'+'"));
23422 _res = _literal;
23423 goto done;
23424 }
23425 p->mark = _mark;
23426 D(fprintf(stderr, "%*c%s _tmp_53[%d-%d]: %s failed!\n", p->level, ' ',
23427 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'+'"));
23428 }
23429 { // '-'
23430 if (p->error_indicator) {
23431 D(p->level--);
23432 return NULL;
23433 }
23434 D(fprintf(stderr, "%*c> _tmp_53[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-'"));
23435 Token * _literal;
23436 if (
23437 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
23438 )
23439 {
23440 D(fprintf(stderr, "%*c+ _tmp_53[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-'"));
23441 _res = _literal;
23442 goto done;
23443 }
23444 p->mark = _mark;
23445 D(fprintf(stderr, "%*c%s _tmp_53[%d-%d]: %s failed!\n", p->level, ' ',
23446 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-'"));
23447 }
23448 _res = NULL;
23449 done:
23450 D(p->level--);
23451 return _res;
23452}
23453
23454// _tmp_54: '.' | '(' | '='
23455static void *
23456_tmp_54_rule(Parser *p)
23457{
23458 D(p->level++);
23459 if (p->error_indicator) {
23460 D(p->level--);
23461 return NULL;
23462 }
23463 void * _res = NULL;
23464 int _mark = p->mark;
23465 { // '.'
23466 if (p->error_indicator) {
23467 D(p->level--);
23468 return NULL;
23469 }
23470 D(fprintf(stderr, "%*c> _tmp_54[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
23471 Token * _literal;
23472 if (
23473 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
23474 )
23475 {
23476 D(fprintf(stderr, "%*c+ _tmp_54[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
23477 _res = _literal;
23478 goto done;
23479 }
23480 p->mark = _mark;
23481 D(fprintf(stderr, "%*c%s _tmp_54[%d-%d]: %s failed!\n", p->level, ' ',
23482 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
23483 }
23484 { // '('
23485 if (p->error_indicator) {
23486 D(p->level--);
23487 return NULL;
23488 }
23489 D(fprintf(stderr, "%*c> _tmp_54[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'('"));
23490 Token * _literal;
23491 if (
23492 (_literal = _PyPegen_expect_token(p, 7)) // token='('
23493 )
23494 {
23495 D(fprintf(stderr, "%*c+ _tmp_54[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'('"));
23496 _res = _literal;
23497 goto done;
23498 }
23499 p->mark = _mark;
23500 D(fprintf(stderr, "%*c%s _tmp_54[%d-%d]: %s failed!\n", p->level, ' ',
23501 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'('"));
23502 }
23503 { // '='
23504 if (p->error_indicator) {
23505 D(p->level--);
23506 return NULL;
23507 }
23508 D(fprintf(stderr, "%*c> _tmp_54[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'='"));
23509 Token * _literal;
23510 if (
23511 (_literal = _PyPegen_expect_token(p, 22)) // token='='
23512 )
23513 {
23514 D(fprintf(stderr, "%*c+ _tmp_54[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'='"));
23515 _res = _literal;
23516 goto done;
23517 }
23518 p->mark = _mark;
23519 D(fprintf(stderr, "%*c%s _tmp_54[%d-%d]: %s failed!\n", p->level, ' ',
23520 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'='"));
23521 }
23522 _res = NULL;
23523 done:
23524 D(p->level--);
23525 return _res;
23526}
23527
23528// _tmp_55: '.' | '(' | '='
23529static void *
23530_tmp_55_rule(Parser *p)
23531{
23532 D(p->level++);
23533 if (p->error_indicator) {
23534 D(p->level--);
23535 return NULL;
23536 }
23537 void * _res = NULL;
23538 int _mark = p->mark;
23539 { // '.'
23540 if (p->error_indicator) {
23541 D(p->level--);
23542 return NULL;
23543 }
23544 D(fprintf(stderr, "%*c> _tmp_55[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
23545 Token * _literal;
23546 if (
23547 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
23548 )
23549 {
23550 D(fprintf(stderr, "%*c+ _tmp_55[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
23551 _res = _literal;
23552 goto done;
23553 }
23554 p->mark = _mark;
23555 D(fprintf(stderr, "%*c%s _tmp_55[%d-%d]: %s failed!\n", p->level, ' ',
23556 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
23557 }
23558 { // '('
23559 if (p->error_indicator) {
23560 D(p->level--);
23561 return NULL;
23562 }
23563 D(fprintf(stderr, "%*c> _tmp_55[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'('"));
23564 Token * _literal;
23565 if (
23566 (_literal = _PyPegen_expect_token(p, 7)) // token='('
23567 )
23568 {
23569 D(fprintf(stderr, "%*c+ _tmp_55[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'('"));
23570 _res = _literal;
23571 goto done;
23572 }
23573 p->mark = _mark;
23574 D(fprintf(stderr, "%*c%s _tmp_55[%d-%d]: %s failed!\n", p->level, ' ',
23575 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'('"));
23576 }
23577 { // '='
23578 if (p->error_indicator) {
23579 D(p->level--);
23580 return NULL;
23581 }
23582 D(fprintf(stderr, "%*c> _tmp_55[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'='"));
23583 Token * _literal;
23584 if (
23585 (_literal = _PyPegen_expect_token(p, 22)) // token='='
23586 )
23587 {
23588 D(fprintf(stderr, "%*c+ _tmp_55[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'='"));
23589 _res = _literal;
23590 goto done;
23591 }
23592 p->mark = _mark;
23593 D(fprintf(stderr, "%*c%s _tmp_55[%d-%d]: %s failed!\n", p->level, ' ',
23594 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'='"));
23595 }
23596 _res = NULL;
23597 done:
23598 D(p->level--);
23599 return _res;
23600}
23601
23602// _loop0_57: ',' maybe_star_pattern
23603static asdl_seq *
23604_loop0_57_rule(Parser *p)
23605{
23606 D(p->level++);
23607 if (p->error_indicator) {
23608 D(p->level--);
23609 return NULL;
23610 }
23611 void *_res = NULL;
23612 int _mark = p->mark;
23613 int _start_mark = p->mark;
23614 void **_children = PyMem_Malloc(sizeof(void *));
23615 if (!_children) {
23616 p->error_indicator = 1;
23617 PyErr_NoMemory();
23618 D(p->level--);
23619 return NULL;
23620 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023621 Py_ssize_t _children_capacity = 1;
23622 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080023623 { // ',' maybe_star_pattern
23624 if (p->error_indicator) {
23625 D(p->level--);
23626 return NULL;
23627 }
23628 D(fprintf(stderr, "%*c> _loop0_57[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' maybe_star_pattern"));
23629 Token * _literal;
23630 expr_ty elem;
23631 while (
23632 (_literal = _PyPegen_expect_token(p, 12)) // token=','
23633 &&
23634 (elem = maybe_star_pattern_rule(p)) // maybe_star_pattern
23635 )
23636 {
23637 _res = elem;
23638 if (_res == NULL && PyErr_Occurred()) {
23639 p->error_indicator = 1;
23640 PyMem_Free(_children);
23641 D(p->level--);
23642 return NULL;
23643 }
23644 if (_n == _children_capacity) {
23645 _children_capacity *= 2;
23646 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23647 if (!_new_children) {
23648 p->error_indicator = 1;
23649 PyErr_NoMemory();
23650 D(p->level--);
23651 return NULL;
23652 }
23653 _children = _new_children;
23654 }
23655 _children[_n++] = _res;
23656 _mark = p->mark;
23657 }
23658 p->mark = _mark;
23659 D(fprintf(stderr, "%*c%s _loop0_57[%d-%d]: %s failed!\n", p->level, ' ',
23660 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' maybe_star_pattern"));
23661 }
23662 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
23663 if (!_seq) {
23664 PyMem_Free(_children);
23665 p->error_indicator = 1;
23666 PyErr_NoMemory();
23667 D(p->level--);
23668 return NULL;
23669 }
23670 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
23671 PyMem_Free(_children);
23672 _PyPegen_insert_memo(p, _start_mark, _loop0_57_type, _seq);
23673 D(p->level--);
23674 return _seq;
23675}
23676
23677// _gather_56: maybe_star_pattern _loop0_57
23678static asdl_seq *
23679_gather_56_rule(Parser *p)
23680{
23681 D(p->level++);
23682 if (p->error_indicator) {
23683 D(p->level--);
23684 return NULL;
23685 }
23686 asdl_seq * _res = NULL;
23687 int _mark = p->mark;
23688 { // maybe_star_pattern _loop0_57
23689 if (p->error_indicator) {
23690 D(p->level--);
23691 return NULL;
23692 }
23693 D(fprintf(stderr, "%*c> _gather_56[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "maybe_star_pattern _loop0_57"));
23694 expr_ty elem;
23695 asdl_seq * seq;
23696 if (
23697 (elem = maybe_star_pattern_rule(p)) // maybe_star_pattern
23698 &&
23699 (seq = _loop0_57_rule(p)) // _loop0_57
23700 )
23701 {
23702 D(fprintf(stderr, "%*c+ _gather_56[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "maybe_star_pattern _loop0_57"));
23703 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
23704 goto done;
23705 }
23706 p->mark = _mark;
23707 D(fprintf(stderr, "%*c%s _gather_56[%d-%d]: %s failed!\n", p->level, ' ',
23708 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "maybe_star_pattern _loop0_57"));
23709 }
23710 _res = NULL;
23711 done:
23712 D(p->level--);
23713 return _res;
23714}
23715
23716// _tmp_58: capture_pattern | wildcard_pattern
23717static void *
23718_tmp_58_rule(Parser *p)
23719{
23720 D(p->level++);
23721 if (p->error_indicator) {
23722 D(p->level--);
23723 return NULL;
23724 }
23725 void * _res = NULL;
23726 int _mark = p->mark;
23727 { // capture_pattern
23728 if (p->error_indicator) {
23729 D(p->level--);
23730 return NULL;
23731 }
23732 D(fprintf(stderr, "%*c> _tmp_58[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "capture_pattern"));
23733 expr_ty capture_pattern_var;
23734 if (
23735 (capture_pattern_var = capture_pattern_rule(p)) // capture_pattern
23736 )
23737 {
23738 D(fprintf(stderr, "%*c+ _tmp_58[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "capture_pattern"));
23739 _res = capture_pattern_var;
23740 goto done;
23741 }
23742 p->mark = _mark;
23743 D(fprintf(stderr, "%*c%s _tmp_58[%d-%d]: %s failed!\n", p->level, ' ',
23744 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "capture_pattern"));
23745 }
23746 { // wildcard_pattern
23747 if (p->error_indicator) {
23748 D(p->level--);
23749 return NULL;
23750 }
23751 D(fprintf(stderr, "%*c> _tmp_58[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "wildcard_pattern"));
23752 expr_ty wildcard_pattern_var;
23753 if (
23754 (wildcard_pattern_var = wildcard_pattern_rule(p)) // wildcard_pattern
23755 )
23756 {
23757 D(fprintf(stderr, "%*c+ _tmp_58[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "wildcard_pattern"));
23758 _res = wildcard_pattern_var;
23759 goto done;
23760 }
23761 p->mark = _mark;
23762 D(fprintf(stderr, "%*c%s _tmp_58[%d-%d]: %s failed!\n", p->level, ' ',
23763 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "wildcard_pattern"));
23764 }
23765 _res = NULL;
23766 done:
23767 D(p->level--);
23768 return _res;
23769}
23770
23771// _loop0_60: ',' key_value_pattern
23772static asdl_seq *
23773_loop0_60_rule(Parser *p)
23774{
23775 D(p->level++);
23776 if (p->error_indicator) {
23777 D(p->level--);
23778 return NULL;
23779 }
23780 void *_res = NULL;
23781 int _mark = p->mark;
23782 int _start_mark = p->mark;
23783 void **_children = PyMem_Malloc(sizeof(void *));
23784 if (!_children) {
23785 p->error_indicator = 1;
23786 PyErr_NoMemory();
23787 D(p->level--);
23788 return NULL;
23789 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023790 Py_ssize_t _children_capacity = 1;
23791 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080023792 { // ',' key_value_pattern
23793 if (p->error_indicator) {
23794 D(p->level--);
23795 return NULL;
23796 }
23797 D(fprintf(stderr, "%*c> _loop0_60[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' key_value_pattern"));
23798 Token * _literal;
23799 KeyValuePair* elem;
23800 while (
23801 (_literal = _PyPegen_expect_token(p, 12)) // token=','
23802 &&
23803 (elem = key_value_pattern_rule(p)) // key_value_pattern
23804 )
23805 {
23806 _res = elem;
23807 if (_res == NULL && PyErr_Occurred()) {
23808 p->error_indicator = 1;
23809 PyMem_Free(_children);
23810 D(p->level--);
23811 return NULL;
23812 }
23813 if (_n == _children_capacity) {
23814 _children_capacity *= 2;
23815 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23816 if (!_new_children) {
23817 p->error_indicator = 1;
23818 PyErr_NoMemory();
23819 D(p->level--);
23820 return NULL;
23821 }
23822 _children = _new_children;
23823 }
23824 _children[_n++] = _res;
23825 _mark = p->mark;
23826 }
23827 p->mark = _mark;
23828 D(fprintf(stderr, "%*c%s _loop0_60[%d-%d]: %s failed!\n", p->level, ' ',
23829 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' key_value_pattern"));
23830 }
23831 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
23832 if (!_seq) {
23833 PyMem_Free(_children);
23834 p->error_indicator = 1;
23835 PyErr_NoMemory();
23836 D(p->level--);
23837 return NULL;
23838 }
23839 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
23840 PyMem_Free(_children);
23841 _PyPegen_insert_memo(p, _start_mark, _loop0_60_type, _seq);
23842 D(p->level--);
23843 return _seq;
23844}
23845
23846// _gather_59: key_value_pattern _loop0_60
23847static asdl_seq *
23848_gather_59_rule(Parser *p)
23849{
23850 D(p->level++);
23851 if (p->error_indicator) {
23852 D(p->level--);
23853 return NULL;
23854 }
23855 asdl_seq * _res = NULL;
23856 int _mark = p->mark;
23857 { // key_value_pattern _loop0_60
23858 if (p->error_indicator) {
23859 D(p->level--);
23860 return NULL;
23861 }
23862 D(fprintf(stderr, "%*c> _gather_59[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "key_value_pattern _loop0_60"));
23863 KeyValuePair* elem;
23864 asdl_seq * seq;
23865 if (
23866 (elem = key_value_pattern_rule(p)) // key_value_pattern
23867 &&
23868 (seq = _loop0_60_rule(p)) // _loop0_60
23869 )
23870 {
23871 D(fprintf(stderr, "%*c+ _gather_59[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "key_value_pattern _loop0_60"));
23872 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
23873 goto done;
23874 }
23875 p->mark = _mark;
23876 D(fprintf(stderr, "%*c%s _gather_59[%d-%d]: %s failed!\n", p->level, ' ',
23877 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "key_value_pattern _loop0_60"));
23878 }
23879 _res = NULL;
23880 done:
23881 D(p->level--);
23882 return _res;
23883}
23884
23885// _tmp_61: literal_pattern | value_pattern
23886static void *
23887_tmp_61_rule(Parser *p)
23888{
23889 D(p->level++);
23890 if (p->error_indicator) {
23891 D(p->level--);
23892 return NULL;
23893 }
23894 void * _res = NULL;
23895 int _mark = p->mark;
23896 { // literal_pattern
23897 if (p->error_indicator) {
23898 D(p->level--);
23899 return NULL;
23900 }
23901 D(fprintf(stderr, "%*c> _tmp_61[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "literal_pattern"));
23902 expr_ty literal_pattern_var;
23903 if (
23904 (literal_pattern_var = literal_pattern_rule(p)) // literal_pattern
23905 )
23906 {
23907 D(fprintf(stderr, "%*c+ _tmp_61[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "literal_pattern"));
23908 _res = literal_pattern_var;
23909 goto done;
23910 }
23911 p->mark = _mark;
23912 D(fprintf(stderr, "%*c%s _tmp_61[%d-%d]: %s failed!\n", p->level, ' ',
23913 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "literal_pattern"));
23914 }
23915 { // value_pattern
23916 if (p->error_indicator) {
23917 D(p->level--);
23918 return NULL;
23919 }
23920 D(fprintf(stderr, "%*c> _tmp_61[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "value_pattern"));
23921 expr_ty value_pattern_var;
23922 if (
23923 (value_pattern_var = value_pattern_rule(p)) // value_pattern
23924 )
23925 {
23926 D(fprintf(stderr, "%*c+ _tmp_61[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "value_pattern"));
23927 _res = value_pattern_var;
23928 goto done;
23929 }
23930 p->mark = _mark;
23931 D(fprintf(stderr, "%*c%s _tmp_61[%d-%d]: %s failed!\n", p->level, ' ',
23932 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "value_pattern"));
23933 }
23934 _res = NULL;
23935 done:
23936 D(p->level--);
23937 return _res;
23938}
23939
23940// _loop0_63: ',' pattern
23941static asdl_seq *
23942_loop0_63_rule(Parser *p)
23943{
23944 D(p->level++);
23945 if (p->error_indicator) {
23946 D(p->level--);
23947 return NULL;
23948 }
23949 void *_res = NULL;
23950 int _mark = p->mark;
23951 int _start_mark = p->mark;
23952 void **_children = PyMem_Malloc(sizeof(void *));
23953 if (!_children) {
23954 p->error_indicator = 1;
23955 PyErr_NoMemory();
23956 D(p->level--);
23957 return NULL;
23958 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023959 Py_ssize_t _children_capacity = 1;
23960 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080023961 { // ',' pattern
23962 if (p->error_indicator) {
23963 D(p->level--);
23964 return NULL;
23965 }
23966 D(fprintf(stderr, "%*c> _loop0_63[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' pattern"));
23967 Token * _literal;
23968 expr_ty elem;
23969 while (
23970 (_literal = _PyPegen_expect_token(p, 12)) // token=','
23971 &&
23972 (elem = pattern_rule(p)) // pattern
23973 )
23974 {
23975 _res = elem;
23976 if (_res == NULL && PyErr_Occurred()) {
23977 p->error_indicator = 1;
23978 PyMem_Free(_children);
23979 D(p->level--);
23980 return NULL;
23981 }
23982 if (_n == _children_capacity) {
23983 _children_capacity *= 2;
23984 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23985 if (!_new_children) {
23986 p->error_indicator = 1;
23987 PyErr_NoMemory();
23988 D(p->level--);
23989 return NULL;
23990 }
23991 _children = _new_children;
23992 }
23993 _children[_n++] = _res;
23994 _mark = p->mark;
23995 }
23996 p->mark = _mark;
23997 D(fprintf(stderr, "%*c%s _loop0_63[%d-%d]: %s failed!\n", p->level, ' ',
23998 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' pattern"));
23999 }
24000 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
24001 if (!_seq) {
24002 PyMem_Free(_children);
24003 p->error_indicator = 1;
24004 PyErr_NoMemory();
24005 D(p->level--);
24006 return NULL;
24007 }
24008 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
24009 PyMem_Free(_children);
24010 _PyPegen_insert_memo(p, _start_mark, _loop0_63_type, _seq);
24011 D(p->level--);
24012 return _seq;
24013}
24014
24015// _gather_62: pattern _loop0_63
24016static asdl_seq *
24017_gather_62_rule(Parser *p)
24018{
24019 D(p->level++);
24020 if (p->error_indicator) {
24021 D(p->level--);
24022 return NULL;
24023 }
24024 asdl_seq * _res = NULL;
24025 int _mark = p->mark;
24026 { // pattern _loop0_63
24027 if (p->error_indicator) {
24028 D(p->level--);
24029 return NULL;
24030 }
24031 D(fprintf(stderr, "%*c> _gather_62[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "pattern _loop0_63"));
24032 expr_ty elem;
24033 asdl_seq * seq;
24034 if (
24035 (elem = pattern_rule(p)) // pattern
24036 &&
24037 (seq = _loop0_63_rule(p)) // _loop0_63
24038 )
24039 {
24040 D(fprintf(stderr, "%*c+ _gather_62[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "pattern _loop0_63"));
24041 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
24042 goto done;
24043 }
24044 p->mark = _mark;
24045 D(fprintf(stderr, "%*c%s _gather_62[%d-%d]: %s failed!\n", p->level, ' ',
24046 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "pattern _loop0_63"));
24047 }
24048 _res = NULL;
24049 done:
24050 D(p->level--);
24051 return _res;
24052}
24053
24054// _loop0_65: ',' keyword_pattern
24055static asdl_seq *
24056_loop0_65_rule(Parser *p)
24057{
24058 D(p->level++);
24059 if (p->error_indicator) {
24060 D(p->level--);
24061 return NULL;
24062 }
24063 void *_res = NULL;
24064 int _mark = p->mark;
24065 int _start_mark = p->mark;
24066 void **_children = PyMem_Malloc(sizeof(void *));
24067 if (!_children) {
24068 p->error_indicator = 1;
24069 PyErr_NoMemory();
24070 D(p->level--);
24071 return NULL;
24072 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024073 Py_ssize_t _children_capacity = 1;
24074 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080024075 { // ',' keyword_pattern
24076 if (p->error_indicator) {
24077 D(p->level--);
24078 return NULL;
24079 }
24080 D(fprintf(stderr, "%*c> _loop0_65[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' keyword_pattern"));
24081 Token * _literal;
24082 keyword_ty elem;
24083 while (
24084 (_literal = _PyPegen_expect_token(p, 12)) // token=','
24085 &&
24086 (elem = keyword_pattern_rule(p)) // keyword_pattern
24087 )
24088 {
24089 _res = elem;
24090 if (_res == NULL && PyErr_Occurred()) {
24091 p->error_indicator = 1;
24092 PyMem_Free(_children);
24093 D(p->level--);
24094 return NULL;
24095 }
24096 if (_n == _children_capacity) {
24097 _children_capacity *= 2;
24098 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24099 if (!_new_children) {
24100 p->error_indicator = 1;
24101 PyErr_NoMemory();
24102 D(p->level--);
24103 return NULL;
24104 }
24105 _children = _new_children;
24106 }
24107 _children[_n++] = _res;
24108 _mark = p->mark;
24109 }
24110 p->mark = _mark;
24111 D(fprintf(stderr, "%*c%s _loop0_65[%d-%d]: %s failed!\n", p->level, ' ',
24112 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' keyword_pattern"));
24113 }
24114 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
24115 if (!_seq) {
24116 PyMem_Free(_children);
24117 p->error_indicator = 1;
24118 PyErr_NoMemory();
24119 D(p->level--);
24120 return NULL;
24121 }
24122 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
24123 PyMem_Free(_children);
24124 _PyPegen_insert_memo(p, _start_mark, _loop0_65_type, _seq);
24125 D(p->level--);
24126 return _seq;
24127}
24128
24129// _gather_64: keyword_pattern _loop0_65
24130static asdl_seq *
24131_gather_64_rule(Parser *p)
24132{
24133 D(p->level++);
24134 if (p->error_indicator) {
24135 D(p->level--);
24136 return NULL;
24137 }
24138 asdl_seq * _res = NULL;
24139 int _mark = p->mark;
24140 { // keyword_pattern _loop0_65
24141 if (p->error_indicator) {
24142 D(p->level--);
24143 return NULL;
24144 }
24145 D(fprintf(stderr, "%*c> _gather_64[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "keyword_pattern _loop0_65"));
24146 keyword_ty elem;
24147 asdl_seq * seq;
24148 if (
24149 (elem = keyword_pattern_rule(p)) // keyword_pattern
24150 &&
24151 (seq = _loop0_65_rule(p)) // _loop0_65
24152 )
24153 {
24154 D(fprintf(stderr, "%*c+ _gather_64[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "keyword_pattern _loop0_65"));
24155 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
24156 goto done;
24157 }
24158 p->mark = _mark;
24159 D(fprintf(stderr, "%*c%s _gather_64[%d-%d]: %s failed!\n", p->level, ' ',
24160 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "keyword_pattern _loop0_65"));
24161 }
24162 _res = NULL;
24163 done:
24164 D(p->level--);
24165 return _res;
24166}
24167
24168// _tmp_66: 'from' expression
24169static void *
24170_tmp_66_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024171{
24172 D(p->level++);
24173 if (p->error_indicator) {
24174 D(p->level--);
24175 return NULL;
24176 }
24177 void * _res = NULL;
24178 int _mark = p->mark;
24179 { // 'from' expression
24180 if (p->error_indicator) {
24181 D(p->level--);
24182 return NULL;
24183 }
Brandt Bucher145bf262021-02-26 14:51:55 -080024184 D(fprintf(stderr, "%*c> _tmp_66[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024185 Token * _keyword;
24186 expr_ty z;
24187 if (
24188 (_keyword = _PyPegen_expect_token(p, 514)) // token='from'
24189 &&
24190 (z = expression_rule(p)) // expression
24191 )
24192 {
Brandt Bucher145bf262021-02-26 14:51:55 -080024193 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 +010024194 _res = z;
24195 if (_res == NULL && PyErr_Occurred()) {
24196 p->error_indicator = 1;
24197 D(p->level--);
24198 return NULL;
24199 }
24200 goto done;
24201 }
24202 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080024203 D(fprintf(stderr, "%*c%s _tmp_66[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024204 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024205 }
24206 _res = NULL;
24207 done:
24208 D(p->level--);
24209 return _res;
24210}
24211
Brandt Bucher145bf262021-02-26 14:51:55 -080024212// _tmp_67: '->' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024213static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080024214_tmp_67_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024215{
24216 D(p->level++);
24217 if (p->error_indicator) {
24218 D(p->level--);
24219 return NULL;
24220 }
24221 void * _res = NULL;
24222 int _mark = p->mark;
24223 { // '->' expression
24224 if (p->error_indicator) {
24225 D(p->level--);
24226 return NULL;
24227 }
Brandt Bucher145bf262021-02-26 14:51:55 -080024228 D(fprintf(stderr, "%*c> _tmp_67[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'->' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024229 Token * _literal;
24230 expr_ty z;
24231 if (
24232 (_literal = _PyPegen_expect_token(p, 51)) // token='->'
24233 &&
24234 (z = expression_rule(p)) // expression
24235 )
24236 {
Brandt Bucher145bf262021-02-26 14:51:55 -080024237 D(fprintf(stderr, "%*c+ _tmp_67[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'->' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024238 _res = z;
24239 if (_res == NULL && PyErr_Occurred()) {
24240 p->error_indicator = 1;
24241 D(p->level--);
24242 return NULL;
24243 }
24244 goto done;
24245 }
24246 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080024247 D(fprintf(stderr, "%*c%s _tmp_67[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024248 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'->' expression"));
24249 }
24250 _res = NULL;
24251 done:
24252 D(p->level--);
24253 return _res;
24254}
24255
Brandt Bucher145bf262021-02-26 14:51:55 -080024256// _tmp_68: '->' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024257static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080024258_tmp_68_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024259{
24260 D(p->level++);
24261 if (p->error_indicator) {
24262 D(p->level--);
24263 return NULL;
24264 }
24265 void * _res = NULL;
24266 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024267 { // '->' expression
24268 if (p->error_indicator) {
24269 D(p->level--);
24270 return NULL;
24271 }
Brandt Bucher145bf262021-02-26 14:51:55 -080024272 D(fprintf(stderr, "%*c> _tmp_68[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'->' expression"));
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024273 Token * _literal;
24274 expr_ty z;
24275 if (
24276 (_literal = _PyPegen_expect_token(p, 51)) // token='->'
24277 &&
24278 (z = expression_rule(p)) // expression
24279 )
24280 {
Brandt Bucher145bf262021-02-26 14:51:55 -080024281 D(fprintf(stderr, "%*c+ _tmp_68[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'->' expression"));
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024282 _res = z;
24283 if (_res == NULL && PyErr_Occurred()) {
24284 p->error_indicator = 1;
24285 D(p->level--);
24286 return NULL;
24287 }
24288 goto done;
24289 }
24290 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080024291 D(fprintf(stderr, "%*c%s _tmp_68[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024292 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'->' expression"));
24293 }
24294 _res = NULL;
24295 done:
24296 D(p->level--);
24297 return _res;
24298}
24299
Brandt Bucher145bf262021-02-26 14:51:55 -080024300// _tmp_69: NEWLINE INDENT
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024301static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080024302_tmp_69_rule(Parser *p)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024303{
24304 D(p->level++);
24305 if (p->error_indicator) {
24306 D(p->level--);
24307 return NULL;
24308 }
24309 void * _res = NULL;
24310 int _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024311 { // NEWLINE INDENT
24312 if (p->error_indicator) {
24313 D(p->level--);
24314 return NULL;
24315 }
Brandt Bucher145bf262021-02-26 14:51:55 -080024316 D(fprintf(stderr, "%*c> _tmp_69[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE INDENT"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024317 Token * indent_var;
24318 Token * newline_var;
24319 if (
24320 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
24321 &&
24322 (indent_var = _PyPegen_expect_token(p, INDENT)) // token='INDENT'
24323 )
24324 {
Brandt Bucher145bf262021-02-26 14:51:55 -080024325 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 +010024326 _res = _PyPegen_dummy_name(p, newline_var, indent_var);
24327 goto done;
24328 }
24329 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080024330 D(fprintf(stderr, "%*c%s _tmp_69[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024331 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE INDENT"));
24332 }
24333 _res = NULL;
24334 done:
24335 D(p->level--);
24336 return _res;
24337}
24338
Brandt Bucher145bf262021-02-26 14:51:55 -080024339// _loop0_70: param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024340static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080024341_loop0_70_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024342{
24343 D(p->level++);
24344 if (p->error_indicator) {
24345 D(p->level--);
24346 return NULL;
24347 }
24348 void *_res = NULL;
24349 int _mark = p->mark;
24350 int _start_mark = p->mark;
24351 void **_children = PyMem_Malloc(sizeof(void *));
24352 if (!_children) {
24353 p->error_indicator = 1;
24354 PyErr_NoMemory();
24355 D(p->level--);
24356 return NULL;
24357 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024358 Py_ssize_t _children_capacity = 1;
24359 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024360 { // param_no_default
24361 if (p->error_indicator) {
24362 D(p->level--);
24363 return NULL;
24364 }
Brandt Bucher145bf262021-02-26 14:51:55 -080024365 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 +010024366 arg_ty param_no_default_var;
24367 while (
24368 (param_no_default_var = param_no_default_rule(p)) // param_no_default
24369 )
24370 {
24371 _res = param_no_default_var;
24372 if (_n == _children_capacity) {
24373 _children_capacity *= 2;
24374 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24375 if (!_new_children) {
24376 p->error_indicator = 1;
24377 PyErr_NoMemory();
24378 D(p->level--);
24379 return NULL;
24380 }
24381 _children = _new_children;
24382 }
24383 _children[_n++] = _res;
24384 _mark = p->mark;
24385 }
24386 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080024387 D(fprintf(stderr, "%*c%s _loop0_70[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024388 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024389 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024390 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024391 if (!_seq) {
24392 PyMem_Free(_children);
24393 p->error_indicator = 1;
24394 PyErr_NoMemory();
24395 D(p->level--);
24396 return NULL;
24397 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024398 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024399 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080024400 _PyPegen_insert_memo(p, _start_mark, _loop0_70_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024401 D(p->level--);
24402 return _seq;
24403}
24404
Brandt Bucher145bf262021-02-26 14:51:55 -080024405// _loop0_71: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024406static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080024407_loop0_71_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024408{
24409 D(p->level++);
24410 if (p->error_indicator) {
24411 D(p->level--);
24412 return NULL;
24413 }
24414 void *_res = NULL;
24415 int _mark = p->mark;
24416 int _start_mark = p->mark;
24417 void **_children = PyMem_Malloc(sizeof(void *));
24418 if (!_children) {
24419 p->error_indicator = 1;
24420 PyErr_NoMemory();
24421 D(p->level--);
24422 return NULL;
24423 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024424 Py_ssize_t _children_capacity = 1;
24425 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024426 { // param_with_default
24427 if (p->error_indicator) {
24428 D(p->level--);
24429 return NULL;
24430 }
Brandt Bucher145bf262021-02-26 14:51:55 -080024431 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 +010024432 NameDefaultPair* param_with_default_var;
24433 while (
24434 (param_with_default_var = param_with_default_rule(p)) // param_with_default
24435 )
24436 {
24437 _res = param_with_default_var;
24438 if (_n == _children_capacity) {
24439 _children_capacity *= 2;
24440 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24441 if (!_new_children) {
24442 p->error_indicator = 1;
24443 PyErr_NoMemory();
24444 D(p->level--);
24445 return NULL;
24446 }
24447 _children = _new_children;
24448 }
24449 _children[_n++] = _res;
24450 _mark = p->mark;
24451 }
24452 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080024453 D(fprintf(stderr, "%*c%s _loop0_71[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024454 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
24455 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024456 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024457 if (!_seq) {
24458 PyMem_Free(_children);
24459 p->error_indicator = 1;
24460 PyErr_NoMemory();
24461 D(p->level--);
24462 return NULL;
24463 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024464 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024465 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080024466 _PyPegen_insert_memo(p, _start_mark, _loop0_71_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024467 D(p->level--);
24468 return _seq;
24469}
24470
Brandt Bucher145bf262021-02-26 14:51:55 -080024471// _loop0_72: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024472static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080024473_loop0_72_rule(Parser *p)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024474{
24475 D(p->level++);
24476 if (p->error_indicator) {
24477 D(p->level--);
24478 return NULL;
24479 }
24480 void *_res = NULL;
24481 int _mark = p->mark;
24482 int _start_mark = p->mark;
24483 void **_children = PyMem_Malloc(sizeof(void *));
24484 if (!_children) {
24485 p->error_indicator = 1;
24486 PyErr_NoMemory();
24487 D(p->level--);
24488 return NULL;
24489 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024490 Py_ssize_t _children_capacity = 1;
24491 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024492 { // param_with_default
24493 if (p->error_indicator) {
24494 D(p->level--);
24495 return NULL;
24496 }
Brandt Bucher145bf262021-02-26 14:51:55 -080024497 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 +030024498 NameDefaultPair* param_with_default_var;
24499 while (
24500 (param_with_default_var = param_with_default_rule(p)) // param_with_default
24501 )
24502 {
24503 _res = param_with_default_var;
24504 if (_n == _children_capacity) {
24505 _children_capacity *= 2;
24506 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24507 if (!_new_children) {
24508 p->error_indicator = 1;
24509 PyErr_NoMemory();
24510 D(p->level--);
24511 return NULL;
24512 }
24513 _children = _new_children;
24514 }
24515 _children[_n++] = _res;
24516 _mark = p->mark;
24517 }
24518 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080024519 D(fprintf(stderr, "%*c%s _loop0_72[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024520 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
24521 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024522 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024523 if (!_seq) {
24524 PyMem_Free(_children);
24525 p->error_indicator = 1;
24526 PyErr_NoMemory();
24527 D(p->level--);
24528 return NULL;
24529 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024530 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024531 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080024532 _PyPegen_insert_memo(p, _start_mark, _loop0_72_type, _seq);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024533 D(p->level--);
24534 return _seq;
24535}
24536
Brandt Bucher145bf262021-02-26 14:51:55 -080024537// _loop1_73: param_no_default
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024538static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080024539_loop1_73_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024540{
24541 D(p->level++);
24542 if (p->error_indicator) {
24543 D(p->level--);
24544 return NULL;
24545 }
24546 void *_res = NULL;
24547 int _mark = p->mark;
24548 int _start_mark = p->mark;
24549 void **_children = PyMem_Malloc(sizeof(void *));
24550 if (!_children) {
24551 p->error_indicator = 1;
24552 PyErr_NoMemory();
24553 D(p->level--);
24554 return NULL;
24555 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024556 Py_ssize_t _children_capacity = 1;
24557 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024558 { // param_no_default
24559 if (p->error_indicator) {
24560 D(p->level--);
24561 return NULL;
24562 }
Brandt Bucher145bf262021-02-26 14:51:55 -080024563 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 +010024564 arg_ty param_no_default_var;
24565 while (
24566 (param_no_default_var = param_no_default_rule(p)) // param_no_default
24567 )
24568 {
24569 _res = param_no_default_var;
24570 if (_n == _children_capacity) {
24571 _children_capacity *= 2;
24572 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24573 if (!_new_children) {
24574 p->error_indicator = 1;
24575 PyErr_NoMemory();
24576 D(p->level--);
24577 return NULL;
24578 }
24579 _children = _new_children;
24580 }
24581 _children[_n++] = _res;
24582 _mark = p->mark;
24583 }
24584 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080024585 D(fprintf(stderr, "%*c%s _loop1_73[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024586 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
24587 }
24588 if (_n == 0 || p->error_indicator) {
24589 PyMem_Free(_children);
24590 D(p->level--);
24591 return NULL;
24592 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024593 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024594 if (!_seq) {
24595 PyMem_Free(_children);
24596 p->error_indicator = 1;
24597 PyErr_NoMemory();
24598 D(p->level--);
24599 return NULL;
24600 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024601 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024602 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080024603 _PyPegen_insert_memo(p, _start_mark, _loop1_73_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024604 D(p->level--);
24605 return _seq;
24606}
24607
Brandt Bucher145bf262021-02-26 14:51:55 -080024608// _loop0_74: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024609static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080024610_loop0_74_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024611{
24612 D(p->level++);
24613 if (p->error_indicator) {
24614 D(p->level--);
24615 return NULL;
24616 }
24617 void *_res = NULL;
24618 int _mark = p->mark;
24619 int _start_mark = p->mark;
24620 void **_children = PyMem_Malloc(sizeof(void *));
24621 if (!_children) {
24622 p->error_indicator = 1;
24623 PyErr_NoMemory();
24624 D(p->level--);
24625 return NULL;
24626 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024627 Py_ssize_t _children_capacity = 1;
24628 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024629 { // param_with_default
24630 if (p->error_indicator) {
24631 D(p->level--);
24632 return NULL;
24633 }
Brandt Bucher145bf262021-02-26 14:51:55 -080024634 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 +010024635 NameDefaultPair* param_with_default_var;
24636 while (
24637 (param_with_default_var = param_with_default_rule(p)) // param_with_default
24638 )
24639 {
24640 _res = param_with_default_var;
24641 if (_n == _children_capacity) {
24642 _children_capacity *= 2;
24643 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24644 if (!_new_children) {
24645 p->error_indicator = 1;
24646 PyErr_NoMemory();
24647 D(p->level--);
24648 return NULL;
24649 }
24650 _children = _new_children;
24651 }
24652 _children[_n++] = _res;
24653 _mark = p->mark;
24654 }
24655 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080024656 D(fprintf(stderr, "%*c%s _loop0_74[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024657 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
24658 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024659 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024660 if (!_seq) {
24661 PyMem_Free(_children);
24662 p->error_indicator = 1;
24663 PyErr_NoMemory();
24664 D(p->level--);
24665 return NULL;
24666 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024667 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024668 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080024669 _PyPegen_insert_memo(p, _start_mark, _loop0_74_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024670 D(p->level--);
24671 return _seq;
24672}
24673
Brandt Bucher145bf262021-02-26 14:51:55 -080024674// _loop1_75: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024675static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080024676_loop1_75_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024677{
24678 D(p->level++);
24679 if (p->error_indicator) {
24680 D(p->level--);
24681 return NULL;
24682 }
24683 void *_res = NULL;
24684 int _mark = p->mark;
24685 int _start_mark = p->mark;
24686 void **_children = PyMem_Malloc(sizeof(void *));
24687 if (!_children) {
24688 p->error_indicator = 1;
24689 PyErr_NoMemory();
24690 D(p->level--);
24691 return NULL;
24692 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024693 Py_ssize_t _children_capacity = 1;
24694 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024695 { // param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024696 if (p->error_indicator) {
24697 D(p->level--);
24698 return NULL;
24699 }
Brandt Bucher145bf262021-02-26 14:51:55 -080024700 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 +030024701 NameDefaultPair* param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024702 while (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024703 (param_with_default_var = param_with_default_rule(p)) // param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024704 )
24705 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024706 _res = param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024707 if (_n == _children_capacity) {
24708 _children_capacity *= 2;
24709 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24710 if (!_new_children) {
24711 p->error_indicator = 1;
24712 PyErr_NoMemory();
24713 D(p->level--);
24714 return NULL;
24715 }
24716 _children = _new_children;
24717 }
24718 _children[_n++] = _res;
24719 _mark = p->mark;
24720 }
24721 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080024722 D(fprintf(stderr, "%*c%s _loop1_75[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024723 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024724 }
24725 if (_n == 0 || p->error_indicator) {
24726 PyMem_Free(_children);
24727 D(p->level--);
24728 return NULL;
24729 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024730 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024731 if (!_seq) {
24732 PyMem_Free(_children);
24733 p->error_indicator = 1;
24734 PyErr_NoMemory();
24735 D(p->level--);
24736 return NULL;
24737 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024738 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024739 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080024740 _PyPegen_insert_memo(p, _start_mark, _loop1_75_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024741 D(p->level--);
24742 return _seq;
24743}
24744
Brandt Bucher145bf262021-02-26 14:51:55 -080024745// _loop1_76: param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024746static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080024747_loop1_76_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024748{
24749 D(p->level++);
24750 if (p->error_indicator) {
24751 D(p->level--);
24752 return NULL;
24753 }
24754 void *_res = NULL;
24755 int _mark = p->mark;
24756 int _start_mark = p->mark;
24757 void **_children = PyMem_Malloc(sizeof(void *));
24758 if (!_children) {
24759 p->error_indicator = 1;
24760 PyErr_NoMemory();
24761 D(p->level--);
24762 return NULL;
24763 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024764 Py_ssize_t _children_capacity = 1;
24765 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024766 { // param_no_default
24767 if (p->error_indicator) {
24768 D(p->level--);
24769 return NULL;
24770 }
Brandt Bucher145bf262021-02-26 14:51:55 -080024771 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 +010024772 arg_ty param_no_default_var;
24773 while (
24774 (param_no_default_var = param_no_default_rule(p)) // param_no_default
24775 )
24776 {
24777 _res = param_no_default_var;
24778 if (_n == _children_capacity) {
24779 _children_capacity *= 2;
24780 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24781 if (!_new_children) {
24782 p->error_indicator = 1;
24783 PyErr_NoMemory();
24784 D(p->level--);
24785 return NULL;
24786 }
24787 _children = _new_children;
24788 }
24789 _children[_n++] = _res;
24790 _mark = p->mark;
24791 }
24792 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080024793 D(fprintf(stderr, "%*c%s _loop1_76[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024794 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
24795 }
24796 if (_n == 0 || p->error_indicator) {
24797 PyMem_Free(_children);
24798 D(p->level--);
24799 return NULL;
24800 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024801 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024802 if (!_seq) {
24803 PyMem_Free(_children);
24804 p->error_indicator = 1;
24805 PyErr_NoMemory();
24806 D(p->level--);
24807 return NULL;
24808 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024809 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024810 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080024811 _PyPegen_insert_memo(p, _start_mark, _loop1_76_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024812 D(p->level--);
24813 return _seq;
24814}
24815
Brandt Bucher145bf262021-02-26 14:51:55 -080024816// _loop1_77: param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024817static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080024818_loop1_77_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024819{
24820 D(p->level++);
24821 if (p->error_indicator) {
24822 D(p->level--);
24823 return NULL;
24824 }
24825 void *_res = NULL;
24826 int _mark = p->mark;
24827 int _start_mark = p->mark;
24828 void **_children = PyMem_Malloc(sizeof(void *));
24829 if (!_children) {
24830 p->error_indicator = 1;
24831 PyErr_NoMemory();
24832 D(p->level--);
24833 return NULL;
24834 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024835 Py_ssize_t _children_capacity = 1;
24836 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024837 { // param_no_default
24838 if (p->error_indicator) {
24839 D(p->level--);
24840 return NULL;
24841 }
Brandt Bucher145bf262021-02-26 14:51:55 -080024842 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 +010024843 arg_ty param_no_default_var;
24844 while (
24845 (param_no_default_var = param_no_default_rule(p)) // param_no_default
24846 )
24847 {
24848 _res = param_no_default_var;
24849 if (_n == _children_capacity) {
24850 _children_capacity *= 2;
24851 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24852 if (!_new_children) {
24853 p->error_indicator = 1;
24854 PyErr_NoMemory();
24855 D(p->level--);
24856 return NULL;
24857 }
24858 _children = _new_children;
24859 }
24860 _children[_n++] = _res;
24861 _mark = p->mark;
24862 }
24863 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080024864 D(fprintf(stderr, "%*c%s _loop1_77[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024865 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
24866 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024867 if (_n == 0 || p->error_indicator) {
24868 PyMem_Free(_children);
24869 D(p->level--);
24870 return NULL;
24871 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024872 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024873 if (!_seq) {
24874 PyMem_Free(_children);
24875 p->error_indicator = 1;
24876 PyErr_NoMemory();
24877 D(p->level--);
24878 return NULL;
24879 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024880 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024881 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080024882 _PyPegen_insert_memo(p, _start_mark, _loop1_77_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024883 D(p->level--);
24884 return _seq;
24885}
24886
Brandt Bucher145bf262021-02-26 14:51:55 -080024887// _loop0_78: param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024888static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080024889_loop0_78_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024890{
24891 D(p->level++);
24892 if (p->error_indicator) {
24893 D(p->level--);
24894 return NULL;
24895 }
24896 void *_res = NULL;
24897 int _mark = p->mark;
24898 int _start_mark = p->mark;
24899 void **_children = PyMem_Malloc(sizeof(void *));
24900 if (!_children) {
24901 p->error_indicator = 1;
24902 PyErr_NoMemory();
24903 D(p->level--);
24904 return NULL;
24905 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024906 Py_ssize_t _children_capacity = 1;
24907 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024908 { // param_no_default
24909 if (p->error_indicator) {
24910 D(p->level--);
24911 return NULL;
24912 }
Brandt Bucher145bf262021-02-26 14:51:55 -080024913 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 +010024914 arg_ty param_no_default_var;
24915 while (
24916 (param_no_default_var = param_no_default_rule(p)) // param_no_default
24917 )
24918 {
24919 _res = param_no_default_var;
24920 if (_n == _children_capacity) {
24921 _children_capacity *= 2;
24922 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24923 if (!_new_children) {
24924 p->error_indicator = 1;
24925 PyErr_NoMemory();
24926 D(p->level--);
24927 return NULL;
24928 }
24929 _children = _new_children;
24930 }
24931 _children[_n++] = _res;
24932 _mark = p->mark;
24933 }
24934 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080024935 D(fprintf(stderr, "%*c%s _loop0_78[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024936 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
24937 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024938 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024939 if (!_seq) {
24940 PyMem_Free(_children);
24941 p->error_indicator = 1;
24942 PyErr_NoMemory();
24943 D(p->level--);
24944 return NULL;
24945 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024946 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024947 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080024948 _PyPegen_insert_memo(p, _start_mark, _loop0_78_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024949 D(p->level--);
24950 return _seq;
24951}
24952
Brandt Bucher145bf262021-02-26 14:51:55 -080024953// _loop1_79: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024954static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080024955_loop1_79_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024956{
24957 D(p->level++);
24958 if (p->error_indicator) {
24959 D(p->level--);
24960 return NULL;
24961 }
24962 void *_res = NULL;
24963 int _mark = p->mark;
24964 int _start_mark = p->mark;
24965 void **_children = PyMem_Malloc(sizeof(void *));
24966 if (!_children) {
24967 p->error_indicator = 1;
24968 PyErr_NoMemory();
24969 D(p->level--);
24970 return NULL;
24971 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024972 Py_ssize_t _children_capacity = 1;
24973 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024974 { // param_with_default
24975 if (p->error_indicator) {
24976 D(p->level--);
24977 return NULL;
24978 }
Brandt Bucher145bf262021-02-26 14:51:55 -080024979 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 +010024980 NameDefaultPair* param_with_default_var;
24981 while (
24982 (param_with_default_var = param_with_default_rule(p)) // param_with_default
24983 )
24984 {
24985 _res = param_with_default_var;
24986 if (_n == _children_capacity) {
24987 _children_capacity *= 2;
24988 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24989 if (!_new_children) {
24990 p->error_indicator = 1;
24991 PyErr_NoMemory();
24992 D(p->level--);
24993 return NULL;
24994 }
24995 _children = _new_children;
24996 }
24997 _children[_n++] = _res;
24998 _mark = p->mark;
24999 }
25000 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025001 D(fprintf(stderr, "%*c%s _loop1_79[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025002 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
25003 }
25004 if (_n == 0 || p->error_indicator) {
25005 PyMem_Free(_children);
25006 D(p->level--);
25007 return NULL;
25008 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025009 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025010 if (!_seq) {
25011 PyMem_Free(_children);
25012 p->error_indicator = 1;
25013 PyErr_NoMemory();
25014 D(p->level--);
25015 return NULL;
25016 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025017 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025018 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025019 _PyPegen_insert_memo(p, _start_mark, _loop1_79_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025020 D(p->level--);
25021 return _seq;
25022}
25023
Brandt Bucher145bf262021-02-26 14:51:55 -080025024// _loop0_80: param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025025static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025026_loop0_80_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025027{
25028 D(p->level++);
25029 if (p->error_indicator) {
25030 D(p->level--);
25031 return NULL;
25032 }
25033 void *_res = NULL;
25034 int _mark = p->mark;
25035 int _start_mark = p->mark;
25036 void **_children = PyMem_Malloc(sizeof(void *));
25037 if (!_children) {
25038 p->error_indicator = 1;
25039 PyErr_NoMemory();
25040 D(p->level--);
25041 return NULL;
25042 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025043 Py_ssize_t _children_capacity = 1;
25044 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025045 { // param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025046 if (p->error_indicator) {
25047 D(p->level--);
25048 return NULL;
25049 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025050 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 +030025051 arg_ty param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025052 while (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025053 (param_no_default_var = param_no_default_rule(p)) // param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025054 )
25055 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025056 _res = param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025057 if (_n == _children_capacity) {
25058 _children_capacity *= 2;
25059 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25060 if (!_new_children) {
25061 p->error_indicator = 1;
25062 PyErr_NoMemory();
25063 D(p->level--);
25064 return NULL;
25065 }
25066 _children = _new_children;
25067 }
25068 _children[_n++] = _res;
25069 _mark = p->mark;
25070 }
25071 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025072 D(fprintf(stderr, "%*c%s _loop0_80[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025073 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025074 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025075 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025076 if (!_seq) {
25077 PyMem_Free(_children);
25078 p->error_indicator = 1;
25079 PyErr_NoMemory();
25080 D(p->level--);
25081 return NULL;
25082 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025083 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025084 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025085 _PyPegen_insert_memo(p, _start_mark, _loop0_80_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025086 D(p->level--);
25087 return _seq;
25088}
25089
Brandt Bucher145bf262021-02-26 14:51:55 -080025090// _loop1_81: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025091static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025092_loop1_81_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025093{
25094 D(p->level++);
25095 if (p->error_indicator) {
25096 D(p->level--);
25097 return NULL;
25098 }
25099 void *_res = NULL;
25100 int _mark = p->mark;
25101 int _start_mark = p->mark;
25102 void **_children = PyMem_Malloc(sizeof(void *));
25103 if (!_children) {
25104 p->error_indicator = 1;
25105 PyErr_NoMemory();
25106 D(p->level--);
25107 return NULL;
25108 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025109 Py_ssize_t _children_capacity = 1;
25110 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025111 { // param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025112 if (p->error_indicator) {
25113 D(p->level--);
25114 return NULL;
25115 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025116 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 +030025117 NameDefaultPair* param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025118 while (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025119 (param_with_default_var = param_with_default_rule(p)) // param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025120 )
25121 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025122 _res = param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025123 if (_n == _children_capacity) {
25124 _children_capacity *= 2;
25125 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25126 if (!_new_children) {
25127 p->error_indicator = 1;
25128 PyErr_NoMemory();
25129 D(p->level--);
25130 return NULL;
25131 }
25132 _children = _new_children;
25133 }
25134 _children[_n++] = _res;
25135 _mark = p->mark;
25136 }
25137 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025138 D(fprintf(stderr, "%*c%s _loop1_81[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025139 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025140 }
25141 if (_n == 0 || p->error_indicator) {
25142 PyMem_Free(_children);
25143 D(p->level--);
25144 return NULL;
25145 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025146 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025147 if (!_seq) {
25148 PyMem_Free(_children);
25149 p->error_indicator = 1;
25150 PyErr_NoMemory();
25151 D(p->level--);
25152 return NULL;
25153 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025154 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025155 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025156 _PyPegen_insert_memo(p, _start_mark, _loop1_81_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025157 D(p->level--);
25158 return _seq;
25159}
25160
Brandt Bucher145bf262021-02-26 14:51:55 -080025161// _loop0_82: param_maybe_default
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025162static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025163_loop0_82_rule(Parser *p)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025164{
25165 D(p->level++);
25166 if (p->error_indicator) {
25167 D(p->level--);
25168 return NULL;
25169 }
25170 void *_res = NULL;
25171 int _mark = p->mark;
25172 int _start_mark = p->mark;
25173 void **_children = PyMem_Malloc(sizeof(void *));
25174 if (!_children) {
25175 p->error_indicator = 1;
25176 PyErr_NoMemory();
25177 D(p->level--);
25178 return NULL;
25179 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025180 Py_ssize_t _children_capacity = 1;
25181 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025182 { // param_maybe_default
25183 if (p->error_indicator) {
25184 D(p->level--);
25185 return NULL;
25186 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025187 D(fprintf(stderr, "%*c> _loop0_82[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_maybe_default"));
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025188 NameDefaultPair* param_maybe_default_var;
25189 while (
25190 (param_maybe_default_var = param_maybe_default_rule(p)) // param_maybe_default
25191 )
25192 {
25193 _res = param_maybe_default_var;
25194 if (_n == _children_capacity) {
25195 _children_capacity *= 2;
25196 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25197 if (!_new_children) {
25198 p->error_indicator = 1;
25199 PyErr_NoMemory();
25200 D(p->level--);
25201 return NULL;
25202 }
25203 _children = _new_children;
25204 }
25205 _children[_n++] = _res;
25206 _mark = p->mark;
25207 }
25208 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025209 D(fprintf(stderr, "%*c%s _loop0_82[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025210 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_maybe_default"));
25211 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025212 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025213 if (!_seq) {
25214 PyMem_Free(_children);
25215 p->error_indicator = 1;
25216 PyErr_NoMemory();
25217 D(p->level--);
25218 return NULL;
25219 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025220 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025221 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025222 _PyPegen_insert_memo(p, _start_mark, _loop0_82_type, _seq);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025223 D(p->level--);
25224 return _seq;
25225}
25226
Brandt Bucher145bf262021-02-26 14:51:55 -080025227// _loop1_83: param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025228static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025229_loop1_83_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025230{
25231 D(p->level++);
25232 if (p->error_indicator) {
25233 D(p->level--);
25234 return NULL;
25235 }
25236 void *_res = NULL;
25237 int _mark = p->mark;
25238 int _start_mark = p->mark;
25239 void **_children = PyMem_Malloc(sizeof(void *));
25240 if (!_children) {
25241 p->error_indicator = 1;
25242 PyErr_NoMemory();
25243 D(p->level--);
25244 return NULL;
25245 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025246 Py_ssize_t _children_capacity = 1;
25247 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025248 { // param_maybe_default
25249 if (p->error_indicator) {
25250 D(p->level--);
25251 return NULL;
25252 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025253 D(fprintf(stderr, "%*c> _loop1_83[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_maybe_default"));
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025254 NameDefaultPair* param_maybe_default_var;
25255 while (
25256 (param_maybe_default_var = param_maybe_default_rule(p)) // param_maybe_default
25257 )
25258 {
25259 _res = param_maybe_default_var;
25260 if (_n == _children_capacity) {
25261 _children_capacity *= 2;
25262 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25263 if (!_new_children) {
25264 p->error_indicator = 1;
25265 PyErr_NoMemory();
25266 D(p->level--);
25267 return NULL;
25268 }
25269 _children = _new_children;
25270 }
25271 _children[_n++] = _res;
25272 _mark = p->mark;
25273 }
25274 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025275 D(fprintf(stderr, "%*c%s _loop1_83[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025276 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_maybe_default"));
25277 }
25278 if (_n == 0 || p->error_indicator) {
25279 PyMem_Free(_children);
25280 D(p->level--);
25281 return NULL;
25282 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025283 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025284 if (!_seq) {
25285 PyMem_Free(_children);
25286 p->error_indicator = 1;
25287 PyErr_NoMemory();
25288 D(p->level--);
25289 return NULL;
25290 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025291 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025292 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025293 _PyPegen_insert_memo(p, _start_mark, _loop1_83_type, _seq);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025294 D(p->level--);
25295 return _seq;
25296}
25297
Brandt Bucher145bf262021-02-26 14:51:55 -080025298// _loop1_84: ('@' named_expression NEWLINE)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025299static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025300_loop1_84_rule(Parser *p)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025301{
25302 D(p->level++);
25303 if (p->error_indicator) {
25304 D(p->level--);
25305 return NULL;
25306 }
25307 void *_res = NULL;
25308 int _mark = p->mark;
25309 int _start_mark = p->mark;
25310 void **_children = PyMem_Malloc(sizeof(void *));
25311 if (!_children) {
25312 p->error_indicator = 1;
25313 PyErr_NoMemory();
25314 D(p->level--);
25315 return NULL;
25316 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025317 Py_ssize_t _children_capacity = 1;
25318 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025319 { // ('@' named_expression NEWLINE)
25320 if (p->error_indicator) {
25321 D(p->level--);
25322 return NULL;
25323 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025324 D(fprintf(stderr, "%*c> _loop1_84[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('@' named_expression NEWLINE)"));
Pablo Galindo56c95df2021-04-21 15:28:21 +010025325 void *_tmp_179_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025326 while (
Pablo Galindo56c95df2021-04-21 15:28:21 +010025327 (_tmp_179_var = _tmp_179_rule(p)) // '@' named_expression NEWLINE
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025328 )
25329 {
Pablo Galindo56c95df2021-04-21 15:28:21 +010025330 _res = _tmp_179_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025331 if (_n == _children_capacity) {
25332 _children_capacity *= 2;
25333 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25334 if (!_new_children) {
25335 p->error_indicator = 1;
25336 PyErr_NoMemory();
25337 D(p->level--);
25338 return NULL;
25339 }
25340 _children = _new_children;
25341 }
25342 _children[_n++] = _res;
25343 _mark = p->mark;
25344 }
25345 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025346 D(fprintf(stderr, "%*c%s _loop1_84[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025347 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('@' named_expression NEWLINE)"));
25348 }
25349 if (_n == 0 || p->error_indicator) {
25350 PyMem_Free(_children);
25351 D(p->level--);
25352 return NULL;
25353 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025354 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025355 if (!_seq) {
25356 PyMem_Free(_children);
25357 p->error_indicator = 1;
25358 PyErr_NoMemory();
25359 D(p->level--);
25360 return NULL;
25361 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025362 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025363 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025364 _PyPegen_insert_memo(p, _start_mark, _loop1_84_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025365 D(p->level--);
25366 return _seq;
25367}
25368
Brandt Bucher145bf262021-02-26 14:51:55 -080025369// _tmp_85: '(' arguments? ')'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025370static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080025371_tmp_85_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025372{
25373 D(p->level++);
25374 if (p->error_indicator) {
25375 D(p->level--);
25376 return NULL;
25377 }
25378 void * _res = NULL;
25379 int _mark = p->mark;
25380 { // '(' arguments? ')'
25381 if (p->error_indicator) {
25382 D(p->level--);
25383 return NULL;
25384 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025385 D(fprintf(stderr, "%*c> _tmp_85[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025386 Token * _literal;
25387 Token * _literal_1;
25388 void *z;
25389 if (
25390 (_literal = _PyPegen_expect_token(p, 7)) // token='('
25391 &&
25392 (z = arguments_rule(p), 1) // arguments?
25393 &&
25394 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
25395 )
25396 {
Brandt Bucher145bf262021-02-26 14:51:55 -080025397 D(fprintf(stderr, "%*c+ _tmp_85[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025398 _res = z;
25399 if (_res == NULL && PyErr_Occurred()) {
25400 p->error_indicator = 1;
25401 D(p->level--);
25402 return NULL;
25403 }
25404 goto done;
25405 }
25406 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025407 D(fprintf(stderr, "%*c%s _tmp_85[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025408 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' arguments? ')'"));
25409 }
25410 _res = NULL;
25411 done:
25412 D(p->level--);
25413 return _res;
25414}
25415
Brandt Bucher145bf262021-02-26 14:51:55 -080025416// _loop1_86: (',' star_expression)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025417static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025418_loop1_86_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025419{
25420 D(p->level++);
25421 if (p->error_indicator) {
25422 D(p->level--);
25423 return NULL;
25424 }
25425 void *_res = NULL;
25426 int _mark = p->mark;
25427 int _start_mark = p->mark;
25428 void **_children = PyMem_Malloc(sizeof(void *));
25429 if (!_children) {
25430 p->error_indicator = 1;
25431 PyErr_NoMemory();
25432 D(p->level--);
25433 return NULL;
25434 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025435 Py_ssize_t _children_capacity = 1;
25436 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025437 { // (',' star_expression)
25438 if (p->error_indicator) {
25439 D(p->level--);
25440 return NULL;
25441 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025442 D(fprintf(stderr, "%*c> _loop1_86[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' star_expression)"));
Pablo Galindo56c95df2021-04-21 15:28:21 +010025443 void *_tmp_180_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025444 while (
Pablo Galindo56c95df2021-04-21 15:28:21 +010025445 (_tmp_180_var = _tmp_180_rule(p)) // ',' star_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025446 )
25447 {
Pablo Galindo56c95df2021-04-21 15:28:21 +010025448 _res = _tmp_180_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025449 if (_n == _children_capacity) {
25450 _children_capacity *= 2;
25451 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25452 if (!_new_children) {
25453 p->error_indicator = 1;
25454 PyErr_NoMemory();
25455 D(p->level--);
25456 return NULL;
25457 }
25458 _children = _new_children;
25459 }
25460 _children[_n++] = _res;
25461 _mark = p->mark;
25462 }
25463 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025464 D(fprintf(stderr, "%*c%s _loop1_86[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025465 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' star_expression)"));
25466 }
25467 if (_n == 0 || p->error_indicator) {
25468 PyMem_Free(_children);
25469 D(p->level--);
25470 return NULL;
25471 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025472 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025473 if (!_seq) {
25474 PyMem_Free(_children);
25475 p->error_indicator = 1;
25476 PyErr_NoMemory();
25477 D(p->level--);
25478 return NULL;
25479 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025480 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025481 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025482 _PyPegen_insert_memo(p, _start_mark, _loop1_86_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025483 D(p->level--);
25484 return _seq;
25485}
25486
Brandt Bucher145bf262021-02-26 14:51:55 -080025487// _loop0_88: ',' star_named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025488static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025489_loop0_88_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025490{
25491 D(p->level++);
25492 if (p->error_indicator) {
25493 D(p->level--);
25494 return NULL;
25495 }
25496 void *_res = NULL;
25497 int _mark = p->mark;
25498 int _start_mark = p->mark;
25499 void **_children = PyMem_Malloc(sizeof(void *));
25500 if (!_children) {
25501 p->error_indicator = 1;
25502 PyErr_NoMemory();
25503 D(p->level--);
25504 return NULL;
25505 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025506 Py_ssize_t _children_capacity = 1;
25507 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025508 { // ',' star_named_expression
25509 if (p->error_indicator) {
25510 D(p->level--);
25511 return NULL;
25512 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025513 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 +010025514 Token * _literal;
25515 expr_ty elem;
25516 while (
25517 (_literal = _PyPegen_expect_token(p, 12)) // token=','
25518 &&
25519 (elem = star_named_expression_rule(p)) // star_named_expression
25520 )
25521 {
25522 _res = elem;
25523 if (_res == NULL && PyErr_Occurred()) {
25524 p->error_indicator = 1;
25525 PyMem_Free(_children);
25526 D(p->level--);
25527 return NULL;
25528 }
25529 if (_n == _children_capacity) {
25530 _children_capacity *= 2;
25531 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25532 if (!_new_children) {
25533 p->error_indicator = 1;
25534 PyErr_NoMemory();
25535 D(p->level--);
25536 return NULL;
25537 }
25538 _children = _new_children;
25539 }
25540 _children[_n++] = _res;
25541 _mark = p->mark;
25542 }
25543 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025544 D(fprintf(stderr, "%*c%s _loop0_88[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025545 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_named_expression"));
25546 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025547 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025548 if (!_seq) {
25549 PyMem_Free(_children);
25550 p->error_indicator = 1;
25551 PyErr_NoMemory();
25552 D(p->level--);
25553 return NULL;
25554 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025555 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025556 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025557 _PyPegen_insert_memo(p, _start_mark, _loop0_88_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025558 D(p->level--);
25559 return _seq;
25560}
25561
Brandt Bucher145bf262021-02-26 14:51:55 -080025562// _gather_87: star_named_expression _loop0_88
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025563static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025564_gather_87_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025565{
25566 D(p->level++);
25567 if (p->error_indicator) {
25568 D(p->level--);
25569 return NULL;
25570 }
25571 asdl_seq * _res = NULL;
25572 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025573 { // star_named_expression _loop0_88
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025574 if (p->error_indicator) {
25575 D(p->level--);
25576 return NULL;
25577 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025578 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 +010025579 expr_ty elem;
25580 asdl_seq * seq;
25581 if (
25582 (elem = star_named_expression_rule(p)) // star_named_expression
25583 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080025584 (seq = _loop0_88_rule(p)) // _loop0_88
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025585 )
25586 {
Brandt Bucher145bf262021-02-26 14:51:55 -080025587 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 +010025588 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
25589 goto done;
25590 }
25591 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025592 D(fprintf(stderr, "%*c%s _gather_87[%d-%d]: %s failed!\n", p->level, ' ',
25593 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression _loop0_88"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025594 }
25595 _res = NULL;
25596 done:
25597 D(p->level--);
25598 return _res;
25599}
25600
Brandt Bucher145bf262021-02-26 14:51:55 -080025601// _loop1_89: (',' expression)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025602static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025603_loop1_89_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025604{
25605 D(p->level++);
25606 if (p->error_indicator) {
25607 D(p->level--);
25608 return NULL;
25609 }
25610 void *_res = NULL;
25611 int _mark = p->mark;
25612 int _start_mark = p->mark;
25613 void **_children = PyMem_Malloc(sizeof(void *));
25614 if (!_children) {
25615 p->error_indicator = 1;
25616 PyErr_NoMemory();
25617 D(p->level--);
25618 return NULL;
25619 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025620 Py_ssize_t _children_capacity = 1;
25621 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025622 { // (',' expression)
25623 if (p->error_indicator) {
25624 D(p->level--);
25625 return NULL;
25626 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025627 D(fprintf(stderr, "%*c> _loop1_89[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' expression)"));
Pablo Galindo56c95df2021-04-21 15:28:21 +010025628 void *_tmp_181_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025629 while (
Pablo Galindo56c95df2021-04-21 15:28:21 +010025630 (_tmp_181_var = _tmp_181_rule(p)) // ',' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025631 )
25632 {
Pablo Galindo56c95df2021-04-21 15:28:21 +010025633 _res = _tmp_181_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025634 if (_n == _children_capacity) {
25635 _children_capacity *= 2;
25636 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25637 if (!_new_children) {
25638 p->error_indicator = 1;
25639 PyErr_NoMemory();
25640 D(p->level--);
25641 return NULL;
25642 }
25643 _children = _new_children;
25644 }
25645 _children[_n++] = _res;
25646 _mark = p->mark;
25647 }
25648 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025649 D(fprintf(stderr, "%*c%s _loop1_89[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025650 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' expression)"));
25651 }
25652 if (_n == 0 || p->error_indicator) {
25653 PyMem_Free(_children);
25654 D(p->level--);
25655 return NULL;
25656 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025657 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025658 if (!_seq) {
25659 PyMem_Free(_children);
25660 p->error_indicator = 1;
25661 PyErr_NoMemory();
25662 D(p->level--);
25663 return NULL;
25664 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025665 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025666 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025667 _PyPegen_insert_memo(p, _start_mark, _loop1_89_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025668 D(p->level--);
25669 return _seq;
25670}
25671
Brandt Bucher145bf262021-02-26 14:51:55 -080025672// _loop0_90: lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025673static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025674_loop0_90_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025675{
25676 D(p->level++);
25677 if (p->error_indicator) {
25678 D(p->level--);
25679 return NULL;
25680 }
25681 void *_res = NULL;
25682 int _mark = p->mark;
25683 int _start_mark = p->mark;
25684 void **_children = PyMem_Malloc(sizeof(void *));
25685 if (!_children) {
25686 p->error_indicator = 1;
25687 PyErr_NoMemory();
25688 D(p->level--);
25689 return NULL;
25690 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025691 Py_ssize_t _children_capacity = 1;
25692 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025693 { // lambda_param_no_default
25694 if (p->error_indicator) {
25695 D(p->level--);
25696 return NULL;
25697 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025698 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 +010025699 arg_ty lambda_param_no_default_var;
25700 while (
25701 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
25702 )
25703 {
25704 _res = lambda_param_no_default_var;
25705 if (_n == _children_capacity) {
25706 _children_capacity *= 2;
25707 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25708 if (!_new_children) {
25709 p->error_indicator = 1;
25710 PyErr_NoMemory();
25711 D(p->level--);
25712 return NULL;
25713 }
25714 _children = _new_children;
25715 }
25716 _children[_n++] = _res;
25717 _mark = p->mark;
25718 }
25719 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025720 D(fprintf(stderr, "%*c%s _loop0_90[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025721 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025722 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025723 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025724 if (!_seq) {
25725 PyMem_Free(_children);
25726 p->error_indicator = 1;
25727 PyErr_NoMemory();
25728 D(p->level--);
25729 return NULL;
25730 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025731 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025732 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025733 _PyPegen_insert_memo(p, _start_mark, _loop0_90_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025734 D(p->level--);
25735 return _seq;
25736}
25737
Brandt Bucher145bf262021-02-26 14:51:55 -080025738// _loop0_91: lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025739static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025740_loop0_91_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025741{
25742 D(p->level++);
25743 if (p->error_indicator) {
25744 D(p->level--);
25745 return NULL;
25746 }
25747 void *_res = NULL;
25748 int _mark = p->mark;
25749 int _start_mark = p->mark;
25750 void **_children = PyMem_Malloc(sizeof(void *));
25751 if (!_children) {
25752 p->error_indicator = 1;
25753 PyErr_NoMemory();
25754 D(p->level--);
25755 return NULL;
25756 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025757 Py_ssize_t _children_capacity = 1;
25758 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025759 { // lambda_param_with_default
25760 if (p->error_indicator) {
25761 D(p->level--);
25762 return NULL;
25763 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025764 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 +010025765 NameDefaultPair* lambda_param_with_default_var;
25766 while (
25767 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
25768 )
25769 {
25770 _res = lambda_param_with_default_var;
25771 if (_n == _children_capacity) {
25772 _children_capacity *= 2;
25773 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25774 if (!_new_children) {
25775 p->error_indicator = 1;
25776 PyErr_NoMemory();
25777 D(p->level--);
25778 return NULL;
25779 }
25780 _children = _new_children;
25781 }
25782 _children[_n++] = _res;
25783 _mark = p->mark;
25784 }
25785 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025786 D(fprintf(stderr, "%*c%s _loop0_91[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025787 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
25788 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025789 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025790 if (!_seq) {
25791 PyMem_Free(_children);
25792 p->error_indicator = 1;
25793 PyErr_NoMemory();
25794 D(p->level--);
25795 return NULL;
25796 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025797 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025798 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025799 _PyPegen_insert_memo(p, _start_mark, _loop0_91_type, _seq);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000025800 D(p->level--);
25801 return _seq;
25802}
25803
Brandt Bucher145bf262021-02-26 14:51:55 -080025804// _loop0_92: lambda_param_with_default
Pablo Galindob0aba1f2020-11-17 01:17:12 +000025805static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025806_loop0_92_rule(Parser *p)
Pablo Galindob0aba1f2020-11-17 01:17:12 +000025807{
25808 D(p->level++);
25809 if (p->error_indicator) {
25810 D(p->level--);
25811 return NULL;
25812 }
25813 void *_res = NULL;
25814 int _mark = p->mark;
25815 int _start_mark = p->mark;
25816 void **_children = PyMem_Malloc(sizeof(void *));
25817 if (!_children) {
25818 p->error_indicator = 1;
25819 PyErr_NoMemory();
25820 D(p->level--);
25821 return NULL;
25822 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025823 Py_ssize_t _children_capacity = 1;
25824 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000025825 { // lambda_param_with_default
25826 if (p->error_indicator) {
25827 D(p->level--);
25828 return NULL;
25829 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025830 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 +000025831 NameDefaultPair* lambda_param_with_default_var;
25832 while (
25833 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
25834 )
25835 {
25836 _res = lambda_param_with_default_var;
25837 if (_n == _children_capacity) {
25838 _children_capacity *= 2;
25839 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25840 if (!_new_children) {
25841 p->error_indicator = 1;
25842 PyErr_NoMemory();
25843 D(p->level--);
25844 return NULL;
25845 }
25846 _children = _new_children;
25847 }
25848 _children[_n++] = _res;
25849 _mark = p->mark;
25850 }
25851 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025852 D(fprintf(stderr, "%*c%s _loop0_92[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000025853 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
25854 }
25855 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
25856 if (!_seq) {
25857 PyMem_Free(_children);
25858 p->error_indicator = 1;
25859 PyErr_NoMemory();
25860 D(p->level--);
25861 return NULL;
25862 }
25863 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
25864 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025865 _PyPegen_insert_memo(p, _start_mark, _loop0_92_type, _seq);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000025866 D(p->level--);
25867 return _seq;
25868}
25869
Brandt Bucher145bf262021-02-26 14:51:55 -080025870// _loop1_93: lambda_param_no_default
Pablo Galindob0aba1f2020-11-17 01:17:12 +000025871static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025872_loop1_93_rule(Parser *p)
Pablo Galindob0aba1f2020-11-17 01:17:12 +000025873{
25874 D(p->level++);
25875 if (p->error_indicator) {
25876 D(p->level--);
25877 return NULL;
25878 }
25879 void *_res = NULL;
25880 int _mark = p->mark;
25881 int _start_mark = p->mark;
25882 void **_children = PyMem_Malloc(sizeof(void *));
25883 if (!_children) {
25884 p->error_indicator = 1;
25885 PyErr_NoMemory();
25886 D(p->level--);
25887 return NULL;
25888 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025889 Py_ssize_t _children_capacity = 1;
25890 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000025891 { // lambda_param_no_default
25892 if (p->error_indicator) {
25893 D(p->level--);
25894 return NULL;
25895 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025896 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 +000025897 arg_ty lambda_param_no_default_var;
25898 while (
25899 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
25900 )
25901 {
25902 _res = lambda_param_no_default_var;
25903 if (_n == _children_capacity) {
25904 _children_capacity *= 2;
25905 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25906 if (!_new_children) {
25907 p->error_indicator = 1;
25908 PyErr_NoMemory();
25909 D(p->level--);
25910 return NULL;
25911 }
25912 _children = _new_children;
25913 }
25914 _children[_n++] = _res;
25915 _mark = p->mark;
25916 }
25917 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025918 D(fprintf(stderr, "%*c%s _loop1_93[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000025919 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
25920 }
25921 if (_n == 0 || p->error_indicator) {
25922 PyMem_Free(_children);
25923 D(p->level--);
25924 return NULL;
25925 }
25926 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
25927 if (!_seq) {
25928 PyMem_Free(_children);
25929 p->error_indicator = 1;
25930 PyErr_NoMemory();
25931 D(p->level--);
25932 return NULL;
25933 }
25934 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
25935 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025936 _PyPegen_insert_memo(p, _start_mark, _loop1_93_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025937 D(p->level--);
25938 return _seq;
25939}
25940
Brandt Bucher145bf262021-02-26 14:51:55 -080025941// _loop0_94: lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025942static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025943_loop0_94_rule(Parser *p)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025944{
25945 D(p->level++);
25946 if (p->error_indicator) {
25947 D(p->level--);
25948 return NULL;
25949 }
25950 void *_res = NULL;
25951 int _mark = p->mark;
25952 int _start_mark = p->mark;
25953 void **_children = PyMem_Malloc(sizeof(void *));
25954 if (!_children) {
25955 p->error_indicator = 1;
25956 PyErr_NoMemory();
25957 D(p->level--);
25958 return NULL;
25959 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025960 Py_ssize_t _children_capacity = 1;
25961 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025962 { // lambda_param_with_default
25963 if (p->error_indicator) {
25964 D(p->level--);
25965 return NULL;
25966 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025967 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 +030025968 NameDefaultPair* lambda_param_with_default_var;
25969 while (
25970 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
25971 )
25972 {
25973 _res = lambda_param_with_default_var;
25974 if (_n == _children_capacity) {
25975 _children_capacity *= 2;
25976 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25977 if (!_new_children) {
25978 p->error_indicator = 1;
25979 PyErr_NoMemory();
25980 D(p->level--);
25981 return NULL;
25982 }
25983 _children = _new_children;
25984 }
25985 _children[_n++] = _res;
25986 _mark = p->mark;
25987 }
25988 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025989 D(fprintf(stderr, "%*c%s _loop0_94[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025990 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
25991 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025992 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025993 if (!_seq) {
25994 PyMem_Free(_children);
25995 p->error_indicator = 1;
25996 PyErr_NoMemory();
25997 D(p->level--);
25998 return NULL;
25999 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026000 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026001 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026002 _PyPegen_insert_memo(p, _start_mark, _loop0_94_type, _seq);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026003 D(p->level--);
26004 return _seq;
26005}
26006
Brandt Bucher145bf262021-02-26 14:51:55 -080026007// _loop1_95: lambda_param_with_default
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026008static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026009_loop1_95_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026010{
26011 D(p->level++);
26012 if (p->error_indicator) {
26013 D(p->level--);
26014 return NULL;
26015 }
26016 void *_res = NULL;
26017 int _mark = p->mark;
26018 int _start_mark = p->mark;
26019 void **_children = PyMem_Malloc(sizeof(void *));
26020 if (!_children) {
26021 p->error_indicator = 1;
26022 PyErr_NoMemory();
26023 D(p->level--);
26024 return NULL;
26025 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026026 Py_ssize_t _children_capacity = 1;
26027 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026028 { // lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026029 if (p->error_indicator) {
26030 D(p->level--);
26031 return NULL;
26032 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026033 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 +000026034 NameDefaultPair* lambda_param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026035 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026036 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026037 )
26038 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026039 _res = lambda_param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026040 if (_n == _children_capacity) {
26041 _children_capacity *= 2;
26042 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26043 if (!_new_children) {
26044 p->error_indicator = 1;
26045 PyErr_NoMemory();
26046 D(p->level--);
26047 return NULL;
26048 }
26049 _children = _new_children;
26050 }
26051 _children[_n++] = _res;
26052 _mark = p->mark;
26053 }
26054 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026055 D(fprintf(stderr, "%*c%s _loop1_95[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026056 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026057 }
26058 if (_n == 0 || p->error_indicator) {
26059 PyMem_Free(_children);
26060 D(p->level--);
26061 return NULL;
26062 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026063 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026064 if (!_seq) {
26065 PyMem_Free(_children);
26066 p->error_indicator = 1;
26067 PyErr_NoMemory();
26068 D(p->level--);
26069 return NULL;
26070 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026071 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026072 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026073 _PyPegen_insert_memo(p, _start_mark, _loop1_95_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026074 D(p->level--);
26075 return _seq;
26076}
26077
Brandt Bucher145bf262021-02-26 14:51:55 -080026078// _loop1_96: lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026079static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026080_loop1_96_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026081{
26082 D(p->level++);
26083 if (p->error_indicator) {
26084 D(p->level--);
26085 return NULL;
26086 }
26087 void *_res = NULL;
26088 int _mark = p->mark;
26089 int _start_mark = p->mark;
26090 void **_children = PyMem_Malloc(sizeof(void *));
26091 if (!_children) {
26092 p->error_indicator = 1;
26093 PyErr_NoMemory();
26094 D(p->level--);
26095 return NULL;
26096 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026097 Py_ssize_t _children_capacity = 1;
26098 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026099 { // lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026100 if (p->error_indicator) {
26101 D(p->level--);
26102 return NULL;
26103 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026104 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 +000026105 arg_ty lambda_param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026106 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026107 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026108 )
26109 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026110 _res = lambda_param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026111 if (_n == _children_capacity) {
26112 _children_capacity *= 2;
26113 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26114 if (!_new_children) {
26115 p->error_indicator = 1;
26116 PyErr_NoMemory();
26117 D(p->level--);
26118 return NULL;
26119 }
26120 _children = _new_children;
26121 }
26122 _children[_n++] = _res;
26123 _mark = p->mark;
26124 }
26125 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026126 D(fprintf(stderr, "%*c%s _loop1_96[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026127 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
26128 }
26129 if (_n == 0 || p->error_indicator) {
26130 PyMem_Free(_children);
26131 D(p->level--);
26132 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026133 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026134 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026135 if (!_seq) {
26136 PyMem_Free(_children);
26137 p->error_indicator = 1;
26138 PyErr_NoMemory();
26139 D(p->level--);
26140 return NULL;
26141 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026142 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026143 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026144 _PyPegen_insert_memo(p, _start_mark, _loop1_96_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026145 D(p->level--);
26146 return _seq;
26147}
26148
Brandt Bucher145bf262021-02-26 14:51:55 -080026149// _loop1_97: lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026150static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026151_loop1_97_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026152{
26153 D(p->level++);
26154 if (p->error_indicator) {
26155 D(p->level--);
26156 return NULL;
26157 }
26158 void *_res = NULL;
26159 int _mark = p->mark;
26160 int _start_mark = p->mark;
26161 void **_children = PyMem_Malloc(sizeof(void *));
26162 if (!_children) {
26163 p->error_indicator = 1;
26164 PyErr_NoMemory();
26165 D(p->level--);
26166 return NULL;
26167 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026168 Py_ssize_t _children_capacity = 1;
26169 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026170 { // lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026171 if (p->error_indicator) {
26172 D(p->level--);
26173 return NULL;
26174 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026175 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 +000026176 arg_ty lambda_param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026177 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026178 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026179 )
26180 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026181 _res = lambda_param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026182 if (_n == _children_capacity) {
26183 _children_capacity *= 2;
26184 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26185 if (!_new_children) {
26186 p->error_indicator = 1;
26187 PyErr_NoMemory();
26188 D(p->level--);
26189 return NULL;
26190 }
26191 _children = _new_children;
26192 }
26193 _children[_n++] = _res;
26194 _mark = p->mark;
26195 }
26196 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026197 D(fprintf(stderr, "%*c%s _loop1_97[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026198 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026199 }
26200 if (_n == 0 || p->error_indicator) {
26201 PyMem_Free(_children);
26202 D(p->level--);
26203 return NULL;
26204 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026205 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026206 if (!_seq) {
26207 PyMem_Free(_children);
26208 p->error_indicator = 1;
26209 PyErr_NoMemory();
26210 D(p->level--);
26211 return NULL;
26212 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026213 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026214 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026215 _PyPegen_insert_memo(p, _start_mark, _loop1_97_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026216 D(p->level--);
26217 return _seq;
26218}
26219
Brandt Bucher145bf262021-02-26 14:51:55 -080026220// _loop0_98: lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026221static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026222_loop0_98_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026223{
26224 D(p->level++);
26225 if (p->error_indicator) {
26226 D(p->level--);
26227 return NULL;
26228 }
26229 void *_res = NULL;
26230 int _mark = p->mark;
26231 int _start_mark = p->mark;
26232 void **_children = PyMem_Malloc(sizeof(void *));
26233 if (!_children) {
26234 p->error_indicator = 1;
26235 PyErr_NoMemory();
26236 D(p->level--);
26237 return NULL;
26238 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026239 Py_ssize_t _children_capacity = 1;
26240 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026241 { // lambda_param_no_default
26242 if (p->error_indicator) {
26243 D(p->level--);
26244 return NULL;
26245 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026246 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 +010026247 arg_ty lambda_param_no_default_var;
26248 while (
26249 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
26250 )
26251 {
26252 _res = lambda_param_no_default_var;
26253 if (_n == _children_capacity) {
26254 _children_capacity *= 2;
26255 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26256 if (!_new_children) {
26257 p->error_indicator = 1;
26258 PyErr_NoMemory();
26259 D(p->level--);
26260 return NULL;
26261 }
26262 _children = _new_children;
26263 }
26264 _children[_n++] = _res;
26265 _mark = p->mark;
26266 }
26267 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026268 D(fprintf(stderr, "%*c%s _loop0_98[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026269 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
26270 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026271 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026272 if (!_seq) {
26273 PyMem_Free(_children);
26274 p->error_indicator = 1;
26275 PyErr_NoMemory();
26276 D(p->level--);
26277 return NULL;
26278 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026279 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026280 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026281 _PyPegen_insert_memo(p, _start_mark, _loop0_98_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026282 D(p->level--);
26283 return _seq;
26284}
26285
Brandt Bucher145bf262021-02-26 14:51:55 -080026286// _loop1_99: lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026287static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026288_loop1_99_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026289{
26290 D(p->level++);
26291 if (p->error_indicator) {
26292 D(p->level--);
26293 return NULL;
26294 }
26295 void *_res = NULL;
26296 int _mark = p->mark;
26297 int _start_mark = p->mark;
26298 void **_children = PyMem_Malloc(sizeof(void *));
26299 if (!_children) {
26300 p->error_indicator = 1;
26301 PyErr_NoMemory();
26302 D(p->level--);
26303 return NULL;
26304 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026305 Py_ssize_t _children_capacity = 1;
26306 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026307 { // lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026308 if (p->error_indicator) {
26309 D(p->level--);
26310 return NULL;
26311 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026312 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 +000026313 NameDefaultPair* lambda_param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026314 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026315 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026316 )
26317 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026318 _res = lambda_param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026319 if (_n == _children_capacity) {
26320 _children_capacity *= 2;
26321 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26322 if (!_new_children) {
26323 p->error_indicator = 1;
26324 PyErr_NoMemory();
26325 D(p->level--);
26326 return NULL;
26327 }
26328 _children = _new_children;
26329 }
26330 _children[_n++] = _res;
26331 _mark = p->mark;
26332 }
26333 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026334 D(fprintf(stderr, "%*c%s _loop1_99[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026335 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026336 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026337 if (_n == 0 || p->error_indicator) {
26338 PyMem_Free(_children);
26339 D(p->level--);
26340 return NULL;
26341 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026342 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026343 if (!_seq) {
26344 PyMem_Free(_children);
26345 p->error_indicator = 1;
26346 PyErr_NoMemory();
26347 D(p->level--);
26348 return NULL;
26349 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026350 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026351 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026352 _PyPegen_insert_memo(p, _start_mark, _loop1_99_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026353 D(p->level--);
26354 return _seq;
26355}
26356
Brandt Bucher145bf262021-02-26 14:51:55 -080026357// _loop0_100: lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026358static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026359_loop0_100_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026360{
26361 D(p->level++);
26362 if (p->error_indicator) {
26363 D(p->level--);
26364 return NULL;
26365 }
26366 void *_res = NULL;
26367 int _mark = p->mark;
26368 int _start_mark = p->mark;
26369 void **_children = PyMem_Malloc(sizeof(void *));
26370 if (!_children) {
26371 p->error_indicator = 1;
26372 PyErr_NoMemory();
26373 D(p->level--);
26374 return NULL;
26375 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026376 Py_ssize_t _children_capacity = 1;
26377 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026378 { // lambda_param_no_default
26379 if (p->error_indicator) {
26380 D(p->level--);
26381 return NULL;
26382 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026383 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 +010026384 arg_ty lambda_param_no_default_var;
26385 while (
26386 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
26387 )
26388 {
26389 _res = lambda_param_no_default_var;
26390 if (_n == _children_capacity) {
26391 _children_capacity *= 2;
26392 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26393 if (!_new_children) {
26394 p->error_indicator = 1;
26395 PyErr_NoMemory();
26396 D(p->level--);
26397 return NULL;
26398 }
26399 _children = _new_children;
26400 }
26401 _children[_n++] = _res;
26402 _mark = p->mark;
26403 }
26404 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026405 D(fprintf(stderr, "%*c%s _loop0_100[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026406 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
26407 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026408 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026409 if (!_seq) {
26410 PyMem_Free(_children);
26411 p->error_indicator = 1;
26412 PyErr_NoMemory();
26413 D(p->level--);
26414 return NULL;
26415 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026416 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026417 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026418 _PyPegen_insert_memo(p, _start_mark, _loop0_100_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026419 D(p->level--);
26420 return _seq;
26421}
26422
Brandt Bucher145bf262021-02-26 14:51:55 -080026423// _loop1_101: lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026424static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026425_loop1_101_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026426{
26427 D(p->level++);
26428 if (p->error_indicator) {
26429 D(p->level--);
26430 return NULL;
26431 }
26432 void *_res = NULL;
26433 int _mark = p->mark;
26434 int _start_mark = p->mark;
26435 void **_children = PyMem_Malloc(sizeof(void *));
26436 if (!_children) {
26437 p->error_indicator = 1;
26438 PyErr_NoMemory();
26439 D(p->level--);
26440 return NULL;
26441 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026442 Py_ssize_t _children_capacity = 1;
26443 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026444 { // lambda_param_with_default
26445 if (p->error_indicator) {
26446 D(p->level--);
26447 return NULL;
26448 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026449 D(fprintf(stderr, "%*c> _loop1_101[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026450 NameDefaultPair* lambda_param_with_default_var;
26451 while (
26452 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
26453 )
26454 {
26455 _res = lambda_param_with_default_var;
26456 if (_n == _children_capacity) {
26457 _children_capacity *= 2;
26458 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26459 if (!_new_children) {
26460 p->error_indicator = 1;
26461 PyErr_NoMemory();
26462 D(p->level--);
26463 return NULL;
26464 }
26465 _children = _new_children;
26466 }
26467 _children[_n++] = _res;
26468 _mark = p->mark;
26469 }
26470 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026471 D(fprintf(stderr, "%*c%s _loop1_101[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026472 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
26473 }
26474 if (_n == 0 || p->error_indicator) {
26475 PyMem_Free(_children);
26476 D(p->level--);
26477 return NULL;
26478 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026479 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026480 if (!_seq) {
26481 PyMem_Free(_children);
26482 p->error_indicator = 1;
26483 PyErr_NoMemory();
26484 D(p->level--);
26485 return NULL;
26486 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026487 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026488 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026489 _PyPegen_insert_memo(p, _start_mark, _loop1_101_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026490 D(p->level--);
26491 return _seq;
26492}
26493
Brandt Bucher145bf262021-02-26 14:51:55 -080026494// _loop0_102: lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026495static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026496_loop0_102_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026497{
26498 D(p->level++);
26499 if (p->error_indicator) {
26500 D(p->level--);
26501 return NULL;
26502 }
26503 void *_res = NULL;
26504 int _mark = p->mark;
26505 int _start_mark = p->mark;
26506 void **_children = PyMem_Malloc(sizeof(void *));
26507 if (!_children) {
26508 p->error_indicator = 1;
26509 PyErr_NoMemory();
26510 D(p->level--);
26511 return NULL;
26512 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026513 Py_ssize_t _children_capacity = 1;
26514 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026515 { // lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026516 if (p->error_indicator) {
26517 D(p->level--);
26518 return NULL;
26519 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026520 D(fprintf(stderr, "%*c> _loop0_102[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_maybe_default"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026521 NameDefaultPair* lambda_param_maybe_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026522 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026523 (lambda_param_maybe_default_var = lambda_param_maybe_default_rule(p)) // lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026524 )
26525 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026526 _res = lambda_param_maybe_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026527 if (_n == _children_capacity) {
26528 _children_capacity *= 2;
26529 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26530 if (!_new_children) {
26531 p->error_indicator = 1;
26532 PyErr_NoMemory();
26533 D(p->level--);
26534 return NULL;
26535 }
26536 _children = _new_children;
26537 }
26538 _children[_n++] = _res;
26539 _mark = p->mark;
26540 }
26541 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026542 D(fprintf(stderr, "%*c%s _loop0_102[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026543 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_maybe_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026544 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026545 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026546 if (!_seq) {
26547 PyMem_Free(_children);
26548 p->error_indicator = 1;
26549 PyErr_NoMemory();
26550 D(p->level--);
26551 return NULL;
26552 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026553 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026554 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026555 _PyPegen_insert_memo(p, _start_mark, _loop0_102_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026556 D(p->level--);
26557 return _seq;
26558}
26559
Brandt Bucher145bf262021-02-26 14:51:55 -080026560// _loop1_103: lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026561static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026562_loop1_103_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026563{
26564 D(p->level++);
26565 if (p->error_indicator) {
26566 D(p->level--);
26567 return NULL;
26568 }
26569 void *_res = NULL;
26570 int _mark = p->mark;
26571 int _start_mark = p->mark;
26572 void **_children = PyMem_Malloc(sizeof(void *));
26573 if (!_children) {
26574 p->error_indicator = 1;
26575 PyErr_NoMemory();
26576 D(p->level--);
26577 return NULL;
26578 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026579 Py_ssize_t _children_capacity = 1;
26580 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026581 { // lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026582 if (p->error_indicator) {
26583 D(p->level--);
26584 return NULL;
26585 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026586 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 +000026587 NameDefaultPair* lambda_param_maybe_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026588 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026589 (lambda_param_maybe_default_var = lambda_param_maybe_default_rule(p)) // lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026590 )
26591 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026592 _res = lambda_param_maybe_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026593 if (_n == _children_capacity) {
26594 _children_capacity *= 2;
26595 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26596 if (!_new_children) {
26597 p->error_indicator = 1;
26598 PyErr_NoMemory();
26599 D(p->level--);
26600 return NULL;
26601 }
26602 _children = _new_children;
26603 }
26604 _children[_n++] = _res;
26605 _mark = p->mark;
26606 }
26607 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026608 D(fprintf(stderr, "%*c%s _loop1_103[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026609 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_maybe_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026610 }
26611 if (_n == 0 || p->error_indicator) {
26612 PyMem_Free(_children);
26613 D(p->level--);
26614 return NULL;
26615 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026616 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026617 if (!_seq) {
26618 PyMem_Free(_children);
26619 p->error_indicator = 1;
26620 PyErr_NoMemory();
26621 D(p->level--);
26622 return NULL;
26623 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026624 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026625 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026626 _PyPegen_insert_memo(p, _start_mark, _loop1_103_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026627 D(p->level--);
26628 return _seq;
26629}
26630
Brandt Bucher145bf262021-02-26 14:51:55 -080026631// _loop1_104: ('or' conjunction)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026632static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026633_loop1_104_rule(Parser *p)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026634{
26635 D(p->level++);
26636 if (p->error_indicator) {
26637 D(p->level--);
26638 return NULL;
26639 }
26640 void *_res = NULL;
26641 int _mark = p->mark;
26642 int _start_mark = p->mark;
26643 void **_children = PyMem_Malloc(sizeof(void *));
26644 if (!_children) {
26645 p->error_indicator = 1;
26646 PyErr_NoMemory();
26647 D(p->level--);
26648 return NULL;
26649 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026650 Py_ssize_t _children_capacity = 1;
26651 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026652 { // ('or' conjunction)
26653 if (p->error_indicator) {
26654 D(p->level--);
26655 return NULL;
26656 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026657 D(fprintf(stderr, "%*c> _loop1_104[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('or' conjunction)"));
Pablo Galindo56c95df2021-04-21 15:28:21 +010026658 void *_tmp_182_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026659 while (
Pablo Galindo56c95df2021-04-21 15:28:21 +010026660 (_tmp_182_var = _tmp_182_rule(p)) // 'or' conjunction
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026661 )
26662 {
Pablo Galindo56c95df2021-04-21 15:28:21 +010026663 _res = _tmp_182_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026664 if (_n == _children_capacity) {
26665 _children_capacity *= 2;
26666 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26667 if (!_new_children) {
26668 p->error_indicator = 1;
26669 PyErr_NoMemory();
26670 D(p->level--);
26671 return NULL;
26672 }
26673 _children = _new_children;
26674 }
26675 _children[_n++] = _res;
26676 _mark = p->mark;
26677 }
26678 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026679 D(fprintf(stderr, "%*c%s _loop1_104[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026680 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('or' conjunction)"));
26681 }
26682 if (_n == 0 || p->error_indicator) {
26683 PyMem_Free(_children);
26684 D(p->level--);
26685 return NULL;
26686 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026687 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026688 if (!_seq) {
26689 PyMem_Free(_children);
26690 p->error_indicator = 1;
26691 PyErr_NoMemory();
26692 D(p->level--);
26693 return NULL;
26694 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026695 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026696 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026697 _PyPegen_insert_memo(p, _start_mark, _loop1_104_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026698 D(p->level--);
26699 return _seq;
26700}
26701
Brandt Bucher145bf262021-02-26 14:51:55 -080026702// _loop1_105: ('and' inversion)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026703static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026704_loop1_105_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026705{
26706 D(p->level++);
26707 if (p->error_indicator) {
26708 D(p->level--);
26709 return NULL;
26710 }
26711 void *_res = NULL;
26712 int _mark = p->mark;
26713 int _start_mark = p->mark;
26714 void **_children = PyMem_Malloc(sizeof(void *));
26715 if (!_children) {
26716 p->error_indicator = 1;
26717 PyErr_NoMemory();
26718 D(p->level--);
26719 return NULL;
26720 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026721 Py_ssize_t _children_capacity = 1;
26722 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026723 { // ('and' inversion)
26724 if (p->error_indicator) {
26725 D(p->level--);
26726 return NULL;
26727 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026728 D(fprintf(stderr, "%*c> _loop1_105[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('and' inversion)"));
Pablo Galindo56c95df2021-04-21 15:28:21 +010026729 void *_tmp_183_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026730 while (
Pablo Galindo56c95df2021-04-21 15:28:21 +010026731 (_tmp_183_var = _tmp_183_rule(p)) // 'and' inversion
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026732 )
26733 {
Pablo Galindo56c95df2021-04-21 15:28:21 +010026734 _res = _tmp_183_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026735 if (_n == _children_capacity) {
26736 _children_capacity *= 2;
26737 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26738 if (!_new_children) {
26739 p->error_indicator = 1;
26740 PyErr_NoMemory();
26741 D(p->level--);
26742 return NULL;
26743 }
26744 _children = _new_children;
26745 }
26746 _children[_n++] = _res;
26747 _mark = p->mark;
26748 }
26749 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026750 D(fprintf(stderr, "%*c%s _loop1_105[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026751 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('and' inversion)"));
26752 }
26753 if (_n == 0 || p->error_indicator) {
26754 PyMem_Free(_children);
26755 D(p->level--);
26756 return NULL;
26757 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026758 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026759 if (!_seq) {
26760 PyMem_Free(_children);
26761 p->error_indicator = 1;
26762 PyErr_NoMemory();
26763 D(p->level--);
26764 return NULL;
26765 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026766 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026767 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026768 _PyPegen_insert_memo(p, _start_mark, _loop1_105_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026769 D(p->level--);
26770 return _seq;
26771}
26772
Brandt Bucher145bf262021-02-26 14:51:55 -080026773// _loop1_106: compare_op_bitwise_or_pair
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026774static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026775_loop1_106_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026776{
26777 D(p->level++);
26778 if (p->error_indicator) {
26779 D(p->level--);
26780 return NULL;
26781 }
26782 void *_res = NULL;
26783 int _mark = p->mark;
26784 int _start_mark = p->mark;
26785 void **_children = PyMem_Malloc(sizeof(void *));
26786 if (!_children) {
26787 p->error_indicator = 1;
26788 PyErr_NoMemory();
26789 D(p->level--);
26790 return NULL;
26791 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026792 Py_ssize_t _children_capacity = 1;
26793 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026794 { // compare_op_bitwise_or_pair
26795 if (p->error_indicator) {
26796 D(p->level--);
26797 return NULL;
26798 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026799 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 +010026800 CmpopExprPair* compare_op_bitwise_or_pair_var;
26801 while (
26802 (compare_op_bitwise_or_pair_var = compare_op_bitwise_or_pair_rule(p)) // compare_op_bitwise_or_pair
26803 )
26804 {
26805 _res = compare_op_bitwise_or_pair_var;
26806 if (_n == _children_capacity) {
26807 _children_capacity *= 2;
26808 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26809 if (!_new_children) {
26810 p->error_indicator = 1;
26811 PyErr_NoMemory();
26812 D(p->level--);
26813 return NULL;
26814 }
26815 _children = _new_children;
26816 }
26817 _children[_n++] = _res;
26818 _mark = p->mark;
26819 }
26820 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026821 D(fprintf(stderr, "%*c%s _loop1_106[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026822 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "compare_op_bitwise_or_pair"));
26823 }
26824 if (_n == 0 || p->error_indicator) {
26825 PyMem_Free(_children);
26826 D(p->level--);
26827 return NULL;
26828 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026829 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026830 if (!_seq) {
26831 PyMem_Free(_children);
26832 p->error_indicator = 1;
26833 PyErr_NoMemory();
26834 D(p->level--);
26835 return NULL;
26836 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026837 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026838 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026839 _PyPegen_insert_memo(p, _start_mark, _loop1_106_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026840 D(p->level--);
26841 return _seq;
26842}
26843
Brandt Bucher145bf262021-02-26 14:51:55 -080026844// _tmp_107: '!='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026845static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080026846_tmp_107_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026847{
26848 D(p->level++);
26849 if (p->error_indicator) {
26850 D(p->level--);
26851 return NULL;
26852 }
26853 void * _res = NULL;
26854 int _mark = p->mark;
26855 { // '!='
26856 if (p->error_indicator) {
26857 D(p->level--);
26858 return NULL;
26859 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026860 D(fprintf(stderr, "%*c> _tmp_107[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'!='"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026861 Token * tok;
26862 if (
26863 (tok = _PyPegen_expect_token(p, 28)) // token='!='
26864 )
26865 {
Brandt Bucher145bf262021-02-26 14:51:55 -080026866 D(fprintf(stderr, "%*c+ _tmp_107[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'!='"));
Pablo Galindo06f8c332020-10-30 23:48:42 +000026867 _res = _PyPegen_check_barry_as_flufl ( p , tok ) ? NULL : tok;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026868 if (_res == NULL && PyErr_Occurred()) {
26869 p->error_indicator = 1;
26870 D(p->level--);
26871 return NULL;
26872 }
26873 goto done;
26874 }
26875 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026876 D(fprintf(stderr, "%*c%s _tmp_107[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026877 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'!='"));
26878 }
26879 _res = NULL;
26880 done:
26881 D(p->level--);
26882 return _res;
26883}
26884
Brandt Bucher145bf262021-02-26 14:51:55 -080026885// _loop0_109: ',' slice
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026886static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026887_loop0_109_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026888{
26889 D(p->level++);
26890 if (p->error_indicator) {
26891 D(p->level--);
26892 return NULL;
26893 }
26894 void *_res = NULL;
26895 int _mark = p->mark;
26896 int _start_mark = p->mark;
26897 void **_children = PyMem_Malloc(sizeof(void *));
26898 if (!_children) {
26899 p->error_indicator = 1;
26900 PyErr_NoMemory();
26901 D(p->level--);
26902 return NULL;
26903 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026904 Py_ssize_t _children_capacity = 1;
26905 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026906 { // ',' slice
26907 if (p->error_indicator) {
26908 D(p->level--);
26909 return NULL;
26910 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026911 D(fprintf(stderr, "%*c> _loop0_109[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' slice"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026912 Token * _literal;
26913 expr_ty elem;
26914 while (
26915 (_literal = _PyPegen_expect_token(p, 12)) // token=','
26916 &&
26917 (elem = slice_rule(p)) // slice
26918 )
26919 {
26920 _res = elem;
26921 if (_res == NULL && PyErr_Occurred()) {
26922 p->error_indicator = 1;
26923 PyMem_Free(_children);
26924 D(p->level--);
26925 return NULL;
26926 }
26927 if (_n == _children_capacity) {
26928 _children_capacity *= 2;
26929 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26930 if (!_new_children) {
26931 p->error_indicator = 1;
26932 PyErr_NoMemory();
26933 D(p->level--);
26934 return NULL;
26935 }
26936 _children = _new_children;
26937 }
26938 _children[_n++] = _res;
26939 _mark = p->mark;
26940 }
26941 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026942 D(fprintf(stderr, "%*c%s _loop0_109[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026943 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' slice"));
26944 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026945 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026946 if (!_seq) {
26947 PyMem_Free(_children);
26948 p->error_indicator = 1;
26949 PyErr_NoMemory();
26950 D(p->level--);
26951 return NULL;
26952 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026953 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026954 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026955 _PyPegen_insert_memo(p, _start_mark, _loop0_109_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026956 D(p->level--);
26957 return _seq;
26958}
26959
Brandt Bucher145bf262021-02-26 14:51:55 -080026960// _gather_108: slice _loop0_109
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026961static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026962_gather_108_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026963{
26964 D(p->level++);
26965 if (p->error_indicator) {
26966 D(p->level--);
26967 return NULL;
26968 }
26969 asdl_seq * _res = NULL;
26970 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026971 { // slice _loop0_109
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026972 if (p->error_indicator) {
26973 D(p->level--);
26974 return NULL;
26975 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026976 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 +010026977 expr_ty elem;
26978 asdl_seq * seq;
26979 if (
26980 (elem = slice_rule(p)) // slice
26981 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080026982 (seq = _loop0_109_rule(p)) // _loop0_109
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026983 )
26984 {
Brandt Bucher145bf262021-02-26 14:51:55 -080026985 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 +010026986 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
26987 goto done;
26988 }
26989 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026990 D(fprintf(stderr, "%*c%s _gather_108[%d-%d]: %s failed!\n", p->level, ' ',
26991 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slice _loop0_109"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026992 }
26993 _res = NULL;
26994 done:
26995 D(p->level--);
26996 return _res;
26997}
26998
Brandt Bucher145bf262021-02-26 14:51:55 -080026999// _tmp_110: ':' expression?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027000static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080027001_tmp_110_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027002{
27003 D(p->level++);
27004 if (p->error_indicator) {
27005 D(p->level--);
27006 return NULL;
27007 }
27008 void * _res = NULL;
27009 int _mark = p->mark;
27010 { // ':' expression?
27011 if (p->error_indicator) {
27012 D(p->level--);
27013 return NULL;
27014 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027015 D(fprintf(stderr, "%*c> _tmp_110[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':' expression?"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027016 Token * _literal;
27017 void *d;
27018 if (
27019 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
27020 &&
27021 (d = expression_rule(p), 1) // expression?
27022 )
27023 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027024 D(fprintf(stderr, "%*c+ _tmp_110[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':' expression?"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027025 _res = d;
27026 if (_res == NULL && PyErr_Occurred()) {
27027 p->error_indicator = 1;
27028 D(p->level--);
27029 return NULL;
27030 }
27031 goto done;
27032 }
27033 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027034 D(fprintf(stderr, "%*c%s _tmp_110[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027035 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':' expression?"));
27036 }
27037 _res = NULL;
27038 done:
27039 D(p->level--);
27040 return _res;
27041}
27042
Brandt Bucher145bf262021-02-26 14:51:55 -080027043// _tmp_111: tuple | group | genexp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027044static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080027045_tmp_111_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027046{
27047 D(p->level++);
27048 if (p->error_indicator) {
27049 D(p->level--);
27050 return NULL;
27051 }
27052 void * _res = NULL;
27053 int _mark = p->mark;
27054 { // tuple
27055 if (p->error_indicator) {
27056 D(p->level--);
27057 return NULL;
27058 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027059 D(fprintf(stderr, "%*c> _tmp_111[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "tuple"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027060 expr_ty tuple_var;
27061 if (
27062 (tuple_var = tuple_rule(p)) // tuple
27063 )
27064 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027065 D(fprintf(stderr, "%*c+ _tmp_111[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "tuple"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027066 _res = tuple_var;
27067 goto done;
27068 }
27069 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027070 D(fprintf(stderr, "%*c%s _tmp_111[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027071 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "tuple"));
27072 }
27073 { // group
27074 if (p->error_indicator) {
27075 D(p->level--);
27076 return NULL;
27077 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027078 D(fprintf(stderr, "%*c> _tmp_111[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "group"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027079 expr_ty group_var;
27080 if (
27081 (group_var = group_rule(p)) // group
27082 )
27083 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027084 D(fprintf(stderr, "%*c+ _tmp_111[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "group"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027085 _res = group_var;
27086 goto done;
27087 }
27088 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027089 D(fprintf(stderr, "%*c%s _tmp_111[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027090 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "group"));
27091 }
27092 { // genexp
27093 if (p->error_indicator) {
27094 D(p->level--);
27095 return NULL;
27096 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027097 D(fprintf(stderr, "%*c> _tmp_111[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "genexp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027098 expr_ty genexp_var;
27099 if (
27100 (genexp_var = genexp_rule(p)) // genexp
27101 )
27102 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027103 D(fprintf(stderr, "%*c+ _tmp_111[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "genexp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027104 _res = genexp_var;
27105 goto done;
27106 }
27107 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027108 D(fprintf(stderr, "%*c%s _tmp_111[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027109 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "genexp"));
27110 }
27111 _res = NULL;
27112 done:
27113 D(p->level--);
27114 return _res;
27115}
27116
Brandt Bucher145bf262021-02-26 14:51:55 -080027117// _tmp_112: list | listcomp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027118static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080027119_tmp_112_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027120{
27121 D(p->level++);
27122 if (p->error_indicator) {
27123 D(p->level--);
27124 return NULL;
27125 }
27126 void * _res = NULL;
27127 int _mark = p->mark;
27128 { // list
27129 if (p->error_indicator) {
27130 D(p->level--);
27131 return NULL;
27132 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027133 D(fprintf(stderr, "%*c> _tmp_112[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "list"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027134 expr_ty list_var;
27135 if (
27136 (list_var = list_rule(p)) // list
27137 )
27138 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027139 D(fprintf(stderr, "%*c+ _tmp_112[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "list"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027140 _res = list_var;
27141 goto done;
27142 }
27143 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027144 D(fprintf(stderr, "%*c%s _tmp_112[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027145 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "list"));
27146 }
27147 { // listcomp
27148 if (p->error_indicator) {
27149 D(p->level--);
27150 return NULL;
27151 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027152 D(fprintf(stderr, "%*c> _tmp_112[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "listcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027153 expr_ty listcomp_var;
27154 if (
27155 (listcomp_var = listcomp_rule(p)) // listcomp
27156 )
27157 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027158 D(fprintf(stderr, "%*c+ _tmp_112[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "listcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027159 _res = listcomp_var;
27160 goto done;
27161 }
27162 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027163 D(fprintf(stderr, "%*c%s _tmp_112[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027164 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "listcomp"));
27165 }
27166 _res = NULL;
27167 done:
27168 D(p->level--);
27169 return _res;
27170}
27171
Brandt Bucher145bf262021-02-26 14:51:55 -080027172// _tmp_113: dict | set | dictcomp | setcomp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027173static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080027174_tmp_113_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027175{
27176 D(p->level++);
27177 if (p->error_indicator) {
27178 D(p->level--);
27179 return NULL;
27180 }
27181 void * _res = NULL;
27182 int _mark = p->mark;
27183 { // dict
27184 if (p->error_indicator) {
27185 D(p->level--);
27186 return NULL;
27187 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027188 D(fprintf(stderr, "%*c> _tmp_113[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dict"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027189 expr_ty dict_var;
27190 if (
27191 (dict_var = dict_rule(p)) // dict
27192 )
27193 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027194 D(fprintf(stderr, "%*c+ _tmp_113[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dict"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027195 _res = dict_var;
27196 goto done;
27197 }
27198 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027199 D(fprintf(stderr, "%*c%s _tmp_113[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027200 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dict"));
27201 }
27202 { // set
27203 if (p->error_indicator) {
27204 D(p->level--);
27205 return NULL;
27206 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027207 D(fprintf(stderr, "%*c> _tmp_113[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "set"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027208 expr_ty set_var;
27209 if (
27210 (set_var = set_rule(p)) // set
27211 )
27212 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027213 D(fprintf(stderr, "%*c+ _tmp_113[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "set"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027214 _res = set_var;
27215 goto done;
27216 }
27217 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027218 D(fprintf(stderr, "%*c%s _tmp_113[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027219 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "set"));
27220 }
27221 { // dictcomp
27222 if (p->error_indicator) {
27223 D(p->level--);
27224 return NULL;
27225 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027226 D(fprintf(stderr, "%*c> _tmp_113[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dictcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027227 expr_ty dictcomp_var;
27228 if (
27229 (dictcomp_var = dictcomp_rule(p)) // dictcomp
27230 )
27231 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027232 D(fprintf(stderr, "%*c+ _tmp_113[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dictcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027233 _res = dictcomp_var;
27234 goto done;
27235 }
27236 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027237 D(fprintf(stderr, "%*c%s _tmp_113[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027238 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dictcomp"));
27239 }
27240 { // setcomp
27241 if (p->error_indicator) {
27242 D(p->level--);
27243 return NULL;
27244 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027245 D(fprintf(stderr, "%*c> _tmp_113[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "setcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027246 expr_ty setcomp_var;
27247 if (
27248 (setcomp_var = setcomp_rule(p)) // setcomp
27249 )
27250 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027251 D(fprintf(stderr, "%*c+ _tmp_113[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "setcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027252 _res = setcomp_var;
27253 goto done;
27254 }
27255 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027256 D(fprintf(stderr, "%*c%s _tmp_113[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027257 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "setcomp"));
27258 }
27259 _res = NULL;
27260 done:
27261 D(p->level--);
27262 return _res;
27263}
27264
Brandt Bucher145bf262021-02-26 14:51:55 -080027265// _loop1_114: STRING
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027266static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027267_loop1_114_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027268{
27269 D(p->level++);
27270 if (p->error_indicator) {
27271 D(p->level--);
27272 return NULL;
27273 }
27274 void *_res = NULL;
27275 int _mark = p->mark;
27276 int _start_mark = p->mark;
27277 void **_children = PyMem_Malloc(sizeof(void *));
27278 if (!_children) {
27279 p->error_indicator = 1;
27280 PyErr_NoMemory();
27281 D(p->level--);
27282 return NULL;
27283 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027284 Py_ssize_t _children_capacity = 1;
27285 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027286 { // STRING
27287 if (p->error_indicator) {
27288 D(p->level--);
27289 return NULL;
27290 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027291 D(fprintf(stderr, "%*c> _loop1_114[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "STRING"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027292 expr_ty string_var;
27293 while (
27294 (string_var = _PyPegen_string_token(p)) // STRING
27295 )
27296 {
27297 _res = string_var;
27298 if (_n == _children_capacity) {
27299 _children_capacity *= 2;
27300 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27301 if (!_new_children) {
27302 p->error_indicator = 1;
27303 PyErr_NoMemory();
27304 D(p->level--);
27305 return NULL;
27306 }
27307 _children = _new_children;
27308 }
27309 _children[_n++] = _res;
27310 _mark = p->mark;
27311 }
27312 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027313 D(fprintf(stderr, "%*c%s _loop1_114[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027314 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "STRING"));
27315 }
27316 if (_n == 0 || p->error_indicator) {
27317 PyMem_Free(_children);
27318 D(p->level--);
27319 return NULL;
27320 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027321 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027322 if (!_seq) {
27323 PyMem_Free(_children);
27324 p->error_indicator = 1;
27325 PyErr_NoMemory();
27326 D(p->level--);
27327 return NULL;
27328 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027329 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027330 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080027331 _PyPegen_insert_memo(p, _start_mark, _loop1_114_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027332 D(p->level--);
27333 return _seq;
27334}
27335
Brandt Bucher145bf262021-02-26 14:51:55 -080027336// _tmp_115: star_named_expression ',' star_named_expressions?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027337static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080027338_tmp_115_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027339{
27340 D(p->level++);
27341 if (p->error_indicator) {
27342 D(p->level--);
27343 return NULL;
27344 }
27345 void * _res = NULL;
27346 int _mark = p->mark;
27347 { // star_named_expression ',' star_named_expressions?
27348 if (p->error_indicator) {
27349 D(p->level--);
27350 return NULL;
27351 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027352 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 +010027353 Token * _literal;
27354 expr_ty y;
27355 void *z;
27356 if (
27357 (y = star_named_expression_rule(p)) // star_named_expression
27358 &&
27359 (_literal = _PyPegen_expect_token(p, 12)) // token=','
27360 &&
27361 (z = star_named_expressions_rule(p), 1) // star_named_expressions?
27362 )
27363 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027364 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 +010027365 _res = _PyPegen_seq_insert_in_front ( p , y , z );
27366 if (_res == NULL && PyErr_Occurred()) {
27367 p->error_indicator = 1;
27368 D(p->level--);
27369 return NULL;
27370 }
27371 goto done;
27372 }
27373 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027374 D(fprintf(stderr, "%*c%s _tmp_115[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027375 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression ',' star_named_expressions?"));
27376 }
27377 _res = NULL;
27378 done:
27379 D(p->level--);
27380 return _res;
27381}
27382
Brandt Bucher145bf262021-02-26 14:51:55 -080027383// _tmp_116: yield_expr | named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027384static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080027385_tmp_116_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 { // yield_expr
27395 if (p->error_indicator) {
27396 D(p->level--);
27397 return NULL;
27398 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027399 D(fprintf(stderr, "%*c> _tmp_116[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027400 expr_ty yield_expr_var;
27401 if (
27402 (yield_expr_var = yield_expr_rule(p)) // yield_expr
27403 )
27404 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027405 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 +010027406 _res = yield_expr_var;
27407 goto done;
27408 }
27409 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027410 D(fprintf(stderr, "%*c%s _tmp_116[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027411 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
27412 }
27413 { // named_expression
27414 if (p->error_indicator) {
27415 D(p->level--);
27416 return NULL;
27417 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027418 D(fprintf(stderr, "%*c> _tmp_116[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027419 expr_ty named_expression_var;
27420 if (
27421 (named_expression_var = named_expression_rule(p)) // named_expression
27422 )
27423 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027424 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 +010027425 _res = named_expression_var;
27426 goto done;
27427 }
27428 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027429 D(fprintf(stderr, "%*c%s _tmp_116[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027430 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression"));
27431 }
27432 _res = NULL;
27433 done:
27434 D(p->level--);
27435 return _res;
27436}
27437
Brandt Bucher145bf262021-02-26 14:51:55 -080027438// _loop0_118: ',' double_starred_kvpair
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027439static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027440_loop0_118_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027441{
27442 D(p->level++);
27443 if (p->error_indicator) {
27444 D(p->level--);
27445 return NULL;
27446 }
27447 void *_res = NULL;
27448 int _mark = p->mark;
27449 int _start_mark = p->mark;
27450 void **_children = PyMem_Malloc(sizeof(void *));
27451 if (!_children) {
27452 p->error_indicator = 1;
27453 PyErr_NoMemory();
27454 D(p->level--);
27455 return NULL;
27456 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027457 Py_ssize_t _children_capacity = 1;
27458 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027459 { // ',' double_starred_kvpair
27460 if (p->error_indicator) {
27461 D(p->level--);
27462 return NULL;
27463 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027464 D(fprintf(stderr, "%*c> _loop0_118[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' double_starred_kvpair"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027465 Token * _literal;
27466 KeyValuePair* elem;
27467 while (
27468 (_literal = _PyPegen_expect_token(p, 12)) // token=','
27469 &&
27470 (elem = double_starred_kvpair_rule(p)) // double_starred_kvpair
27471 )
27472 {
27473 _res = elem;
27474 if (_res == NULL && PyErr_Occurred()) {
27475 p->error_indicator = 1;
27476 PyMem_Free(_children);
27477 D(p->level--);
27478 return NULL;
27479 }
27480 if (_n == _children_capacity) {
27481 _children_capacity *= 2;
27482 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27483 if (!_new_children) {
27484 p->error_indicator = 1;
27485 PyErr_NoMemory();
27486 D(p->level--);
27487 return NULL;
27488 }
27489 _children = _new_children;
27490 }
27491 _children[_n++] = _res;
27492 _mark = p->mark;
27493 }
27494 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027495 D(fprintf(stderr, "%*c%s _loop0_118[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027496 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' double_starred_kvpair"));
27497 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027498 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027499 if (!_seq) {
27500 PyMem_Free(_children);
27501 p->error_indicator = 1;
27502 PyErr_NoMemory();
27503 D(p->level--);
27504 return NULL;
27505 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027506 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027507 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080027508 _PyPegen_insert_memo(p, _start_mark, _loop0_118_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027509 D(p->level--);
27510 return _seq;
27511}
27512
Brandt Bucher145bf262021-02-26 14:51:55 -080027513// _gather_117: double_starred_kvpair _loop0_118
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027514static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027515_gather_117_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027516{
27517 D(p->level++);
27518 if (p->error_indicator) {
27519 D(p->level--);
27520 return NULL;
27521 }
27522 asdl_seq * _res = NULL;
27523 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027524 { // double_starred_kvpair _loop0_118
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027525 if (p->error_indicator) {
27526 D(p->level--);
27527 return NULL;
27528 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027529 D(fprintf(stderr, "%*c> _gather_117[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "double_starred_kvpair _loop0_118"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027530 KeyValuePair* elem;
27531 asdl_seq * seq;
27532 if (
27533 (elem = double_starred_kvpair_rule(p)) // double_starred_kvpair
27534 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080027535 (seq = _loop0_118_rule(p)) // _loop0_118
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027536 )
27537 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027538 D(fprintf(stderr, "%*c+ _gather_117[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "double_starred_kvpair _loop0_118"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027539 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
27540 goto done;
27541 }
27542 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027543 D(fprintf(stderr, "%*c%s _gather_117[%d-%d]: %s failed!\n", p->level, ' ',
27544 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "double_starred_kvpair _loop0_118"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027545 }
27546 _res = NULL;
27547 done:
27548 D(p->level--);
27549 return _res;
27550}
27551
Brandt Bucher145bf262021-02-26 14:51:55 -080027552// _loop1_119: for_if_clause
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027553static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027554_loop1_119_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027555{
27556 D(p->level++);
27557 if (p->error_indicator) {
27558 D(p->level--);
27559 return NULL;
27560 }
27561 void *_res = NULL;
27562 int _mark = p->mark;
27563 int _start_mark = p->mark;
27564 void **_children = PyMem_Malloc(sizeof(void *));
27565 if (!_children) {
27566 p->error_indicator = 1;
27567 PyErr_NoMemory();
27568 D(p->level--);
27569 return NULL;
27570 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027571 Py_ssize_t _children_capacity = 1;
27572 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027573 { // for_if_clause
27574 if (p->error_indicator) {
27575 D(p->level--);
27576 return NULL;
27577 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027578 D(fprintf(stderr, "%*c> _loop1_119[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "for_if_clause"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027579 comprehension_ty for_if_clause_var;
27580 while (
27581 (for_if_clause_var = for_if_clause_rule(p)) // for_if_clause
27582 )
27583 {
27584 _res = for_if_clause_var;
27585 if (_n == _children_capacity) {
27586 _children_capacity *= 2;
27587 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27588 if (!_new_children) {
27589 p->error_indicator = 1;
27590 PyErr_NoMemory();
27591 D(p->level--);
27592 return NULL;
27593 }
27594 _children = _new_children;
27595 }
27596 _children[_n++] = _res;
27597 _mark = p->mark;
27598 }
27599 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027600 D(fprintf(stderr, "%*c%s _loop1_119[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027601 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "for_if_clause"));
27602 }
27603 if (_n == 0 || p->error_indicator) {
27604 PyMem_Free(_children);
27605 D(p->level--);
27606 return NULL;
27607 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027608 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027609 if (!_seq) {
27610 PyMem_Free(_children);
27611 p->error_indicator = 1;
27612 PyErr_NoMemory();
27613 D(p->level--);
27614 return NULL;
27615 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027616 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027617 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080027618 _PyPegen_insert_memo(p, _start_mark, _loop1_119_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027619 D(p->level--);
27620 return _seq;
27621}
27622
Brandt Bucher145bf262021-02-26 14:51:55 -080027623// _loop0_120: ('if' disjunction)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027624static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027625_loop0_120_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027626{
27627 D(p->level++);
27628 if (p->error_indicator) {
27629 D(p->level--);
27630 return NULL;
27631 }
27632 void *_res = NULL;
27633 int _mark = p->mark;
27634 int _start_mark = p->mark;
27635 void **_children = PyMem_Malloc(sizeof(void *));
27636 if (!_children) {
27637 p->error_indicator = 1;
27638 PyErr_NoMemory();
27639 D(p->level--);
27640 return NULL;
27641 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027642 Py_ssize_t _children_capacity = 1;
27643 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027644 { // ('if' disjunction)
27645 if (p->error_indicator) {
27646 D(p->level--);
27647 return NULL;
27648 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027649 D(fprintf(stderr, "%*c> _loop0_120[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('if' disjunction)"));
Pablo Galindo56c95df2021-04-21 15:28:21 +010027650 void *_tmp_184_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027651 while (
Pablo Galindo56c95df2021-04-21 15:28:21 +010027652 (_tmp_184_var = _tmp_184_rule(p)) // 'if' disjunction
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027653 )
27654 {
Pablo Galindo56c95df2021-04-21 15:28:21 +010027655 _res = _tmp_184_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027656 if (_n == _children_capacity) {
27657 _children_capacity *= 2;
27658 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27659 if (!_new_children) {
27660 p->error_indicator = 1;
27661 PyErr_NoMemory();
27662 D(p->level--);
27663 return NULL;
27664 }
27665 _children = _new_children;
27666 }
27667 _children[_n++] = _res;
27668 _mark = p->mark;
27669 }
27670 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027671 D(fprintf(stderr, "%*c%s _loop0_120[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027672 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('if' disjunction)"));
27673 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027674 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027675 if (!_seq) {
27676 PyMem_Free(_children);
27677 p->error_indicator = 1;
27678 PyErr_NoMemory();
27679 D(p->level--);
27680 return NULL;
27681 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027682 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027683 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080027684 _PyPegen_insert_memo(p, _start_mark, _loop0_120_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027685 D(p->level--);
27686 return _seq;
27687}
27688
Brandt Bucher145bf262021-02-26 14:51:55 -080027689// _loop0_121: ('if' disjunction)
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027690static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027691_loop0_121_rule(Parser *p)
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027692{
27693 D(p->level++);
27694 if (p->error_indicator) {
27695 D(p->level--);
27696 return NULL;
27697 }
27698 void *_res = NULL;
27699 int _mark = p->mark;
27700 int _start_mark = p->mark;
27701 void **_children = PyMem_Malloc(sizeof(void *));
27702 if (!_children) {
27703 p->error_indicator = 1;
27704 PyErr_NoMemory();
27705 D(p->level--);
27706 return NULL;
27707 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027708 Py_ssize_t _children_capacity = 1;
27709 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027710 { // ('if' disjunction)
27711 if (p->error_indicator) {
27712 D(p->level--);
27713 return NULL;
27714 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027715 D(fprintf(stderr, "%*c> _loop0_121[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('if' disjunction)"));
Pablo Galindo56c95df2021-04-21 15:28:21 +010027716 void *_tmp_185_var;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027717 while (
Pablo Galindo56c95df2021-04-21 15:28:21 +010027718 (_tmp_185_var = _tmp_185_rule(p)) // 'if' disjunction
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027719 )
27720 {
Pablo Galindo56c95df2021-04-21 15:28:21 +010027721 _res = _tmp_185_var;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027722 if (_n == _children_capacity) {
27723 _children_capacity *= 2;
27724 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27725 if (!_new_children) {
27726 p->error_indicator = 1;
27727 PyErr_NoMemory();
27728 D(p->level--);
27729 return NULL;
27730 }
27731 _children = _new_children;
27732 }
27733 _children[_n++] = _res;
27734 _mark = p->mark;
27735 }
27736 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027737 D(fprintf(stderr, "%*c%s _loop0_121[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027738 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('if' disjunction)"));
27739 }
27740 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
27741 if (!_seq) {
27742 PyMem_Free(_children);
27743 p->error_indicator = 1;
27744 PyErr_NoMemory();
27745 D(p->level--);
27746 return NULL;
27747 }
27748 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
27749 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080027750 _PyPegen_insert_memo(p, _start_mark, _loop0_121_type, _seq);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027751 D(p->level--);
27752 return _seq;
27753}
27754
Pablo Galindod9151cb2021-04-13 02:32:33 +010027755// _loop0_123: ',' (starred_expression | direct_named_expression !'=')
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030027756static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027757_loop0_123_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027758{
27759 D(p->level++);
27760 if (p->error_indicator) {
27761 D(p->level--);
27762 return NULL;
27763 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030027764 void *_res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027765 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030027766 int _start_mark = p->mark;
27767 void **_children = PyMem_Malloc(sizeof(void *));
27768 if (!_children) {
27769 p->error_indicator = 1;
27770 PyErr_NoMemory();
27771 D(p->level--);
27772 return NULL;
27773 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027774 Py_ssize_t _children_capacity = 1;
27775 Py_ssize_t _n = 0;
Pablo Galindod9151cb2021-04-13 02:32:33 +010027776 { // ',' (starred_expression | direct_named_expression !'=')
Pablo Galindo4a97b152020-09-02 17:44:19 +010027777 if (p->error_indicator) {
27778 D(p->level--);
27779 return NULL;
27780 }
Pablo Galindod9151cb2021-04-13 02:32:33 +010027781 D(fprintf(stderr, "%*c> _loop0_123[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (starred_expression | direct_named_expression !'=')"));
Pablo Galindo4a97b152020-09-02 17:44:19 +010027782 Token * _literal;
27783 void *elem;
27784 while (
27785 (_literal = _PyPegen_expect_token(p, 12)) // token=','
27786 &&
Pablo Galindo56c95df2021-04-21 15:28:21 +010027787 (elem = _tmp_186_rule(p)) // starred_expression | direct_named_expression !'='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027788 )
27789 {
27790 _res = elem;
27791 if (_res == NULL && PyErr_Occurred()) {
27792 p->error_indicator = 1;
27793 PyMem_Free(_children);
27794 D(p->level--);
27795 return NULL;
27796 }
27797 if (_n == _children_capacity) {
27798 _children_capacity *= 2;
27799 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27800 if (!_new_children) {
27801 p->error_indicator = 1;
27802 PyErr_NoMemory();
27803 D(p->level--);
27804 return NULL;
27805 }
27806 _children = _new_children;
27807 }
27808 _children[_n++] = _res;
27809 _mark = p->mark;
27810 }
27811 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020027812 D(fprintf(stderr, "%*c%s _loop0_123[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindod9151cb2021-04-13 02:32:33 +010027813 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (starred_expression | direct_named_expression !'=')"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027814 }
27815 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
27816 if (!_seq) {
27817 PyMem_Free(_children);
27818 p->error_indicator = 1;
27819 PyErr_NoMemory();
27820 D(p->level--);
27821 return NULL;
27822 }
27823 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
27824 PyMem_Free(_children);
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020027825 _PyPegen_insert_memo(p, _start_mark, _loop0_123_type, _seq);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027826 D(p->level--);
27827 return _seq;
27828}
27829
Pablo Galindod9151cb2021-04-13 02:32:33 +010027830// _gather_122: (starred_expression | direct_named_expression !'=') _loop0_123
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027831static asdl_seq *
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020027832_gather_122_rule(Parser *p)
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027833{
27834 D(p->level++);
27835 if (p->error_indicator) {
27836 D(p->level--);
27837 return NULL;
27838 }
27839 asdl_seq * _res = NULL;
27840 int _mark = p->mark;
Pablo Galindod9151cb2021-04-13 02:32:33 +010027841 { // (starred_expression | direct_named_expression !'=') _loop0_123
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027842 if (p->error_indicator) {
27843 D(p->level--);
27844 return NULL;
27845 }
Pablo Galindod9151cb2021-04-13 02:32:33 +010027846 D(fprintf(stderr, "%*c> _gather_122[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(starred_expression | direct_named_expression !'=') _loop0_123"));
Brandt Bucher145bf262021-02-26 14:51:55 -080027847 void *elem;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027848 asdl_seq * seq;
27849 if (
Pablo Galindo56c95df2021-04-21 15:28:21 +010027850 (elem = _tmp_186_rule(p)) // starred_expression | direct_named_expression !'='
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027851 &&
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020027852 (seq = _loop0_123_rule(p)) // _loop0_123
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027853 )
27854 {
Pablo Galindod9151cb2021-04-13 02:32:33 +010027855 D(fprintf(stderr, "%*c+ _gather_122[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(starred_expression | direct_named_expression !'=') _loop0_123"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027856 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
27857 goto done;
27858 }
27859 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020027860 D(fprintf(stderr, "%*c%s _gather_122[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindod9151cb2021-04-13 02:32:33 +010027861 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(starred_expression | direct_named_expression !'=') _loop0_123"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027862 }
27863 _res = NULL;
27864 done:
27865 D(p->level--);
27866 return _res;
27867}
27868
Brandt Bucher145bf262021-02-26 14:51:55 -080027869// _tmp_124: ',' kwargs
27870static void *
27871_tmp_124_rule(Parser *p)
27872{
27873 D(p->level++);
27874 if (p->error_indicator) {
27875 D(p->level--);
27876 return NULL;
27877 }
27878 void * _res = NULL;
27879 int _mark = p->mark;
27880 { // ',' kwargs
27881 if (p->error_indicator) {
27882 D(p->level--);
27883 return NULL;
27884 }
27885 D(fprintf(stderr, "%*c> _tmp_124[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwargs"));
27886 Token * _literal;
27887 asdl_seq* k;
27888 if (
27889 (_literal = _PyPegen_expect_token(p, 12)) // token=','
27890 &&
27891 (k = kwargs_rule(p)) // kwargs
27892 )
27893 {
27894 D(fprintf(stderr, "%*c+ _tmp_124[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' kwargs"));
27895 _res = k;
27896 if (_res == NULL && PyErr_Occurred()) {
27897 p->error_indicator = 1;
27898 D(p->level--);
27899 return NULL;
27900 }
27901 goto done;
27902 }
27903 p->mark = _mark;
27904 D(fprintf(stderr, "%*c%s _tmp_124[%d-%d]: %s failed!\n", p->level, ' ',
27905 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwargs"));
27906 }
27907 _res = NULL;
27908 done:
27909 D(p->level--);
27910 return _res;
27911}
27912
27913// _loop0_126: ',' kwarg_or_starred
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027914static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027915_loop0_126_rule(Parser *p)
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027916{
27917 D(p->level++);
27918 if (p->error_indicator) {
27919 D(p->level--);
27920 return NULL;
27921 }
27922 void *_res = NULL;
27923 int _mark = p->mark;
27924 int _start_mark = p->mark;
27925 void **_children = PyMem_Malloc(sizeof(void *));
27926 if (!_children) {
27927 p->error_indicator = 1;
27928 PyErr_NoMemory();
27929 D(p->level--);
27930 return NULL;
27931 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027932 Py_ssize_t _children_capacity = 1;
27933 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080027934 { // ',' kwarg_or_starred
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027935 if (p->error_indicator) {
27936 D(p->level--);
27937 return NULL;
27938 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027939 D(fprintf(stderr, "%*c> _loop0_126[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwarg_or_starred"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027940 Token * _literal;
Brandt Bucher145bf262021-02-26 14:51:55 -080027941 KeywordOrStarred* elem;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027942 while (
27943 (_literal = _PyPegen_expect_token(p, 12)) // token=','
27944 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080027945 (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027946 )
27947 {
27948 _res = elem;
27949 if (_res == NULL && PyErr_Occurred()) {
27950 p->error_indicator = 1;
27951 PyMem_Free(_children);
27952 D(p->level--);
27953 return NULL;
27954 }
27955 if (_n == _children_capacity) {
27956 _children_capacity *= 2;
27957 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27958 if (!_new_children) {
27959 p->error_indicator = 1;
27960 PyErr_NoMemory();
27961 D(p->level--);
27962 return NULL;
27963 }
27964 _children = _new_children;
27965 }
27966 _children[_n++] = _res;
27967 _mark = p->mark;
27968 }
27969 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027970 D(fprintf(stderr, "%*c%s _loop0_126[%d-%d]: %s failed!\n", p->level, ' ',
27971 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_starred"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027972 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027973 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027974 if (!_seq) {
27975 PyMem_Free(_children);
27976 p->error_indicator = 1;
27977 PyErr_NoMemory();
27978 D(p->level--);
27979 return NULL;
27980 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027981 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027982 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080027983 _PyPegen_insert_memo(p, _start_mark, _loop0_126_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027984 D(p->level--);
27985 return _seq;
27986}
27987
Brandt Bucher145bf262021-02-26 14:51:55 -080027988// _gather_125: kwarg_or_starred _loop0_126
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027989static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027990_gather_125_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027991{
27992 D(p->level++);
27993 if (p->error_indicator) {
27994 D(p->level--);
27995 return NULL;
27996 }
27997 asdl_seq * _res = NULL;
27998 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027999 { // kwarg_or_starred _loop0_126
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028000 if (p->error_indicator) {
28001 D(p->level--);
28002 return NULL;
28003 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028004 D(fprintf(stderr, "%*c> _gather_125[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwarg_or_starred _loop0_126"));
28005 KeywordOrStarred* elem;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028006 asdl_seq * seq;
28007 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080028008 (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028009 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080028010 (seq = _loop0_126_rule(p)) // _loop0_126
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028011 )
28012 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028013 D(fprintf(stderr, "%*c+ _gather_125[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwarg_or_starred _loop0_126"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028014 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
28015 goto done;
28016 }
28017 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028018 D(fprintf(stderr, "%*c%s _gather_125[%d-%d]: %s failed!\n", p->level, ' ',
28019 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_starred _loop0_126"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028020 }
28021 _res = NULL;
28022 done:
28023 D(p->level--);
28024 return _res;
28025}
28026
Brandt Bucher145bf262021-02-26 14:51:55 -080028027// _loop0_128: ',' kwarg_or_double_starred
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028028static asdl_seq *
28029_loop0_128_rule(Parser *p)
28030{
28031 D(p->level++);
28032 if (p->error_indicator) {
28033 D(p->level--);
28034 return NULL;
28035 }
28036 void *_res = NULL;
28037 int _mark = p->mark;
28038 int _start_mark = p->mark;
28039 void **_children = PyMem_Malloc(sizeof(void *));
28040 if (!_children) {
28041 p->error_indicator = 1;
28042 PyErr_NoMemory();
28043 D(p->level--);
28044 return NULL;
28045 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010028046 Py_ssize_t _children_capacity = 1;
28047 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080028048 { // ',' kwarg_or_double_starred
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028049 if (p->error_indicator) {
28050 D(p->level--);
28051 return NULL;
28052 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028053 D(fprintf(stderr, "%*c> _loop0_128[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwarg_or_double_starred"));
28054 Token * _literal;
28055 KeywordOrStarred* elem;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028056 while (
Brandt Bucher145bf262021-02-26 14:51:55 -080028057 (_literal = _PyPegen_expect_token(p, 12)) // token=','
28058 &&
28059 (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028060 )
28061 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028062 _res = elem;
28063 if (_res == NULL && PyErr_Occurred()) {
28064 p->error_indicator = 1;
28065 PyMem_Free(_children);
28066 D(p->level--);
28067 return NULL;
28068 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028069 if (_n == _children_capacity) {
28070 _children_capacity *= 2;
28071 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28072 if (!_new_children) {
28073 p->error_indicator = 1;
28074 PyErr_NoMemory();
28075 D(p->level--);
28076 return NULL;
28077 }
28078 _children = _new_children;
28079 }
28080 _children[_n++] = _res;
28081 _mark = p->mark;
28082 }
28083 p->mark = _mark;
28084 D(fprintf(stderr, "%*c%s _loop0_128[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080028085 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_double_starred"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028086 }
28087 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
28088 if (!_seq) {
28089 PyMem_Free(_children);
28090 p->error_indicator = 1;
28091 PyErr_NoMemory();
28092 D(p->level--);
28093 return NULL;
28094 }
28095 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
28096 PyMem_Free(_children);
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030028097 _PyPegen_insert_memo(p, _start_mark, _loop0_128_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028098 D(p->level--);
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030028099 return _seq;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028100}
28101
Brandt Bucher145bf262021-02-26 14:51:55 -080028102// _gather_127: kwarg_or_double_starred _loop0_128
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020028103static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080028104_gather_127_rule(Parser *p)
28105{
28106 D(p->level++);
28107 if (p->error_indicator) {
28108 D(p->level--);
28109 return NULL;
28110 }
28111 asdl_seq * _res = NULL;
28112 int _mark = p->mark;
28113 { // kwarg_or_double_starred _loop0_128
28114 if (p->error_indicator) {
28115 D(p->level--);
28116 return NULL;
28117 }
28118 D(fprintf(stderr, "%*c> _gather_127[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwarg_or_double_starred _loop0_128"));
28119 KeywordOrStarred* elem;
28120 asdl_seq * seq;
28121 if (
28122 (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
28123 &&
28124 (seq = _loop0_128_rule(p)) // _loop0_128
28125 )
28126 {
28127 D(fprintf(stderr, "%*c+ _gather_127[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwarg_or_double_starred _loop0_128"));
28128 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
28129 goto done;
28130 }
28131 p->mark = _mark;
28132 D(fprintf(stderr, "%*c%s _gather_127[%d-%d]: %s failed!\n", p->level, ' ',
28133 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_double_starred _loop0_128"));
28134 }
28135 _res = NULL;
28136 done:
28137 D(p->level--);
28138 return _res;
28139}
28140
28141// _loop0_130: ',' kwarg_or_starred
28142static asdl_seq *
28143_loop0_130_rule(Parser *p)
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020028144{
28145 D(p->level++);
28146 if (p->error_indicator) {
28147 D(p->level--);
28148 return NULL;
28149 }
28150 void *_res = NULL;
28151 int _mark = p->mark;
28152 int _start_mark = p->mark;
28153 void **_children = PyMem_Malloc(sizeof(void *));
28154 if (!_children) {
28155 p->error_indicator = 1;
28156 PyErr_NoMemory();
28157 D(p->level--);
28158 return NULL;
28159 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010028160 Py_ssize_t _children_capacity = 1;
28161 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080028162 { // ',' kwarg_or_starred
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020028163 if (p->error_indicator) {
28164 D(p->level--);
28165 return NULL;
28166 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028167 D(fprintf(stderr, "%*c> _loop0_130[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwarg_or_starred"));
28168 Token * _literal;
28169 KeywordOrStarred* elem;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020028170 while (
Brandt Bucher145bf262021-02-26 14:51:55 -080028171 (_literal = _PyPegen_expect_token(p, 12)) // token=','
28172 &&
28173 (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020028174 )
28175 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028176 _res = elem;
28177 if (_res == NULL && PyErr_Occurred()) {
28178 p->error_indicator = 1;
28179 PyMem_Free(_children);
28180 D(p->level--);
28181 return NULL;
28182 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020028183 if (_n == _children_capacity) {
28184 _children_capacity *= 2;
28185 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28186 if (!_new_children) {
28187 p->error_indicator = 1;
28188 PyErr_NoMemory();
28189 D(p->level--);
28190 return NULL;
28191 }
28192 _children = _new_children;
28193 }
28194 _children[_n++] = _res;
28195 _mark = p->mark;
28196 }
28197 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028198 D(fprintf(stderr, "%*c%s _loop0_130[%d-%d]: %s failed!\n", p->level, ' ',
28199 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_starred"));
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020028200 }
28201 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
28202 if (!_seq) {
28203 PyMem_Free(_children);
28204 p->error_indicator = 1;
28205 PyErr_NoMemory();
28206 D(p->level--);
28207 return NULL;
28208 }
28209 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
28210 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080028211 _PyPegen_insert_memo(p, _start_mark, _loop0_130_type, _seq);
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020028212 D(p->level--);
28213 return _seq;
28214}
28215
Brandt Bucher145bf262021-02-26 14:51:55 -080028216// _gather_129: kwarg_or_starred _loop0_130
28217static asdl_seq *
28218_gather_129_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028219{
28220 D(p->level++);
28221 if (p->error_indicator) {
28222 D(p->level--);
28223 return NULL;
28224 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028225 asdl_seq * _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028226 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028227 { // kwarg_or_starred _loop0_130
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028228 if (p->error_indicator) {
28229 D(p->level--);
28230 return NULL;
28231 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028232 D(fprintf(stderr, "%*c> _gather_129[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwarg_or_starred _loop0_130"));
28233 KeywordOrStarred* elem;
28234 asdl_seq * seq;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028235 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080028236 (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
28237 &&
28238 (seq = _loop0_130_rule(p)) // _loop0_130
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028239 )
28240 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028241 D(fprintf(stderr, "%*c+ _gather_129[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwarg_or_starred _loop0_130"));
28242 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028243 goto done;
28244 }
28245 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028246 D(fprintf(stderr, "%*c%s _gather_129[%d-%d]: %s failed!\n", p->level, ' ',
28247 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_starred _loop0_130"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028248 }
28249 _res = NULL;
28250 done:
28251 D(p->level--);
28252 return _res;
28253}
28254
Brandt Bucher145bf262021-02-26 14:51:55 -080028255// _loop0_132: ',' kwarg_or_double_starred
28256static asdl_seq *
28257_loop0_132_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028258{
28259 D(p->level++);
28260 if (p->error_indicator) {
28261 D(p->level--);
28262 return NULL;
28263 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028264 void *_res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028265 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028266 int _start_mark = p->mark;
28267 void **_children = PyMem_Malloc(sizeof(void *));
28268 if (!_children) {
28269 p->error_indicator = 1;
28270 PyErr_NoMemory();
28271 D(p->level--);
28272 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028273 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010028274 Py_ssize_t _children_capacity = 1;
28275 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080028276 { // ',' kwarg_or_double_starred
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028277 if (p->error_indicator) {
28278 D(p->level--);
28279 return NULL;
28280 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028281 D(fprintf(stderr, "%*c> _loop0_132[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwarg_or_double_starred"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028282 Token * _literal;
Brandt Bucher145bf262021-02-26 14:51:55 -080028283 KeywordOrStarred* elem;
28284 while (
28285 (_literal = _PyPegen_expect_token(p, 12)) // token=','
28286 &&
28287 (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028288 )
28289 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028290 _res = elem;
28291 if (_res == NULL && PyErr_Occurred()) {
28292 p->error_indicator = 1;
28293 PyMem_Free(_children);
28294 D(p->level--);
28295 return NULL;
28296 }
28297 if (_n == _children_capacity) {
28298 _children_capacity *= 2;
28299 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28300 if (!_new_children) {
28301 p->error_indicator = 1;
28302 PyErr_NoMemory();
28303 D(p->level--);
28304 return NULL;
28305 }
28306 _children = _new_children;
28307 }
28308 _children[_n++] = _res;
28309 _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028310 }
28311 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028312 D(fprintf(stderr, "%*c%s _loop0_132[%d-%d]: %s failed!\n", p->level, ' ',
28313 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_double_starred"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028314 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028315 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
28316 if (!_seq) {
28317 PyMem_Free(_children);
28318 p->error_indicator = 1;
28319 PyErr_NoMemory();
28320 D(p->level--);
28321 return NULL;
28322 }
28323 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
28324 PyMem_Free(_children);
28325 _PyPegen_insert_memo(p, _start_mark, _loop0_132_type, _seq);
28326 D(p->level--);
28327 return _seq;
28328}
28329
28330// _gather_131: kwarg_or_double_starred _loop0_132
28331static asdl_seq *
28332_gather_131_rule(Parser *p)
28333{
28334 D(p->level++);
28335 if (p->error_indicator) {
28336 D(p->level--);
28337 return NULL;
28338 }
28339 asdl_seq * _res = NULL;
28340 int _mark = p->mark;
28341 { // kwarg_or_double_starred _loop0_132
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028342 if (p->error_indicator) {
28343 D(p->level--);
28344 return NULL;
28345 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028346 D(fprintf(stderr, "%*c> _gather_131[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwarg_or_double_starred _loop0_132"));
28347 KeywordOrStarred* elem;
28348 asdl_seq * seq;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028349 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080028350 (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
28351 &&
28352 (seq = _loop0_132_rule(p)) // _loop0_132
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028353 )
28354 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028355 D(fprintf(stderr, "%*c+ _gather_131[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwarg_or_double_starred _loop0_132"));
28356 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028357 goto done;
28358 }
28359 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028360 D(fprintf(stderr, "%*c%s _gather_131[%d-%d]: %s failed!\n", p->level, ' ',
28361 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_double_starred _loop0_132"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028362 }
28363 _res = NULL;
28364 done:
28365 D(p->level--);
28366 return _res;
28367}
28368
Brandt Bucher145bf262021-02-26 14:51:55 -080028369// _loop0_133: (',' star_target)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028370static asdl_seq *
Pablo Galindo835f14f2021-01-31 22:52:56 +000028371_loop0_133_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028372{
28373 D(p->level++);
28374 if (p->error_indicator) {
28375 D(p->level--);
28376 return NULL;
28377 }
28378 void *_res = NULL;
28379 int _mark = p->mark;
28380 int _start_mark = p->mark;
28381 void **_children = PyMem_Malloc(sizeof(void *));
28382 if (!_children) {
28383 p->error_indicator = 1;
28384 PyErr_NoMemory();
28385 D(p->level--);
28386 return NULL;
28387 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010028388 Py_ssize_t _children_capacity = 1;
28389 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080028390 { // (',' star_target)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028391 if (p->error_indicator) {
28392 D(p->level--);
28393 return NULL;
28394 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028395 D(fprintf(stderr, "%*c> _loop0_133[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' star_target)"));
Pablo Galindo56c95df2021-04-21 15:28:21 +010028396 void *_tmp_187_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028397 while (
Pablo Galindo56c95df2021-04-21 15:28:21 +010028398 (_tmp_187_var = _tmp_187_rule(p)) // ',' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028399 )
28400 {
Pablo Galindo56c95df2021-04-21 15:28:21 +010028401 _res = _tmp_187_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028402 if (_n == _children_capacity) {
28403 _children_capacity *= 2;
28404 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28405 if (!_new_children) {
28406 p->error_indicator = 1;
28407 PyErr_NoMemory();
28408 D(p->level--);
28409 return NULL;
28410 }
28411 _children = _new_children;
28412 }
28413 _children[_n++] = _res;
28414 _mark = p->mark;
28415 }
28416 p->mark = _mark;
Pablo Galindo835f14f2021-01-31 22:52:56 +000028417 D(fprintf(stderr, "%*c%s _loop0_133[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080028418 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' star_target)"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028419 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010028420 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028421 if (!_seq) {
28422 PyMem_Free(_children);
28423 p->error_indicator = 1;
28424 PyErr_NoMemory();
28425 D(p->level--);
28426 return NULL;
28427 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010028428 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028429 PyMem_Free(_children);
Pablo Galindo835f14f2021-01-31 22:52:56 +000028430 _PyPegen_insert_memo(p, _start_mark, _loop0_133_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028431 D(p->level--);
28432 return _seq;
28433}
28434
Brandt Bucher145bf262021-02-26 14:51:55 -080028435// _loop0_135: ',' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028436static asdl_seq *
Pablo Galindo835f14f2021-01-31 22:52:56 +000028437_loop0_135_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028438{
28439 D(p->level++);
28440 if (p->error_indicator) {
28441 D(p->level--);
28442 return NULL;
28443 }
28444 void *_res = NULL;
28445 int _mark = p->mark;
28446 int _start_mark = p->mark;
28447 void **_children = PyMem_Malloc(sizeof(void *));
28448 if (!_children) {
28449 p->error_indicator = 1;
28450 PyErr_NoMemory();
28451 D(p->level--);
28452 return NULL;
28453 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010028454 Py_ssize_t _children_capacity = 1;
28455 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080028456 { // ',' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028457 if (p->error_indicator) {
28458 D(p->level--);
28459 return NULL;
28460 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028461 D(fprintf(stderr, "%*c> _loop0_135[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_target"));
28462 Token * _literal;
28463 expr_ty elem;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028464 while (
Brandt Bucher145bf262021-02-26 14:51:55 -080028465 (_literal = _PyPegen_expect_token(p, 12)) // token=','
28466 &&
28467 (elem = star_target_rule(p)) // star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028468 )
28469 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028470 _res = elem;
28471 if (_res == NULL && PyErr_Occurred()) {
28472 p->error_indicator = 1;
28473 PyMem_Free(_children);
28474 D(p->level--);
28475 return NULL;
28476 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028477 if (_n == _children_capacity) {
28478 _children_capacity *= 2;
28479 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28480 if (!_new_children) {
28481 p->error_indicator = 1;
28482 PyErr_NoMemory();
28483 D(p->level--);
28484 return NULL;
28485 }
28486 _children = _new_children;
28487 }
28488 _children[_n++] = _res;
28489 _mark = p->mark;
28490 }
28491 p->mark = _mark;
Pablo Galindo835f14f2021-01-31 22:52:56 +000028492 D(fprintf(stderr, "%*c%s _loop0_135[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080028493 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028494 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010028495 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028496 if (!_seq) {
28497 PyMem_Free(_children);
28498 p->error_indicator = 1;
28499 PyErr_NoMemory();
28500 D(p->level--);
28501 return NULL;
28502 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010028503 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028504 PyMem_Free(_children);
Pablo Galindo835f14f2021-01-31 22:52:56 +000028505 _PyPegen_insert_memo(p, _start_mark, _loop0_135_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028506 D(p->level--);
28507 return _seq;
28508}
28509
Brandt Bucher145bf262021-02-26 14:51:55 -080028510// _gather_134: star_target _loop0_135
28511static asdl_seq *
28512_gather_134_rule(Parser *p)
28513{
28514 D(p->level++);
28515 if (p->error_indicator) {
28516 D(p->level--);
28517 return NULL;
28518 }
28519 asdl_seq * _res = NULL;
28520 int _mark = p->mark;
28521 { // star_target _loop0_135
28522 if (p->error_indicator) {
28523 D(p->level--);
28524 return NULL;
28525 }
28526 D(fprintf(stderr, "%*c> _gather_134[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target _loop0_135"));
28527 expr_ty elem;
28528 asdl_seq * seq;
28529 if (
28530 (elem = star_target_rule(p)) // star_target
28531 &&
28532 (seq = _loop0_135_rule(p)) // _loop0_135
28533 )
28534 {
28535 D(fprintf(stderr, "%*c+ _gather_134[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target _loop0_135"));
28536 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
28537 goto done;
28538 }
28539 p->mark = _mark;
28540 D(fprintf(stderr, "%*c%s _gather_134[%d-%d]: %s failed!\n", p->level, ' ',
28541 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target _loop0_135"));
28542 }
28543 _res = NULL;
28544 done:
28545 D(p->level--);
28546 return _res;
28547}
28548
28549// _loop1_136: (',' star_target)
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020028550static asdl_seq *
Pablo Galindo835f14f2021-01-31 22:52:56 +000028551_loop1_136_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028552{
28553 D(p->level++);
28554 if (p->error_indicator) {
28555 D(p->level--);
28556 return NULL;
28557 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020028558 void *_res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028559 int _mark = p->mark;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020028560 int _start_mark = p->mark;
28561 void **_children = PyMem_Malloc(sizeof(void *));
28562 if (!_children) {
28563 p->error_indicator = 1;
28564 PyErr_NoMemory();
28565 D(p->level--);
28566 return NULL;
28567 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010028568 Py_ssize_t _children_capacity = 1;
28569 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080028570 { // (',' star_target)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028571 if (p->error_indicator) {
28572 D(p->level--);
28573 return NULL;
28574 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028575 D(fprintf(stderr, "%*c> _loop1_136[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' star_target)"));
Pablo Galindo56c95df2021-04-21 15:28:21 +010028576 void *_tmp_188_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020028577 while (
Pablo Galindo56c95df2021-04-21 15:28:21 +010028578 (_tmp_188_var = _tmp_188_rule(p)) // ',' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028579 )
28580 {
Pablo Galindo56c95df2021-04-21 15:28:21 +010028581 _res = _tmp_188_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020028582 if (_n == _children_capacity) {
28583 _children_capacity *= 2;
28584 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28585 if (!_new_children) {
28586 p->error_indicator = 1;
28587 PyErr_NoMemory();
28588 D(p->level--);
28589 return NULL;
28590 }
28591 _children = _new_children;
28592 }
28593 _children[_n++] = _res;
28594 _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028595 }
28596 p->mark = _mark;
Pablo Galindo835f14f2021-01-31 22:52:56 +000028597 D(fprintf(stderr, "%*c%s _loop1_136[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080028598 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' star_target)"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028599 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020028600 if (_n == 0 || p->error_indicator) {
28601 PyMem_Free(_children);
28602 D(p->level--);
28603 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028604 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020028605 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
28606 if (!_seq) {
28607 PyMem_Free(_children);
28608 p->error_indicator = 1;
28609 PyErr_NoMemory();
28610 D(p->level--);
28611 return NULL;
28612 }
28613 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
28614 PyMem_Free(_children);
Pablo Galindo835f14f2021-01-31 22:52:56 +000028615 _PyPegen_insert_memo(p, _start_mark, _loop1_136_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028616 D(p->level--);
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020028617 return _seq;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028618}
28619
Brandt Bucher145bf262021-02-26 14:51:55 -080028620// _tmp_137: !'*' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028621static void *
Pablo Galindo835f14f2021-01-31 22:52:56 +000028622_tmp_137_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028623{
28624 D(p->level++);
28625 if (p->error_indicator) {
28626 D(p->level--);
28627 return NULL;
28628 }
28629 void * _res = NULL;
28630 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028631 { // !'*' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028632 if (p->error_indicator) {
28633 D(p->level--);
28634 return NULL;
28635 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028636 D(fprintf(stderr, "%*c> _tmp_137[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "!'*' star_target"));
28637 expr_ty star_target_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028638 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080028639 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 16) // token='*'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028640 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080028641 (star_target_var = star_target_rule(p)) // star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028642 )
28643 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028644 D(fprintf(stderr, "%*c+ _tmp_137[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "!'*' star_target"));
28645 _res = star_target_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028646 goto done;
28647 }
28648 p->mark = _mark;
Pablo Galindo835f14f2021-01-31 22:52:56 +000028649 D(fprintf(stderr, "%*c%s _tmp_137[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080028650 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "!'*' star_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028651 }
28652 _res = NULL;
28653 done:
28654 D(p->level--);
28655 return _res;
28656}
28657
Brandt Bucher145bf262021-02-26 14:51:55 -080028658// _loop0_139: ',' del_target
28659static asdl_seq *
28660_loop0_139_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028661{
28662 D(p->level++);
28663 if (p->error_indicator) {
28664 D(p->level--);
28665 return NULL;
28666 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028667 void *_res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028668 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028669 int _start_mark = p->mark;
28670 void **_children = PyMem_Malloc(sizeof(void *));
28671 if (!_children) {
28672 p->error_indicator = 1;
28673 PyErr_NoMemory();
28674 D(p->level--);
28675 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028676 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010028677 Py_ssize_t _children_capacity = 1;
28678 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080028679 { // ',' del_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028680 if (p->error_indicator) {
28681 D(p->level--);
28682 return NULL;
28683 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028684 D(fprintf(stderr, "%*c> _loop0_139[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' del_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028685 Token * _literal;
Brandt Bucher145bf262021-02-26 14:51:55 -080028686 expr_ty elem;
28687 while (
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028688 (_literal = _PyPegen_expect_token(p, 12)) // token=','
28689 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080028690 (elem = del_target_rule(p)) // del_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028691 )
28692 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028693 _res = elem;
28694 if (_res == NULL && PyErr_Occurred()) {
28695 p->error_indicator = 1;
28696 PyMem_Free(_children);
28697 D(p->level--);
28698 return NULL;
28699 }
28700 if (_n == _children_capacity) {
28701 _children_capacity *= 2;
28702 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28703 if (!_new_children) {
28704 p->error_indicator = 1;
28705 PyErr_NoMemory();
28706 D(p->level--);
28707 return NULL;
28708 }
28709 _children = _new_children;
28710 }
28711 _children[_n++] = _res;
28712 _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028713 }
28714 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028715 D(fprintf(stderr, "%*c%s _loop0_139[%d-%d]: %s failed!\n", p->level, ' ',
28716 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' del_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028717 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028718 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
28719 if (!_seq) {
28720 PyMem_Free(_children);
28721 p->error_indicator = 1;
28722 PyErr_NoMemory();
28723 D(p->level--);
28724 return NULL;
28725 }
28726 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
28727 PyMem_Free(_children);
28728 _PyPegen_insert_memo(p, _start_mark, _loop0_139_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028729 D(p->level--);
Brandt Bucher145bf262021-02-26 14:51:55 -080028730 return _seq;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028731}
28732
Brandt Bucher145bf262021-02-26 14:51:55 -080028733// _gather_138: del_target _loop0_139
28734static asdl_seq *
28735_gather_138_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028736{
28737 D(p->level++);
28738 if (p->error_indicator) {
28739 D(p->level--);
28740 return NULL;
28741 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028742 asdl_seq * _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028743 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028744 { // del_target _loop0_139
Pablo Galindo58fb1562021-02-02 19:54:22 +000028745 if (p->error_indicator) {
28746 D(p->level--);
28747 return NULL;
28748 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028749 D(fprintf(stderr, "%*c> _gather_138[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "del_target _loop0_139"));
28750 expr_ty elem;
28751 asdl_seq * seq;
Pablo Galindo58fb1562021-02-02 19:54:22 +000028752 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080028753 (elem = del_target_rule(p)) // del_target
28754 &&
28755 (seq = _loop0_139_rule(p)) // _loop0_139
Pablo Galindo58fb1562021-02-02 19:54:22 +000028756 )
28757 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028758 D(fprintf(stderr, "%*c+ _gather_138[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "del_target _loop0_139"));
28759 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindo58fb1562021-02-02 19:54:22 +000028760 goto done;
28761 }
28762 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028763 D(fprintf(stderr, "%*c%s _gather_138[%d-%d]: %s failed!\n", p->level, ' ',
28764 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "del_target _loop0_139"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000028765 }
28766 _res = NULL;
28767 done:
28768 D(p->level--);
28769 return _res;
28770}
28771
Brandt Bucher145bf262021-02-26 14:51:55 -080028772// _loop0_141: ',' target
Pablo Galindo58fb1562021-02-02 19:54:22 +000028773static asdl_seq *
28774_loop0_141_rule(Parser *p)
28775{
28776 D(p->level++);
28777 if (p->error_indicator) {
28778 D(p->level--);
28779 return NULL;
28780 }
28781 void *_res = NULL;
28782 int _mark = p->mark;
28783 int _start_mark = p->mark;
28784 void **_children = PyMem_Malloc(sizeof(void *));
28785 if (!_children) {
28786 p->error_indicator = 1;
28787 PyErr_NoMemory();
28788 D(p->level--);
28789 return NULL;
28790 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010028791 Py_ssize_t _children_capacity = 1;
28792 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080028793 { // ',' target
Pablo Galindo58fb1562021-02-02 19:54:22 +000028794 if (p->error_indicator) {
28795 D(p->level--);
28796 return NULL;
28797 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028798 D(fprintf(stderr, "%*c> _loop0_141[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' target"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000028799 Token * _literal;
Brandt Bucher145bf262021-02-26 14:51:55 -080028800 expr_ty elem;
Pablo Galindo58fb1562021-02-02 19:54:22 +000028801 while (
28802 (_literal = _PyPegen_expect_token(p, 12)) // token=','
28803 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080028804 (elem = target_rule(p)) // target
Pablo Galindo58fb1562021-02-02 19:54:22 +000028805 )
28806 {
28807 _res = elem;
28808 if (_res == NULL && PyErr_Occurred()) {
28809 p->error_indicator = 1;
28810 PyMem_Free(_children);
28811 D(p->level--);
28812 return NULL;
28813 }
28814 if (_n == _children_capacity) {
28815 _children_capacity *= 2;
28816 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28817 if (!_new_children) {
28818 p->error_indicator = 1;
28819 PyErr_NoMemory();
28820 D(p->level--);
28821 return NULL;
28822 }
28823 _children = _new_children;
28824 }
28825 _children[_n++] = _res;
28826 _mark = p->mark;
28827 }
28828 p->mark = _mark;
28829 D(fprintf(stderr, "%*c%s _loop0_141[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080028830 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' target"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000028831 }
28832 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
28833 if (!_seq) {
28834 PyMem_Free(_children);
28835 p->error_indicator = 1;
28836 PyErr_NoMemory();
28837 D(p->level--);
28838 return NULL;
28839 }
28840 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
28841 PyMem_Free(_children);
28842 _PyPegen_insert_memo(p, _start_mark, _loop0_141_type, _seq);
28843 D(p->level--);
28844 return _seq;
28845}
28846
Brandt Bucher145bf262021-02-26 14:51:55 -080028847// _gather_140: target _loop0_141
Pablo Galindo58fb1562021-02-02 19:54:22 +000028848static asdl_seq *
28849_gather_140_rule(Parser *p)
28850{
28851 D(p->level++);
28852 if (p->error_indicator) {
28853 D(p->level--);
28854 return NULL;
28855 }
28856 asdl_seq * _res = NULL;
28857 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028858 { // target _loop0_141
Pablo Galindo58fb1562021-02-02 19:54:22 +000028859 if (p->error_indicator) {
28860 D(p->level--);
28861 return NULL;
28862 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028863 D(fprintf(stderr, "%*c> _gather_140[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "target _loop0_141"));
28864 expr_ty elem;
Pablo Galindo58fb1562021-02-02 19:54:22 +000028865 asdl_seq * seq;
28866 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080028867 (elem = target_rule(p)) // target
Pablo Galindo58fb1562021-02-02 19:54:22 +000028868 &&
28869 (seq = _loop0_141_rule(p)) // _loop0_141
28870 )
28871 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028872 D(fprintf(stderr, "%*c+ _gather_140[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "target _loop0_141"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000028873 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
28874 goto done;
28875 }
28876 p->mark = _mark;
28877 D(fprintf(stderr, "%*c%s _gather_140[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080028878 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "target _loop0_141"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000028879 }
28880 _res = NULL;
28881 done:
28882 D(p->level--);
28883 return _res;
28884}
28885
Brandt Bucher145bf262021-02-26 14:51:55 -080028886// _tmp_142: args | expression for_if_clauses
28887static void *
28888_tmp_142_rule(Parser *p)
28889{
28890 D(p->level++);
28891 if (p->error_indicator) {
28892 D(p->level--);
28893 return NULL;
28894 }
28895 void * _res = NULL;
28896 int _mark = p->mark;
28897 { // args
28898 if (p->error_indicator) {
28899 D(p->level--);
28900 return NULL;
28901 }
28902 D(fprintf(stderr, "%*c> _tmp_142[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args"));
28903 expr_ty args_var;
28904 if (
28905 (args_var = args_rule(p)) // args
28906 )
28907 {
28908 D(fprintf(stderr, "%*c+ _tmp_142[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args"));
28909 _res = args_var;
28910 goto done;
28911 }
28912 p->mark = _mark;
28913 D(fprintf(stderr, "%*c%s _tmp_142[%d-%d]: %s failed!\n", p->level, ' ',
28914 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args"));
28915 }
28916 { // expression for_if_clauses
28917 if (p->error_indicator) {
28918 D(p->level--);
28919 return NULL;
28920 }
28921 D(fprintf(stderr, "%*c> _tmp_142[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression for_if_clauses"));
28922 expr_ty expression_var;
28923 asdl_comprehension_seq* for_if_clauses_var;
28924 if (
28925 (expression_var = expression_rule(p)) // expression
28926 &&
28927 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
28928 )
28929 {
28930 D(fprintf(stderr, "%*c+ _tmp_142[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression for_if_clauses"));
28931 _res = _PyPegen_dummy_name(p, expression_var, for_if_clauses_var);
28932 goto done;
28933 }
28934 p->mark = _mark;
28935 D(fprintf(stderr, "%*c%s _tmp_142[%d-%d]: %s failed!\n", p->level, ' ',
28936 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression for_if_clauses"));
28937 }
28938 _res = NULL;
28939 done:
28940 D(p->level--);
28941 return _res;
28942}
28943
Pablo Galindob2802482021-04-15 21:38:45 +010028944// _tmp_143: NAME STRING | SOFT_KEYWORD
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028945static void *
28946_tmp_143_rule(Parser *p)
28947{
28948 D(p->level++);
28949 if (p->error_indicator) {
28950 D(p->level--);
28951 return NULL;
28952 }
28953 void * _res = NULL;
28954 int _mark = p->mark;
Pablo Galindob2802482021-04-15 21:38:45 +010028955 { // NAME STRING
28956 if (p->error_indicator) {
28957 D(p->level--);
28958 return NULL;
28959 }
28960 D(fprintf(stderr, "%*c> _tmp_143[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME STRING"));
28961 expr_ty name_var;
28962 expr_ty string_var;
28963 if (
28964 (name_var = _PyPegen_name_token(p)) // NAME
28965 &&
28966 (string_var = _PyPegen_string_token(p)) // STRING
28967 )
28968 {
28969 D(fprintf(stderr, "%*c+ _tmp_143[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME STRING"));
28970 _res = _PyPegen_dummy_name(p, name_var, string_var);
28971 goto done;
28972 }
28973 p->mark = _mark;
28974 D(fprintf(stderr, "%*c%s _tmp_143[%d-%d]: %s failed!\n", p->level, ' ',
28975 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME STRING"));
28976 }
28977 { // SOFT_KEYWORD
28978 if (p->error_indicator) {
28979 D(p->level--);
28980 return NULL;
28981 }
28982 D(fprintf(stderr, "%*c> _tmp_143[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "SOFT_KEYWORD"));
28983 expr_ty soft_keyword_var;
28984 if (
28985 (soft_keyword_var = _PyPegen_soft_keyword_token(p)) // SOFT_KEYWORD
28986 )
28987 {
28988 D(fprintf(stderr, "%*c+ _tmp_143[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "SOFT_KEYWORD"));
28989 _res = soft_keyword_var;
28990 goto done;
28991 }
28992 p->mark = _mark;
28993 D(fprintf(stderr, "%*c%s _tmp_143[%d-%d]: %s failed!\n", p->level, ' ',
28994 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "SOFT_KEYWORD"));
28995 }
28996 _res = NULL;
28997 done:
28998 D(p->level--);
28999 return _res;
29000}
29001
29002// _tmp_144: '=' | ':=' | ','
29003static void *
29004_tmp_144_rule(Parser *p)
29005{
29006 D(p->level++);
29007 if (p->error_indicator) {
29008 D(p->level--);
29009 return NULL;
29010 }
29011 void * _res = NULL;
29012 int _mark = p->mark;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029013 { // '='
29014 if (p->error_indicator) {
29015 D(p->level--);
29016 return NULL;
29017 }
Pablo Galindob2802482021-04-15 21:38:45 +010029018 D(fprintf(stderr, "%*c> _tmp_144[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'='"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029019 Token * _literal;
29020 if (
29021 (_literal = _PyPegen_expect_token(p, 22)) // token='='
29022 )
29023 {
Pablo Galindob2802482021-04-15 21:38:45 +010029024 D(fprintf(stderr, "%*c+ _tmp_144[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'='"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029025 _res = _literal;
29026 goto done;
29027 }
29028 p->mark = _mark;
Pablo Galindob2802482021-04-15 21:38:45 +010029029 D(fprintf(stderr, "%*c%s _tmp_144[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029030 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'='"));
29031 }
29032 { // ':='
29033 if (p->error_indicator) {
29034 D(p->level--);
29035 return NULL;
29036 }
Pablo Galindob2802482021-04-15 21:38:45 +010029037 D(fprintf(stderr, "%*c> _tmp_144[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':='"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029038 Token * _literal;
29039 if (
29040 (_literal = _PyPegen_expect_token(p, 53)) // token=':='
29041 )
29042 {
Pablo Galindob2802482021-04-15 21:38:45 +010029043 D(fprintf(stderr, "%*c+ _tmp_144[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':='"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029044 _res = _literal;
29045 goto done;
29046 }
29047 p->mark = _mark;
Pablo Galindob2802482021-04-15 21:38:45 +010029048 D(fprintf(stderr, "%*c%s _tmp_144[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029049 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':='"));
29050 }
29051 { // ','
29052 if (p->error_indicator) {
29053 D(p->level--);
29054 return NULL;
29055 }
Pablo Galindob2802482021-04-15 21:38:45 +010029056 D(fprintf(stderr, "%*c> _tmp_144[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029057 Token * _literal;
29058 if (
29059 (_literal = _PyPegen_expect_token(p, 12)) // token=','
29060 )
29061 {
Pablo Galindob2802482021-04-15 21:38:45 +010029062 D(fprintf(stderr, "%*c+ _tmp_144[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029063 _res = _literal;
29064 goto done;
29065 }
29066 p->mark = _mark;
Pablo Galindob2802482021-04-15 21:38:45 +010029067 D(fprintf(stderr, "%*c%s _tmp_144[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029068 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','"));
29069 }
29070 _res = NULL;
29071 done:
29072 D(p->level--);
29073 return _res;
29074}
29075
Pablo Galindob2802482021-04-15 21:38:45 +010029076// _tmp_145: list | tuple | genexp | 'True' | 'None' | 'False'
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029077static void *
Pablo Galindob2802482021-04-15 21:38:45 +010029078_tmp_145_rule(Parser *p)
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029079{
29080 D(p->level++);
29081 if (p->error_indicator) {
29082 D(p->level--);
29083 return NULL;
29084 }
29085 void * _res = NULL;
29086 int _mark = p->mark;
29087 { // list
29088 if (p->error_indicator) {
29089 D(p->level--);
29090 return NULL;
29091 }
Pablo Galindob2802482021-04-15 21:38:45 +010029092 D(fprintf(stderr, "%*c> _tmp_145[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "list"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029093 expr_ty list_var;
29094 if (
29095 (list_var = list_rule(p)) // list
29096 )
29097 {
Pablo Galindob2802482021-04-15 21:38:45 +010029098 D(fprintf(stderr, "%*c+ _tmp_145[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "list"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029099 _res = list_var;
29100 goto done;
29101 }
29102 p->mark = _mark;
Pablo Galindob2802482021-04-15 21:38:45 +010029103 D(fprintf(stderr, "%*c%s _tmp_145[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029104 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "list"));
29105 }
29106 { // tuple
29107 if (p->error_indicator) {
29108 D(p->level--);
29109 return NULL;
29110 }
Pablo Galindob2802482021-04-15 21:38:45 +010029111 D(fprintf(stderr, "%*c> _tmp_145[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "tuple"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029112 expr_ty tuple_var;
29113 if (
29114 (tuple_var = tuple_rule(p)) // tuple
29115 )
29116 {
Pablo Galindob2802482021-04-15 21:38:45 +010029117 D(fprintf(stderr, "%*c+ _tmp_145[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "tuple"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029118 _res = tuple_var;
29119 goto done;
29120 }
29121 p->mark = _mark;
Pablo Galindob2802482021-04-15 21:38:45 +010029122 D(fprintf(stderr, "%*c%s _tmp_145[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029123 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "tuple"));
29124 }
29125 { // genexp
29126 if (p->error_indicator) {
29127 D(p->level--);
29128 return NULL;
29129 }
Pablo Galindob2802482021-04-15 21:38:45 +010029130 D(fprintf(stderr, "%*c> _tmp_145[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "genexp"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029131 expr_ty genexp_var;
29132 if (
29133 (genexp_var = genexp_rule(p)) // genexp
29134 )
29135 {
Pablo Galindob2802482021-04-15 21:38:45 +010029136 D(fprintf(stderr, "%*c+ _tmp_145[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "genexp"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029137 _res = genexp_var;
29138 goto done;
29139 }
29140 p->mark = _mark;
Pablo Galindob2802482021-04-15 21:38:45 +010029141 D(fprintf(stderr, "%*c%s _tmp_145[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029142 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "genexp"));
29143 }
29144 { // 'True'
29145 if (p->error_indicator) {
29146 D(p->level--);
29147 return NULL;
29148 }
Pablo Galindob2802482021-04-15 21:38:45 +010029149 D(fprintf(stderr, "%*c> _tmp_145[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'True'"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029150 Token * _keyword;
29151 if (
29152 (_keyword = _PyPegen_expect_token(p, 524)) // token='True'
29153 )
29154 {
Pablo Galindob2802482021-04-15 21:38:45 +010029155 D(fprintf(stderr, "%*c+ _tmp_145[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029156 _res = _keyword;
29157 goto done;
29158 }
29159 p->mark = _mark;
Pablo Galindob2802482021-04-15 21:38:45 +010029160 D(fprintf(stderr, "%*c%s _tmp_145[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029161 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'True'"));
29162 }
29163 { // 'None'
29164 if (p->error_indicator) {
29165 D(p->level--);
29166 return NULL;
29167 }
Pablo Galindob2802482021-04-15 21:38:45 +010029168 D(fprintf(stderr, "%*c> _tmp_145[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'None'"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029169 Token * _keyword;
29170 if (
29171 (_keyword = _PyPegen_expect_token(p, 523)) // token='None'
29172 )
29173 {
Pablo Galindob2802482021-04-15 21:38:45 +010029174 D(fprintf(stderr, "%*c+ _tmp_145[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029175 _res = _keyword;
29176 goto done;
29177 }
29178 p->mark = _mark;
Pablo Galindob2802482021-04-15 21:38:45 +010029179 D(fprintf(stderr, "%*c%s _tmp_145[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029180 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'None'"));
29181 }
29182 { // 'False'
29183 if (p->error_indicator) {
29184 D(p->level--);
29185 return NULL;
29186 }
Pablo Galindob2802482021-04-15 21:38:45 +010029187 D(fprintf(stderr, "%*c> _tmp_145[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False'"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029188 Token * _keyword;
29189 if (
29190 (_keyword = _PyPegen_expect_token(p, 525)) // token='False'
29191 )
29192 {
Pablo Galindob2802482021-04-15 21:38:45 +010029193 D(fprintf(stderr, "%*c+ _tmp_145[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029194 _res = _keyword;
29195 goto done;
29196 }
29197 p->mark = _mark;
Pablo Galindob2802482021-04-15 21:38:45 +010029198 D(fprintf(stderr, "%*c%s _tmp_145[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029199 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'False'"));
29200 }
29201 _res = NULL;
29202 done:
29203 D(p->level--);
29204 return _res;
29205}
29206
Pablo Galindob2802482021-04-15 21:38:45 +010029207// _tmp_146: '=' | ':=' | ','
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029208static void *
Pablo Galindob2802482021-04-15 21:38:45 +010029209_tmp_146_rule(Parser *p)
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029210{
29211 D(p->level++);
29212 if (p->error_indicator) {
29213 D(p->level--);
29214 return NULL;
29215 }
29216 void * _res = NULL;
29217 int _mark = p->mark;
29218 { // '='
29219 if (p->error_indicator) {
29220 D(p->level--);
29221 return NULL;
29222 }
Pablo Galindob2802482021-04-15 21:38:45 +010029223 D(fprintf(stderr, "%*c> _tmp_146[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'='"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029224 Token * _literal;
29225 if (
29226 (_literal = _PyPegen_expect_token(p, 22)) // token='='
29227 )
29228 {
Pablo Galindob2802482021-04-15 21:38:45 +010029229 D(fprintf(stderr, "%*c+ _tmp_146[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'='"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029230 _res = _literal;
29231 goto done;
29232 }
29233 p->mark = _mark;
Pablo Galindob2802482021-04-15 21:38:45 +010029234 D(fprintf(stderr, "%*c%s _tmp_146[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029235 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'='"));
29236 }
29237 { // ':='
29238 if (p->error_indicator) {
29239 D(p->level--);
29240 return NULL;
29241 }
Pablo Galindob2802482021-04-15 21:38:45 +010029242 D(fprintf(stderr, "%*c> _tmp_146[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':='"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029243 Token * _literal;
29244 if (
29245 (_literal = _PyPegen_expect_token(p, 53)) // token=':='
29246 )
29247 {
Pablo Galindob2802482021-04-15 21:38:45 +010029248 D(fprintf(stderr, "%*c+ _tmp_146[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':='"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029249 _res = _literal;
29250 goto done;
29251 }
29252 p->mark = _mark;
Pablo Galindob2802482021-04-15 21:38:45 +010029253 D(fprintf(stderr, "%*c%s _tmp_146[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029254 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':='"));
29255 }
29256 { // ','
29257 if (p->error_indicator) {
29258 D(p->level--);
29259 return NULL;
29260 }
Pablo Galindob2802482021-04-15 21:38:45 +010029261 D(fprintf(stderr, "%*c> _tmp_146[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029262 Token * _literal;
29263 if (
29264 (_literal = _PyPegen_expect_token(p, 12)) // token=','
29265 )
29266 {
Pablo Galindob2802482021-04-15 21:38:45 +010029267 D(fprintf(stderr, "%*c+ _tmp_146[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029268 _res = _literal;
29269 goto done;
29270 }
29271 p->mark = _mark;
Pablo Galindob2802482021-04-15 21:38:45 +010029272 D(fprintf(stderr, "%*c%s _tmp_146[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029273 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','"));
29274 }
29275 _res = NULL;
29276 done:
29277 D(p->level--);
29278 return _res;
29279}
29280
Pablo Galindob2802482021-04-15 21:38:45 +010029281// _loop0_147: star_named_expressions
Pablo Galindo58fb1562021-02-02 19:54:22 +000029282static asdl_seq *
Pablo Galindob2802482021-04-15 21:38:45 +010029283_loop0_147_rule(Parser *p)
Pablo Galindo58fb1562021-02-02 19:54:22 +000029284{
29285 D(p->level++);
29286 if (p->error_indicator) {
29287 D(p->level--);
29288 return NULL;
29289 }
29290 void *_res = NULL;
29291 int _mark = p->mark;
29292 int _start_mark = p->mark;
29293 void **_children = PyMem_Malloc(sizeof(void *));
29294 if (!_children) {
29295 p->error_indicator = 1;
29296 PyErr_NoMemory();
29297 D(p->level--);
29298 return NULL;
29299 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010029300 Py_ssize_t _children_capacity = 1;
29301 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080029302 { // star_named_expressions
Pablo Galindo58fb1562021-02-02 19:54:22 +000029303 if (p->error_indicator) {
29304 D(p->level--);
29305 return NULL;
29306 }
Pablo Galindob2802482021-04-15 21:38:45 +010029307 D(fprintf(stderr, "%*c> _loop0_147[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_named_expressions"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029308 asdl_expr_seq* star_named_expressions_var;
29309 while (
29310 (star_named_expressions_var = star_named_expressions_rule(p)) // star_named_expressions
29311 )
29312 {
29313 _res = star_named_expressions_var;
29314 if (_n == _children_capacity) {
29315 _children_capacity *= 2;
29316 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
29317 if (!_new_children) {
29318 p->error_indicator = 1;
29319 PyErr_NoMemory();
29320 D(p->level--);
29321 return NULL;
29322 }
29323 _children = _new_children;
29324 }
29325 _children[_n++] = _res;
29326 _mark = p->mark;
29327 }
29328 p->mark = _mark;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029329 D(fprintf(stderr, "%*c%s _loop0_147[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob2802482021-04-15 21:38:45 +010029330 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expressions"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029331 }
29332 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
29333 if (!_seq) {
29334 PyMem_Free(_children);
29335 p->error_indicator = 1;
29336 PyErr_NoMemory();
29337 D(p->level--);
29338 return NULL;
29339 }
29340 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
29341 PyMem_Free(_children);
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029342 _PyPegen_insert_memo(p, _start_mark, _loop0_147_type, _seq);
Brandt Bucher145bf262021-02-26 14:51:55 -080029343 D(p->level--);
29344 return _seq;
29345}
29346
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029347// _loop0_148: (star_targets '=')
Brandt Bucher145bf262021-02-26 14:51:55 -080029348static asdl_seq *
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029349_loop0_148_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080029350{
29351 D(p->level++);
29352 if (p->error_indicator) {
29353 D(p->level--);
29354 return NULL;
29355 }
29356 void *_res = NULL;
29357 int _mark = p->mark;
29358 int _start_mark = p->mark;
29359 void **_children = PyMem_Malloc(sizeof(void *));
29360 if (!_children) {
29361 p->error_indicator = 1;
29362 PyErr_NoMemory();
29363 D(p->level--);
29364 return NULL;
29365 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010029366 Py_ssize_t _children_capacity = 1;
29367 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080029368 { // (star_targets '=')
29369 if (p->error_indicator) {
29370 D(p->level--);
29371 return NULL;
29372 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029373 D(fprintf(stderr, "%*c> _loop0_148[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')"));
Pablo Galindo56c95df2021-04-21 15:28:21 +010029374 void *_tmp_189_var;
Brandt Bucher145bf262021-02-26 14:51:55 -080029375 while (
Pablo Galindo56c95df2021-04-21 15:28:21 +010029376 (_tmp_189_var = _tmp_189_rule(p)) // star_targets '='
Brandt Bucher145bf262021-02-26 14:51:55 -080029377 )
29378 {
Pablo Galindo56c95df2021-04-21 15:28:21 +010029379 _res = _tmp_189_var;
Brandt Bucher145bf262021-02-26 14:51:55 -080029380 if (_n == _children_capacity) {
29381 _children_capacity *= 2;
29382 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
29383 if (!_new_children) {
29384 p->error_indicator = 1;
29385 PyErr_NoMemory();
29386 D(p->level--);
29387 return NULL;
29388 }
29389 _children = _new_children;
29390 }
29391 _children[_n++] = _res;
29392 _mark = p->mark;
29393 }
29394 p->mark = _mark;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029395 D(fprintf(stderr, "%*c%s _loop0_148[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080029396 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(star_targets '=')"));
29397 }
29398 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
29399 if (!_seq) {
29400 PyMem_Free(_children);
29401 p->error_indicator = 1;
29402 PyErr_NoMemory();
29403 D(p->level--);
29404 return NULL;
29405 }
29406 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
29407 PyMem_Free(_children);
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029408 _PyPegen_insert_memo(p, _start_mark, _loop0_148_type, _seq);
Brandt Bucher145bf262021-02-26 14:51:55 -080029409 D(p->level--);
29410 return _seq;
29411}
29412
Pablo Galindob2802482021-04-15 21:38:45 +010029413// _loop0_149: (star_targets '=')
29414static asdl_seq *
29415_loop0_149_rule(Parser *p)
29416{
29417 D(p->level++);
29418 if (p->error_indicator) {
29419 D(p->level--);
29420 return NULL;
29421 }
29422 void *_res = NULL;
29423 int _mark = p->mark;
29424 int _start_mark = p->mark;
29425 void **_children = PyMem_Malloc(sizeof(void *));
29426 if (!_children) {
29427 p->error_indicator = 1;
29428 PyErr_NoMemory();
29429 D(p->level--);
29430 return NULL;
29431 }
29432 Py_ssize_t _children_capacity = 1;
29433 Py_ssize_t _n = 0;
29434 { // (star_targets '=')
29435 if (p->error_indicator) {
29436 D(p->level--);
29437 return NULL;
29438 }
29439 D(fprintf(stderr, "%*c> _loop0_149[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')"));
Pablo Galindo56c95df2021-04-21 15:28:21 +010029440 void *_tmp_190_var;
Pablo Galindob2802482021-04-15 21:38:45 +010029441 while (
Pablo Galindo56c95df2021-04-21 15:28:21 +010029442 (_tmp_190_var = _tmp_190_rule(p)) // star_targets '='
Pablo Galindob2802482021-04-15 21:38:45 +010029443 )
29444 {
Pablo Galindo56c95df2021-04-21 15:28:21 +010029445 _res = _tmp_190_var;
Pablo Galindob2802482021-04-15 21:38:45 +010029446 if (_n == _children_capacity) {
29447 _children_capacity *= 2;
29448 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
29449 if (!_new_children) {
29450 p->error_indicator = 1;
29451 PyErr_NoMemory();
29452 D(p->level--);
29453 return NULL;
29454 }
29455 _children = _new_children;
29456 }
29457 _children[_n++] = _res;
29458 _mark = p->mark;
29459 }
29460 p->mark = _mark;
29461 D(fprintf(stderr, "%*c%s _loop0_149[%d-%d]: %s failed!\n", p->level, ' ',
29462 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(star_targets '=')"));
29463 }
29464 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
29465 if (!_seq) {
29466 PyMem_Free(_children);
29467 p->error_indicator = 1;
29468 PyErr_NoMemory();
29469 D(p->level--);
29470 return NULL;
29471 }
29472 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
29473 PyMem_Free(_children);
29474 _PyPegen_insert_memo(p, _start_mark, _loop0_149_type, _seq);
29475 D(p->level--);
29476 return _seq;
29477}
29478
29479// _tmp_150: yield_expr | star_expressions
Brandt Bucher145bf262021-02-26 14:51:55 -080029480static void *
Pablo Galindob2802482021-04-15 21:38:45 +010029481_tmp_150_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080029482{
29483 D(p->level++);
29484 if (p->error_indicator) {
29485 D(p->level--);
29486 return NULL;
29487 }
29488 void * _res = NULL;
29489 int _mark = p->mark;
29490 { // yield_expr
29491 if (p->error_indicator) {
29492 D(p->level--);
29493 return NULL;
29494 }
Pablo Galindob2802482021-04-15 21:38:45 +010029495 D(fprintf(stderr, "%*c> _tmp_150[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029496 expr_ty yield_expr_var;
29497 if (
29498 (yield_expr_var = yield_expr_rule(p)) // yield_expr
29499 )
29500 {
Pablo Galindob2802482021-04-15 21:38:45 +010029501 D(fprintf(stderr, "%*c+ _tmp_150[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029502 _res = yield_expr_var;
29503 goto done;
29504 }
29505 p->mark = _mark;
Pablo Galindob2802482021-04-15 21:38:45 +010029506 D(fprintf(stderr, "%*c%s _tmp_150[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080029507 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
29508 }
29509 { // star_expressions
29510 if (p->error_indicator) {
29511 D(p->level--);
29512 return NULL;
29513 }
Pablo Galindob2802482021-04-15 21:38:45 +010029514 D(fprintf(stderr, "%*c> _tmp_150[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029515 expr_ty star_expressions_var;
29516 if (
29517 (star_expressions_var = star_expressions_rule(p)) // star_expressions
29518 )
29519 {
Pablo Galindob2802482021-04-15 21:38:45 +010029520 D(fprintf(stderr, "%*c+ _tmp_150[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029521 _res = star_expressions_var;
29522 goto done;
29523 }
29524 p->mark = _mark;
Pablo Galindob2802482021-04-15 21:38:45 +010029525 D(fprintf(stderr, "%*c%s _tmp_150[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080029526 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
29527 }
29528 _res = NULL;
29529 done:
29530 D(p->level--);
29531 return _res;
29532}
29533
Pablo Galindob2802482021-04-15 21:38:45 +010029534// _tmp_151: '[' | '(' | '{'
Brandt Bucher145bf262021-02-26 14:51:55 -080029535static void *
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029536_tmp_151_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080029537{
29538 D(p->level++);
29539 if (p->error_indicator) {
29540 D(p->level--);
29541 return NULL;
29542 }
29543 void * _res = NULL;
29544 int _mark = p->mark;
29545 { // '['
29546 if (p->error_indicator) {
29547 D(p->level--);
29548 return NULL;
29549 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029550 D(fprintf(stderr, "%*c> _tmp_151[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029551 Token * _literal;
29552 if (
29553 (_literal = _PyPegen_expect_token(p, 9)) // token='['
29554 )
29555 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029556 D(fprintf(stderr, "%*c+ _tmp_151[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029557 _res = _literal;
29558 goto done;
29559 }
29560 p->mark = _mark;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029561 D(fprintf(stderr, "%*c%s _tmp_151[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080029562 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'['"));
29563 }
Pablo Galindob2802482021-04-15 21:38:45 +010029564 { // '('
29565 if (p->error_indicator) {
29566 D(p->level--);
29567 return NULL;
29568 }
29569 D(fprintf(stderr, "%*c> _tmp_151[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'('"));
29570 Token * _literal;
29571 if (
29572 (_literal = _PyPegen_expect_token(p, 7)) // token='('
29573 )
29574 {
29575 D(fprintf(stderr, "%*c+ _tmp_151[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'('"));
29576 _res = _literal;
29577 goto done;
29578 }
29579 p->mark = _mark;
29580 D(fprintf(stderr, "%*c%s _tmp_151[%d-%d]: %s failed!\n", p->level, ' ',
29581 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'('"));
29582 }
Brandt Bucher145bf262021-02-26 14:51:55 -080029583 { // '{'
29584 if (p->error_indicator) {
29585 D(p->level--);
29586 return NULL;
29587 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029588 D(fprintf(stderr, "%*c> _tmp_151[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{'"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029589 Token * _literal;
29590 if (
29591 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
29592 )
29593 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029594 D(fprintf(stderr, "%*c+ _tmp_151[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{'"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029595 _res = _literal;
29596 goto done;
29597 }
29598 p->mark = _mark;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029599 D(fprintf(stderr, "%*c%s _tmp_151[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080029600 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{'"));
29601 }
29602 _res = NULL;
29603 done:
29604 D(p->level--);
29605 return _res;
29606}
29607
Pablo Galindob2802482021-04-15 21:38:45 +010029608// _tmp_152: '[' | '{'
29609static void *
29610_tmp_152_rule(Parser *p)
29611{
29612 D(p->level++);
29613 if (p->error_indicator) {
29614 D(p->level--);
29615 return NULL;
29616 }
29617 void * _res = NULL;
29618 int _mark = p->mark;
29619 { // '['
29620 if (p->error_indicator) {
29621 D(p->level--);
29622 return NULL;
29623 }
29624 D(fprintf(stderr, "%*c> _tmp_152[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['"));
29625 Token * _literal;
29626 if (
29627 (_literal = _PyPegen_expect_token(p, 9)) // token='['
29628 )
29629 {
29630 D(fprintf(stderr, "%*c+ _tmp_152[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['"));
29631 _res = _literal;
29632 goto done;
29633 }
29634 p->mark = _mark;
29635 D(fprintf(stderr, "%*c%s _tmp_152[%d-%d]: %s failed!\n", p->level, ' ',
29636 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'['"));
29637 }
29638 { // '{'
29639 if (p->error_indicator) {
29640 D(p->level--);
29641 return NULL;
29642 }
29643 D(fprintf(stderr, "%*c> _tmp_152[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{'"));
29644 Token * _literal;
29645 if (
29646 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
29647 )
29648 {
29649 D(fprintf(stderr, "%*c+ _tmp_152[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{'"));
29650 _res = _literal;
29651 goto done;
29652 }
29653 p->mark = _mark;
29654 D(fprintf(stderr, "%*c%s _tmp_152[%d-%d]: %s failed!\n", p->level, ' ',
29655 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{'"));
29656 }
29657 _res = NULL;
29658 done:
29659 D(p->level--);
29660 return _res;
29661}
29662
29663// _loop0_153: param_no_default
Brandt Bucher145bf262021-02-26 14:51:55 -080029664static asdl_seq *
Pablo Galindob2802482021-04-15 21:38:45 +010029665_loop0_153_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080029666{
29667 D(p->level++);
29668 if (p->error_indicator) {
29669 D(p->level--);
29670 return NULL;
29671 }
29672 void *_res = NULL;
29673 int _mark = p->mark;
29674 int _start_mark = p->mark;
29675 void **_children = PyMem_Malloc(sizeof(void *));
29676 if (!_children) {
29677 p->error_indicator = 1;
29678 PyErr_NoMemory();
29679 D(p->level--);
29680 return NULL;
29681 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010029682 Py_ssize_t _children_capacity = 1;
29683 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080029684 { // param_no_default
29685 if (p->error_indicator) {
29686 D(p->level--);
29687 return NULL;
29688 }
Pablo Galindob2802482021-04-15 21:38:45 +010029689 D(fprintf(stderr, "%*c> _loop0_153[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029690 arg_ty param_no_default_var;
29691 while (
29692 (param_no_default_var = param_no_default_rule(p)) // param_no_default
29693 )
29694 {
29695 _res = param_no_default_var;
29696 if (_n == _children_capacity) {
29697 _children_capacity *= 2;
29698 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
29699 if (!_new_children) {
29700 p->error_indicator = 1;
29701 PyErr_NoMemory();
29702 D(p->level--);
29703 return NULL;
29704 }
29705 _children = _new_children;
29706 }
29707 _children[_n++] = _res;
29708 _mark = p->mark;
29709 }
29710 p->mark = _mark;
Pablo Galindob2802482021-04-15 21:38:45 +010029711 D(fprintf(stderr, "%*c%s _loop0_153[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080029712 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
29713 }
29714 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
29715 if (!_seq) {
29716 PyMem_Free(_children);
29717 p->error_indicator = 1;
29718 PyErr_NoMemory();
29719 D(p->level--);
29720 return NULL;
29721 }
29722 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
29723 PyMem_Free(_children);
Pablo Galindob2802482021-04-15 21:38:45 +010029724 _PyPegen_insert_memo(p, _start_mark, _loop0_153_type, _seq);
Brandt Bucher145bf262021-02-26 14:51:55 -080029725 D(p->level--);
29726 return _seq;
29727}
29728
Pablo Galindob2802482021-04-15 21:38:45 +010029729// _loop1_154: param_with_default
Brandt Bucher145bf262021-02-26 14:51:55 -080029730static asdl_seq *
Pablo Galindob2802482021-04-15 21:38:45 +010029731_loop1_154_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080029732{
29733 D(p->level++);
29734 if (p->error_indicator) {
29735 D(p->level--);
29736 return NULL;
29737 }
29738 void *_res = NULL;
29739 int _mark = p->mark;
29740 int _start_mark = p->mark;
29741 void **_children = PyMem_Malloc(sizeof(void *));
29742 if (!_children) {
29743 p->error_indicator = 1;
29744 PyErr_NoMemory();
29745 D(p->level--);
29746 return NULL;
29747 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010029748 Py_ssize_t _children_capacity = 1;
29749 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080029750 { // param_with_default
29751 if (p->error_indicator) {
29752 D(p->level--);
29753 return NULL;
29754 }
Pablo Galindob2802482021-04-15 21:38:45 +010029755 D(fprintf(stderr, "%*c> _loop1_154[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029756 NameDefaultPair* param_with_default_var;
29757 while (
29758 (param_with_default_var = param_with_default_rule(p)) // param_with_default
29759 )
29760 {
29761 _res = param_with_default_var;
29762 if (_n == _children_capacity) {
29763 _children_capacity *= 2;
29764 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
29765 if (!_new_children) {
29766 p->error_indicator = 1;
29767 PyErr_NoMemory();
29768 D(p->level--);
29769 return NULL;
29770 }
29771 _children = _new_children;
29772 }
29773 _children[_n++] = _res;
29774 _mark = p->mark;
29775 }
29776 p->mark = _mark;
Pablo Galindob2802482021-04-15 21:38:45 +010029777 D(fprintf(stderr, "%*c%s _loop1_154[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080029778 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
29779 }
29780 if (_n == 0 || p->error_indicator) {
29781 PyMem_Free(_children);
29782 D(p->level--);
29783 return NULL;
29784 }
29785 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
29786 if (!_seq) {
29787 PyMem_Free(_children);
29788 p->error_indicator = 1;
29789 PyErr_NoMemory();
29790 D(p->level--);
29791 return NULL;
29792 }
29793 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
29794 PyMem_Free(_children);
Pablo Galindob2802482021-04-15 21:38:45 +010029795 _PyPegen_insert_memo(p, _start_mark, _loop1_154_type, _seq);
Brandt Bucher145bf262021-02-26 14:51:55 -080029796 D(p->level--);
29797 return _seq;
29798}
29799
Pablo Galindob2802482021-04-15 21:38:45 +010029800// _loop0_155: lambda_param_no_default
Brandt Bucher145bf262021-02-26 14:51:55 -080029801static asdl_seq *
Pablo Galindob2802482021-04-15 21:38:45 +010029802_loop0_155_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080029803{
29804 D(p->level++);
29805 if (p->error_indicator) {
29806 D(p->level--);
29807 return NULL;
29808 }
29809 void *_res = NULL;
29810 int _mark = p->mark;
29811 int _start_mark = p->mark;
29812 void **_children = PyMem_Malloc(sizeof(void *));
29813 if (!_children) {
29814 p->error_indicator = 1;
29815 PyErr_NoMemory();
29816 D(p->level--);
29817 return NULL;
29818 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010029819 Py_ssize_t _children_capacity = 1;
29820 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080029821 { // lambda_param_no_default
29822 if (p->error_indicator) {
29823 D(p->level--);
29824 return NULL;
29825 }
Pablo Galindob2802482021-04-15 21:38:45 +010029826 D(fprintf(stderr, "%*c> _loop0_155[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029827 arg_ty lambda_param_no_default_var;
29828 while (
29829 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
29830 )
29831 {
29832 _res = lambda_param_no_default_var;
29833 if (_n == _children_capacity) {
29834 _children_capacity *= 2;
29835 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
29836 if (!_new_children) {
29837 p->error_indicator = 1;
29838 PyErr_NoMemory();
29839 D(p->level--);
29840 return NULL;
29841 }
29842 _children = _new_children;
29843 }
29844 _children[_n++] = _res;
29845 _mark = p->mark;
29846 }
29847 p->mark = _mark;
Pablo Galindob2802482021-04-15 21:38:45 +010029848 D(fprintf(stderr, "%*c%s _loop0_155[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080029849 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
29850 }
29851 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
29852 if (!_seq) {
29853 PyMem_Free(_children);
29854 p->error_indicator = 1;
29855 PyErr_NoMemory();
29856 D(p->level--);
29857 return NULL;
29858 }
29859 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
29860 PyMem_Free(_children);
Pablo Galindob2802482021-04-15 21:38:45 +010029861 _PyPegen_insert_memo(p, _start_mark, _loop0_155_type, _seq);
Brandt Bucher145bf262021-02-26 14:51:55 -080029862 D(p->level--);
29863 return _seq;
29864}
29865
Pablo Galindob2802482021-04-15 21:38:45 +010029866// _loop1_156: lambda_param_with_default
Brandt Bucher145bf262021-02-26 14:51:55 -080029867static asdl_seq *
Pablo Galindob2802482021-04-15 21:38:45 +010029868_loop1_156_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080029869{
29870 D(p->level++);
29871 if (p->error_indicator) {
29872 D(p->level--);
29873 return NULL;
29874 }
29875 void *_res = NULL;
29876 int _mark = p->mark;
29877 int _start_mark = p->mark;
29878 void **_children = PyMem_Malloc(sizeof(void *));
29879 if (!_children) {
29880 p->error_indicator = 1;
29881 PyErr_NoMemory();
29882 D(p->level--);
29883 return NULL;
29884 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010029885 Py_ssize_t _children_capacity = 1;
29886 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080029887 { // lambda_param_with_default
29888 if (p->error_indicator) {
29889 D(p->level--);
29890 return NULL;
29891 }
Pablo Galindob2802482021-04-15 21:38:45 +010029892 D(fprintf(stderr, "%*c> _loop1_156[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029893 NameDefaultPair* lambda_param_with_default_var;
29894 while (
29895 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
29896 )
29897 {
29898 _res = lambda_param_with_default_var;
29899 if (_n == _children_capacity) {
29900 _children_capacity *= 2;
29901 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
29902 if (!_new_children) {
29903 p->error_indicator = 1;
29904 PyErr_NoMemory();
29905 D(p->level--);
29906 return NULL;
29907 }
29908 _children = _new_children;
29909 }
29910 _children[_n++] = _res;
29911 _mark = p->mark;
29912 }
29913 p->mark = _mark;
Pablo Galindob2802482021-04-15 21:38:45 +010029914 D(fprintf(stderr, "%*c%s _loop1_156[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080029915 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
29916 }
29917 if (_n == 0 || p->error_indicator) {
29918 PyMem_Free(_children);
29919 D(p->level--);
29920 return NULL;
29921 }
29922 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
29923 if (!_seq) {
29924 PyMem_Free(_children);
29925 p->error_indicator = 1;
29926 PyErr_NoMemory();
29927 D(p->level--);
29928 return NULL;
29929 }
29930 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
29931 PyMem_Free(_children);
Pablo Galindob2802482021-04-15 21:38:45 +010029932 _PyPegen_insert_memo(p, _start_mark, _loop1_156_type, _seq);
Brandt Bucher145bf262021-02-26 14:51:55 -080029933 D(p->level--);
29934 return _seq;
29935}
29936
Pablo Galindob2802482021-04-15 21:38:45 +010029937// _tmp_157: ')' | ',' (')' | '**')
Brandt Bucher145bf262021-02-26 14:51:55 -080029938static void *
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029939_tmp_157_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080029940{
29941 D(p->level++);
29942 if (p->error_indicator) {
29943 D(p->level--);
29944 return NULL;
29945 }
29946 void * _res = NULL;
29947 int _mark = p->mark;
Pablo Galindob2802482021-04-15 21:38:45 +010029948 { // ')'
Brandt Bucher145bf262021-02-26 14:51:55 -080029949 if (p->error_indicator) {
29950 D(p->level--);
29951 return NULL;
29952 }
Pablo Galindob2802482021-04-15 21:38:45 +010029953 D(fprintf(stderr, "%*c> _tmp_157[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029954 Token * _literal;
29955 if (
Pablo Galindob2802482021-04-15 21:38:45 +010029956 (_literal = _PyPegen_expect_token(p, 8)) // token=')'
Brandt Bucher145bf262021-02-26 14:51:55 -080029957 )
29958 {
Pablo Galindob2802482021-04-15 21:38:45 +010029959 D(fprintf(stderr, "%*c+ _tmp_157[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029960 _res = _literal;
29961 goto done;
29962 }
29963 p->mark = _mark;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029964 D(fprintf(stderr, "%*c%s _tmp_157[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob2802482021-04-15 21:38:45 +010029965 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029966 }
Pablo Galindob2802482021-04-15 21:38:45 +010029967 { // ',' (')' | '**')
Brandt Bucher145bf262021-02-26 14:51:55 -080029968 if (p->error_indicator) {
29969 D(p->level--);
29970 return NULL;
29971 }
Pablo Galindob2802482021-04-15 21:38:45 +010029972 D(fprintf(stderr, "%*c> _tmp_157[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (')' | '**')"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029973 Token * _literal;
Pablo Galindo56c95df2021-04-21 15:28:21 +010029974 void *_tmp_191_var;
Brandt Bucher145bf262021-02-26 14:51:55 -080029975 if (
29976 (_literal = _PyPegen_expect_token(p, 12)) // token=','
29977 &&
Pablo Galindo56c95df2021-04-21 15:28:21 +010029978 (_tmp_191_var = _tmp_191_rule(p)) // ')' | '**'
Brandt Bucher145bf262021-02-26 14:51:55 -080029979 )
29980 {
Pablo Galindob2802482021-04-15 21:38:45 +010029981 D(fprintf(stderr, "%*c+ _tmp_157[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' (')' | '**')"));
Pablo Galindo56c95df2021-04-21 15:28:21 +010029982 _res = _PyPegen_dummy_name(p, _literal, _tmp_191_var);
Brandt Bucher145bf262021-02-26 14:51:55 -080029983 goto done;
29984 }
29985 p->mark = _mark;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029986 D(fprintf(stderr, "%*c%s _tmp_157[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob2802482021-04-15 21:38:45 +010029987 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (')' | '**')"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029988 }
29989 _res = NULL;
29990 done:
29991 D(p->level--);
29992 return _res;
29993}
29994
Pablo Galindob2802482021-04-15 21:38:45 +010029995// _tmp_158: ':' | ',' (':' | '**')
Brandt Bucher145bf262021-02-26 14:51:55 -080029996static void *
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029997_tmp_158_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080029998{
29999 D(p->level++);
30000 if (p->error_indicator) {
30001 D(p->level--);
30002 return NULL;
30003 }
30004 void * _res = NULL;
30005 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080030006 { // ':'
30007 if (p->error_indicator) {
30008 D(p->level--);
30009 return NULL;
30010 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030011 D(fprintf(stderr, "%*c> _tmp_158[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
Brandt Bucher145bf262021-02-26 14:51:55 -080030012 Token * _literal;
30013 if (
30014 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
30015 )
30016 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030017 D(fprintf(stderr, "%*c+ _tmp_158[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
Brandt Bucher145bf262021-02-26 14:51:55 -080030018 _res = _literal;
30019 goto done;
30020 }
30021 p->mark = _mark;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030022 D(fprintf(stderr, "%*c%s _tmp_158[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080030023 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
30024 }
Pablo Galindob2802482021-04-15 21:38:45 +010030025 { // ',' (':' | '**')
30026 if (p->error_indicator) {
30027 D(p->level--);
30028 return NULL;
30029 }
30030 D(fprintf(stderr, "%*c> _tmp_158[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (':' | '**')"));
30031 Token * _literal;
Pablo Galindo56c95df2021-04-21 15:28:21 +010030032 void *_tmp_192_var;
Pablo Galindob2802482021-04-15 21:38:45 +010030033 if (
30034 (_literal = _PyPegen_expect_token(p, 12)) // token=','
30035 &&
Pablo Galindo56c95df2021-04-21 15:28:21 +010030036 (_tmp_192_var = _tmp_192_rule(p)) // ':' | '**'
Pablo Galindob2802482021-04-15 21:38:45 +010030037 )
30038 {
30039 D(fprintf(stderr, "%*c+ _tmp_158[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' (':' | '**')"));
Pablo Galindo56c95df2021-04-21 15:28:21 +010030040 _res = _PyPegen_dummy_name(p, _literal, _tmp_192_var);
Pablo Galindob2802482021-04-15 21:38:45 +010030041 goto done;
30042 }
30043 p->mark = _mark;
30044 D(fprintf(stderr, "%*c%s _tmp_158[%d-%d]: %s failed!\n", p->level, ' ',
30045 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (':' | '**')"));
30046 }
Brandt Bucher145bf262021-02-26 14:51:55 -080030047 _res = NULL;
30048 done:
30049 D(p->level--);
30050 return _res;
30051}
30052
Pablo Galindob2802482021-04-15 21:38:45 +010030053// _tmp_159: ',' | ')' | ':'
30054static void *
30055_tmp_159_rule(Parser *p)
30056{
30057 D(p->level++);
30058 if (p->error_indicator) {
30059 D(p->level--);
30060 return NULL;
30061 }
30062 void * _res = NULL;
30063 int _mark = p->mark;
30064 { // ','
30065 if (p->error_indicator) {
30066 D(p->level--);
30067 return NULL;
30068 }
30069 D(fprintf(stderr, "%*c> _tmp_159[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','"));
30070 Token * _literal;
30071 if (
30072 (_literal = _PyPegen_expect_token(p, 12)) // token=','
30073 )
30074 {
30075 D(fprintf(stderr, "%*c+ _tmp_159[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','"));
30076 _res = _literal;
30077 goto done;
30078 }
30079 p->mark = _mark;
30080 D(fprintf(stderr, "%*c%s _tmp_159[%d-%d]: %s failed!\n", p->level, ' ',
30081 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','"));
30082 }
30083 { // ')'
30084 if (p->error_indicator) {
30085 D(p->level--);
30086 return NULL;
30087 }
30088 D(fprintf(stderr, "%*c> _tmp_159[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
30089 Token * _literal;
30090 if (
30091 (_literal = _PyPegen_expect_token(p, 8)) // token=')'
30092 )
30093 {
30094 D(fprintf(stderr, "%*c+ _tmp_159[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
30095 _res = _literal;
30096 goto done;
30097 }
30098 p->mark = _mark;
30099 D(fprintf(stderr, "%*c%s _tmp_159[%d-%d]: %s failed!\n", p->level, ' ',
30100 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
30101 }
30102 { // ':'
30103 if (p->error_indicator) {
30104 D(p->level--);
30105 return NULL;
30106 }
30107 D(fprintf(stderr, "%*c> _tmp_159[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
30108 Token * _literal;
30109 if (
30110 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
30111 )
30112 {
30113 D(fprintf(stderr, "%*c+ _tmp_159[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
30114 _res = _literal;
30115 goto done;
30116 }
30117 p->mark = _mark;
30118 D(fprintf(stderr, "%*c%s _tmp_159[%d-%d]: %s failed!\n", p->level, ' ',
30119 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
30120 }
30121 _res = NULL;
30122 done:
30123 D(p->level--);
30124 return _res;
30125}
30126
30127// _loop0_161: ',' (expression ['as' star_target])
Brandt Bucher145bf262021-02-26 14:51:55 -080030128static asdl_seq *
Pablo Galindob2802482021-04-15 21:38:45 +010030129_loop0_161_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080030130{
30131 D(p->level++);
30132 if (p->error_indicator) {
30133 D(p->level--);
30134 return NULL;
30135 }
30136 void *_res = NULL;
30137 int _mark = p->mark;
30138 int _start_mark = p->mark;
30139 void **_children = PyMem_Malloc(sizeof(void *));
30140 if (!_children) {
30141 p->error_indicator = 1;
30142 PyErr_NoMemory();
30143 D(p->level--);
30144 return NULL;
30145 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010030146 Py_ssize_t _children_capacity = 1;
30147 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080030148 { // ',' (expression ['as' star_target])
30149 if (p->error_indicator) {
30150 D(p->level--);
30151 return NULL;
30152 }
Pablo Galindob2802482021-04-15 21:38:45 +010030153 D(fprintf(stderr, "%*c> _loop0_161[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (expression ['as' star_target])"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000030154 Token * _literal;
30155 void *elem;
30156 while (
30157 (_literal = _PyPegen_expect_token(p, 12)) // token=','
30158 &&
Pablo Galindo56c95df2021-04-21 15:28:21 +010030159 (elem = _tmp_193_rule(p)) // expression ['as' star_target]
Pablo Galindo58fb1562021-02-02 19:54:22 +000030160 )
30161 {
30162 _res = elem;
30163 if (_res == NULL && PyErr_Occurred()) {
30164 p->error_indicator = 1;
30165 PyMem_Free(_children);
30166 D(p->level--);
30167 return NULL;
30168 }
30169 if (_n == _children_capacity) {
30170 _children_capacity *= 2;
30171 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
30172 if (!_new_children) {
30173 p->error_indicator = 1;
30174 PyErr_NoMemory();
30175 D(p->level--);
30176 return NULL;
30177 }
30178 _children = _new_children;
30179 }
30180 _children[_n++] = _res;
30181 _mark = p->mark;
30182 }
30183 p->mark = _mark;
Pablo Galindob2802482021-04-15 21:38:45 +010030184 D(fprintf(stderr, "%*c%s _loop0_161[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080030185 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (expression ['as' star_target])"));
30186 }
30187 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
30188 if (!_seq) {
30189 PyMem_Free(_children);
30190 p->error_indicator = 1;
30191 PyErr_NoMemory();
30192 D(p->level--);
30193 return NULL;
30194 }
30195 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
30196 PyMem_Free(_children);
Pablo Galindob2802482021-04-15 21:38:45 +010030197 _PyPegen_insert_memo(p, _start_mark, _loop0_161_type, _seq);
Brandt Bucher145bf262021-02-26 14:51:55 -080030198 D(p->level--);
30199 return _seq;
30200}
30201
Pablo Galindob2802482021-04-15 21:38:45 +010030202// _gather_160: (expression ['as' star_target]) _loop0_161
Brandt Bucher145bf262021-02-26 14:51:55 -080030203static asdl_seq *
Pablo Galindob2802482021-04-15 21:38:45 +010030204_gather_160_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080030205{
30206 D(p->level++);
30207 if (p->error_indicator) {
30208 D(p->level--);
30209 return NULL;
30210 }
30211 asdl_seq * _res = NULL;
30212 int _mark = p->mark;
Pablo Galindob2802482021-04-15 21:38:45 +010030213 { // (expression ['as' star_target]) _loop0_161
Brandt Bucher145bf262021-02-26 14:51:55 -080030214 if (p->error_indicator) {
30215 D(p->level--);
30216 return NULL;
30217 }
Pablo Galindob2802482021-04-15 21:38:45 +010030218 D(fprintf(stderr, "%*c> _gather_160[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(expression ['as' star_target]) _loop0_161"));
Brandt Bucher145bf262021-02-26 14:51:55 -080030219 void *elem;
30220 asdl_seq * seq;
30221 if (
Pablo Galindo56c95df2021-04-21 15:28:21 +010030222 (elem = _tmp_193_rule(p)) // expression ['as' star_target]
Brandt Bucher145bf262021-02-26 14:51:55 -080030223 &&
Pablo Galindob2802482021-04-15 21:38:45 +010030224 (seq = _loop0_161_rule(p)) // _loop0_161
Brandt Bucher145bf262021-02-26 14:51:55 -080030225 )
30226 {
Pablo Galindob2802482021-04-15 21:38:45 +010030227 D(fprintf(stderr, "%*c+ _gather_160[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(expression ['as' star_target]) _loop0_161"));
Brandt Bucher145bf262021-02-26 14:51:55 -080030228 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
30229 goto done;
30230 }
30231 p->mark = _mark;
Pablo Galindob2802482021-04-15 21:38:45 +010030232 D(fprintf(stderr, "%*c%s _gather_160[%d-%d]: %s failed!\n", p->level, ' ',
30233 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(expression ['as' star_target]) _loop0_161"));
Brandt Bucher145bf262021-02-26 14:51:55 -080030234 }
30235 _res = NULL;
30236 done:
30237 D(p->level--);
30238 return _res;
30239}
30240
Pablo Galindob2802482021-04-15 21:38:45 +010030241// _loop0_163: ',' (expressions ['as' star_target])
Brandt Bucher145bf262021-02-26 14:51:55 -080030242static asdl_seq *
Pablo Galindob2802482021-04-15 21:38:45 +010030243_loop0_163_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080030244{
30245 D(p->level++);
30246 if (p->error_indicator) {
30247 D(p->level--);
30248 return NULL;
30249 }
30250 void *_res = NULL;
30251 int _mark = p->mark;
30252 int _start_mark = p->mark;
30253 void **_children = PyMem_Malloc(sizeof(void *));
30254 if (!_children) {
30255 p->error_indicator = 1;
30256 PyErr_NoMemory();
30257 D(p->level--);
30258 return NULL;
30259 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010030260 Py_ssize_t _children_capacity = 1;
30261 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080030262 { // ',' (expressions ['as' star_target])
30263 if (p->error_indicator) {
30264 D(p->level--);
30265 return NULL;
30266 }
Pablo Galindob2802482021-04-15 21:38:45 +010030267 D(fprintf(stderr, "%*c> _loop0_163[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (expressions ['as' star_target])"));
Brandt Bucher145bf262021-02-26 14:51:55 -080030268 Token * _literal;
30269 void *elem;
30270 while (
30271 (_literal = _PyPegen_expect_token(p, 12)) // token=','
30272 &&
Pablo Galindo56c95df2021-04-21 15:28:21 +010030273 (elem = _tmp_194_rule(p)) // expressions ['as' star_target]
Brandt Bucher145bf262021-02-26 14:51:55 -080030274 )
30275 {
30276 _res = elem;
30277 if (_res == NULL && PyErr_Occurred()) {
30278 p->error_indicator = 1;
30279 PyMem_Free(_children);
30280 D(p->level--);
30281 return NULL;
30282 }
30283 if (_n == _children_capacity) {
30284 _children_capacity *= 2;
30285 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
30286 if (!_new_children) {
30287 p->error_indicator = 1;
30288 PyErr_NoMemory();
30289 D(p->level--);
30290 return NULL;
30291 }
30292 _children = _new_children;
30293 }
30294 _children[_n++] = _res;
30295 _mark = p->mark;
30296 }
30297 p->mark = _mark;
Pablo Galindob2802482021-04-15 21:38:45 +010030298 D(fprintf(stderr, "%*c%s _loop0_163[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +000030299 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (expressions ['as' star_target])"));
30300 }
30301 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
30302 if (!_seq) {
30303 PyMem_Free(_children);
30304 p->error_indicator = 1;
30305 PyErr_NoMemory();
30306 D(p->level--);
30307 return NULL;
30308 }
30309 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
30310 PyMem_Free(_children);
Pablo Galindob2802482021-04-15 21:38:45 +010030311 _PyPegen_insert_memo(p, _start_mark, _loop0_163_type, _seq);
Pablo Galindo58fb1562021-02-02 19:54:22 +000030312 D(p->level--);
30313 return _seq;
30314}
30315
Pablo Galindob2802482021-04-15 21:38:45 +010030316// _gather_162: (expressions ['as' star_target]) _loop0_163
Pablo Galindo58fb1562021-02-02 19:54:22 +000030317static asdl_seq *
Pablo Galindob2802482021-04-15 21:38:45 +010030318_gather_162_rule(Parser *p)
Pablo Galindo58fb1562021-02-02 19:54:22 +000030319{
30320 D(p->level++);
30321 if (p->error_indicator) {
30322 D(p->level--);
30323 return NULL;
30324 }
30325 asdl_seq * _res = NULL;
30326 int _mark = p->mark;
Pablo Galindob2802482021-04-15 21:38:45 +010030327 { // (expressions ['as' star_target]) _loop0_163
Pablo Galindo58fb1562021-02-02 19:54:22 +000030328 if (p->error_indicator) {
30329 D(p->level--);
30330 return NULL;
30331 }
Pablo Galindob2802482021-04-15 21:38:45 +010030332 D(fprintf(stderr, "%*c> _gather_162[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(expressions ['as' star_target]) _loop0_163"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000030333 void *elem;
30334 asdl_seq * seq;
30335 if (
Pablo Galindo56c95df2021-04-21 15:28:21 +010030336 (elem = _tmp_194_rule(p)) // expressions ['as' star_target]
Pablo Galindo58fb1562021-02-02 19:54:22 +000030337 &&
Pablo Galindob2802482021-04-15 21:38:45 +010030338 (seq = _loop0_163_rule(p)) // _loop0_163
Pablo Galindo58fb1562021-02-02 19:54:22 +000030339 )
30340 {
Pablo Galindob2802482021-04-15 21:38:45 +010030341 D(fprintf(stderr, "%*c+ _gather_162[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(expressions ['as' star_target]) _loop0_163"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000030342 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
30343 goto done;
30344 }
30345 p->mark = _mark;
Pablo Galindob2802482021-04-15 21:38:45 +010030346 D(fprintf(stderr, "%*c%s _gather_162[%d-%d]: %s failed!\n", p->level, ' ',
30347 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(expressions ['as' star_target]) _loop0_163"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000030348 }
30349 _res = NULL;
30350 done:
30351 D(p->level--);
30352 return _res;
30353}
30354
Pablo Galindo56c95df2021-04-21 15:28:21 +010030355// _loop0_165: ',' (expression ['as' star_target])
30356static asdl_seq *
30357_loop0_165_rule(Parser *p)
Pablo Galindo206cbda2021-02-07 18:42:21 +000030358{
30359 D(p->level++);
30360 if (p->error_indicator) {
30361 D(p->level--);
30362 return NULL;
30363 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010030364 void *_res = NULL;
Pablo Galindo206cbda2021-02-07 18:42:21 +000030365 int _mark = p->mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +010030366 int _start_mark = p->mark;
30367 void **_children = PyMem_Malloc(sizeof(void *));
30368 if (!_children) {
30369 p->error_indicator = 1;
30370 PyErr_NoMemory();
30371 D(p->level--);
30372 return NULL;
30373 }
30374 Py_ssize_t _children_capacity = 1;
30375 Py_ssize_t _n = 0;
30376 { // ',' (expression ['as' star_target])
Pablo Galindo206cbda2021-02-07 18:42:21 +000030377 if (p->error_indicator) {
30378 D(p->level--);
30379 return NULL;
30380 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010030381 D(fprintf(stderr, "%*c> _loop0_165[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (expression ['as' star_target])"));
30382 Token * _literal;
30383 void *elem;
30384 while (
30385 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindo206cbda2021-02-07 18:42:21 +000030386 &&
Pablo Galindo56c95df2021-04-21 15:28:21 +010030387 (elem = _tmp_195_rule(p)) // expression ['as' star_target]
Pablo Galindo206cbda2021-02-07 18:42:21 +000030388 )
30389 {
Pablo Galindo56c95df2021-04-21 15:28:21 +010030390 _res = elem;
30391 if (_res == NULL && PyErr_Occurred()) {
30392 p->error_indicator = 1;
30393 PyMem_Free(_children);
30394 D(p->level--);
30395 return NULL;
30396 }
30397 if (_n == _children_capacity) {
30398 _children_capacity *= 2;
30399 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
30400 if (!_new_children) {
30401 p->error_indicator = 1;
30402 PyErr_NoMemory();
30403 D(p->level--);
30404 return NULL;
30405 }
30406 _children = _new_children;
30407 }
30408 _children[_n++] = _res;
30409 _mark = p->mark;
30410 }
30411 p->mark = _mark;
30412 D(fprintf(stderr, "%*c%s _loop0_165[%d-%d]: %s failed!\n", p->level, ' ',
30413 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (expression ['as' star_target])"));
30414 }
30415 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
30416 if (!_seq) {
30417 PyMem_Free(_children);
30418 p->error_indicator = 1;
30419 PyErr_NoMemory();
30420 D(p->level--);
30421 return NULL;
30422 }
30423 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
30424 PyMem_Free(_children);
30425 _PyPegen_insert_memo(p, _start_mark, _loop0_165_type, _seq);
30426 D(p->level--);
30427 return _seq;
30428}
30429
30430// _gather_164: (expression ['as' star_target]) _loop0_165
30431static asdl_seq *
30432_gather_164_rule(Parser *p)
30433{
30434 D(p->level++);
30435 if (p->error_indicator) {
30436 D(p->level--);
30437 return NULL;
30438 }
30439 asdl_seq * _res = NULL;
30440 int _mark = p->mark;
30441 { // (expression ['as' star_target]) _loop0_165
30442 if (p->error_indicator) {
30443 D(p->level--);
30444 return NULL;
30445 }
30446 D(fprintf(stderr, "%*c> _gather_164[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(expression ['as' star_target]) _loop0_165"));
30447 void *elem;
30448 asdl_seq * seq;
30449 if (
30450 (elem = _tmp_195_rule(p)) // expression ['as' star_target]
30451 &&
30452 (seq = _loop0_165_rule(p)) // _loop0_165
30453 )
30454 {
30455 D(fprintf(stderr, "%*c+ _gather_164[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(expression ['as' star_target]) _loop0_165"));
30456 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindo206cbda2021-02-07 18:42:21 +000030457 goto done;
30458 }
30459 p->mark = _mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +010030460 D(fprintf(stderr, "%*c%s _gather_164[%d-%d]: %s failed!\n", p->level, ' ',
30461 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(expression ['as' star_target]) _loop0_165"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000030462 }
30463 _res = NULL;
30464 done:
30465 D(p->level--);
30466 return _res;
30467}
30468
Pablo Galindo56c95df2021-04-21 15:28:21 +010030469// _loop0_167: ',' (expressions ['as' star_target])
Pablo Galindoda743502021-04-15 14:06:39 +010030470static asdl_seq *
Pablo Galindob2802482021-04-15 21:38:45 +010030471_loop0_167_rule(Parser *p)
Pablo Galindoda743502021-04-15 14:06:39 +010030472{
30473 D(p->level++);
30474 if (p->error_indicator) {
30475 D(p->level--);
30476 return NULL;
30477 }
30478 void *_res = NULL;
30479 int _mark = p->mark;
30480 int _start_mark = p->mark;
30481 void **_children = PyMem_Malloc(sizeof(void *));
30482 if (!_children) {
30483 p->error_indicator = 1;
30484 PyErr_NoMemory();
30485 D(p->level--);
30486 return NULL;
30487 }
30488 Py_ssize_t _children_capacity = 1;
30489 Py_ssize_t _n = 0;
Pablo Galindo56c95df2021-04-21 15:28:21 +010030490 { // ',' (expressions ['as' star_target])
30491 if (p->error_indicator) {
30492 D(p->level--);
30493 return NULL;
30494 }
30495 D(fprintf(stderr, "%*c> _loop0_167[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (expressions ['as' star_target])"));
30496 Token * _literal;
30497 void *elem;
30498 while (
30499 (_literal = _PyPegen_expect_token(p, 12)) // token=','
30500 &&
30501 (elem = _tmp_196_rule(p)) // expressions ['as' star_target]
30502 )
30503 {
30504 _res = elem;
30505 if (_res == NULL && PyErr_Occurred()) {
30506 p->error_indicator = 1;
30507 PyMem_Free(_children);
30508 D(p->level--);
30509 return NULL;
30510 }
30511 if (_n == _children_capacity) {
30512 _children_capacity *= 2;
30513 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
30514 if (!_new_children) {
30515 p->error_indicator = 1;
30516 PyErr_NoMemory();
30517 D(p->level--);
30518 return NULL;
30519 }
30520 _children = _new_children;
30521 }
30522 _children[_n++] = _res;
30523 _mark = p->mark;
30524 }
30525 p->mark = _mark;
30526 D(fprintf(stderr, "%*c%s _loop0_167[%d-%d]: %s failed!\n", p->level, ' ',
30527 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (expressions ['as' star_target])"));
30528 }
30529 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
30530 if (!_seq) {
30531 PyMem_Free(_children);
30532 p->error_indicator = 1;
30533 PyErr_NoMemory();
30534 D(p->level--);
30535 return NULL;
30536 }
30537 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
30538 PyMem_Free(_children);
30539 _PyPegen_insert_memo(p, _start_mark, _loop0_167_type, _seq);
30540 D(p->level--);
30541 return _seq;
30542}
30543
30544// _gather_166: (expressions ['as' star_target]) _loop0_167
30545static asdl_seq *
30546_gather_166_rule(Parser *p)
30547{
30548 D(p->level++);
30549 if (p->error_indicator) {
30550 D(p->level--);
30551 return NULL;
30552 }
30553 asdl_seq * _res = NULL;
30554 int _mark = p->mark;
30555 { // (expressions ['as' star_target]) _loop0_167
30556 if (p->error_indicator) {
30557 D(p->level--);
30558 return NULL;
30559 }
30560 D(fprintf(stderr, "%*c> _gather_166[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(expressions ['as' star_target]) _loop0_167"));
30561 void *elem;
30562 asdl_seq * seq;
30563 if (
30564 (elem = _tmp_196_rule(p)) // expressions ['as' star_target]
30565 &&
30566 (seq = _loop0_167_rule(p)) // _loop0_167
30567 )
30568 {
30569 D(fprintf(stderr, "%*c+ _gather_166[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(expressions ['as' star_target]) _loop0_167"));
30570 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
30571 goto done;
30572 }
30573 p->mark = _mark;
30574 D(fprintf(stderr, "%*c%s _gather_166[%d-%d]: %s failed!\n", p->level, ' ',
30575 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(expressions ['as' star_target]) _loop0_167"));
30576 }
30577 _res = NULL;
30578 done:
30579 D(p->level--);
30580 return _res;
30581}
30582
30583// _tmp_168: 'as' NAME
30584static void *
30585_tmp_168_rule(Parser *p)
30586{
30587 D(p->level++);
30588 if (p->error_indicator) {
30589 D(p->level--);
30590 return NULL;
30591 }
30592 void * _res = NULL;
30593 int _mark = p->mark;
30594 { // 'as' NAME
30595 if (p->error_indicator) {
30596 D(p->level--);
30597 return NULL;
30598 }
30599 D(fprintf(stderr, "%*c> _tmp_168[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
30600 Token * _keyword;
30601 expr_ty name_var;
30602 if (
30603 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
30604 &&
30605 (name_var = _PyPegen_name_token(p)) // NAME
30606 )
30607 {
30608 D(fprintf(stderr, "%*c+ _tmp_168[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
30609 _res = _PyPegen_dummy_name(p, _keyword, name_var);
30610 goto done;
30611 }
30612 p->mark = _mark;
30613 D(fprintf(stderr, "%*c%s _tmp_168[%d-%d]: %s failed!\n", p->level, ' ',
30614 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
30615 }
30616 _res = NULL;
30617 done:
30618 D(p->level--);
30619 return _res;
30620}
30621
30622// _tmp_169: 'as' NAME
30623static void *
30624_tmp_169_rule(Parser *p)
30625{
30626 D(p->level++);
30627 if (p->error_indicator) {
30628 D(p->level--);
30629 return NULL;
30630 }
30631 void * _res = NULL;
30632 int _mark = p->mark;
30633 { // 'as' NAME
30634 if (p->error_indicator) {
30635 D(p->level--);
30636 return NULL;
30637 }
30638 D(fprintf(stderr, "%*c> _tmp_169[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
30639 Token * _keyword;
30640 expr_ty name_var;
30641 if (
30642 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
30643 &&
30644 (name_var = _PyPegen_name_token(p)) // NAME
30645 )
30646 {
30647 D(fprintf(stderr, "%*c+ _tmp_169[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
30648 _res = _PyPegen_dummy_name(p, _keyword, name_var);
30649 goto done;
30650 }
30651 p->mark = _mark;
30652 D(fprintf(stderr, "%*c%s _tmp_169[%d-%d]: %s failed!\n", p->level, ' ',
30653 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
30654 }
30655 _res = NULL;
30656 done:
30657 D(p->level--);
30658 return _res;
30659}
30660
30661// _tmp_170: 'as' NAME
30662static void *
30663_tmp_170_rule(Parser *p)
30664{
30665 D(p->level++);
30666 if (p->error_indicator) {
30667 D(p->level--);
30668 return NULL;
30669 }
30670 void * _res = NULL;
30671 int _mark = p->mark;
30672 { // 'as' NAME
30673 if (p->error_indicator) {
30674 D(p->level--);
30675 return NULL;
30676 }
30677 D(fprintf(stderr, "%*c> _tmp_170[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
30678 Token * _keyword;
30679 expr_ty name_var;
30680 if (
30681 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
30682 &&
30683 (name_var = _PyPegen_name_token(p)) // NAME
30684 )
30685 {
30686 D(fprintf(stderr, "%*c+ _tmp_170[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
30687 _res = _PyPegen_dummy_name(p, _keyword, name_var);
30688 goto done;
30689 }
30690 p->mark = _mark;
30691 D(fprintf(stderr, "%*c%s _tmp_170[%d-%d]: %s failed!\n", p->level, ' ',
30692 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
30693 }
30694 _res = NULL;
30695 done:
30696 D(p->level--);
30697 return _res;
30698}
30699
30700// _tmp_171: '->' expression
30701static void *
30702_tmp_171_rule(Parser *p)
30703{
30704 D(p->level++);
30705 if (p->error_indicator) {
30706 D(p->level--);
30707 return NULL;
30708 }
30709 void * _res = NULL;
30710 int _mark = p->mark;
30711 { // '->' expression
30712 if (p->error_indicator) {
30713 D(p->level--);
30714 return NULL;
30715 }
30716 D(fprintf(stderr, "%*c> _tmp_171[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'->' expression"));
30717 Token * _literal;
30718 expr_ty expression_var;
30719 if (
30720 (_literal = _PyPegen_expect_token(p, 51)) // token='->'
30721 &&
30722 (expression_var = expression_rule(p)) // expression
30723 )
30724 {
30725 D(fprintf(stderr, "%*c+ _tmp_171[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'->' expression"));
30726 _res = _PyPegen_dummy_name(p, _literal, expression_var);
30727 goto done;
30728 }
30729 p->mark = _mark;
30730 D(fprintf(stderr, "%*c%s _tmp_171[%d-%d]: %s failed!\n", p->level, ' ',
30731 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'->' expression"));
30732 }
30733 _res = NULL;
30734 done:
30735 D(p->level--);
30736 return _res;
30737}
30738
30739// _tmp_172: '(' arguments? ')'
30740static void *
30741_tmp_172_rule(Parser *p)
30742{
30743 D(p->level++);
30744 if (p->error_indicator) {
30745 D(p->level--);
30746 return NULL;
30747 }
30748 void * _res = NULL;
30749 int _mark = p->mark;
30750 { // '(' arguments? ')'
30751 if (p->error_indicator) {
30752 D(p->level--);
30753 return NULL;
30754 }
30755 D(fprintf(stderr, "%*c> _tmp_172[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'"));
30756 Token * _literal;
30757 Token * _literal_1;
30758 void *_opt_var;
30759 UNUSED(_opt_var); // Silence compiler warnings
30760 if (
30761 (_literal = _PyPegen_expect_token(p, 7)) // token='('
30762 &&
30763 (_opt_var = arguments_rule(p), 1) // arguments?
30764 &&
30765 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
30766 )
30767 {
30768 D(fprintf(stderr, "%*c+ _tmp_172[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'"));
30769 _res = _PyPegen_dummy_name(p, _literal, _opt_var, _literal_1);
30770 goto done;
30771 }
30772 p->mark = _mark;
30773 D(fprintf(stderr, "%*c%s _tmp_172[%d-%d]: %s failed!\n", p->level, ' ',
30774 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' arguments? ')'"));
30775 }
30776 _res = NULL;
30777 done:
30778 D(p->level--);
30779 return _res;
30780}
30781
30782// _loop0_174: ',' double_starred_kvpair
30783static asdl_seq *
30784_loop0_174_rule(Parser *p)
30785{
30786 D(p->level++);
30787 if (p->error_indicator) {
30788 D(p->level--);
30789 return NULL;
30790 }
30791 void *_res = NULL;
30792 int _mark = p->mark;
30793 int _start_mark = p->mark;
30794 void **_children = PyMem_Malloc(sizeof(void *));
30795 if (!_children) {
30796 p->error_indicator = 1;
30797 PyErr_NoMemory();
30798 D(p->level--);
30799 return NULL;
30800 }
30801 Py_ssize_t _children_capacity = 1;
30802 Py_ssize_t _n = 0;
Pablo Galindoda743502021-04-15 14:06:39 +010030803 { // ',' double_starred_kvpair
30804 if (p->error_indicator) {
30805 D(p->level--);
30806 return NULL;
30807 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010030808 D(fprintf(stderr, "%*c> _loop0_174[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' double_starred_kvpair"));
Pablo Galindoda743502021-04-15 14:06:39 +010030809 Token * _literal;
30810 KeyValuePair* elem;
30811 while (
30812 (_literal = _PyPegen_expect_token(p, 12)) // token=','
30813 &&
30814 (elem = double_starred_kvpair_rule(p)) // double_starred_kvpair
30815 )
30816 {
30817 _res = elem;
30818 if (_res == NULL && PyErr_Occurred()) {
30819 p->error_indicator = 1;
30820 PyMem_Free(_children);
30821 D(p->level--);
30822 return NULL;
30823 }
30824 if (_n == _children_capacity) {
30825 _children_capacity *= 2;
30826 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
30827 if (!_new_children) {
30828 p->error_indicator = 1;
30829 PyErr_NoMemory();
30830 D(p->level--);
30831 return NULL;
30832 }
30833 _children = _new_children;
30834 }
30835 _children[_n++] = _res;
30836 _mark = p->mark;
30837 }
30838 p->mark = _mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +010030839 D(fprintf(stderr, "%*c%s _loop0_174[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindoda743502021-04-15 14:06:39 +010030840 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' double_starred_kvpair"));
30841 }
30842 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
30843 if (!_seq) {
30844 PyMem_Free(_children);
30845 p->error_indicator = 1;
30846 PyErr_NoMemory();
30847 D(p->level--);
30848 return NULL;
30849 }
30850 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
30851 PyMem_Free(_children);
Pablo Galindo56c95df2021-04-21 15:28:21 +010030852 _PyPegen_insert_memo(p, _start_mark, _loop0_174_type, _seq);
Pablo Galindoda743502021-04-15 14:06:39 +010030853 D(p->level--);
30854 return _seq;
30855}
30856
Pablo Galindo56c95df2021-04-21 15:28:21 +010030857// _gather_173: double_starred_kvpair _loop0_174
Pablo Galindoda743502021-04-15 14:06:39 +010030858static asdl_seq *
Pablo Galindo56c95df2021-04-21 15:28:21 +010030859_gather_173_rule(Parser *p)
Pablo Galindoda743502021-04-15 14:06:39 +010030860{
30861 D(p->level++);
30862 if (p->error_indicator) {
30863 D(p->level--);
30864 return NULL;
30865 }
30866 asdl_seq * _res = NULL;
30867 int _mark = p->mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +010030868 { // double_starred_kvpair _loop0_174
Pablo Galindoda743502021-04-15 14:06:39 +010030869 if (p->error_indicator) {
30870 D(p->level--);
30871 return NULL;
30872 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010030873 D(fprintf(stderr, "%*c> _gather_173[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "double_starred_kvpair _loop0_174"));
Pablo Galindoda743502021-04-15 14:06:39 +010030874 KeyValuePair* elem;
30875 asdl_seq * seq;
30876 if (
30877 (elem = double_starred_kvpair_rule(p)) // double_starred_kvpair
30878 &&
Pablo Galindo56c95df2021-04-21 15:28:21 +010030879 (seq = _loop0_174_rule(p)) // _loop0_174
Pablo Galindoda743502021-04-15 14:06:39 +010030880 )
30881 {
Pablo Galindo56c95df2021-04-21 15:28:21 +010030882 D(fprintf(stderr, "%*c+ _gather_173[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "double_starred_kvpair _loop0_174"));
Pablo Galindoda743502021-04-15 14:06:39 +010030883 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
30884 goto done;
30885 }
30886 p->mark = _mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +010030887 D(fprintf(stderr, "%*c%s _gather_173[%d-%d]: %s failed!\n", p->level, ' ',
30888 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "double_starred_kvpair _loop0_174"));
Pablo Galindoda743502021-04-15 14:06:39 +010030889 }
30890 _res = NULL;
30891 done:
30892 D(p->level--);
30893 return _res;
30894}
30895
Pablo Galindo56c95df2021-04-21 15:28:21 +010030896// _tmp_175: '}' | ','
Pablo Galindo206cbda2021-02-07 18:42:21 +000030897static void *
Pablo Galindo56c95df2021-04-21 15:28:21 +010030898_tmp_175_rule(Parser *p)
Pablo Galindoda743502021-04-15 14:06:39 +010030899{
30900 D(p->level++);
30901 if (p->error_indicator) {
30902 D(p->level--);
30903 return NULL;
30904 }
30905 void * _res = NULL;
30906 int _mark = p->mark;
30907 { // '}'
30908 if (p->error_indicator) {
30909 D(p->level--);
30910 return NULL;
30911 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010030912 D(fprintf(stderr, "%*c> _tmp_175[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'}'"));
Pablo Galindoda743502021-04-15 14:06:39 +010030913 Token * _literal;
30914 if (
30915 (_literal = _PyPegen_expect_token(p, 26)) // token='}'
30916 )
30917 {
Pablo Galindo56c95df2021-04-21 15:28:21 +010030918 D(fprintf(stderr, "%*c+ _tmp_175[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'}'"));
Pablo Galindoda743502021-04-15 14:06:39 +010030919 _res = _literal;
30920 goto done;
30921 }
30922 p->mark = _mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +010030923 D(fprintf(stderr, "%*c%s _tmp_175[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindoda743502021-04-15 14:06:39 +010030924 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'}'"));
30925 }
30926 { // ','
30927 if (p->error_indicator) {
30928 D(p->level--);
30929 return NULL;
30930 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010030931 D(fprintf(stderr, "%*c> _tmp_175[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','"));
Pablo Galindoda743502021-04-15 14:06:39 +010030932 Token * _literal;
30933 if (
30934 (_literal = _PyPegen_expect_token(p, 12)) // token=','
30935 )
30936 {
Pablo Galindo56c95df2021-04-21 15:28:21 +010030937 D(fprintf(stderr, "%*c+ _tmp_175[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','"));
Pablo Galindoda743502021-04-15 14:06:39 +010030938 _res = _literal;
30939 goto done;
30940 }
30941 p->mark = _mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +010030942 D(fprintf(stderr, "%*c%s _tmp_175[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindoda743502021-04-15 14:06:39 +010030943 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','"));
30944 }
30945 _res = NULL;
30946 done:
30947 D(p->level--);
30948 return _res;
30949}
30950
Pablo Galindo56c95df2021-04-21 15:28:21 +010030951// _tmp_176: star_targets '='
Pablo Galindoda743502021-04-15 14:06:39 +010030952static void *
Pablo Galindo56c95df2021-04-21 15:28:21 +010030953_tmp_176_rule(Parser *p)
Pablo Galindo206cbda2021-02-07 18:42:21 +000030954{
30955 D(p->level++);
30956 if (p->error_indicator) {
30957 D(p->level--);
30958 return NULL;
30959 }
30960 void * _res = NULL;
30961 int _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010030962 { // star_targets '='
30963 if (p->error_indicator) {
30964 D(p->level--);
30965 return NULL;
30966 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010030967 D(fprintf(stderr, "%*c> _tmp_176[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010030968 Token * _literal;
30969 expr_ty z;
30970 if (
30971 (z = star_targets_rule(p)) // star_targets
30972 &&
30973 (_literal = _PyPegen_expect_token(p, 22)) // token='='
30974 )
30975 {
Pablo Galindo56c95df2021-04-21 15:28:21 +010030976 D(fprintf(stderr, "%*c+ _tmp_176[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010030977 _res = z;
30978 if (_res == NULL && PyErr_Occurred()) {
30979 p->error_indicator = 1;
30980 D(p->level--);
30981 return NULL;
30982 }
30983 goto done;
30984 }
30985 p->mark = _mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +010030986 D(fprintf(stderr, "%*c%s _tmp_176[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010030987 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_targets '='"));
30988 }
30989 _res = NULL;
30990 done:
30991 D(p->level--);
30992 return _res;
30993}
30994
Pablo Galindo56c95df2021-04-21 15:28:21 +010030995// _tmp_177: '.' | '...'
Pablo Galindo206cbda2021-02-07 18:42:21 +000030996static void *
Pablo Galindo56c95df2021-04-21 15:28:21 +010030997_tmp_177_rule(Parser *p)
Pablo Galindo206cbda2021-02-07 18:42:21 +000030998{
30999 D(p->level++);
31000 if (p->error_indicator) {
31001 D(p->level--);
31002 return NULL;
31003 }
31004 void * _res = NULL;
31005 int _mark = p->mark;
31006 { // '.'
31007 if (p->error_indicator) {
31008 D(p->level--);
31009 return NULL;
31010 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010031011 D(fprintf(stderr, "%*c> _tmp_177[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000031012 Token * _literal;
31013 if (
31014 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
31015 )
31016 {
Pablo Galindo56c95df2021-04-21 15:28:21 +010031017 D(fprintf(stderr, "%*c+ _tmp_177[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000031018 _res = _literal;
31019 goto done;
31020 }
31021 p->mark = _mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +010031022 D(fprintf(stderr, "%*c%s _tmp_177[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo206cbda2021-02-07 18:42:21 +000031023 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
31024 }
31025 { // '...'
31026 if (p->error_indicator) {
31027 D(p->level--);
31028 return NULL;
31029 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010031030 D(fprintf(stderr, "%*c> _tmp_177[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000031031 Token * _literal;
31032 if (
31033 (_literal = _PyPegen_expect_token(p, 52)) // token='...'
31034 )
31035 {
Pablo Galindo56c95df2021-04-21 15:28:21 +010031036 D(fprintf(stderr, "%*c+ _tmp_177[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000031037 _res = _literal;
31038 goto done;
31039 }
31040 p->mark = _mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +010031041 D(fprintf(stderr, "%*c%s _tmp_177[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo206cbda2021-02-07 18:42:21 +000031042 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'...'"));
31043 }
31044 _res = NULL;
31045 done:
31046 D(p->level--);
31047 return _res;
31048}
31049
Pablo Galindo56c95df2021-04-21 15:28:21 +010031050// _tmp_178: '.' | '...'
Pablo Galindo206cbda2021-02-07 18:42:21 +000031051static void *
Pablo Galindo56c95df2021-04-21 15:28:21 +010031052_tmp_178_rule(Parser *p)
Pablo Galindo206cbda2021-02-07 18:42:21 +000031053{
31054 D(p->level++);
31055 if (p->error_indicator) {
31056 D(p->level--);
31057 return NULL;
31058 }
31059 void * _res = NULL;
31060 int _mark = p->mark;
Pablo Galindob2802482021-04-15 21:38:45 +010031061 { // '.'
31062 if (p->error_indicator) {
31063 D(p->level--);
31064 return NULL;
31065 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010031066 D(fprintf(stderr, "%*c> _tmp_178[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
Pablo Galindob2802482021-04-15 21:38:45 +010031067 Token * _literal;
31068 if (
31069 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
31070 )
31071 {
Pablo Galindo56c95df2021-04-21 15:28:21 +010031072 D(fprintf(stderr, "%*c+ _tmp_178[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
Pablo Galindob2802482021-04-15 21:38:45 +010031073 _res = _literal;
31074 goto done;
31075 }
31076 p->mark = _mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +010031077 D(fprintf(stderr, "%*c%s _tmp_178[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob2802482021-04-15 21:38:45 +010031078 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
31079 }
31080 { // '...'
31081 if (p->error_indicator) {
31082 D(p->level--);
31083 return NULL;
31084 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010031085 D(fprintf(stderr, "%*c> _tmp_178[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'"));
Pablo Galindob2802482021-04-15 21:38:45 +010031086 Token * _literal;
31087 if (
31088 (_literal = _PyPegen_expect_token(p, 52)) // token='...'
31089 )
31090 {
Pablo Galindo56c95df2021-04-21 15:28:21 +010031091 D(fprintf(stderr, "%*c+ _tmp_178[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'"));
Pablo Galindob2802482021-04-15 21:38:45 +010031092 _res = _literal;
31093 goto done;
31094 }
31095 p->mark = _mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +010031096 D(fprintf(stderr, "%*c%s _tmp_178[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob2802482021-04-15 21:38:45 +010031097 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'...'"));
31098 }
31099 _res = NULL;
31100 done:
31101 D(p->level--);
31102 return _res;
31103}
31104
Pablo Galindo56c95df2021-04-21 15:28:21 +010031105// _tmp_179: '@' named_expression NEWLINE
Pablo Galindob2802482021-04-15 21:38:45 +010031106static void *
Pablo Galindo56c95df2021-04-21 15:28:21 +010031107_tmp_179_rule(Parser *p)
Pablo Galindob2802482021-04-15 21:38:45 +010031108{
31109 D(p->level++);
31110 if (p->error_indicator) {
31111 D(p->level--);
31112 return NULL;
31113 }
31114 void * _res = NULL;
31115 int _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031116 { // '@' named_expression NEWLINE
31117 if (p->error_indicator) {
31118 D(p->level--);
31119 return NULL;
31120 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010031121 D(fprintf(stderr, "%*c> _tmp_179[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@' named_expression NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031122 Token * _literal;
31123 expr_ty f;
31124 Token * newline_var;
31125 if (
31126 (_literal = _PyPegen_expect_token(p, 49)) // token='@'
31127 &&
31128 (f = named_expression_rule(p)) // named_expression
31129 &&
31130 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
31131 )
31132 {
Pablo Galindo56c95df2021-04-21 15:28:21 +010031133 D(fprintf(stderr, "%*c+ _tmp_179[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@' named_expression NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031134 _res = f;
31135 if (_res == NULL && PyErr_Occurred()) {
31136 p->error_indicator = 1;
31137 D(p->level--);
31138 return NULL;
31139 }
31140 goto done;
31141 }
31142 p->mark = _mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +010031143 D(fprintf(stderr, "%*c%s _tmp_179[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031144 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@' named_expression NEWLINE"));
31145 }
31146 _res = NULL;
31147 done:
31148 D(p->level--);
31149 return _res;
31150}
31151
Pablo Galindo56c95df2021-04-21 15:28:21 +010031152// _tmp_180: ',' star_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031153static void *
Pablo Galindo56c95df2021-04-21 15:28:21 +010031154_tmp_180_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031155{
31156 D(p->level++);
31157 if (p->error_indicator) {
31158 D(p->level--);
31159 return NULL;
31160 }
31161 void * _res = NULL;
31162 int _mark = p->mark;
31163 { // ',' star_expression
31164 if (p->error_indicator) {
31165 D(p->level--);
31166 return NULL;
31167 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010031168 D(fprintf(stderr, "%*c> _tmp_180[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031169 Token * _literal;
31170 expr_ty c;
31171 if (
31172 (_literal = _PyPegen_expect_token(p, 12)) // token=','
31173 &&
31174 (c = star_expression_rule(p)) // star_expression
31175 )
31176 {
Pablo Galindo56c95df2021-04-21 15:28:21 +010031177 D(fprintf(stderr, "%*c+ _tmp_180[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031178 _res = c;
31179 if (_res == NULL && PyErr_Occurred()) {
31180 p->error_indicator = 1;
31181 D(p->level--);
31182 return NULL;
31183 }
31184 goto done;
31185 }
31186 p->mark = _mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +010031187 D(fprintf(stderr, "%*c%s _tmp_180[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031188 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_expression"));
31189 }
31190 _res = NULL;
31191 done:
31192 D(p->level--);
31193 return _res;
31194}
31195
Pablo Galindo56c95df2021-04-21 15:28:21 +010031196// _tmp_181: ',' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031197static void *
Pablo Galindo56c95df2021-04-21 15:28:21 +010031198_tmp_181_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031199{
31200 D(p->level++);
31201 if (p->error_indicator) {
31202 D(p->level--);
31203 return NULL;
31204 }
31205 void * _res = NULL;
31206 int _mark = p->mark;
31207 { // ',' expression
31208 if (p->error_indicator) {
31209 D(p->level--);
31210 return NULL;
31211 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010031212 D(fprintf(stderr, "%*c> _tmp_181[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031213 Token * _literal;
31214 expr_ty c;
31215 if (
31216 (_literal = _PyPegen_expect_token(p, 12)) // token=','
31217 &&
31218 (c = expression_rule(p)) // expression
31219 )
31220 {
Pablo Galindo56c95df2021-04-21 15:28:21 +010031221 D(fprintf(stderr, "%*c+ _tmp_181[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031222 _res = c;
31223 if (_res == NULL && PyErr_Occurred()) {
31224 p->error_indicator = 1;
31225 D(p->level--);
31226 return NULL;
31227 }
31228 goto done;
31229 }
31230 p->mark = _mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +010031231 D(fprintf(stderr, "%*c%s _tmp_181[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031232 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
31233 }
31234 _res = NULL;
31235 done:
31236 D(p->level--);
31237 return _res;
31238}
31239
Pablo Galindo56c95df2021-04-21 15:28:21 +010031240// _tmp_182: 'or' conjunction
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031241static void *
Pablo Galindo56c95df2021-04-21 15:28:21 +010031242_tmp_182_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031243{
31244 D(p->level++);
31245 if (p->error_indicator) {
31246 D(p->level--);
31247 return NULL;
31248 }
31249 void * _res = NULL;
31250 int _mark = p->mark;
31251 { // 'or' conjunction
31252 if (p->error_indicator) {
31253 D(p->level--);
31254 return NULL;
31255 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010031256 D(fprintf(stderr, "%*c> _tmp_182[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'or' conjunction"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031257 Token * _keyword;
31258 expr_ty c;
31259 if (
31260 (_keyword = _PyPegen_expect_token(p, 531)) // token='or'
31261 &&
31262 (c = conjunction_rule(p)) // conjunction
31263 )
31264 {
Pablo Galindo56c95df2021-04-21 15:28:21 +010031265 D(fprintf(stderr, "%*c+ _tmp_182[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'or' conjunction"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031266 _res = c;
31267 if (_res == NULL && PyErr_Occurred()) {
31268 p->error_indicator = 1;
31269 D(p->level--);
31270 return NULL;
31271 }
31272 goto done;
31273 }
31274 p->mark = _mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +010031275 D(fprintf(stderr, "%*c%s _tmp_182[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031276 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'or' conjunction"));
31277 }
31278 _res = NULL;
31279 done:
31280 D(p->level--);
31281 return _res;
31282}
31283
Pablo Galindo56c95df2021-04-21 15:28:21 +010031284// _tmp_183: 'and' inversion
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031285static void *
Pablo Galindo56c95df2021-04-21 15:28:21 +010031286_tmp_183_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031287{
31288 D(p->level++);
31289 if (p->error_indicator) {
31290 D(p->level--);
31291 return NULL;
31292 }
31293 void * _res = NULL;
31294 int _mark = p->mark;
31295 { // 'and' inversion
31296 if (p->error_indicator) {
31297 D(p->level--);
31298 return NULL;
31299 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010031300 D(fprintf(stderr, "%*c> _tmp_183[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'and' inversion"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031301 Token * _keyword;
31302 expr_ty c;
31303 if (
31304 (_keyword = _PyPegen_expect_token(p, 532)) // token='and'
31305 &&
31306 (c = inversion_rule(p)) // inversion
31307 )
31308 {
Pablo Galindo56c95df2021-04-21 15:28:21 +010031309 D(fprintf(stderr, "%*c+ _tmp_183[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'and' inversion"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031310 _res = c;
31311 if (_res == NULL && PyErr_Occurred()) {
31312 p->error_indicator = 1;
31313 D(p->level--);
31314 return NULL;
31315 }
31316 goto done;
31317 }
31318 p->mark = _mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +010031319 D(fprintf(stderr, "%*c%s _tmp_183[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob2802482021-04-15 21:38:45 +010031320 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'and' inversion"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000031321 }
31322 _res = NULL;
31323 done:
31324 D(p->level--);
31325 return _res;
31326}
31327
Pablo Galindo56c95df2021-04-21 15:28:21 +010031328// _tmp_184: 'if' disjunction
Pablo Galindo206cbda2021-02-07 18:42:21 +000031329static void *
Pablo Galindo56c95df2021-04-21 15:28:21 +010031330_tmp_184_rule(Parser *p)
Pablo Galindo206cbda2021-02-07 18:42:21 +000031331{
31332 D(p->level++);
31333 if (p->error_indicator) {
31334 D(p->level--);
31335 return NULL;
31336 }
31337 void * _res = NULL;
31338 int _mark = p->mark;
31339 { // 'if' disjunction
31340 if (p->error_indicator) {
31341 D(p->level--);
31342 return NULL;
31343 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010031344 D(fprintf(stderr, "%*c> _tmp_184[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000031345 Token * _keyword;
31346 expr_ty z;
31347 if (
31348 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
31349 &&
31350 (z = disjunction_rule(p)) // disjunction
31351 )
31352 {
Pablo Galindo56c95df2021-04-21 15:28:21 +010031353 D(fprintf(stderr, "%*c+ _tmp_184[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000031354 _res = z;
31355 if (_res == NULL && PyErr_Occurred()) {
31356 p->error_indicator = 1;
31357 D(p->level--);
31358 return NULL;
31359 }
31360 goto done;
31361 }
31362 p->mark = _mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +010031363 D(fprintf(stderr, "%*c%s _tmp_184[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo206cbda2021-02-07 18:42:21 +000031364 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' disjunction"));
31365 }
31366 _res = NULL;
31367 done:
31368 D(p->level--);
31369 return _res;
31370}
31371
Pablo Galindo56c95df2021-04-21 15:28:21 +010031372// _tmp_185: 'if' disjunction
Pablo Galindo206cbda2021-02-07 18:42:21 +000031373static void *
Pablo Galindo56c95df2021-04-21 15:28:21 +010031374_tmp_185_rule(Parser *p)
Pablo Galindo206cbda2021-02-07 18:42:21 +000031375{
31376 D(p->level++);
31377 if (p->error_indicator) {
31378 D(p->level--);
31379 return NULL;
31380 }
31381 void * _res = NULL;
31382 int _mark = p->mark;
Pablo Galindob2802482021-04-15 21:38:45 +010031383 { // 'if' disjunction
31384 if (p->error_indicator) {
31385 D(p->level--);
31386 return NULL;
31387 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010031388 D(fprintf(stderr, "%*c> _tmp_185[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
Pablo Galindob2802482021-04-15 21:38:45 +010031389 Token * _keyword;
31390 expr_ty z;
31391 if (
31392 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
31393 &&
31394 (z = disjunction_rule(p)) // disjunction
31395 )
31396 {
Pablo Galindo56c95df2021-04-21 15:28:21 +010031397 D(fprintf(stderr, "%*c+ _tmp_185[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
Pablo Galindob2802482021-04-15 21:38:45 +010031398 _res = z;
31399 if (_res == NULL && PyErr_Occurred()) {
31400 p->error_indicator = 1;
31401 D(p->level--);
31402 return NULL;
31403 }
31404 goto done;
31405 }
31406 p->mark = _mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +010031407 D(fprintf(stderr, "%*c%s _tmp_185[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob2802482021-04-15 21:38:45 +010031408 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' disjunction"));
31409 }
31410 _res = NULL;
31411 done:
31412 D(p->level--);
31413 return _res;
31414}
31415
Pablo Galindo56c95df2021-04-21 15:28:21 +010031416// _tmp_186: starred_expression | direct_named_expression !'='
Pablo Galindob2802482021-04-15 21:38:45 +010031417static void *
Pablo Galindo56c95df2021-04-21 15:28:21 +010031418_tmp_186_rule(Parser *p)
Pablo Galindob2802482021-04-15 21:38:45 +010031419{
31420 D(p->level++);
31421 if (p->error_indicator) {
31422 D(p->level--);
31423 return NULL;
31424 }
31425 void * _res = NULL;
31426 int _mark = p->mark;
Pablo Galindo4a97b152020-09-02 17:44:19 +010031427 { // starred_expression
31428 if (p->error_indicator) {
31429 D(p->level--);
31430 return NULL;
31431 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010031432 D(fprintf(stderr, "%*c> _tmp_186[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "starred_expression"));
Pablo Galindo4a97b152020-09-02 17:44:19 +010031433 expr_ty starred_expression_var;
31434 if (
31435 (starred_expression_var = starred_expression_rule(p)) // starred_expression
31436 )
31437 {
Pablo Galindo56c95df2021-04-21 15:28:21 +010031438 D(fprintf(stderr, "%*c+ _tmp_186[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "starred_expression"));
Pablo Galindo4a97b152020-09-02 17:44:19 +010031439 _res = starred_expression_var;
31440 goto done;
31441 }
31442 p->mark = _mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +010031443 D(fprintf(stderr, "%*c%s _tmp_186[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo4a97b152020-09-02 17:44:19 +010031444 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "starred_expression"));
31445 }
Pablo Galindod9151cb2021-04-13 02:32:33 +010031446 { // direct_named_expression !'='
Pablo Galindo4a97b152020-09-02 17:44:19 +010031447 if (p->error_indicator) {
31448 D(p->level--);
31449 return NULL;
31450 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010031451 D(fprintf(stderr, "%*c> _tmp_186[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "direct_named_expression !'='"));
Pablo Galindod9151cb2021-04-13 02:32:33 +010031452 expr_ty direct_named_expression_var;
Pablo Galindo4a97b152020-09-02 17:44:19 +010031453 if (
Pablo Galindod9151cb2021-04-13 02:32:33 +010031454 (direct_named_expression_var = direct_named_expression_rule(p)) // direct_named_expression
Pablo Galindo4a97b152020-09-02 17:44:19 +010031455 &&
31456 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 22) // token='='
31457 )
31458 {
Pablo Galindo56c95df2021-04-21 15:28:21 +010031459 D(fprintf(stderr, "%*c+ _tmp_186[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "direct_named_expression !'='"));
Pablo Galindod9151cb2021-04-13 02:32:33 +010031460 _res = direct_named_expression_var;
Pablo Galindo4a97b152020-09-02 17:44:19 +010031461 goto done;
31462 }
31463 p->mark = _mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +010031464 D(fprintf(stderr, "%*c%s _tmp_186[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob2802482021-04-15 21:38:45 +010031465 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "direct_named_expression !'='"));
Pablo Galindoda743502021-04-15 14:06:39 +010031466 }
31467 _res = NULL;
31468 done:
31469 D(p->level--);
31470 return _res;
31471}
31472
Pablo Galindo56c95df2021-04-21 15:28:21 +010031473// _tmp_187: ',' star_target
Pablo Galindoda743502021-04-15 14:06:39 +010031474static void *
Pablo Galindo56c95df2021-04-21 15:28:21 +010031475_tmp_187_rule(Parser *p)
Pablo Galindoda743502021-04-15 14:06:39 +010031476{
31477 D(p->level++);
31478 if (p->error_indicator) {
31479 D(p->level--);
31480 return NULL;
31481 }
31482 void * _res = NULL;
31483 int _mark = p->mark;
31484 { // ',' star_target
31485 if (p->error_indicator) {
31486 D(p->level--);
31487 return NULL;
31488 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010031489 D(fprintf(stderr, "%*c> _tmp_187[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_target"));
Pablo Galindoda743502021-04-15 14:06:39 +010031490 Token * _literal;
31491 expr_ty c;
31492 if (
31493 (_literal = _PyPegen_expect_token(p, 12)) // token=','
31494 &&
31495 (c = star_target_rule(p)) // star_target
31496 )
31497 {
Pablo Galindo56c95df2021-04-21 15:28:21 +010031498 D(fprintf(stderr, "%*c+ _tmp_187[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_target"));
Pablo Galindoda743502021-04-15 14:06:39 +010031499 _res = c;
31500 if (_res == NULL && PyErr_Occurred()) {
31501 p->error_indicator = 1;
31502 D(p->level--);
31503 return NULL;
31504 }
31505 goto done;
31506 }
31507 p->mark = _mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +010031508 D(fprintf(stderr, "%*c%s _tmp_187[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindoda743502021-04-15 14:06:39 +010031509 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_target"));
31510 }
31511 _res = NULL;
31512 done:
31513 D(p->level--);
31514 return _res;
31515}
31516
Pablo Galindo56c95df2021-04-21 15:28:21 +010031517// _tmp_188: ',' star_target
Pablo Galindoda743502021-04-15 14:06:39 +010031518static void *
Pablo Galindo56c95df2021-04-21 15:28:21 +010031519_tmp_188_rule(Parser *p)
Pablo Galindoda743502021-04-15 14:06:39 +010031520{
31521 D(p->level++);
31522 if (p->error_indicator) {
31523 D(p->level--);
31524 return NULL;
31525 }
31526 void * _res = NULL;
31527 int _mark = p->mark;
Pablo Galindob2802482021-04-15 21:38:45 +010031528 { // ',' star_target
Pablo Galindob86ed8e2021-04-12 16:59:30 +010031529 if (p->error_indicator) {
31530 D(p->level--);
31531 return NULL;
31532 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010031533 D(fprintf(stderr, "%*c> _tmp_188[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_target"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010031534 Token * _literal;
Pablo Galindob2802482021-04-15 21:38:45 +010031535 expr_ty c;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010031536 if (
Pablo Galindob2802482021-04-15 21:38:45 +010031537 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindob86ed8e2021-04-12 16:59:30 +010031538 &&
Pablo Galindob2802482021-04-15 21:38:45 +010031539 (c = star_target_rule(p)) // star_target
Pablo Galindob86ed8e2021-04-12 16:59:30 +010031540 )
31541 {
Pablo Galindo56c95df2021-04-21 15:28:21 +010031542 D(fprintf(stderr, "%*c+ _tmp_188[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_target"));
Pablo Galindob2802482021-04-15 21:38:45 +010031543 _res = c;
31544 if (_res == NULL && PyErr_Occurred()) {
31545 p->error_indicator = 1;
31546 D(p->level--);
31547 return NULL;
31548 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010031549 goto done;
31550 }
31551 p->mark = _mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +010031552 D(fprintf(stderr, "%*c%s _tmp_188[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob2802482021-04-15 21:38:45 +010031553 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_target"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010031554 }
31555 _res = NULL;
31556 done:
31557 D(p->level--);
31558 return _res;
31559}
31560
Pablo Galindo56c95df2021-04-21 15:28:21 +010031561// _tmp_189: star_targets '='
Pablo Galindob86ed8e2021-04-12 16:59:30 +010031562static void *
Pablo Galindo56c95df2021-04-21 15:28:21 +010031563_tmp_189_rule(Parser *p)
Pablo Galindoda743502021-04-15 14:06:39 +010031564{
31565 D(p->level++);
31566 if (p->error_indicator) {
31567 D(p->level--);
31568 return NULL;
31569 }
31570 void * _res = NULL;
31571 int _mark = p->mark;
31572 { // star_targets '='
31573 if (p->error_indicator) {
31574 D(p->level--);
31575 return NULL;
31576 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010031577 D(fprintf(stderr, "%*c> _tmp_189[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
Pablo Galindoda743502021-04-15 14:06:39 +010031578 Token * _literal;
31579 expr_ty star_targets_var;
31580 if (
31581 (star_targets_var = star_targets_rule(p)) // star_targets
31582 &&
31583 (_literal = _PyPegen_expect_token(p, 22)) // token='='
31584 )
31585 {
Pablo Galindo56c95df2021-04-21 15:28:21 +010031586 D(fprintf(stderr, "%*c+ _tmp_189[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
Pablo Galindoda743502021-04-15 14:06:39 +010031587 _res = _PyPegen_dummy_name(p, star_targets_var, _literal);
31588 goto done;
31589 }
31590 p->mark = _mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +010031591 D(fprintf(stderr, "%*c%s _tmp_189[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindoda743502021-04-15 14:06:39 +010031592 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_targets '='"));
31593 }
31594 _res = NULL;
31595 done:
31596 D(p->level--);
31597 return _res;
31598}
31599
Pablo Galindo56c95df2021-04-21 15:28:21 +010031600// _tmp_190: star_targets '='
Pablo Galindoda743502021-04-15 14:06:39 +010031601static void *
Pablo Galindo56c95df2021-04-21 15:28:21 +010031602_tmp_190_rule(Parser *p)
Pablo Galindo835f14f2021-01-31 22:52:56 +000031603{
31604 D(p->level++);
31605 if (p->error_indicator) {
31606 D(p->level--);
31607 return NULL;
31608 }
31609 void * _res = NULL;
31610 int _mark = p->mark;
Pablo Galindob2802482021-04-15 21:38:45 +010031611 { // star_targets '='
31612 if (p->error_indicator) {
31613 D(p->level--);
31614 return NULL;
31615 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010031616 D(fprintf(stderr, "%*c> _tmp_190[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
Pablo Galindob2802482021-04-15 21:38:45 +010031617 Token * _literal;
31618 expr_ty star_targets_var;
31619 if (
31620 (star_targets_var = star_targets_rule(p)) // star_targets
31621 &&
31622 (_literal = _PyPegen_expect_token(p, 22)) // token='='
31623 )
31624 {
Pablo Galindo56c95df2021-04-21 15:28:21 +010031625 D(fprintf(stderr, "%*c+ _tmp_190[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
Pablo Galindob2802482021-04-15 21:38:45 +010031626 _res = _PyPegen_dummy_name(p, star_targets_var, _literal);
31627 goto done;
31628 }
31629 p->mark = _mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +010031630 D(fprintf(stderr, "%*c%s _tmp_190[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob2802482021-04-15 21:38:45 +010031631 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_targets '='"));
31632 }
31633 _res = NULL;
31634 done:
31635 D(p->level--);
31636 return _res;
31637}
31638
Pablo Galindo56c95df2021-04-21 15:28:21 +010031639// _tmp_191: ')' | '**'
Pablo Galindob2802482021-04-15 21:38:45 +010031640static void *
Pablo Galindo56c95df2021-04-21 15:28:21 +010031641_tmp_191_rule(Parser *p)
Pablo Galindob2802482021-04-15 21:38:45 +010031642{
31643 D(p->level++);
31644 if (p->error_indicator) {
31645 D(p->level--);
31646 return NULL;
31647 }
31648 void * _res = NULL;
31649 int _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031650 { // ')'
31651 if (p->error_indicator) {
31652 D(p->level--);
31653 return NULL;
31654 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010031655 D(fprintf(stderr, "%*c> _tmp_191[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031656 Token * _literal;
31657 if (
31658 (_literal = _PyPegen_expect_token(p, 8)) // token=')'
31659 )
31660 {
Pablo Galindo56c95df2021-04-21 15:28:21 +010031661 D(fprintf(stderr, "%*c+ _tmp_191[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
Pablo Galindo835f14f2021-01-31 22:52:56 +000031662 _res = _literal;
31663 goto done;
31664 }
31665 p->mark = _mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +010031666 D(fprintf(stderr, "%*c%s _tmp_191[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob2802482021-04-15 21:38:45 +010031667 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
Pablo Galindo835f14f2021-01-31 22:52:56 +000031668 }
31669 { // '**'
31670 if (p->error_indicator) {
31671 D(p->level--);
31672 return NULL;
31673 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010031674 D(fprintf(stderr, "%*c> _tmp_191[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**'"));
Pablo Galindo835f14f2021-01-31 22:52:56 +000031675 Token * _literal;
31676 if (
31677 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
31678 )
31679 {
Pablo Galindo56c95df2021-04-21 15:28:21 +010031680 D(fprintf(stderr, "%*c+ _tmp_191[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**'"));
Pablo Galindo835f14f2021-01-31 22:52:56 +000031681 _res = _literal;
31682 goto done;
31683 }
31684 p->mark = _mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +010031685 D(fprintf(stderr, "%*c%s _tmp_191[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo835f14f2021-01-31 22:52:56 +000031686 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**'"));
31687 }
31688 _res = NULL;
31689 done:
31690 D(p->level--);
31691 return _res;
31692}
31693
Pablo Galindo56c95df2021-04-21 15:28:21 +010031694// _tmp_192: ':' | '**'
Pablo Galindo58fb1562021-02-02 19:54:22 +000031695static void *
Pablo Galindo56c95df2021-04-21 15:28:21 +010031696_tmp_192_rule(Parser *p)
Pablo Galindo58fb1562021-02-02 19:54:22 +000031697{
31698 D(p->level++);
31699 if (p->error_indicator) {
31700 D(p->level--);
31701 return NULL;
31702 }
31703 void * _res = NULL;
31704 int _mark = p->mark;
Pablo Galindob2802482021-04-15 21:38:45 +010031705 { // ':'
31706 if (p->error_indicator) {
31707 D(p->level--);
31708 return NULL;
31709 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010031710 D(fprintf(stderr, "%*c> _tmp_192[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
Pablo Galindob2802482021-04-15 21:38:45 +010031711 Token * _literal;
31712 if (
31713 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
31714 )
31715 {
Pablo Galindo56c95df2021-04-21 15:28:21 +010031716 D(fprintf(stderr, "%*c+ _tmp_192[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
Pablo Galindob2802482021-04-15 21:38:45 +010031717 _res = _literal;
31718 goto done;
31719 }
31720 p->mark = _mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +010031721 D(fprintf(stderr, "%*c%s _tmp_192[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob2802482021-04-15 21:38:45 +010031722 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
31723 }
31724 { // '**'
31725 if (p->error_indicator) {
31726 D(p->level--);
31727 return NULL;
31728 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010031729 D(fprintf(stderr, "%*c> _tmp_192[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**'"));
Pablo Galindob2802482021-04-15 21:38:45 +010031730 Token * _literal;
31731 if (
31732 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
31733 )
31734 {
Pablo Galindo56c95df2021-04-21 15:28:21 +010031735 D(fprintf(stderr, "%*c+ _tmp_192[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**'"));
Pablo Galindob2802482021-04-15 21:38:45 +010031736 _res = _literal;
31737 goto done;
31738 }
31739 p->mark = _mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +010031740 D(fprintf(stderr, "%*c%s _tmp_192[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob2802482021-04-15 21:38:45 +010031741 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**'"));
31742 }
31743 _res = NULL;
31744 done:
31745 D(p->level--);
31746 return _res;
31747}
31748
Pablo Galindo56c95df2021-04-21 15:28:21 +010031749// _tmp_193: expression ['as' star_target]
Pablo Galindob2802482021-04-15 21:38:45 +010031750static void *
Pablo Galindo56c95df2021-04-21 15:28:21 +010031751_tmp_193_rule(Parser *p)
Pablo Galindob2802482021-04-15 21:38:45 +010031752{
31753 D(p->level++);
31754 if (p->error_indicator) {
31755 D(p->level--);
31756 return NULL;
31757 }
31758 void * _res = NULL;
31759 int _mark = p->mark;
Pablo Galindo58fb1562021-02-02 19:54:22 +000031760 { // expression ['as' star_target]
31761 if (p->error_indicator) {
31762 D(p->level--);
31763 return NULL;
31764 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010031765 D(fprintf(stderr, "%*c> _tmp_193[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000031766 void *_opt_var;
31767 UNUSED(_opt_var); // Silence compiler warnings
31768 expr_ty expression_var;
31769 if (
31770 (expression_var = expression_rule(p)) // expression
31771 &&
Pablo Galindo56c95df2021-04-21 15:28:21 +010031772 (_opt_var = _tmp_197_rule(p), 1) // ['as' star_target]
Pablo Galindo58fb1562021-02-02 19:54:22 +000031773 )
31774 {
Pablo Galindo56c95df2021-04-21 15:28:21 +010031775 D(fprintf(stderr, "%*c+ _tmp_193[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000031776 _res = _PyPegen_dummy_name(p, expression_var, _opt_var);
31777 goto done;
31778 }
31779 p->mark = _mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +010031780 D(fprintf(stderr, "%*c%s _tmp_193[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +000031781 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ['as' star_target]"));
31782 }
31783 _res = NULL;
31784 done:
31785 D(p->level--);
31786 return _res;
31787}
31788
Pablo Galindo56c95df2021-04-21 15:28:21 +010031789// _tmp_194: expressions ['as' star_target]
Pablo Galindo58fb1562021-02-02 19:54:22 +000031790static void *
Pablo Galindo56c95df2021-04-21 15:28:21 +010031791_tmp_194_rule(Parser *p)
Pablo Galindo58fb1562021-02-02 19:54:22 +000031792{
31793 D(p->level++);
31794 if (p->error_indicator) {
31795 D(p->level--);
31796 return NULL;
31797 }
31798 void * _res = NULL;
31799 int _mark = p->mark;
31800 { // expressions ['as' star_target]
31801 if (p->error_indicator) {
31802 D(p->level--);
31803 return NULL;
31804 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010031805 D(fprintf(stderr, "%*c> _tmp_194[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000031806 void *_opt_var;
31807 UNUSED(_opt_var); // Silence compiler warnings
31808 expr_ty expressions_var;
31809 if (
31810 (expressions_var = expressions_rule(p)) // expressions
31811 &&
Pablo Galindo56c95df2021-04-21 15:28:21 +010031812 (_opt_var = _tmp_198_rule(p), 1) // ['as' star_target]
Pablo Galindo58fb1562021-02-02 19:54:22 +000031813 )
31814 {
Pablo Galindo56c95df2021-04-21 15:28:21 +010031815 D(fprintf(stderr, "%*c+ _tmp_194[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000031816 _res = _PyPegen_dummy_name(p, expressions_var, _opt_var);
31817 goto done;
31818 }
31819 p->mark = _mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +010031820 D(fprintf(stderr, "%*c%s _tmp_194[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob2802482021-04-15 21:38:45 +010031821 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expressions ['as' star_target]"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000031822 }
31823 _res = NULL;
31824 done:
31825 D(p->level--);
31826 return _res;
31827}
31828
Pablo Galindo56c95df2021-04-21 15:28:21 +010031829// _tmp_195: expression ['as' star_target]
Pablo Galindo58fb1562021-02-02 19:54:22 +000031830static void *
Pablo Galindo56c95df2021-04-21 15:28:21 +010031831_tmp_195_rule(Parser *p)
31832{
31833 D(p->level++);
31834 if (p->error_indicator) {
31835 D(p->level--);
31836 return NULL;
31837 }
31838 void * _res = NULL;
31839 int _mark = p->mark;
31840 { // expression ['as' star_target]
31841 if (p->error_indicator) {
31842 D(p->level--);
31843 return NULL;
31844 }
31845 D(fprintf(stderr, "%*c> _tmp_195[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]"));
31846 void *_opt_var;
31847 UNUSED(_opt_var); // Silence compiler warnings
31848 expr_ty expression_var;
31849 if (
31850 (expression_var = expression_rule(p)) // expression
31851 &&
31852 (_opt_var = _tmp_199_rule(p), 1) // ['as' star_target]
31853 )
31854 {
31855 D(fprintf(stderr, "%*c+ _tmp_195[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]"));
31856 _res = _PyPegen_dummy_name(p, expression_var, _opt_var);
31857 goto done;
31858 }
31859 p->mark = _mark;
31860 D(fprintf(stderr, "%*c%s _tmp_195[%d-%d]: %s failed!\n", p->level, ' ',
31861 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ['as' star_target]"));
31862 }
31863 _res = NULL;
31864 done:
31865 D(p->level--);
31866 return _res;
31867}
31868
31869// _tmp_196: expressions ['as' star_target]
31870static void *
31871_tmp_196_rule(Parser *p)
31872{
31873 D(p->level++);
31874 if (p->error_indicator) {
31875 D(p->level--);
31876 return NULL;
31877 }
31878 void * _res = NULL;
31879 int _mark = p->mark;
31880 { // expressions ['as' star_target]
31881 if (p->error_indicator) {
31882 D(p->level--);
31883 return NULL;
31884 }
31885 D(fprintf(stderr, "%*c> _tmp_196[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]"));
31886 void *_opt_var;
31887 UNUSED(_opt_var); // Silence compiler warnings
31888 expr_ty expressions_var;
31889 if (
31890 (expressions_var = expressions_rule(p)) // expressions
31891 &&
31892 (_opt_var = _tmp_200_rule(p), 1) // ['as' star_target]
31893 )
31894 {
31895 D(fprintf(stderr, "%*c+ _tmp_196[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]"));
31896 _res = _PyPegen_dummy_name(p, expressions_var, _opt_var);
31897 goto done;
31898 }
31899 p->mark = _mark;
31900 D(fprintf(stderr, "%*c%s _tmp_196[%d-%d]: %s failed!\n", p->level, ' ',
31901 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expressions ['as' star_target]"));
31902 }
31903 _res = NULL;
31904 done:
31905 D(p->level--);
31906 return _res;
31907}
31908
31909// _tmp_197: 'as' star_target
31910static void *
31911_tmp_197_rule(Parser *p)
Pablo Galindo58fb1562021-02-02 19:54:22 +000031912{
31913 D(p->level++);
31914 if (p->error_indicator) {
31915 D(p->level--);
31916 return NULL;
31917 }
31918 void * _res = NULL;
31919 int _mark = p->mark;
31920 { // 'as' star_target
31921 if (p->error_indicator) {
31922 D(p->level--);
31923 return NULL;
31924 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010031925 D(fprintf(stderr, "%*c> _tmp_197[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000031926 Token * _keyword;
31927 expr_ty star_target_var;
31928 if (
31929 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
31930 &&
31931 (star_target_var = star_target_rule(p)) // star_target
31932 )
31933 {
Pablo Galindo56c95df2021-04-21 15:28:21 +010031934 D(fprintf(stderr, "%*c+ _tmp_197[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000031935 _res = _PyPegen_dummy_name(p, _keyword, star_target_var);
31936 goto done;
31937 }
31938 p->mark = _mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +010031939 D(fprintf(stderr, "%*c%s _tmp_197[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +000031940 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' star_target"));
31941 }
31942 _res = NULL;
31943 done:
31944 D(p->level--);
31945 return _res;
31946}
31947
Pablo Galindo56c95df2021-04-21 15:28:21 +010031948// _tmp_198: 'as' star_target
Pablo Galindob2802482021-04-15 21:38:45 +010031949static void *
Pablo Galindo56c95df2021-04-21 15:28:21 +010031950_tmp_198_rule(Parser *p)
Pablo Galindob2802482021-04-15 21:38:45 +010031951{
31952 D(p->level++);
31953 if (p->error_indicator) {
31954 D(p->level--);
31955 return NULL;
31956 }
31957 void * _res = NULL;
31958 int _mark = p->mark;
31959 { // 'as' star_target
31960 if (p->error_indicator) {
31961 D(p->level--);
31962 return NULL;
31963 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010031964 D(fprintf(stderr, "%*c> _tmp_198[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
Pablo Galindob2802482021-04-15 21:38:45 +010031965 Token * _keyword;
31966 expr_ty star_target_var;
31967 if (
31968 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
31969 &&
31970 (star_target_var = star_target_rule(p)) // star_target
31971 )
31972 {
Pablo Galindo56c95df2021-04-21 15:28:21 +010031973 D(fprintf(stderr, "%*c+ _tmp_198[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
Pablo Galindob2802482021-04-15 21:38:45 +010031974 _res = _PyPegen_dummy_name(p, _keyword, star_target_var);
31975 goto done;
31976 }
31977 p->mark = _mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +010031978 D(fprintf(stderr, "%*c%s _tmp_198[%d-%d]: %s failed!\n", p->level, ' ',
31979 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' star_target"));
31980 }
31981 _res = NULL;
31982 done:
31983 D(p->level--);
31984 return _res;
31985}
31986
31987// _tmp_199: 'as' star_target
31988static void *
31989_tmp_199_rule(Parser *p)
31990{
31991 D(p->level++);
31992 if (p->error_indicator) {
31993 D(p->level--);
31994 return NULL;
31995 }
31996 void * _res = NULL;
31997 int _mark = p->mark;
31998 { // 'as' star_target
31999 if (p->error_indicator) {
32000 D(p->level--);
32001 return NULL;
32002 }
32003 D(fprintf(stderr, "%*c> _tmp_199[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
32004 Token * _keyword;
32005 expr_ty star_target_var;
32006 if (
32007 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
32008 &&
32009 (star_target_var = star_target_rule(p)) // star_target
32010 )
32011 {
32012 D(fprintf(stderr, "%*c+ _tmp_199[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
32013 _res = _PyPegen_dummy_name(p, _keyword, star_target_var);
32014 goto done;
32015 }
32016 p->mark = _mark;
32017 D(fprintf(stderr, "%*c%s _tmp_199[%d-%d]: %s failed!\n", p->level, ' ',
32018 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' star_target"));
32019 }
32020 _res = NULL;
32021 done:
32022 D(p->level--);
32023 return _res;
32024}
32025
32026// _tmp_200: 'as' star_target
32027static void *
32028_tmp_200_rule(Parser *p)
32029{
32030 D(p->level++);
32031 if (p->error_indicator) {
32032 D(p->level--);
32033 return NULL;
32034 }
32035 void * _res = NULL;
32036 int _mark = p->mark;
32037 { // 'as' star_target
32038 if (p->error_indicator) {
32039 D(p->level--);
32040 return NULL;
32041 }
32042 D(fprintf(stderr, "%*c> _tmp_200[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
32043 Token * _keyword;
32044 expr_ty star_target_var;
32045 if (
32046 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
32047 &&
32048 (star_target_var = star_target_rule(p)) // star_target
32049 )
32050 {
32051 D(fprintf(stderr, "%*c+ _tmp_200[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
32052 _res = _PyPegen_dummy_name(p, _keyword, star_target_var);
32053 goto done;
32054 }
32055 p->mark = _mark;
32056 D(fprintf(stderr, "%*c%s _tmp_200[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob2802482021-04-15 21:38:45 +010032057 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' star_target"));
32058 }
32059 _res = NULL;
32060 done:
32061 D(p->level--);
32062 return _res;
32063}
32064
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032065void *
32066_PyPegen_parse(Parser *p)
32067{
32068 // Initialize keywords
32069 p->keywords = reserved_keywords;
32070 p->n_keyword_lists = n_keyword_lists;
Pablo Galindob2802482021-04-15 21:38:45 +010032071 p->soft_keywords = soft_keywords;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032072
32073 // Run parser
32074 void *result = NULL;
32075 if (p->start_rule == Py_file_input) {
32076 result = file_rule(p);
32077 } else if (p->start_rule == Py_single_input) {
32078 result = interactive_rule(p);
32079 } else if (p->start_rule == Py_eval_input) {
32080 result = eval_rule(p);
32081 } else if (p->start_rule == Py_func_type_input) {
32082 result = func_type_rule(p);
32083 } else if (p->start_rule == Py_fstring_input) {
32084 result = fstring_rule(p);
32085 }
32086
32087 return result;
32088}
32089
32090// The end